]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Merge remote-tracking branch 'origin/next' into thirteen
authorArne Fitzenreiter <arne_f@ipfire.org>
Sun, 23 Sep 2012 14:08:43 +0000 (10:08 -0400)
committerArne Fitzenreiter <arne_f@ipfire.org>
Sun, 23 Sep 2012 14:08:43 +0000 (10:08 -0400)
543 files changed:
config/acpid/power [new file with mode: 0644]
config/acpid/power.sh [new file with mode: 0644]
config/asterisk/asterisk.makeopts
config/etc/securetty
config/etc/sysctl.conf
config/grub/grub.conf
config/hostapd/config
config/hostapd/hostapd.conf
config/kernel/kernel.config.armv5tel-ipfire-kirkwood
config/kernel/kernel.config.armv5tel-ipfire-omap [moved from config/kernel/kernel.config.armv5tel-ipfire-versatile with 59% similarity]
config/kernel/kernel.config.armv5tel-ipfire-rpi [new file with mode: 0644]
config/kernel/kernel.config.i586-ipfire
config/kernel/kernel.config.i586-ipfire-pae
config/kernel/kernel.config.i586-ipfire-xen
config/madwifi/madwifi.conf [deleted file]
config/qos/makeqosscripts.pl
config/rootfiles/common/armv5tel/gcc
config/rootfiles/common/armv5tel/glibc
config/rootfiles/common/armv5tel/linux-omap [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-rpi [new file with mode: 0644]
config/rootfiles/common/armv5tel/linux-versatile [deleted file]
config/rootfiles/common/armv5tel/rpi-firmware [new file with mode: 0644]
config/rootfiles/common/armv5tel/u-boot [new file with mode: 0644]
config/rootfiles/common/armv5tel/uboot [deleted file]
config/rootfiles/common/cairo [new file with mode: 0644]
config/rootfiles/common/cmake
config/rootfiles/common/coreutils
config/rootfiles/common/dejavu-fonts-ttf [new file with mode: 0644]
config/rootfiles/common/file
config/rootfiles/common/fontconfig [moved from config/rootfiles/packages/fontconfig with 99% similarity]
config/rootfiles/common/gettext
config/rootfiles/common/glib [moved from config/rootfiles/packages/glib with 62% similarity]
config/rootfiles/common/gmp
config/rootfiles/common/gmp-compat [new file with mode: 0644]
config/rootfiles/common/gnupg
config/rootfiles/common/grep
config/rootfiles/common/hddtemp [deleted file]
config/rootfiles/common/i586/acpid [new file with mode: 0644]
config/rootfiles/common/i586/binutils
config/rootfiles/common/i586/gcc
config/rootfiles/common/i586/glibc
config/rootfiles/common/i586/grub
config/rootfiles/common/i586/kqemu [deleted file]
config/rootfiles/common/i586/linux
config/rootfiles/common/i586/madwifi [deleted file]
config/rootfiles/common/i586/strongswan-padlock [new file with mode: 0644]
config/rootfiles/common/iproute2
config/rootfiles/common/iptables
config/rootfiles/common/iptstate [deleted file]
config/rootfiles/common/less
config/rootfiles/common/libaal [deleted file]
config/rootfiles/common/libffi [new file with mode: 0644]
config/rootfiles/common/libsafe [deleted file]
config/rootfiles/common/libsigc++
config/rootfiles/common/linux-libc-header
config/rootfiles/common/mbr
config/rootfiles/common/misc-progs
config/rootfiles/common/mpfr [new file with mode: 0644]
config/rootfiles/common/ncurses
config/rootfiles/common/openldap
config/rootfiles/common/openssl
config/rootfiles/common/pam
config/rootfiles/common/pango [new file with mode: 0644]
config/rootfiles/common/pcre
config/rootfiles/common/pcre-compat [new file with mode: 0644]
config/rootfiles/common/pixman [new file with mode: 0644]
config/rootfiles/common/readline
config/rootfiles/common/readline-compat [new file with mode: 0644]
config/rootfiles/common/reiser4progs [deleted file]
config/rootfiles/common/rrdtool
config/rootfiles/common/sed
config/rootfiles/common/shadow
config/rootfiles/common/stage2
config/rootfiles/common/strongswan
config/rootfiles/common/sysfsutils
config/rootfiles/common/texinfo
config/rootfiles/common/uClibc [deleted file]
config/rootfiles/common/udev
config/rootfiles/common/zlib
config/rootfiles/core/strongswan/exclude [new file with mode: 0644]
config/rootfiles/core/strongswan/filelists/files [new file with mode: 0644]
config/rootfiles/core/strongswan/filelists/strongswan [new symlink]
config/rootfiles/core/strongswan/meta [new file with mode: 0644]
config/rootfiles/core/strongswan/update.sh [new file with mode: 0644]
config/rootfiles/installer/findutils [new symlink]
config/rootfiles/installer/libsafe [deleted symlink]
config/rootfiles/installer/pcre [new symlink]
config/rootfiles/packages/alsa
config/rootfiles/packages/applejuice [deleted file]
config/rootfiles/packages/asterisk
config/rootfiles/packages/centerim [deleted file]
config/rootfiles/packages/dahdi [deleted file]
config/rootfiles/packages/gnump3d
config/rootfiles/packages/hplip
config/rootfiles/packages/libogg
config/rootfiles/packages/libsolv
config/rootfiles/packages/libvorbis
config/rootfiles/packages/linux-pae
config/rootfiles/packages/linux-xen
config/rootfiles/packages/qemu-kqemu [deleted file]
config/rootfiles/packages/splix [deleted file]
config/rpi-firmware/config.txt [new file with mode: 0644]
config/syslinux/syslinux.cfg
config/u-boot/boot.scr [new file with mode: 0755]
config/u-boot/boot.script [new file with mode: 0755]
config/u-boot/convert_bootscript [new file with mode: 0755]
config/uClibc/busybox.config [deleted file]
config/uClibc/codesets.txt [deleted file]
config/uClibc/locales.txt [deleted file]
config/uClibc/uClibc.config-i586 [deleted file]
config/udev/99-codel.rules [new file with mode: 0644]
config/udev/enable_codel [moved from src/paks/applejuice/uninstall.sh with 69% similarity]
config/wpa_supplicant/config
html/cgi-bin/qos.cgi
html/cgi-bin/services.cgi
html/cgi-bin/vpnmain.cgi
lfs/Config
lfs/acpid [new file with mode: 0644]
lfs/alsa
lfs/apcupsd
lfs/bash
lfs/binutils
lfs/bluetooth
lfs/cairo [new file with mode: 0644]
lfs/capi4k-utils
lfs/ccache
lfs/cleanup-toolchain
lfs/cmake
lfs/compat-wireless
lfs/coreutils
lfs/cryptodev
lfs/cyrus-sasl
lfs/dahdi [deleted file]
lfs/dbus
lfs/dejavu-fonts-ttf [moved from lfs/iptstate with 94% similarity]
lfs/dhcp
lfs/directfb
lfs/dracut
lfs/fake-environ
lfs/file
lfs/flash-images
lfs/fontconfig
lfs/gawk
lfs/gcc
lfs/gettext
lfs/glib
lfs/glibc
lfs/gmp
lfs/gmp-compat [moved from lfs/splix with 88% similarity]
lfs/gnupg
lfs/grep
lfs/grub
lfs/hplip
lfs/hwdata
lfs/imspector
lfs/inetutils
lfs/iproute2
lfs/iptables
lfs/kbd
lfs/kqemu [deleted file]
lfs/kudzu
lfs/less
lfs/libffi [moved from lfs/centerim with 93% similarity]
lfs/libmad
lfs/libnl
lfs/libogg
lfs/libsafe [deleted file]
lfs/libsigc++
lfs/libsolv
lfs/libvorbis
lfs/linux
lfs/linux-libc-header [deleted file]
lfs/linux-xen
lfs/linux2 [new file with mode: 0644]
lfs/m4
lfs/madwifi [deleted file]
lfs/make
lfs/man
lfs/mbr
lfs/mc
lfs/minidlna
lfs/miniupnpd
lfs/misc-progs
lfs/mpd
lfs/mpfr [moved from lfs/reiser4progs with 93% similarity]
lfs/nagios
lfs/ncurses
lfs/netpbm
lfs/newt
lfs/openldap
lfs/openvmtools
lfs/pango [new file with mode: 0644]
lfs/pciutils
lfs/pcmciautils
lfs/pcre
lfs/pcre-compat [moved from lfs/hddtemp with 91% similarity]
lfs/php
lfs/pixman [moved from lfs/libaal with 96% similarity]
lfs/popt
lfs/postfix
lfs/pptp
lfs/qemu
lfs/qemu-kqemu [deleted file]
lfs/readline
lfs/readline-compat [moved from lfs/applejuice with 82% similarity]
lfs/reiserfsprogs
lfs/rpi-firmware [new file with mode: 0644]
lfs/rrdtool
lfs/screen
lfs/sdl
lfs/sed
lfs/slang
lfs/stage2
lfs/streamripper
lfs/strip
lfs/strongswan
lfs/sysfsutils
lfs/sysvinit
lfs/texinfo
lfs/tzdata
lfs/u-boot
lfs/udev
lfs/usb-stick
lfs/util-linux
lfs/v4l-dvb
lfs/vdr
lfs/wget
lfs/wpa_supplicant
lfs/xen-image
lfs/xfsprogs
lfs/xz
lfs/zlib
make.sh
src/fake-environ/Makefile
src/initscripts/init.d/fsresize
src/initscripts/init.d/partresize
src/initscripts/init.d/tmpfs
src/install+setup/install/Makefile
src/install+setup/install/main.c
src/install+setup/install/mountdest.sh
src/install+setup/install/mountsource.sh
src/install+setup/install/probenic.sh
src/install+setup/libsmooth/Makefile
src/misc-progs/Makefile
src/misc-progs/getiptstate.c [deleted file]
src/misc-progs/ipsecctrl.c
src/paks/applejuice/install.sh [deleted file]
src/paks/applejuice/update.sh [deleted file]
src/paks/linux-xen/install.sh
src/patches/bash-3.1-fixes-8.patch [deleted file]
src/patches/bash-3.1-login.patch [deleted file]
src/patches/bash/bash32-001 [new file with mode: 0644]
src/patches/bash/bash32-002 [new file with mode: 0644]
src/patches/bash/bash32-003 [new file with mode: 0644]
src/patches/bash/bash32-004 [new file with mode: 0644]
src/patches/bash/bash32-005 [new file with mode: 0644]
src/patches/bash/bash32-006 [new file with mode: 0644]
src/patches/bash/bash32-007 [new file with mode: 0644]
src/patches/bash/bash32-008 [new file with mode: 0644]
src/patches/bash/bash32-009 [new file with mode: 0644]
src/patches/bash/bash32-010 [new file with mode: 0644]
src/patches/bash/bash32-011 [new file with mode: 0644]
src/patches/bash/bash32-012 [new file with mode: 0644]
src/patches/bash/bash32-013 [new file with mode: 0644]
src/patches/bash/bash32-014 [new file with mode: 0644]
src/patches/bash/bash32-015 [new file with mode: 0644]
src/patches/bash/bash32-016 [new file with mode: 0644]
src/patches/bash/bash32-017 [new file with mode: 0644]
src/patches/bash/bash32-018 [new file with mode: 0644]
src/patches/bash/bash32-019 [new file with mode: 0644]
src/patches/bash/bash32-020 [new file with mode: 0644]
src/patches/bash/bash32-021 [new file with mode: 0644]
src/patches/bash/bash32-022 [new file with mode: 0644]
src/patches/bash/bash32-023 [new file with mode: 0644]
src/patches/bash/bash32-024 [new file with mode: 0644]
src/patches/bash/bash32-025 [new file with mode: 0644]
src/patches/bash/bash32-026 [new file with mode: 0644]
src/patches/bash/bash32-027 [new file with mode: 0644]
src/patches/bash/bash32-028 [new file with mode: 0644]
src/patches/bash/bash32-029 [new file with mode: 0644]
src/patches/bash/bash32-030 [new file with mode: 0644]
src/patches/bash/bash32-031 [new file with mode: 0644]
src/patches/bash/bash32-032 [new file with mode: 0644]
src/patches/bash/bash32-033 [new file with mode: 0644]
src/patches/bash/bash32-034 [new file with mode: 0644]
src/patches/bash/bash32-035 [new file with mode: 0644]
src/patches/bash/bash32-036 [new file with mode: 0644]
src/patches/bash/bash32-037 [new file with mode: 0644]
src/patches/bash/bash32-038 [new file with mode: 0644]
src/patches/bash/bash32-039 [new file with mode: 0644]
src/patches/bash/bash32-040 [new file with mode: 0644]
src/patches/bash/bash32-041 [new file with mode: 0644]
src/patches/bash/bash32-042 [new file with mode: 0644]
src/patches/bash/bash32-043 [new file with mode: 0644]
src/patches/bash/bash32-044 [new file with mode: 0644]
src/patches/bash/bash32-045 [new file with mode: 0644]
src/patches/bash/bash32-046 [new file with mode: 0644]
src/patches/bash/bash32-047 [new file with mode: 0644]
src/patches/bash/bash32-048 [new file with mode: 0644]
src/patches/bash/bash32-049 [new file with mode: 0644]
src/patches/bash/bash32-050 [new file with mode: 0644]
src/patches/bash/bash32-051 [new file with mode: 0644]
src/patches/binutils-2.18-configure-1.patch [deleted file]
src/patches/ccache-3.1.6-no_compiler_mtime.patch [deleted file]
src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch [new file with mode: 0644]
src/patches/compat-wireless-3.5-libertas_uap.patch [moved from src/patches/compat-wireless-3.0-libertas_uap.patch with 97% similarity]
src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch [new file with mode: 0644]
src/patches/coreutils-5.96-futimes.patch [new file with mode: 0644]
src/patches/cyrus-sasl-2.1.22-bad-elif.patch [new file with mode: 0644]
src/patches/dbus-1.0.3-compile-fix-1.patch [new file with mode: 0644]
src/patches/dhcp-3.1_linux3.patch [new file with mode: 0644]
src/patches/directfb-1.1.1-fix-mknod.patch [new file with mode: 0644]
src/patches/gcc-4.0.4-specs-1.patch [deleted file]
src/patches/gcc-4.1.2-arm-linux-soft-float.patch [deleted file]
src/patches/gcc-4.1.2-fix_linker_version_detection.patch [deleted file]
src/patches/gcc-4.1.2-gcc_eh.patch [deleted file]
src/patches/gcc-4.1.2-specs-1.patch [deleted file]
src/patches/gcc-4.4.3-startfiles_fix-1.patch [new file with mode: 0644]
src/patches/gcc-libstdc++-pic.patch [deleted file]
src/patches/gcc-sdk-libstdc++-includes.patch [deleted file]
src/patches/gcc-uclibc-conf.patch [deleted file]
src/patches/gcc-uclibc-locale.patch [deleted file]
src/patches/gcc/gcc44-build-id.patch [new file with mode: 0644]
src/patches/gcc/gcc44-c++-builtin-redecl.patch [new file with mode: 0644]
src/patches/gcc/gcc44-i386-libgomp.patch [new file with mode: 0644]
src/patches/gcc/gcc44-libtool-no-rpath.patch [new file with mode: 0644]
src/patches/gcc/gcc44-no-add-needed.patch [new file with mode: 0644]
src/patches/gcc/gcc44-pr33763.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh330771.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh533181.patch [new file with mode: 0644]
src/patches/gcc/gcc44-rh610785.patch [new file with mode: 0644]
src/patches/gcc/gcc44-unwind-debug-hook.patch [new file with mode: 0644]
src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch [deleted file]
src/patches/glibc-2.3.6-inotify-1.patch [deleted file]
src/patches/glibc-2.3.6-linux_types-1.patch [deleted file]
src/patches/glibc-arm-dont-use-swp.patch [new file with mode: 0644]
src/patches/glibc-cfi-entry-not-closed.patch [new file with mode: 0644]
src/patches/glibc-ports-avoid-using-asm-procinfo.patch [deleted file]
src/patches/glibc-remove-ctors-dtors-output-sections.patch [new file with mode: 0644]
src/patches/glibc-resolv-stack_chk_fail.patch [new file with mode: 0644]
src/patches/glibc-test-installation.pl-libgcc_s.patch [new file with mode: 0644]
src/patches/glibc-test-installation.pl-nss_test1.patch [new file with mode: 0644]
src/patches/glibc/glibc-aliasing.patch [new file with mode: 0644]
src/patches/glibc/glibc-fedora.patch [new file with mode: 0644]
src/patches/glibc/glibc-getlogin-r.patch [new file with mode: 0644]
src/patches/glibc/glibc-localedata.patch [new file with mode: 0644]
src/patches/glibc/glibc-recvmmsg.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh580498.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh582738.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh587360.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh593396.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh593686.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh601686.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh607010.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh607461.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh615090.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh615701.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh621959.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh623187.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh625893.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh630801.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh631011.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh641128.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh642584.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh643822.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh645672.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh646954.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh647448.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh652661.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh656014.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh656530.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh657572.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh661982.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh667974.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh676076.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh676591.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh681054.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh688720.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh688980.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh689471.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh692177.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh692838.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh694386.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh695595.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh695963.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh696472.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh697421.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh699724.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh700507.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh703480.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh703481.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh705465.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh711927.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh711987.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh712248.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh713134.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh714823.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh718057.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh726517.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh730379.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh731042.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh736346.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh737778.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh738665.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh738763.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh739184.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh739971.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh740506-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh740506.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh749188.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh750531.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh751750.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh752122.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh757888.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh766513.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767146.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767693-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767693.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh767746.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh771342.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh782585.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh784402.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh785984.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh788959-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh788959.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789189.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789209.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789238-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh789238.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh794817-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh794817.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh795498.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh797094-1.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh797094-2.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh804630.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh804689.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh808337.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh808545.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh809602.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh833716.patch [new file with mode: 0644]
src/patches/glibc/glibc-rh837026.patch [new file with mode: 0644]
src/patches/grep-2.5.1a-redhat_fixes-2.patch [deleted file]
src/patches/grub-0.90-append.patch [deleted file]
src/patches/grub-0.90-symlinkmenulst.patch [deleted file]
src/patches/grub-0.91-splashimagehelp.patch [deleted file]
src/patches/grub-0.93-configfile.patch [deleted file]
src/patches/grub-0.93-endedit.patch [deleted file]
src/patches/grub-0.93-graphics-bootterm.patch [deleted file]
src/patches/grub-0.93-special-device-names.patch [deleted file]
src/patches/grub-0.94-i2o.patch [deleted file]
src/patches/grub-0.94-installcopyonly.patch [deleted file]
src/patches/grub-0.95-graphics.patch [deleted file]
src/patches/grub-0.95-hiddenmenu-tweak.patch [deleted file]
src/patches/grub-0.95-md-mbr.patch [deleted file]
src/patches/grub-0.95-md-rework.patch [deleted file]
src/patches/grub-0.95-md.patch [deleted file]
src/patches/grub-0.95-moreraid.patch [deleted file]
src/patches/grub-0.95-nonmbr.patch [deleted file]
src/patches/grub-0.95-odirect.patch [deleted file]
src/patches/grub-0.95-recheck-bad.patch [deleted file]
src/patches/grub-0.95-splash-error-term.patch [deleted file]
src/patches/grub-0.95-staticcurses.patch [deleted file]
src/patches/grub-0.95-xpmjunk.patch [deleted file]
src/patches/grub-0.97-bz429187-cciss.patch [deleted file]
src/patches/grub-0.97-cmdline-size.patch [deleted file]
src/patches/grub-0.97-datadir.patch [deleted file]
src/patches/grub-0.97-disk_geometry-1.patch [deleted file]
src/patches/grub-0.97-dmraid-partition-names.patch [deleted file]
src/patches/grub-0.97-dmraid-recheck-bad.patch [deleted file]
src/patches/grub-0.97-dmraid.patch [deleted file]
src/patches/grub-0.97-install.in.patch [deleted file]
src/patches/grub-0.97-mactel-kbd.patch [deleted file]
src/patches/grub-0.97-mdadm-path.patch [deleted file]
src/patches/grub-0.97-mpath.patch [deleted file]
src/patches/grub-0.97-nx-multiinstall.patch [deleted file]
src/patches/grub-0.97-nxstack.patch [deleted file]
src/patches/grub-0.97-once.patch [deleted file]
src/patches/grub-0.97-prototypes.patch [deleted file]
src/patches/grub-0.97-stderr.patch [deleted file]
src/patches/grub-0.97_grub-install_virtio.patch [deleted file]
src/patches/grub-fedora-18.patch [new file with mode: 0644]
src/patches/iptables-1.4.12-IMQ-test4.diff [moved from src/patches/iptables-1.4.6-imq_test1.patch with 60% similarity]
src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch [moved from src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch with 99% similarity]
src/patches/iptables-1.4.6-errorno_includes.patch [deleted file]
src/patches/libmad-0.15.1b-cflags-O2.patch [new file with mode: 0644]
src/patches/libmad-0.15.1b-cflags.patch [new file with mode: 0644]
src/patches/libnl-1.1-ULONG_MAX.patch [new file with mode: 0644]
src/patches/libsafe-alpha.diff [deleted file]
src/patches/libsafe-functioncaching.diff [deleted file]
src/patches/libsigc++-gcc43.patch [new file with mode: 0644]
src/patches/linux-2.6-arm-asm-constraint.patch [new file with mode: 0644]
src/patches/linux-2.6.32-crypto-mv_cesa.patch [new file with mode: 0644]
src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch [deleted file]
src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch [deleted file]
src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch [new file with mode: 0644]
src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch [new file with mode: 0644]
src/patches/linux-3.1-imq.patch [new file with mode: 0644]
src/patches/linux-3.2-0001-panda-wlan-fix.patch [new file with mode: 0644]
src/patches/linux-3.2-0002-panda-i2c.patch [new file with mode: 0644]
src/patches/linux-3.2-imq.patch [new file with mode: 0644]
src/patches/linux-3.2-panda-reboot.patch [new file with mode: 0644]
src/patches/linux-3.2.25-arm_kirkwood_setups.patch [new file with mode: 0644]
src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch [new file with mode: 0644]
src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch [deleted file]
src/patches/miniupnpd-iptcrdr.patch [deleted file]
src/patches/ncurses-5.5-fixes-1.patch [deleted file]
src/patches/netfilter_layer7_2.22_kernel3.0.patch [new file with mode: 0644]
src/patches/netpbm-10.26.46-getline.patch [new file with mode: 0644]
src/patches/openldap-gcc44-fixes.patch [new file with mode: 0644]
src/patches/pptp-1.7.2-compat.patch [new file with mode: 0644]
src/patches/qemu-kqemu_change-default-kqemu-bios.patch [deleted file]
src/patches/readline-5.1-fixes-3.patch [deleted file]
src/patches/readline/readline52-001 [new file with mode: 0644]
src/patches/readline/readline52-002 [new file with mode: 0644]
src/patches/readline/readline52-003 [new file with mode: 0644]
src/patches/readline/readline52-004 [new file with mode: 0644]
src/patches/readline/readline52-005 [new file with mode: 0644]
src/patches/readline/readline52-006 [new file with mode: 0644]
src/patches/readline/readline52-007 [new file with mode: 0644]
src/patches/readline/readline52-008 [new file with mode: 0644]
src/patches/readline/readline52-009 [new file with mode: 0644]
src/patches/readline/readline52-010 [new file with mode: 0644]
src/patches/readline/readline52-011 [new file with mode: 0644]
src/patches/readline/readline52-012 [new file with mode: 0644]
src/patches/readline/readline52-013 [new file with mode: 0644]
src/patches/readline/readline52-014 [new file with mode: 0644]
src/patches/readline/readline62-001 [new file with mode: 0644]
src/patches/readline/readline62-002 [new file with mode: 0644]
src/patches/readline/readline62-003 [new file with mode: 0644]
src/patches/readline/readline62-004 [new file with mode: 0644]
src/patches/screen-4.0.3-stropts.patch [new file with mode: 0644]
src/patches/slang-1.4.9-uclibc.patch [deleted file]
src/patches/texinfo-4.8-multibyte-1.patch [deleted file]
src/patches/texinfo-4.8-tempfile_fix-2.patch [deleted file]
src/patches/uClibc-gcc4-genwctype.patch [deleted file]
src/patches/udev-125-ext4_wo_journal.patch [new file with mode: 0644]
src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch [new file with mode: 0644]
src/patches/vdr-1.6.0-gcc44-fixes.patch [new file with mode: 0644]
src/patches/vdr-plugin-epgsearch-gcc44.patch [new file with mode: 0644]
src/scripts/readhash
src/scripts/vpn-watch [deleted file]
src/stripper [new file with mode: 0755]
tools/make-functions

diff --git a/config/acpid/power b/config/acpid/power
new file mode 100644 (file)
index 0000000..7406317
--- /dev/null
@@ -0,0 +1,4 @@
+# ACPID config to power down machine if powerbutton is pressed
+
+event=button/power.*
+action=/etc/acpi/actions/power.sh
diff --git a/config/acpid/power.sh b/config/acpid/power.sh
new file mode 100644 (file)
index 0000000..839a318
--- /dev/null
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+# Shutdown the system immediately
+shutdown -h now
index 6fa4c1108209d7cc9765f4519abf512403f07a84..60a311b0b738c5ca0b978af92d004a9c35869f89 100644 (file)
@@ -1,26 +1,31 @@
-MENUSELECT_ADDONS=format_mp3
-MENUSELECT_APPS=app_fax app_jack app_osplookup 
+MENUSELECT_ADDONS=format_mp3 
+MENUSELECT_APPS=app_flash app_meetme app_page app_dahdiras app_fax app_jack app_osplookup app_dahdibarge 
 MENUSELECT_BRIDGES=
 MENUSELECT_CDR=cdr_adaptive_odbc cdr_odbc cdr_pgsql cdr_radius cdr_tds cdr_sqlite 
 MENUSELECT_CEL=cel_odbc cel_pgsql cel_radius cel_tds 
-MENUSELECT_CHANNELS=chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 
-MENUSELECT_CODECS=codec_ilbc codec_resample codec_speex 
+MENUSELECT_CHANNELS=chan_dahdi chan_console chan_gtalk chan_jingle chan_misdn chan_nbs chan_vpb chan_h323 
+MENUSELECT_CODECS=codec_dahdi codec_resample codec_speex 
 MENUSELECT_FORMATS=
 MENUSELECT_FUNCS=func_odbc func_speex 
 MENUSELECT_PBX=pbx_lua 
-MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_timerfd res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue 
+MENUSELECT_RES=res_calendar_caldav res_calendar_ews res_calendar_exchange res_calendar_icalendar res_config_odbc res_http_post res_odbc res_srtp res_timing_dahdi res_ais res_config_pgsql res_config_sqlite res_jabber res_timing_kqueue 
 MENUSELECT_TESTS=test_acl test_amihooks test_aoc test_app test_ast_format_str_reduce test_astobj2 test_config test_db test_devicestate test_dlinklists test_event test_expr test_func_file test_gosub test_heap test_linkedlists test_locale test_logger test_netsock2 test_pbx test_poll test_sched test_security_events test_skel test_stringfields test_strings test_substitution test_time test_utils 
 MENUSELECT_CFLAGS=LOADABLE_MODULES 
-MENUSELECT_OPTS_app_voicemail=
-MENUSELECT_UTILS=
+MENUSELECT_OPTS_app_voicemail=FILE_STORAGE 
+MENUSELECT_UTILS=astcanary aelparse astman check_expr check_expr2 conf2ael hashtest hashtest2 muted refcounter smsq stereorize streamplayer 
 MENUSELECT_AGIS=
 MENUSELECT_EMBED=
 MENUSELECT_CORE_SOUNDS=CORE-SOUNDS-EN-GSM 
 MENUSELECT_MOH=MOH-OPSOUND-GSM 
 MENUSELECT_EXTRA_SOUNDS=EXTRA-SOUNDS-EN-GSM 
-MENUSELECT_BUILD_DEPS=chan_local app_voicemail app_meetme res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM 
+MENUSELECT_BUILD_DEPS=chan_local app_voicemail res_monitor res_agi res_adsi res_smdi res_crypto res_pktccops res_ael_share res_fax G711_NEW_ALGORITHM 
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_flash
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_meetme
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_page
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdiras
 MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_jack
 MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_osplookup
+MENUSELECT_DEPSFAILED=MENUSELECT_APPS=app_dahdibarge
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_adaptive_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CDR=cdr_pgsql
@@ -31,6 +36,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_pgsql
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_radius
 MENUSELECT_DEPSFAILED=MENUSELECT_CEL=cel_tds
+MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_console
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_gtalk
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_jingle
@@ -38,6 +44,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_misdn
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_nbs
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_vpb
 MENUSELECT_DEPSFAILED=MENUSELECT_CHANNELS=chan_h323
+MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_resample
 MENUSELECT_DEPSFAILED=MENUSELECT_CODECS=codec_speex
 MENUSELECT_DEPSFAILED=MENUSELECT_FUNCS=func_odbc
@@ -51,7 +58,7 @@ MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_http_post
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_odbc
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_srtp
-MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_timerfd
+MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_timing_dahdi
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_ais
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_pgsql
 MENUSELECT_DEPSFAILED=MENUSELECT_RES=res_config_sqlite
index 9a6a9fd30e841539a99fb191d3fa9b44f7ed5c26..3a69d0b6e7ef983495c7eeb68e00a9dab50e49b8 100644 (file)
@@ -5,6 +5,7 @@ tty4
 tty5
 tty6
 ttyAMA0
+ttyO2
 ttyS0
 ttyS1
 ttyS2
index 105feaa0acd34872c9a8982f36840a7e05281fa8..b2934577ee2ced4251a289f958ff8369cdf78aea 100644 (file)
@@ -23,3 +23,4 @@ net.ipv4.conf.all.log_martians = 1
 kernel.printk = 1 4 1 7
 vm.swappiness=0
 vm.mmap_min_addr = 4096
+vm.min_free_kbytes = 8192
index 553b10d42d4d8469e7c3e984551393568058381d..2199bf1d895f5244ecdd53aedbfadd2d759180bb 100644 (file)
@@ -14,28 +14,8 @@ title IPFire
   kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 MOUNT
   initrd /ipfirerd-KVER.img
   savedefault 0
-title IPFire (vesafb 640x480)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=785 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 1
-title IPFire (vesafb 800x600)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=788 MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 2
 title IPFire (vesafb 1024x768)
   root (hd0,0)
   kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 vga=791 MOUNT
   initrd /ipfirerd-KVER.img
-  savedefault 3
-title IPFire (acpi disabled)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 acpi=off MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 4
-title IPFire (single Processor)
-  root (hd0,0)
-  kernel /vmlinuz-KVER-ipfire root=ROOT panic=10 nosmp MOUNT
-  initrd /ipfirerd-KVER.img
-  savedefault 5
+  savedefault 1
index 88dca15c64a346ea2a35249c7fc0f2f8e3804161..6158e2cdf08f9e94b4f2c399738da1fdad79847d 100644 (file)
@@ -16,8 +16,8 @@ CONFIG_DRIVER_HOSTAP=y
 #CONFIG_DRIVER_WIRED=y
 
 # Driver interface for madwifi driver
-CONFIG_DRIVER_MADWIFI=y
-CFLAGS += -I../../madwifi # change to the madwifi source directory
+#CONFIG_DRIVER_MADWIFI=y
+#CFLAGS += -I../../madwifi # change to the madwifi source directory
 
 # Driver interface for Prism54 driver
 CONFIG_DRIVER_PRISM54=y
index 5e67dcee4a35467d1240235f1a923255a65ee2f6..e1f493f96edad90e5f12f692131b9344e7213628 100644 (file)
@@ -1,4 +1,4 @@
-driver=madwifi
+driver=nl80211
 ######################### basic hostapd configuration ##########################
 #
 interface=blue0
index 29c6514c54ef39c333579daa7252e149a77a6f8f..133ac1ac9907f40d9a0031190841a325fc25d6ea 100644 (file)
@@ -1,14 +1,15 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.45
-# Sat Oct 15 08:52:52 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.25 Kernel Configuration
 #
 CONFIG_ARM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
 CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
 CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
@@ -16,12 +17,17 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_VECTORS_BASE=0xffff0000
+# CONFIG_ARM_PATCH_PHYS_VIRT is not set
+CONFIG_PHYS_OFFSET=0x0
+CONFIG_GENERIC_BUG=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
@@ -29,8 +35,16 @@ CONFIG_CONSTRUCTORS=y
 CONFIG_EXPERIMENTAL=y
 CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+# CONFIG_KERNEL_GZIP is not set
+CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -38,44 +52,56 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
 # CONFIG_TASKSTATS is not set
 CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
-CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
-CONFIG_RCU_FANOUT=32
-# CONFIG_RCU_FANOUT_EXACT is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=19
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
@@ -88,27 +114,33 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
+CONFIG_PERF_EVENTS=y
+# CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_DMA_API_DEBUG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -121,71 +153,113 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
-CONFIG_FREEZER=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_FREEZER is not set
 
 #
 # System Type
 #
 CONFIG_MMU=y
-# CONFIG_ARCH_AAEC2000 is not set
 # CONFIG_ARCH_INTEGRATOR is not set
 # CONFIG_ARCH_REALVIEW is not set
 # CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
 # CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
 # CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
 # CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_EP93XX is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_MXS is not set
 # CONFIG_ARCH_NETX is not set
 # CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_IOP13XX is not set
 # CONFIG_ARCH_IOP32X is not set
 # CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP23XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_DOVE is not set
 CONFIG_ARCH_KIRKWOOD=y
-# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
 # CONFIG_ARCH_MV78XX0 is not set
 # CONFIG_ARCH_ORION5X is not set
 # CONFIG_ARCH_MMP is not set
 # CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
 # CONFIG_ARCH_RPC is not set
 # CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
 # CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
 # CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_TCC_926 is not set
 # CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_DAVINCI is not set
 # CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCMRING is not set
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+CONFIG_GPIO_PCA953X=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
 
 #
 # Marvell Kirkwood Implementations
@@ -195,17 +269,34 @@ CONFIG_MACH_RD88F6192_NAS=y
 CONFIG_MACH_RD88F6281=y
 CONFIG_MACH_MV88F6281GTW_GE=y
 CONFIG_MACH_SHEEVAPLUG=y
-CONFIG_MACH_DREAMPLUG=y
+CONFIG_MACH_ESATA_SHEEVAPLUG=y
 CONFIG_MACH_GURUPLUG=y
+CONFIG_MACH_DREAMPLUG=y
 CONFIG_MACH_TS219=y
+CONFIG_MACH_TS41X=y
+CONFIG_MACH_DOCKSTAR=y
+CONFIG_MACH_OPENRD=y
 CONFIG_MACH_OPENRD_BASE=y
+CONFIG_MACH_OPENRD_CLIENT=y
+CONFIG_MACH_OPENRD_ULTIMATE=y
+CONFIG_MACH_NETSPACE_V2=y
+CONFIG_MACH_INETSPACE_V2=y
+CONFIG_MACH_NETSPACE_MAX_V2=y
+CONFIG_MACH_D2NET_V2=y
+CONFIG_MACH_NET2BIG_V2=y
+CONFIG_MACH_NET5BIG_V2=y
+CONFIG_MACH_T5325=y
+CONFIG_MACH_ICONNECT=y
 CONFIG_MACH_NAS6210=y
+
+#
+# System MMU
+#
 CONFIG_PLAT_ORION=y
 
 #
 # Processor Type
 #
-CONFIG_CPU_32=y
 CONFIG_CPU_FEROCEON=y
 # CONFIG_CPU_FEROCEON_OLD_ID is not set
 CONFIG_CPU_32v5=y
@@ -216,6 +307,7 @@ CONFIG_CPU_COPY_FEROCEON=y
 CONFIG_CPU_TLB_FEROCEON=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
@@ -234,15 +326,15 @@ CONFIG_ARM_L1_CACHE_SHIFT=5
 CONFIG_PCI=y
 CONFIG_PCI_SYSCALL=y
 # CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+CONFIG_PCI_PRI=y
+# CONFIG_PCI_PASID is not set
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -256,7 +348,7 @@ CONFIG_YENTA_ENE_TUNE=y
 CONFIG_YENTA_TOSHIBA=y
 CONFIG_PD6729=m
 CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 
 #
 # Kernel Features
@@ -277,34 +369,44 @@ CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
 CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_SPLIT_PTLOCK_CPUS=999999
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=0
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_UACCESS_WITH_MEMCPY=y
+CONFIG_SECCOMP=y
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
 
 #
 # Boot options
 #
+CONFIG_USE_OF=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_ARM_APPENDED_DTB is not set
 CONFIG_CMDLINE=""
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+CONFIG_AUTO_ZRELADDR=y
 
 #
 # CPU Power Management
@@ -334,21 +436,18 @@ CONFIG_HAVE_AOUT=y
 #
 # Power management options
 #
+CONFIG_PM_RUNTIME=y
 CONFIG_PM=y
 # CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_PM_RUNTIME=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_APM_EMULATION=m
+CONFIG_CPU_PM=y
+# CONFIG_ARM_CPU_SUSPEND is not set
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -361,17 +460,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+CONFIG_IP_FIB_TRIE_STATS=y
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -400,11 +500,6 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
@@ -423,12 +518,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+CONFIG_IPV6_SIT_6RD=y
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -441,9 +538,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_ZONES=y
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -452,7 +550,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -460,10 +560,25 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -471,28 +586,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -501,7 +626,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -512,7 +636,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -523,8 +659,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -543,6 +681,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -552,7 +691,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -590,6 +728,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -639,9 +778,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -664,6 +808,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -676,6 +821,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -683,6 +829,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -692,7 +841,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -717,9 +865,13 @@ CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
 # CONFIG_NET_ACT_SIMP is not set
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
 
 #
 # Network testing
@@ -770,8 +922,8 @@ CONFIG_SIGMATEL_FIR=m
 CONFIG_VLSI_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -788,6 +940,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -799,19 +952,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -821,9 +980,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -832,6 +991,11 @@ CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
 # CONFIG_NET_9P is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -850,14 +1014,14 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
 CONFIG_MTD_AR7_PARTS=m
 
 #
@@ -872,7 +1036,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+# CONFIG_SM_FTL is not set
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -917,12 +1083,18 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 CONFIG_MTD_NAND=m
 # CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_ECC_BCH is not set
+# CONFIG_MTD_SM_COMMON is not set
 # CONFIG_MTD_NAND_MUSEUM_IDS is not set
+# CONFIG_MTD_NAND_DENALI is not set
 # CONFIG_MTD_NAND_GPIO is not set
 CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_RICOH is not set
 # CONFIG_MTD_NAND_DISKONCHIP is not set
 # CONFIG_MTD_NAND_CAFE is not set
 # CONFIG_MTD_NAND_NANDSIM is not set
@@ -936,19 +1108,29 @@ CONFIG_MTD_NAND_ORION=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_PCI=y
+CONFIG_OF_PCI_IRQ=y
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
 # CONFIG_PARPORT_GSC is not set
@@ -962,7 +1144,9 @@ CONFIG_BLK_DEV=y
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
@@ -974,15 +1158,30 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_MG_DISK=m
 CONFIG_MG_DISK_RES=0
+# CONFIG_BLK_DEV_RBD is not set
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
 CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 
 #
@@ -995,13 +1194,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+CONFIG_SENSORS_LIS3_I2C=m
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1035,15 +1249,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 # CONFIG_SCSI_ACARD is not set
 CONFIG_SCSI_AACRAID=m
 CONFIG_SCSI_AIC7XXX=m
@@ -1065,6 +1283,8 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 # CONFIG_SCSI_ADVANSYS is not set
 CONFIG_SCSI_ARCMSR=m
@@ -1103,6 +1323,7 @@ CONFIG_SCSI_DC390T=m
 # CONFIG_SCSI_NSP32 is not set
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1121,66 +1342,97 @@ CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
-CONFIG_PATA_SCH=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_RZ1000=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1188,15 +1440,19 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1204,6 +1460,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1215,26 +1473,17 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+CONFIG_FIREWIRE_NOSY=m
 # CONFIG_I2O is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1242,48 +1491,108 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+# CONFIG_ATM_HE is not set
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_MDIO_GPIO=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_AX88796=m
-CONFIG_AX88796_93CX6=y
-CONFIG_HAPPYMEAL=m
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
-CONFIG_SMC91X=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
+CONFIG_PCNET32=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DM9000=m
-CONFIG_DM9000_DEBUGLEVEL=4
 # CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-CONFIG_ETHOC=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1296,141 +1605,164 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_FUJITSU=y
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_B44=m
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
+CONFIG_NET_VENDOR_INTEL=y
 CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_MV643XX_ETH=m
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
 CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_PCMCIA_AXNET=m
+CONFIG_AX88796=m
+CONFIG_AX88796_93CX6=y
 CONFIG_NE2K_PCI=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_REALTEK=y
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+# CONFIG_SUNGEM is not set
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_MV643XX_ETH=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1443,7 +1775,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1458,17 +1792,62 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
 CONFIG_LANMEDIA=m
 CONFIG_HDLC=m
@@ -1491,87 +1870,9 @@ CONFIG_DSCC4_PCISYNC=y
 CONFIG_DSCC4_PCI_RST=y
 CONFIG_DLCI=m
 CONFIG_DLCI_MAX=8
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_VMXNET3=m
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1649,16 +1950,11 @@ CONFIG_HISAX_FRITZ_PCIPNP=m
 #
 # Active cards
 #
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -1679,10 +1975,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1691,6 +2010,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -1708,13 +2028,18 @@ CONFIG_INPUT_EVDEV=y
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
 CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -1725,16 +2050,27 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
-CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
+CONFIG_INPUT_MMA8450=m
+CONFIG_INPUT_MPU3050=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_KXTJ9=m
+# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
 CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_ADXL34X_I2C=m
+CONFIG_INPUT_CMA3000=m
+CONFIG_INPUT_CMA3000_I2C=m
 
 #
 # Hardware I/O ports
@@ -1745,6 +2081,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -1755,9 +2093,14 @@ CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+# CONFIG_N_GSM is not set
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -1773,19 +2116,27 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_8250_DETECT_IRQ=y
 CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
 
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
+# CONFIG_HVC_DCC is not set
 CONFIG_IPMI_HANDLER=m
 CONFIG_IPMI_PANIC_EVENT=y
 # CONFIG_IPMI_PANIC_STRING is not set
@@ -1795,7 +2146,6 @@ CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=m
 CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_NVRAM=m
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
 
@@ -1809,11 +2159,21 @@ CONFIG_IPWIRELESS=m
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
 CONFIG_DEVPORT=y
-CONFIG_I2C=m
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -1842,39 +2202,33 @@ CONFIG_I2C_VIAPRO=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_PCI=m
 CONFIG_I2C_GPIO=m
-CONFIG_I2C_MV64XXX=m
+CONFIG_I2C_INTEL_MID=m
+CONFIG_I2C_MV64XXX=y
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
 # CONFIG_I2C_TAOS_EVM is not set
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -1882,36 +2236,66 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
 CONFIG_ARCH_REQUIRE_GPIOLIB=y
 CONFIG_GPIOLIB=y
 # CONFIG_DEBUG_GPIO is not set
 # CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
 
 #
-# Memory mapped GPIO expanders:
+# Memory mapped GPIO drivers:
 #
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_VX855=m
 
 #
 # I2C GPIO expanders:
 #
+CONFIG_GPIO_MAX7300=m
 CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
 CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_WM831X=m
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_ADP5588=m
 
 #
 # PCI GPIO expanders:
 #
 # CONFIG_GPIO_BT8XX is not set
-# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_RDC321X=m
 
 #
 # SPI GPIO expanders:
 #
+CONFIG_GPIO_MCP23S08=m
 
 #
 # AC97 GPIO expanders:
 #
+
+#
+# MODULbus GPIO expanders:
+#
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -1921,6 +2305,7 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
 CONFIG_W1_MASTER_GPIO=m
 
 #
@@ -1928,21 +2313,32 @@ CONFIG_W1_MASTER_GPIO=m
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_APM_POWER is not set
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
 CONFIG_BATTERY_DS2782=m
+# CONFIG_BATTERY_BQ20Z75 is not set
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
 CONFIG_BATTERY_MAX17040=m
+# CONFIG_BATTERY_MAX17042 is not set
 CONFIG_CHARGER_PCF50633=m
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1958,11 +2354,13 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ADT7411 is not set
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+# CONFIG_SENSORS_ASC7621 is not set
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -1971,10 +2369,14 @@ CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -1985,22 +2387,52 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
 CONFIG_SENSORS_VIA686A=m
@@ -2010,23 +2442,23 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ORION_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
 CONFIG_ALIM7101_WDT=m
 
 #
@@ -2056,80 +2488,130 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=m
+CONFIG_MFD_CORE=y
+CONFIG_MFD_88PM860X=y
 CONFIG_MFD_SM501=m
 # CONFIG_MFD_SM501_GPIO is not set
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
 CONFIG_HTC_PASIC3=m
+# CONFIG_HTC_I2CPLD is not set
 # CONFIG_UCB1400_CORE is not set
+# CONFIG_TPS6105X is not set
 CONFIG_TPS65010=m
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+# CONFIG_TWL4030_CORE is not set
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_TIMBERDALE is not set
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_MFD_AAT2870_CORE is not set
 # CONFIG_REGULATOR is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
 # CONFIG_MEDIA_ATTACH is not set
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2148,19 +2630,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2175,24 +2656,54 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
@@ -2206,25 +2717,33 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
 # CONFIG_I2C_SI4713 is not set
 # CONFIG_RADIO_SI4713 is not set
 # CONFIG_USB_DSBR is not set
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2263,29 +2782,92 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
 #
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
 CONFIG_DRM=m
+CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 # CONFIG_DRM_RADEON is not set
 CONFIG_DRM_MGA=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2301,6 +2883,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2315,6 +2898,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
 CONFIG_FB_UVESA=m
@@ -2345,11 +2929,11 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 # CONFIG_FB_SAVAGE is not set
 CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2364,17 +2948,21 @@ CONFIG_FB_PM3=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FB_METRONOME=m
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2388,7 +2976,6 @@ CONFIG_DISPLAY_SUPPORT=m
 #
 # Console display driver support
 #
-# CONFIG_VGA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
 # CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
@@ -2417,7 +3004,7 @@ CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
 # CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_DYNAMIC_MINORS=y
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
@@ -2434,6 +3021,7 @@ CONFIG_SND_VX_LIB=m
 CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
 CONFIG_SND_MTS64=m
@@ -2483,38 +3071,41 @@ CONFIG_SND_ENS1370=m
 CONFIG_SND_ENS1371=m
 CONFIG_SND_ES1938=m
 CONFIG_SND_ES1968=m
+# CONFIG_SND_ES1968_INPUT is not set
+# CONFIG_SND_ES1968_RADIO is not set
 CONFIG_SND_FM801=m
 # CONFIG_SND_FM801_TEA575X_BOOL is not set
 CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PREALLOC_SIZE=64
 # CONFIG_SND_HDA_HWDEP is not set
 # CONFIG_SND_HDA_INPUT_BEEP is not set
 # CONFIG_SND_HDA_INPUT_JACK is not set
 # CONFIG_SND_HDA_PATCH_LOADER is not set
 CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y
 CONFIG_SND_HDA_CODEC_ANALOG=y
 CONFIG_SND_HDA_CODEC_SIGMATEL=y
 CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_CODEC_HDMI=y
 CONFIG_SND_HDA_CODEC_CIRRUS=y
 CONFIG_SND_HDA_CODEC_CONEXANT=y
 CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CA0132=y
 CONFIG_SND_HDA_CODEC_CMEDIA=y
 CONFIG_SND_HDA_CODEC_SI3054=y
 CONFIG_SND_HDA_GENERIC=y
 # CONFIG_SND_HDA_POWER_SAVE is not set
 CONFIG_SND_HDSP=m
 CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
 CONFIG_SND_ICE1712=m
 CONFIG_SND_ICE1724=m
 CONFIG_SND_INTEL8X0=m
 CONFIG_SND_INTEL8X0M=m
 CONFIG_SND_KORG1212=m
+# CONFIG_SND_LOLA is not set
 CONFIG_SND_LX6464ES=m
 CONFIG_SND_MAESTRO3=m
+# CONFIG_SND_MAESTRO3_INPUT is not set
 CONFIG_SND_MIXART=m
 CONFIG_SND_NM256=m
 CONFIG_SND_PCXHR=m
@@ -2532,49 +3123,102 @@ CONFIG_SND_YMFPCI=m
 CONFIG_SND_ARM=y
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_CAIAQ=m
 # CONFIG_SND_USB_CAIAQ_INPUT is not set
+CONFIG_SND_USB_6FIRE=m
+CONFIG_SND_FIREWIRE=y
+CONFIG_SND_FIREWIRE_LIB=m
+CONFIG_SND_FIREWIRE_SPEAKERS=m
+CONFIG_SND_ISIGHT=m
 CONFIG_SND_PCMCIA=y
 CONFIG_SND_VXPOCKET=m
 CONFIG_SND_PDAUDIOCF=m
 CONFIG_SND_SOC=m
+CONFIG_SND_SOC_CACHE_LZO=y
+CONFIG_SND_KIRKWOOD_SOC=m
+CONFIG_SND_KIRKWOOD_SOC_I2S=m
+CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
+CONFIG_SND_KIRKWOOD_SOC_T5325=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
 CONFIG_SND_SOC_ALL_CODECS=m
+CONFIG_SND_SOC_88PM860X=m
 CONFIG_SND_SOC_WM_HUBS=m
+CONFIG_SND_SOC_AD193X=m
 CONFIG_SND_SOC_AD73311=m
+CONFIG_SND_SOC_ADAU1373=m
+CONFIG_SND_SOC_ADAV80X=m
+CONFIG_SND_SOC_ADS117X=m
 CONFIG_SND_SOC_AK4535=m
+CONFIG_SND_SOC_AK4641=m
 CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK4671=m
+CONFIG_SND_SOC_ALC5623=m
+CONFIG_SND_SOC_CS42L51=m
 CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_CS4271=m
+CONFIG_SND_SOC_CX20442=m
+CONFIG_SND_SOC_JZ4740_CODEC=m
 CONFIG_SND_SOC_L3=m
+CONFIG_SND_SOC_DA7210=m
+CONFIG_SND_SOC_DFBMCS320=m
+CONFIG_SND_SOC_MAX98088=m
+CONFIG_SND_SOC_MAX98095=m
+CONFIG_SND_SOC_MAX9850=m
 CONFIG_SND_SOC_PCM3008=m
+CONFIG_SND_SOC_RT5631=m
+CONFIG_SND_SOC_SGTL5000=m
 CONFIG_SND_SOC_SPDIF=m
 CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_STA32X=m
 CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC32X4=m
 CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320DAC33=m
 CONFIG_SND_SOC_UDA134X=m
 CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WM8350=m
+CONFIG_SND_SOC_WM1250_EV1=m
+CONFIG_SND_SOC_WM5100=m
 CONFIG_SND_SOC_WM8400=m
 CONFIG_SND_SOC_WM8510=m
 CONFIG_SND_SOC_WM8523=m
 CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8727=m
 CONFIG_SND_SOC_WM8728=m
 CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8737=m
+CONFIG_SND_SOC_WM8741=m
 CONFIG_SND_SOC_WM8750=m
 CONFIG_SND_SOC_WM8753=m
 CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8782=m
+CONFIG_SND_SOC_WM8804=m
 CONFIG_SND_SOC_WM8900=m
 CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
 CONFIG_SND_SOC_WM8940=m
+CONFIG_SND_SOC_WM8955=m
 CONFIG_SND_SOC_WM8960=m
 CONFIG_SND_SOC_WM8961=m
+CONFIG_SND_SOC_WM8962=m
 CONFIG_SND_SOC_WM8971=m
 CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8983=m
+CONFIG_SND_SOC_WM8985=m
 CONFIG_SND_SOC_WM8988=m
 CONFIG_SND_SOC_WM8990=m
+CONFIG_SND_SOC_WM8991=m
 CONFIG_SND_SOC_WM8993=m
+CONFIG_SND_SOC_WM8995=m
+CONFIG_SND_SOC_WM8996=m
 CONFIG_SND_SOC_WM9081=m
+CONFIG_SND_SOC_LM4857=m
 CONFIG_SND_SOC_MAX9877=m
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_WM2000=m
+CONFIG_SND_SOC_WM9090=m
 # CONFIG_SOUND_PRIME is not set
 CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
@@ -2592,29 +3236,59 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+# CONFIG_HID_PRODIKEYS is not set
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
 CONFIG_DRAGONRISE_FF=y
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+# CONFIG_HID_HOLTEK is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+# CONFIG_LOGIG940_FF is not set
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
 CONFIG_GREENASIA_FF=y
@@ -2624,13 +3298,18 @@ CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
 CONFIG_THRUSTMASTER_FF=y
 CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
 CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2642,6 +3321,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -2653,31 +3334,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 # CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SL811_HCD_ISO=y
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-# CONFIG_USB_MUSB_HDRC is not set
-
 #
 # USB Device Class drivers
 #
@@ -2695,6 +3371,8 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
 # CONFIG_USB_STORAGE_DATAFAB is not set
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
@@ -2706,6 +3384,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -2746,11 +3426,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -2762,9 +3444,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+# CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set
+CONFIG_USB_SERIAL_ZIO=m
+# CONFIG_USB_SERIAL_SSU100 is not set
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -2777,7 +3463,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -2791,7 +3476,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -2804,21 +3489,22 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_USB_OTG_UTILS=y
 CONFIG_USB_GPIO_VBUS=m
+# CONFIG_USB_ULPI is not set
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -2828,15 +3514,16 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_MVSDIO=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -2851,39 +3538,47 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+# CONFIG_MEMSTICK_R592 is not set
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
 CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_NS2=y
+CONFIG_LEDS_NETXBIG=y
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
 
 #
 # iptables trigger is under Netfilter config (LED target)
 #
-CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -2892,26 +3587,31 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
 #
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_88PM860X=m
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+# CONFIG_RTC_DRV_BQ32K is not set
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
 
 #
 # SPI RTC drivers
@@ -2920,104 +3620,115 @@ CONFIG_RTC_DRV_RX8025=m
 #
 # Platform RTC drivers
 #
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+# CONFIG_RTC_DRV_BQ4802 is not set
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_PCF50633 is not set
 
 #
 # on-CPU RTC drivers
 #
-CONFIG_RTC_DRV_MV=m
+CONFIG_RTC_DRV_MV=y
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
 CONFIG_MV_XOR=y
+# CONFIG_TIMB_DMA is not set
 CONFIG_DMA_ENGINE=y
 
 #
 # DMA Clients
 #
 # CONFIG_NET_DMA is not set
-# CONFIG_ASYNC_TX_DMA is not set
+CONFIG_ASYNC_TX_DMA=y
 CONFIG_DMATEST=m
 # CONFIG_AUXDISPLAY is not set
 CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+# CONFIG_UIO_NETX is not set
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+# CONFIG_VIRTIO_PCI is not set
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+# CONFIG_R8187SE is not set
+# CONFIG_RTL8192U is not set
 # CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
+# CONFIG_DRM_NOUVEAU is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
 # CONFIG_VME_BUS is not set
+# CONFIG_DX_SEP is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
 
 #
-# RAR Register Driver
+# Speakup console speech
 #
-# CONFIG_RAR_REGISTER is not set
-# CONFIG_IIO is not set
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_STAGING_MEDIA is not set
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_MMIO=y
+CONFIG_IOMMU_SUPPORT=y
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
 
 #
 # File systems
@@ -3040,8 +3751,6 @@ CONFIG_EXT4_FS_SECURITY=y
 CONFIG_JBD=m
 CONFIG_JBD2=m
 CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3053,7 +3762,6 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
@@ -3063,19 +3771,21 @@ CONFIG_XFS_POSIX_ACL=y
 # CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+CONFIG_QUOTA_DEBUG=y
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3120,8 +3830,9 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
+CONFIG_CONFIGFS_FS=m
 CONFIG_MISC_FILESYSTEMS=y
 # CONFIG_ADFS_FS is not set
 # CONFIG_AFFS_FS is not set
@@ -3147,6 +3858,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3155,8 +3867,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
@@ -3164,6 +3879,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3171,15 +3889,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3189,7 +3904,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+CONFIG_CIFS_FSCACHE=y
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3204,7 +3920,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3262,6 +3978,7 @@ CONFIG_NLS_UTF8=y
 # Kernel hacking
 #
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3270,12 +3987,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3291,9 +4009,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3302,41 +4022,54 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
 # CONFIG_ARM_UNWIND is not set
 # CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_ERRORS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_LL is not set
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_UART_NONE=y
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_EARLY_PRINTK=y
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3348,7 +4081,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3359,9 +4091,12 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
 CONFIG_CRYPTO_WORKQUEUE=y
@@ -3399,7 +4134,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3419,6 +4154,7 @@ CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3443,8 +4179,11 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_MV_CESA is not set
+CONFIG_CRYPTO_DEV_MV_CESA=m
 CONFIG_CRYPTO_DEV_HIFN_795X=m
 CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 # CONFIG_BINARY_PRINTF is not set
@@ -3452,8 +4191,8 @@ CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=m
@@ -3461,14 +4200,26 @@ CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3478,3 +4229,6 @@ CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
 CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
similarity index 59%
rename from config/kernel/kernel.config.armv5tel-ipfire-versatile
rename to config/kernel/kernel.config.armv5tel-ipfire-omap
index 6bdf4c5d3d199373d06ff46385f01687bb7a552e..d62343109e7c1624f428d2450a108d89da4d3c87 100644 (file)
@@ -1,36 +1,49 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.45
-# Sat Oct 15 16:59:52 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.28-ipfire-omap Kernel Configuration
 #
 CONFIG_ARM=y
+CONFIG_HAVE_PWM=y
 CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
 CONFIG_GENERIC_GPIO=y
-CONFIG_GENERIC_TIME=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
 CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
 CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_LOCKDEP_SUPPORT=y
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 CONFIG_HARDIRQS_SW_RESEND=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
 CONFIG_GENERIC_HWEIGHT=y
 CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_NEED_DMA_MAP_STATE=y
 CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_GENERIC_BUG=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
 
 #
 # General setup
 #
 CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -38,44 +51,59 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
 # CONFIG_TASKSTATS is not set
 CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
 CONFIG_RCU_FANOUT=32
 # CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=19
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+CONFIG_EXPERT=y
 CONFIG_UID16=y
 CONFIG_SYSCTL_SYSCALL=y
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
@@ -88,12 +116,16 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
 
 #
 # Kernel Performance Events And Counters
 #
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
 CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
@@ -104,12 +136,14 @@ CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -120,138 +154,267 @@ CONFIG_MODULE_UNLOAD=y
 CONFIG_MODULE_FORCE_UNLOAD=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
 # System Type
 #
 CONFIG_MMU=y
-# CONFIG_ARCH_AAEC2000 is not set
 # CONFIG_ARCH_INTEGRATOR is not set
 # CONFIG_ARCH_REALVIEW is not set
-CONFIG_ARCH_VERSATILE=y
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
 # CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
 # CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
 # CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
 # CONFIG_ARCH_EBSA110 is not set
 # CONFIG_ARCH_EP93XX is not set
 # CONFIG_ARCH_FOOTBRIDGE is not set
 # CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_MXS is not set
 # CONFIG_ARCH_NETX is not set
 # CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_IOP13XX is not set
 # CONFIG_ARCH_IOP32X is not set
 # CONFIG_ARCH_IOP33X is not set
 # CONFIG_ARCH_IXP23XX is not set
 # CONFIG_ARCH_IXP2000 is not set
 # CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_DOVE is not set
 # CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_LPC32XX is not set
 # CONFIG_ARCH_MV78XX0 is not set
 # CONFIG_ARCH_ORION5X is not set
 # CONFIG_ARCH_MMP is not set
 # CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_NS9XXX is not set
 # CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
 # CONFIG_ARCH_PNX4008 is not set
 # CONFIG_ARCH_PXA is not set
 # CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
 # CONFIG_ARCH_RPC is not set
 # CONFIG_ARCH_SA1100 is not set
 # CONFIG_ARCH_S3C2410 is not set
 # CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5PC1XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
 # CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_TCC_926 is not set
 # CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
 # CONFIG_ARCH_DAVINCI is not set
-# CONFIG_ARCH_OMAP is not set
-# CONFIG_ARCH_BCMRING is not set
-
-#
-# Versatile platform type
+CONFIG_ARCH_OMAP=y
+# CONFIG_PLAT_SPEAR is not set
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+# CONFIG_GPIO_PCA953X is not set
+# CONFIG_KEYBOARD_GPIO_POLLED is not set
+
+#
+# TI OMAP Common Features
+#
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_OMAP1 is not set
+CONFIG_ARCH_OMAP2PLUS=y
+
+#
+# OMAP Feature Selections
+#
+CONFIG_OMAP_DEBUG_DEVICES=y
+CONFIG_OMAP_DEBUG_LEDS=y
+# CONFIG_OMAP_SMARTREFLEX is not set
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_MCBSP=y
+# CONFIG_OMAP_MBOX_FWK is not set
+CONFIG_OMAP_32K_TIMER=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_MACH_OMAP_GENERIC=y
+
+#
+# TI OMAP2/3/4 Specific Features
+#
+CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
+CONFIG_ARCH_OMAP2=y
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP4=y
+
+#
+# OMAP Core Type
+#
+CONFIG_SOC_OMAP2420=y
+CONFIG_SOC_OMAP2430=y
+CONFIG_SOC_OMAP3430=y
+CONFIG_SOC_OMAPTI816X=y
+CONFIG_OMAP_PACKAGE_ZAF=y
+CONFIG_OMAP_PACKAGE_ZAC=y
+CONFIG_OMAP_PACKAGE_CBB=y
+CONFIG_OMAP_PACKAGE_CUS=y
+CONFIG_OMAP_PACKAGE_CBP=y
+CONFIG_OMAP_PACKAGE_CBL=y
+CONFIG_OMAP_PACKAGE_CBS=y
+
+#
+# OMAP Board Type
+#
+CONFIG_MACH_OMAP_H4=y
+CONFIG_MACH_OMAP_APOLLON=y
+CONFIG_MACH_OMAP_2430SDP=y
+CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_DEVKIT8000=y
+CONFIG_MACH_OMAP_LDP=y
+CONFIG_MACH_OMAP3530_LV_SOM=y
+CONFIG_MACH_OMAP3_TORPEDO=y
+CONFIG_MACH_OVERO=y
+CONFIG_MACH_OMAP3EVM=y
+CONFIG_MACH_OMAP3517EVM=y
+# CONFIG_MACH_CRANEBOARD is not set
+CONFIG_MACH_OMAP3_PANDORA=y
+CONFIG_MACH_OMAP3_TOUCHBOOK=y
+CONFIG_MACH_OMAP_3430SDP=y
+# CONFIG_MACH_NOKIA_N8X0 is not set
+CONFIG_MACH_NOKIA_RM680=y
+CONFIG_MACH_NOKIA_RX51=y
+CONFIG_MACH_OMAP_ZOOM2=y
+CONFIG_MACH_OMAP_ZOOM3=y
+CONFIG_MACH_CM_T35=y
+CONFIG_MACH_CM_T3517=y
+CONFIG_MACH_CM_T3730=y
+CONFIG_MACH_IGEP0020=y
+CONFIG_MACH_IGEP0030=y
+CONFIG_MACH_SBC3530=y
+CONFIG_MACH_OMAP_3630SDP=y
+CONFIG_MACH_TI8168EVM=y
+CONFIG_MACH_OMAP_4430SDP=y
+CONFIG_MACH_OMAP4_PANDA=y
+# CONFIG_OMAP3_EMU is not set
+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+
+#
+# System MMU
 #
-CONFIG_ARCH_VERSATILE_PB=y
-CONFIG_MACH_VERSATILE_AB=y
 
 #
 # Processor Type
 #
-CONFIG_CPU_32=y
-CONFIG_CPU_ARM926T=y
-CONFIG_CPU_32v5=y
-CONFIG_CPU_ABRT_EV5TJ=y
-CONFIG_CPU_PABRT_LEGACY=y
-CONFIG_CPU_CACHE_VIVT=y
-CONFIG_CPU_COPY_V4WB=y
-CONFIG_CPU_TLB_V4WBI=y
+CONFIG_CPU_V6=y
+CONFIG_CPU_V7=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_PABRT_V6=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_HAS_ASID=y
 CONFIG_CPU_CP15=y
 CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
 
 #
 # Processor Features
 #
 CONFIG_ARM_THUMB=y
+CONFIG_ARM_THUMBEE=y
 # CONFIG_CPU_ICACHE_DISABLE is not set
 # CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_WRITETHROUGH is not set
-# CONFIG_CPU_CACHE_ROUND_ROBIN is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_CACHE_L2X0=y
 CONFIG_ARM_L1_CACHE_SHIFT=5
-CONFIG_ARM_VIC=y
-CONFIG_ARM_VIC_NR=2
-CONFIG_ICST307=y
-CONFIG_COMMON_CLKDEV=y
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+# CONFIG_ARM_ERRATA_326103 is not set
+CONFIG_ARM_ERRATA_411920=y
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_ERRATA_458693=y
+CONFIG_ARM_ERRATA_460075=y
+# CONFIG_ARM_ERRATA_742230 is not set
+CONFIG_ARM_ERRATA_742231=y
+CONFIG_PL310_ERRATA_588369=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_PL310_ERRATA_727915=y
+CONFIG_ARM_ERRATA_743622=y
+# CONFIG_ARM_ERRATA_751472 is not set
+CONFIG_ARM_ERRATA_754322=y
+CONFIG_ARM_ERRATA_754327=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_PL310_ERRATA_769419=y
+CONFIG_ARM_GIC=y
 
 #
 # Bus support
 #
-CONFIG_ARM_AMBA=y
-CONFIG_PCI=y
-CONFIG_PCI_SYSCALL=y
+# CONFIG_PCI_SYSCALL is not set
 # CONFIG_ARCH_SUPPORTS_MSI is not set
-CONFIG_PCI_LEGACY=y
-# CONFIG_PCI_DEBUG is not set
-CONFIG_PCI_STUB=m
-CONFIG_PCI_IOV=y
-CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
-CONFIG_PCMCIA=m
-CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
-CONFIG_CARDBUS=y
-
-#
-# PC-card bridges
-#
-CONFIG_YENTA=m
-CONFIG_YENTA_O2=y
-CONFIG_YENTA_RICOH=y
-CONFIG_YENTA_TI=y
-CONFIG_YENTA_ENE_TUNE=y
-CONFIG_YENTA_TOSHIBA=y
-CONFIG_PD6729=m
-CONFIG_I82092=m
-CONFIG_PCCARD_NONSTATIC=m
+# CONFIG_PCCARD is not set
 
 #
 # Kernel Features
@@ -260,52 +423,76 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_ARM_CPU_TOPOLOGY=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_SMT=y
+CONFIG_HAVE_ARM_SCU=y
+CONFIG_HAVE_ARM_TWD=y
 CONFIG_VMSPLIT_3G=y
 # CONFIG_VMSPLIT_2G is not set
 # CONFIG_VMSPLIT_1G is not set
 CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_NR_CPUS=8
+CONFIG_HOTPLUG_CPU=y
+CONFIG_LOCAL_TIMERS=y
 CONFIG_PREEMPT_NONE=y
 # CONFIG_PREEMPT_VOLUNTARY is not set
 # CONFIG_PREEMPT is not set
-CONFIG_HZ=100
+CONFIG_HZ=128
 CONFIG_AEABI=y
 # CONFIG_OABI_COMPAT is not set
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
 # CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
 # CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
 CONFIG_HIGHMEM=y
-# CONFIG_HIGHPTE is not set
+CONFIG_HIGHPTE=y
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
-# CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4096
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=0
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
 # CONFIG_LEDS is not set
 CONFIG_ALIGNMENT_TRAP=y
 CONFIG_UACCESS_WITH_MEMCPY=y
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
 
 #
 # Boot options
 #
+CONFIG_USE_OF=y
 CONFIG_ZBOOT_ROM_TEXT=0x0
 CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_ARM_APPENDED_DTB is not set
 CONFIG_CMDLINE=""
 # CONFIG_XIP_KERNEL is not set
 # CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
 
 #
 # CPU Power Management
 #
+
+#
+# CPU Frequency scaling
+#
+# CONFIG_CPU_FREQ is not set
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
@@ -317,7 +504,9 @@ CONFIG_CPU_IDLE_GOV_MENU=y
 #
 # At least one emulation must be selected
 #
-# CONFIG_VFP is not set
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_NEON=y
 
 #
 # Userspace binary formats
@@ -331,21 +520,26 @@ CONFIG_HAVE_AOUT=y
 #
 # Power management options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
-# CONFIG_APM_EMULATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_HAS_OPP=y
+CONFIG_PM_OPP=y
+CONFIG_PM_CLK=y
+CONFIG_CPU_PM=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -358,17 +552,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -397,11 +592,6 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
@@ -420,12 +610,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -438,9 +630,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -449,7 +642,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -457,10 +652,25 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -468,28 +678,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -498,7 +718,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -509,7 +728,19 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -520,8 +751,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -540,6 +773,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+CONFIG_IP_VS_NFCT=y
 
 #
 # IP: Netfilter Configuration
@@ -549,7 +783,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -587,6 +820,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -636,9 +870,14 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -661,6 +900,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -673,6 +913,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -680,6 +921,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -689,7 +933,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -714,9 +957,16 @@ CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
 # CONFIG_NET_ACT_SIMP is not set
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
 
 #
 # Network testing
@@ -763,19 +1013,10 @@ CONFIG_KS959_DONGLE=m
 #
 CONFIG_USB_IRDA=m
 CONFIG_SIGMATEL_FIR=m
-# CONFIG_TOSHIBA_FIR is not set
-CONFIG_VLSI_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_CMTP=m
-CONFIG_BT_HIDP=m
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
 
 #
 # Bluetooth device drivers
@@ -785,30 +1026,33 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
 CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIDTL1=m
-CONFIG_BT_HCIBT3C=m
-CONFIG_BT_HCIBLUECARD=m
-CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -817,10 +1061,11 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 # CONFIG_LIB80211_DEBUG is not set
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_RC_PID is not set
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -828,7 +1073,16 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
+CONFIG_RFKILL_GPIO=m
 # CONFIG_NET_9P is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -847,14 +1101,14 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 # CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
 CONFIG_MTD_AR7_PARTS=m
 
 #
@@ -869,7 +1123,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+CONFIG_MTD_SWAP=m
 
 #
 # RAM/ROM/Flash chip drivers
@@ -896,13 +1152,11 @@ CONFIG_MTD_CFI_I2=y
 # CONFIG_MTD_COMPLEX_MAPPINGS is not set
 CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_INTEL_VR_NOR is not set
 # CONFIG_MTD_PLATRAM is not set
 
 #
 # Self-contained MTD device drivers
 #
-# CONFIG_MTD_PMC551 is not set
 # CONFIG_MTD_SLRAM is not set
 # CONFIG_MTD_PHRAM is not set
 # CONFIG_MTD_MTDRAM is not set
@@ -914,6 +1168,9 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 # CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -922,19 +1179,27 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_NET=y
+CONFIG_OF_MDIO=y
 CONFIG_PARPORT=m
 # CONFIG_PARPORT_PC is not set
 # CONFIG_PARPORT_GSC is not set
@@ -942,15 +1207,12 @@ CONFIG_PARPORT_AX88796=m
 CONFIG_PARPORT_1284=y
 CONFIG_PARPORT_NOT_PC=y
 CONFIG_BLK_DEV=y
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
 # CONFIG_BLK_DEV_UB is not set
 CONFIG_BLK_DEV_RAM=y
 CONFIG_BLK_DEV_RAM_COUNT=8
@@ -960,15 +1222,24 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_MG_DISK=m
 CONFIG_MG_DISK_RES=0
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
 CONFIG_MISC_DEVICES=y
-# CONFIG_PHANTOM is not set
-# CONFIG_SGI_IOC4 is not set
-CONFIG_TIFM_CORE=m
-CONFIG_TIFM_7XX1=m
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ATMEL_PWM is not set
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
-CONFIG_HP_ILO=m
+# CONFIG_APDS9802ALS is not set
 CONFIG_ISL29003=m
+# CONFIG_ISL29020 is not set
+CONFIG_SENSORS_TSL2550=m
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+CONFIG_DS1682=m
+# CONFIG_BMP085 is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
 CONFIG_C2PORT=m
 
 #
@@ -978,16 +1249,26 @@ CONFIG_EEPROM_AT24=m
 CONFIG_EEPROM_LEGACY=m
 CONFIG_EEPROM_MAX6875=m
 CONFIG_EEPROM_93CX6=m
-CONFIG_CB710_CORE=m
-# CONFIG_CB710_DEBUG is not set
-CONFIG_CB710_DEBUG_ASSUMPTIONS=y
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1021,82 +1302,13 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
-CONFIG_SCSI_CXGB3_ISCSI=m
-CONFIG_SCSI_BNX2_ISCSI=m
-CONFIG_BE2ISCSI=m
-CONFIG_BLK_DEV_3W_XXXX_RAID=m
-CONFIG_SCSI_3W_9XXX=m
-# CONFIG_SCSI_ACARD is not set
-CONFIG_SCSI_AACRAID=m
-CONFIG_SCSI_AIC7XXX=m
-CONFIG_AIC7XXX_CMDS_PER_DEVICE=253
-CONFIG_AIC7XXX_RESET_DELAY_MS=15000
-# CONFIG_AIC7XXX_BUILD_FIRMWARE is not set
-# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
-CONFIG_AIC7XXX_DEBUG_MASK=0
-# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
-# CONFIG_SCSI_AIC7XXX_OLD is not set
-CONFIG_SCSI_AIC79XX=m
-CONFIG_AIC79XX_CMDS_PER_DEVICE=32
-CONFIG_AIC79XX_RESET_DELAY_MS=15000
-# CONFIG_AIC79XX_BUILD_FIRMWARE is not set
-# CONFIG_AIC79XX_DEBUG_ENABLE is not set
-CONFIG_AIC79XX_DEBUG_MASK=0
-# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
-CONFIG_SCSI_AIC94XX=m
-# CONFIG_AIC94XX_DEBUG is not set
-CONFIG_SCSI_MVSAS=m
-CONFIG_SCSI_MVSAS_DEBUG=y
-CONFIG_SCSI_DPT_I2O=m
-# CONFIG_SCSI_ADVANSYS is not set
-CONFIG_SCSI_ARCMSR=m
-CONFIG_MEGARAID_NEWGEN=y
-CONFIG_MEGARAID_MM=m
-CONFIG_MEGARAID_MAILBOX=m
-CONFIG_MEGARAID_LEGACY=m
-CONFIG_MEGARAID_SAS=m
-CONFIG_SCSI_MPT2SAS=m
-CONFIG_SCSI_MPT2SAS_MAX_SGE=128
-# CONFIG_SCSI_MPT2SAS_LOGGING is not set
-CONFIG_SCSI_HPTIOP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
-CONFIG_FCOE=m
-CONFIG_SCSI_DMX3191D=m
-CONFIG_SCSI_FUTURE_DOMAIN=m
-CONFIG_SCSI_IPS=m
-CONFIG_SCSI_INITIO=m
-CONFIG_SCSI_INIA100=m
-CONFIG_SCSI_STEX=m
-CONFIG_SCSI_SYM53C8XX_2=m
-CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
-CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
-CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
-CONFIG_SCSI_SYM53C8XX_MMIO=y
-CONFIG_SCSI_IPR=m
-CONFIG_SCSI_IPR_TRACE=y
-CONFIG_SCSI_IPR_DUMP=y
-CONFIG_SCSI_QLOGIC_1280=m
-CONFIG_SCSI_QLA_FC=m
-CONFIG_SCSI_QLA_ISCSI=m
-CONFIG_SCSI_LPFC=m
-CONFIG_SCSI_DC395x=m
-CONFIG_SCSI_DC390T=m
-# CONFIG_SCSI_NSP32 is not set
 # CONFIG_SCSI_DEBUG is not set
-CONFIG_SCSI_PMCRAID=m
-# CONFIG_SCSI_SRP is not set
-CONFIG_SCSI_BFA_FC=m
-CONFIG_SCSI_LOWLEVEL_PCMCIA=y
-CONFIG_PCMCIA_AHA152X=m
-CONFIG_PCMCIA_FDOMAIN=m
-CONFIG_PCMCIA_NINJA_SCSI=m
-CONFIG_PCMCIA_QLOGIC=m
-CONFIG_PCMCIA_SYM53C500=m
 CONFIG_SCSI_DH=m
 CONFIG_SCSI_DH_RDAC=m
 CONFIG_SCSI_DH_HP_SW=m
@@ -1107,66 +1319,37 @@ CONFIG_ATA=m
 # CONFIG_ATA_NONSTANDARD is not set
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_SATA_PMP=y
-CONFIG_SATA_AHCI=m
-CONFIG_SATA_SIL24=m
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI_PLATFORM=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
-CONFIG_ATA_PIIX=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_SATA_MV=m
-CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
-CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
-CONFIG_SATA_SIL=m
-CONFIG_SATA_SIS=m
-CONFIG_SATA_ULI=m
-CONFIG_SATA_VIA=m
-CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ALI=m
-CONFIG_PATA_AMD=m
-CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
-CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
-CONFIG_PATA_CMD64X=m
-CONFIG_PATA_CS5520=m
-CONFIG_PATA_CS5530=m
-CONFIG_PATA_CYPRESS=m
-CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
-CONFIG_PATA_HPT366=m
-CONFIG_PATA_HPT37X=m
-CONFIG_PATA_HPT3X2N=m
-CONFIG_PATA_HPT3X3=m
-CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_IT821X=m
-CONFIG_PATA_IT8213=m
-CONFIG_PATA_JMICRON=m
-CONFIG_PATA_TRIFLEX=m
-CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
-CONFIG_PATA_NETCELL=m
-CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
-CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
-CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_RADISYS=m
-CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
-CONFIG_PATA_SC1200=m
-CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
-CONFIG_PATA_SIL680=m
-CONFIG_PATA_SIS=m
-CONFIG_PATA_VIA=m
-CONFIG_PATA_WINBOND=m
-CONFIG_PATA_SCH=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+CONFIG_PATA_ARASAN_CF=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_OF_PLATFORM=m
+
+#
+# Generic fallback / legacy drivers
+#
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1174,15 +1357,20 @@ CONFIG_MD_RAID0=m
 CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_MULTICORE_RAID456 is not set
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1190,37 +1378,12 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_MAX_SGE=128
-CONFIG_FUSION_CTL=m
-# CONFIG_FUSION_LOGGING is not set
-
-#
-# IEEE 1394 (FireWire) support
-#
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
-CONFIG_FIREWIRE=m
-CONFIG_FIREWIRE_OHCI=m
-CONFIG_FIREWIRE_OHCI_DEBUG=y
-CONFIG_FIREWIRE_SBP2=m
-CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
-# CONFIG_I2O is not set
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1228,9 +1391,68 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-# CONFIG_ARCNET is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+
+#
+# CAIF transport drivers
+#
+CONFIG_CAIF_TTY=m
+CONFIG_CAIF_SPI_SLAVE=m
+# CONFIG_CAIF_SPI_SYNC is not set
+CONFIG_CAIF_HSI=m
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_AX88796=m
+# CONFIG_AX88796_93CX6 is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_TI=y
+# CONFIG_TI_DAVINCI_EMAC is not set
+# CONFIG_TI_DAVINCI_MDIO is not set
+# CONFIG_TI_DAVINCI_CPDMA is not set
 CONFIG_PHYLIB=y
 
 #
@@ -1249,173 +1471,28 @@ CONFIG_REALTEK_PHY=m
 CONFIG_NATIONAL_PHY=m
 CONFIG_STE10XP=m
 CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
 # CONFIG_FIXED_PHY is not set
 CONFIG_MDIO_BITBANG=m
 CONFIG_MDIO_GPIO=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_AX88796=m
-# CONFIG_AX88796_93CX6 is not set
-CONFIG_HAPPYMEAL=m
-# CONFIG_SUNGEM is not set
-CONFIG_CASSINI=m
-CONFIG_NET_VENDOR_3COM=y
-CONFIG_VORTEX=m
-CONFIG_TYPHOON=m
-CONFIG_SMC91X=m
-CONFIG_DM9000=m
-CONFIG_DM9000_DEBUGLEVEL=4
-# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
-CONFIG_ETHOC=m
-CONFIG_SMC911X=m
-CONFIG_SMSC911X=m
-CONFIG_DNET=m
-CONFIG_NET_TULIP=y
-CONFIG_DE2104X=m
-CONFIG_DE2104X_DSL=0
-CONFIG_TULIP=m
-# CONFIG_TULIP_MWI is not set
-# CONFIG_TULIP_MMIO is not set
-# CONFIG_TULIP_NAPI is not set
-CONFIG_DE4X5=m
-CONFIG_WINBOND_840=m
-CONFIG_DM9102=m
-CONFIG_ULI526X=m
-CONFIG_PCMCIA_XIRCOM=m
-CONFIG_HP100=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
-CONFIG_B44=m
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_E100=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
-CONFIG_NE2K_PCI=m
-CONFIG_8139CP=m
-CONFIG_8139TOO=m
-# CONFIG_8139TOO_PIO is not set
-CONFIG_8139TOO_TUNE_TWISTER=y
-CONFIG_8139TOO_8129=y
-# CONFIG_8139_OLD_RX_RESET is not set
-CONFIG_R6040=m
-CONFIG_SIS900=m
-CONFIG_EPIC100=m
-CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
-CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
-CONFIG_VIA_RHINE=m
-CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
-CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
 
 #
 # USB Network Adapters
@@ -1428,7 +1505,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1443,19 +1522,107 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_AHB is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_CARL9170_HWRNG=y
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_IWM=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_DEBUG is not set
+# CONFIG_LIBERTAS_MESH is not set
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RTL8192CU=m
+CONFIG_RTLWIFI=m
+CONFIG_RTL8192C_COMMON=m
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_SDIO=m
+# CONFIG_WL12XX_SDIO_TEST is not set
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
-CONFIG_LANMEDIA=m
 CONFIG_HDLC=m
 CONFIG_HDLC_RAW=m
 CONFIG_HDLC_RAW_ETH=m
@@ -1466,97 +1633,10 @@ CONFIG_HDLC_PPP=m
 #
 # X.25/LAPB support is disabled
 #
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
 CONFIG_DLCI=m
 CONFIG_DLCI_MAX=8
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-# CONFIG_ATM_HE is not set
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1568,7 +1648,6 @@ CONFIG_ISDN_TTY_FAX=y
 #
 # ISDN feature submodules
 #
-# CONFIG_ISDN_DRV_LOOP is not set
 CONFIG_ISDN_DIVERSION=m
 
 #
@@ -1596,32 +1675,20 @@ CONFIG_HISAX_MAX_CARDS=8
 # HiSax supported cards
 #
 CONFIG_HISAX_16_3=y
-CONFIG_HISAX_TELESPCI=y
 CONFIG_HISAX_S0BOX=y
 CONFIG_HISAX_FRITZPCI=y
 CONFIG_HISAX_AVM_A1_PCMCIA=y
 CONFIG_HISAX_ELSA=y
 CONFIG_HISAX_DIEHLDIVA=y
 CONFIG_HISAX_SEDLBAUER=y
-CONFIG_HISAX_NETJET=y
-CONFIG_HISAX_NETJET_U=y
 CONFIG_HISAX_NICCY=y
-CONFIG_HISAX_BKM_A4T=y
-CONFIG_HISAX_SCT_QUADRO=y
 CONFIG_HISAX_GAZEL=y
-CONFIG_HISAX_HFC_PCI=y
-CONFIG_HISAX_W6692=y
 CONFIG_HISAX_HFC_SX=y
-CONFIG_HISAX_ENTERNOW_PCI=y
 CONFIG_HISAX_DEBUG=y
 
 #
 # HiSax PCMCIA card service modules
 #
-CONFIG_HISAX_SEDLBAUER_CS=m
-CONFIG_HISAX_ELSA_CS=m
-CONFIG_HISAX_AVM_A1_CS=m
-CONFIG_HISAX_TELES_CS=m
 
 #
 # HiSax sub driver modules
@@ -1629,45 +1696,39 @@ CONFIG_HISAX_TELES_CS=m
 CONFIG_HISAX_ST5481=m
 CONFIG_HISAX_HFCUSB=m
 CONFIG_HISAX_HFC4S8S=m
-CONFIG_HISAX_FRITZ_PCIPNP=m
 
 #
 # Active cards
 #
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
 # CAPI hardware drivers
 #
 CONFIG_CAPI_AVM=y
-CONFIG_ISDN_DRV_AVMB1_B1PCI=m
-CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
-CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
-CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
-CONFIG_ISDN_DRV_AVMB1_T1PCI=m
-CONFIG_ISDN_DRV_AVMB1_C4=m
 CONFIG_CAPI_EICON=y
-CONFIG_ISDN_DIVAS=m
-CONFIG_ISDN_DIVAS_BRIPCI=y
-CONFIG_ISDN_DIVAS_PRIPCI=y
-CONFIG_ISDN_DIVAS_DIVACAPI=m
-CONFIG_ISDN_DIVAS_USERIDI=m
-CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+# CONFIG_GIGASET_CAPI is not set
+CONFIG_GIGASET_I4L=y
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCUSB=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -1676,6 +1737,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -1693,33 +1755,51 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
 CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_TCA6416=m
 CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
 CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_OMAP=m
+CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_TWL4030=m
 CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_MOUSE is not set
 # CONFIG_INPUT_JOYSTICK is not set
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
-CONFIG_INPUT_ATI_REMOTE=m
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_TWL6040_VIBRA=m
 # CONFIG_INPUT_UINPUT is not set
 CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PWM_BEEPER=m
 CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_WM831X_ON=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
 
 #
 # Hardware I/O ports
@@ -1727,10 +1807,10 @@ CONFIG_INPUT_WM831X_ON=m
 CONFIG_SERIO=y
 CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PARKBD is not set
-CONFIG_SERIO_AMBAKMI=y
-# CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -1739,19 +1819,23 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+CONFIG_TRACE_ROUTER=m
+CONFIG_TRACE_SINK=m
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
 #
 CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_PCI=y
-CONFIG_SERIAL_8250_CS=m
 CONFIG_SERIAL_8250_NR_UARTS=4
 CONFIG_SERIAL_8250_RUNTIME_UARTS=4
 CONFIG_SERIAL_8250_EXTENDED=y
@@ -1759,21 +1843,27 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
 CONFIG_SERIAL_8250_SHARE_IRQ=y
 CONFIG_SERIAL_8250_DETECT_IRQ=y
 CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_DW=m
 
 #
 # Non-8250 serial port support
 #
-CONFIG_SERIAL_AMBA_PL011=y
-CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIAL_OMAP=y
+CONFIG_SERIAL_OMAP_CONSOLE=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_XILINX_PS_UART=m
+# CONFIG_TTY_PRINTK is not set
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
+# CONFIG_HVC_DCC is not set
 CONFIG_IPMI_HANDLER=m
 CONFIG_IPMI_PANIC_EVENT=y
 # CONFIG_IPMI_PANIC_STRING is not set
@@ -1783,25 +1873,25 @@ CONFIG_IPMI_WATCHDOG=m
 CONFIG_IPMI_POWEROFF=m
 CONFIG_HW_RANDOM=m
 CONFIG_HW_RANDOM_TIMERIOMEM=m
-CONFIG_NVRAM=m
+CONFIG_HW_RANDOM_OMAP=m
 # CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# PCMCIA character devices
-#
-CONFIG_SYNCLINK_CS=m
-# CONFIG_CARDMAN_4000 is not set
-# CONFIG_CARDMAN_4040 is not set
-CONFIG_IPWIRELESS=m
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_TCG_TPM is not set
-CONFIG_DEVPORT=y
-CONFIG_I2C=m
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=y
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -1809,61 +1899,34 @@ CONFIG_I2C_ALGOPCA=m
 # I2C Hardware Bus support
 #
 
-#
-# PC SMBus host controller drivers
-#
-CONFIG_I2C_ALI1535=m
-CONFIG_I2C_ALI1563=m
-CONFIG_I2C_ALI15X3=m
-CONFIG_I2C_AMD756=m
-CONFIG_I2C_AMD8111=m
-CONFIG_I2C_I801=m
-CONFIG_I2C_ISCH=m
-CONFIG_I2C_PIIX4=m
-CONFIG_I2C_NFORCE2=m
-CONFIG_I2C_SIS5595=m
-CONFIG_I2C_SIS630=m
-CONFIG_I2C_SIS96X=m
-CONFIG_I2C_VIA=m
-CONFIG_I2C_VIAPRO=m
-
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
-CONFIG_I2C_DESIGNWARE=m
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
 CONFIG_I2C_GPIO=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_OMAP=y
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
-CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_XILINX=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
 # CONFIG_I2C_TAOS_EVM is not set
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -1871,69 +1934,106 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
-CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+
+#
+# PPS clients support
+#
+CONFIG_PPS_CLIENT_KTIMER=m
+CONFIG_PPS_CLIENT_LDISC=m
+CONFIG_PPS_CLIENT_PARPORT=m
+CONFIG_PPS_CLIENT_GPIO=m
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
 CONFIG_GPIOLIB=y
 # CONFIG_DEBUG_GPIO is not set
 # CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
 
 #
-# Memory mapped GPIO expanders:
+# Memory mapped GPIO drivers:
 #
-# CONFIG_GPIO_PL061 is not set
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
 
 #
 # I2C GPIO expanders:
 #
+CONFIG_GPIO_MAX7300=m
 CONFIG_GPIO_MAX732X=m
-CONFIG_GPIO_PCA953X=m
 CONFIG_GPIO_PCF857X=m
-CONFIG_GPIO_WM831X=m
+# CONFIG_GPIO_SX150X is not set
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_ADP5588=m
 
 #
 # PCI GPIO expanders:
 #
-# CONFIG_GPIO_BT8XX is not set
-# CONFIG_GPIO_LANGWELL is not set
 
 #
 # SPI GPIO expanders:
 #
+CONFIG_GPIO_MCP23S08=m
 
 #
 # AC97 GPIO expanders:
 #
+
+#
+# MODULbus GPIO expanders:
+#
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
 #
 # 1-wire Bus Masters
 #
-CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
 CONFIG_W1_MASTER_DS1WM=m
 CONFIG_W1_MASTER_GPIO=m
+CONFIG_HDQ_MASTER_OMAP=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
 CONFIG_BATTERY_DS2782=m
+# CONFIG_BATTERY_BQ20Z75 is not set
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
 CONFIG_BATTERY_MAX17040=m
+# CONFIG_BATTERY_MAX17042 is not set
 CONFIG_CHARGER_PCF50633=m
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+CONFIG_CHARGER_TWL4030=m
+CONFIG_CHARGER_GPIO=m
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -1949,23 +2049,28 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ADT7411 is not set
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+# CONFIG_SENSORS_ASC7621 is not set
 CONFIG_SENSORS_ATXP1=m
+# CONFIG_SENSORS_DS620 is not set
 CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
 CONFIG_SENSORS_F71882FG=m
 CONFIG_SENSORS_F75375S=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -1976,54 +2081,79 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
 CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_TWL4030_MADC=m
 CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_VT8231=m
 CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
-CONFIG_ALIM7101_WDT=m
-
-#
-# PCI-based Watchdog Cards
-#
-CONFIG_PCIPCWATCHDOG=m
-CONFIG_WDTPCI=m
+# CONFIG_DW_WATCHDOG is not set
+CONFIG_MPCORE_WATCHDOG=m
+CONFIG_OMAP_WATCHDOG=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_MAX63XX_WATCHDOG=m
 
 #
 # USB-based Watchdog Cards
@@ -2035,95 +2165,176 @@ CONFIG_SSB_POSSIBLE=y
 # Sonics Silicon Backplane
 #
 CONFIG_SSB=m
-CONFIG_SSB_SPROM=y
-CONFIG_SSB_PCIHOST_POSSIBLE=y
-CONFIG_SSB_PCIHOST=y
-# CONFIG_SSB_B43_PCI_BRIDGE is not set
-CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
-CONFIG_SSB_PCMCIAHOST=y
+CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
 CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_SILENT is not set
 # CONFIG_SSB_DEBUG is not set
-CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
-CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
-CONFIG_MFD_CORE=m
+CONFIG_MFD_CORE=y
+# CONFIG_MFD_88PM860X is not set
 CONFIG_MFD_SM501=m
 # CONFIG_MFD_SM501_GPIO is not set
 # CONFIG_MFD_ASIC3 is not set
 # CONFIG_HTC_EGPIO is not set
 CONFIG_HTC_PASIC3=m
-# CONFIG_UCB1400_CORE is not set
+# CONFIG_HTC_I2CPLD is not set
+# CONFIG_TPS6105X is not set
 CONFIG_TPS65010=m
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS6586X is not set
+# CONFIG_MFD_TPS65910 is not set
+# CONFIG_MFD_TPS65912_I2C is not set
+CONFIG_MENELAUS=y
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_MADC=m
+CONFIG_TWL4030_POWER=y
+CONFIG_MFD_TWL4030_AUDIO=y
+CONFIG_TWL6030_PWM=m
+CONFIG_TWL6040_CORE=y
+# CONFIG_MFD_STMPE is not set
+# CONFIG_MFD_TC3589X is not set
 # CONFIG_MFD_TMIO is not set
 # CONFIG_MFD_T7L66XB is not set
 # CONFIG_MFD_TC6387XB is not set
 # CONFIG_MFD_TC6393XB is not set
+# CONFIG_PMIC_DA903X is not set
+# CONFIG_PMIC_ADP5520 is not set
+# CONFIG_MFD_MAX8925 is not set
+# CONFIG_MFD_MAX8997 is not set
+# CONFIG_MFD_MAX8998 is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
+# CONFIG_MFD_WM831X_I2C is not set
+# CONFIG_MFD_WM8350_I2C is not set
+# CONFIG_MFD_WM8994 is not set
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_OMAP_USB_HOST=y
+# CONFIG_MFD_AAT2870_CORE is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+# CONFIG_REGULATOR_GPIO is not set
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+CONFIG_REGULATOR_TWL4030=y
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+# CONFIG_MEDIA_CONTROLLER is not set
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_RC_LOOPBACK is not set
 # CONFIG_MEDIA_ATTACH is not set
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_QT1010=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
 CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
 CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
-# CONFIG_VIDEO_MSP3400 is not set
+CONFIG_VIDEO_MSP3400=m
 # CONFIG_VIDEO_CS5345 is not set
-# CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
+CONFIG_VIDEO_CS53L32A=m
 # CONFIG_VIDEO_TLV320AIC23B is not set
-# CONFIG_VIDEO_WM8775 is not set
+CONFIG_VIDEO_WM8775=m
 # CONFIG_VIDEO_WM8739 is not set
 # CONFIG_VIDEO_VP27SMPX is not set
 
@@ -2135,30 +2346,29 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 #
 # Video decoders
 #
-# CONFIG_VIDEO_ADV7180 is not set
+CONFIG_VIDEO_ADV7180=m
 # CONFIG_VIDEO_BT819 is not set
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
-# CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7191=m
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
-# CONFIG_VIDEO_CX25840 is not set
+# CONFIG_VIDEO_SAA717X is not set
+CONFIG_VIDEO_CX25840=m
 
 #
 # MPEG video encoders
 #
-# CONFIG_VIDEO_CX2341X is not set
+CONFIG_VIDEO_CX2341X=m
 
 #
 # Video encoders
@@ -2167,74 +2377,200 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+CONFIG_VIDEO_SR030PC30=m
+
+#
+# Flash devices
+#
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
-# CONFIG_VIDEO_ZORAN is not set
-# CONFIG_VIDEO_SAA7134 is not set
-# CONFIG_VIDEO_HEXIUM_ORION is not set
-# CONFIG_VIDEO_HEXIUM_GEMINI is not set
-# CONFIG_VIDEO_CX88 is not set
-# CONFIG_VIDEO_CX23885 is not set
-# CONFIG_VIDEO_AU0828 is not set
-# CONFIG_VIDEO_IVTV is not set
-# CONFIG_VIDEO_CX18 is not set
-# CONFIG_VIDEO_SAA7164 is not set
-# CONFIG_VIDEO_CAFE_CCIC is not set
-# CONFIG_SOC_CAMERA is not set
+# CONFIG_VIDEO_VPFE_CAPTURE is not set
+# CONFIG_VIDEO_OMAP2_VOUT is not set
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_VIDEO_SH_MOBILE_CSI2=m
+CONFIG_VIDEO_SH_MOBILE_CEU=m
+# CONFIG_VIDEO_OMAP2 is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
 CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-# CONFIG_USB_GSPCA is not set
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_EM28XX is not set
-# CONFIG_VIDEO_CX231XX is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_USB_ET61X251 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+# CONFIG_VIDEO_EM28XX_ALSA is not set
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+# CONFIG_VIDEO_TM6000 is not set
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_GEMTEK_PCI is not set
-# CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
 # CONFIG_I2C_SI4713 is not set
 # CONFIG_RADIO_SI4713 is not set
 # CONFIG_USB_DSBR is not set
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-CONFIG_DVB_CAPTURE_DRIVERS=y
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+CONFIG_RADIO_WL1273=m
 
 #
-# Supported SAA7146 based PCI Adapters
+# Texas Instruments WL128x FM driver (ST based)
 #
-# CONFIG_TTPCI_EEPROM is not set
-# CONFIG_DVB_AV7110 is not set
-# CONFIG_DVB_BUDGET_CORE is not set
+CONFIG_RADIO_WL128X=m
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+CONFIG_TTPCI_EEPROM=m
 
 #
 # Supported USB Adapters
 #
-# CONFIG_DVB_USB is not set
-# CONFIG_DVB_TTUSB_BUDGET is not set
-# CONFIG_DVB_TTUSB_DEC is not set
-# CONFIG_SMS_SIANO_MDTV is not set
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
 
 #
 # Supported FlexCopII (B2C2) Adapters
@@ -2242,137 +2578,184 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 # CONFIG_DVB_B2C2_FLEXCOP is not set
 
 #
-# Supported BT878 Adapters
+# Supported DVB Frontends
 #
+# CONFIG_DVB_FE_CUSTOMISE is not set
 
 #
-# Supported Pluto2 Adapters
+# Multistandard (satellite) frontends
 #
-# CONFIG_DVB_PLUTO2 is not set
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
 
 #
-# Supported SDMC DM1105 Adapters
+# Multistandard (cable + terrestrial) frontends
 #
-# CONFIG_DVB_DM1105 is not set
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
 
 #
-# Supported Earthsoft PT1 Adapters
+# DVB-S (satellite) frontends
 #
-# CONFIG_DVB_PT1 is not set
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_TDA10071=m
 
 #
-# Supported DVB Frontends
+# DVB-T (terrestrial) frontends
 #
-# CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_TDA10023=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
 #
-CONFIG_VGA_ARB=y
-CONFIG_DRM=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-# CONFIG_DRM_RADEON is not set
-CONFIG_DRM_MGA=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
-CONFIG_VGASTATE=m
-CONFIG_VIDEO_OUTPUT_CONTROL=m
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
 CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-CONFIG_FB_DDC=m
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
 # CONFIG_FB_BOOT_VESA_SUPPORT is not set
 CONFIG_FB_CFB_FILLRECT=y
 CONFIG_FB_CFB_COPYAREA=y
 CONFIG_FB_CFB_IMAGEBLIT=y
 # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
 # CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-CONFIG_FB_DEFERRED_IO=y
-CONFIG_FB_SVGALIB=m
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_WMT_GE_ROPS is not set
+# CONFIG_FB_SVGALIB is not set
 # CONFIG_FB_MACMODES is not set
-CONFIG_FB_BACKLIGHT=y
+# CONFIG_FB_BACKLIGHT is not set
 CONFIG_FB_MODE_HELPERS=y
 CONFIG_FB_TILEBLITTING=y
 
 #
 # Frame buffer hardware drivers
 #
-CONFIG_FB_CIRRUS=m
-CONFIG_FB_PM2=m
-CONFIG_FB_PM2_FIFO_DISCONNECT=y
-CONFIG_FB_ARMCLCD=m
-CONFIG_FB_CYBER2000=m
-CONFIG_FB_ASILIANT=y
-# CONFIG_FB_IMSTT is not set
-CONFIG_FB_UVESA=m
+# CONFIG_FB_UVESA is not set
 # CONFIG_FB_S1D13XXX is not set
-CONFIG_FB_NVIDIA=m
-CONFIG_FB_NVIDIA_I2C=y
-# CONFIG_FB_NVIDIA_DEBUG is not set
-CONFIG_FB_NVIDIA_BACKLIGHT=y
-CONFIG_FB_RIVA=m
-CONFIG_FB_RIVA_I2C=y
-# CONFIG_FB_RIVA_DEBUG is not set
-CONFIG_FB_RIVA_BACKLIGHT=y
-CONFIG_FB_MATROX=m
-CONFIG_FB_MATROX_MILLENIUM=y
-CONFIG_FB_MATROX_MYSTIQUE=y
-CONFIG_FB_MATROX_G=y
-CONFIG_FB_MATROX_I2C=m
-CONFIG_FB_MATROX_MAVEN=m
-CONFIG_FB_RADEON=m
-CONFIG_FB_RADEON_I2C=y
-CONFIG_FB_RADEON_BACKLIGHT=y
-# CONFIG_FB_RADEON_DEBUG is not set
-CONFIG_FB_ATY128=m
-CONFIG_FB_ATY128_BACKLIGHT=y
-CONFIG_FB_ATY=m
-CONFIG_FB_ATY_CT=y
-# CONFIG_FB_ATY_GENERIC_LCD is not set
-CONFIG_FB_ATY_GX=y
-CONFIG_FB_ATY_BACKLIGHT=y
-CONFIG_FB_S3=m
-# CONFIG_FB_SAVAGE is not set
-CONFIG_FB_SIS=m
-CONFIG_FB_SIS_300=y
-CONFIG_FB_SIS_315=y
-CONFIG_FB_VIA=m
-CONFIG_FB_NEOMAGIC=m
-CONFIG_FB_KYRO=m
-CONFIG_FB_3DFX=m
-CONFIG_FB_3DFX_ACCEL=y
-CONFIG_FB_3DFX_I2C=y
-CONFIG_FB_VOODOO1=m
-CONFIG_FB_VT8623=m
-CONFIG_FB_TRIDENT=m
-CONFIG_FB_ARK=m
-CONFIG_FB_PM3=m
-# CONFIG_FB_CARMINE is not set
-CONFIG_FB_TMIO=m
-CONFIG_FB_TMIO_ACCELL=y
-CONFIG_FB_SM501=m
+# CONFIG_FB_TMIO is not set
+# CONFIG_FB_SM501 is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
-CONFIG_FB_METRONOME=m
-# CONFIG_FB_MB862XX is not set
+# CONFIG_FB_METRONOME is not set
 # CONFIG_FB_BROADSHEET is not set
+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+CONFIG_OMAP2_VRAM=y
+CONFIG_OMAP2_VRFB=y
+CONFIG_OMAP2_DSS=y
+CONFIG_OMAP2_VRAM_SIZE=32
+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
+CONFIG_OMAP2_DSS_DPI=y
+# CONFIG_OMAP2_DSS_RFBI is not set
+# CONFIG_OMAP2_DSS_VENC is not set
+CONFIG_OMAP4_DSS_HDMI=y
+# CONFIG_OMAP2_DSS_SDI is not set
+CONFIG_OMAP2_DSS_DSI=y
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
+CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
+CONFIG_FB_OMAP2=y
+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
+CONFIG_FB_OMAP2_NUM_FBS=3
+
+#
+# OMAP2/3 Display Device Drivers
+#
+CONFIG_PANEL_GENERIC_DPI=y
+CONFIG_PANEL_DVI=y
+CONFIG_PANEL_SHARP_LS037V7DW01=y
+# CONFIG_PANEL_PICODLP is not set
+CONFIG_PANEL_TAAL=y
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_GENERIC=y
+CONFIG_BACKLIGHT_PWM=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
 #
-CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DISPLAY_SUPPORT=y
 
 #
 # Display hardware drivers
@@ -2383,11 +2766,19 @@ CONFIG_DISPLAY_SUPPORT=m
 #
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
-# CONFIG_FONTS is not set
+CONFIG_FONTS=y
 CONFIG_FONT_8x8=y
 CONFIG_FONT_8x16=y
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_ACORN_8x8 is not set
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_SUN8x16 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_10x18 is not set
 CONFIG_LOGO=y
 CONFIG_LOGO_LINUX_MONO=y
 CONFIG_LOGO_LINUX_VGA16=y
@@ -2414,162 +2805,52 @@ CONFIG_SND_SEQUENCER_OSS=y
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
-CONFIG_SND_VMASTER=y
 CONFIG_SND_RAWMIDI_SEQ=m
-CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
 # CONFIG_SND_OPL4_LIB_SEQ is not set
 # CONFIG_SND_SBAWE_SEQ is not set
-CONFIG_SND_EMU10K1_SEQ=m
+# CONFIG_SND_EMU10K1_SEQ is not set
 CONFIG_SND_MPU401_UART=m
-CONFIG_SND_OPL3_LIB=m
-CONFIG_SND_VX_LIB=m
-CONFIG_SND_AC97_CODEC=m
 CONFIG_SND_DRIVERS=y
 CONFIG_SND_DUMMY=m
+# CONFIG_SND_ALOOP is not set
 CONFIG_SND_VIRMIDI=m
 CONFIG_SND_MTPAV=m
 CONFIG_SND_MTS64=m
 CONFIG_SND_SERIAL_U16550=m
 CONFIG_SND_MPU401=m
 CONFIG_SND_PORTMAN2X4=m
-# CONFIG_SND_AC97_POWER_SAVE is not set
-CONFIG_SND_PCI=y
-CONFIG_SND_AD1889=m
-CONFIG_SND_ALS300=m
-# CONFIG_SND_ALI5451 is not set
-CONFIG_SND_ATIIXP=m
-CONFIG_SND_ATIIXP_MODEM=m
-CONFIG_SND_AU8810=m
-CONFIG_SND_AU8820=m
-CONFIG_SND_AU8830=m
-CONFIG_SND_AW2=m
-CONFIG_SND_AZT3328=m
-CONFIG_SND_BT87X=m
-# CONFIG_SND_BT87X_OVERCLOCK is not set
-CONFIG_SND_CA0106=m
-CONFIG_SND_CMIPCI=m
-CONFIG_SND_OXYGEN_LIB=m
-CONFIG_SND_OXYGEN=m
-CONFIG_SND_CS4281=m
-CONFIG_SND_CS46XX=m
-CONFIG_SND_CS46XX_NEW_DSP=y
-CONFIG_SND_CS5535AUDIO=m
-CONFIG_SND_CTXFI=m
-CONFIG_SND_DARLA20=m
-CONFIG_SND_GINA20=m
-CONFIG_SND_LAYLA20=m
-CONFIG_SND_DARLA24=m
-CONFIG_SND_GINA24=m
-CONFIG_SND_LAYLA24=m
-CONFIG_SND_MONA=m
-CONFIG_SND_MIA=m
-CONFIG_SND_ECHO3G=m
-CONFIG_SND_INDIGO=m
-CONFIG_SND_INDIGOIO=m
-CONFIG_SND_INDIGODJ=m
-CONFIG_SND_INDIGOIOX=m
-CONFIG_SND_INDIGODJX=m
-CONFIG_SND_EMU10K1=m
-CONFIG_SND_EMU10K1X=m
-CONFIG_SND_ENS1370=m
-CONFIG_SND_ENS1371=m
-CONFIG_SND_ES1938=m
-CONFIG_SND_ES1968=m
-CONFIG_SND_FM801=m
-# CONFIG_SND_FM801_TEA575X_BOOL is not set
-CONFIG_SND_HDA_INTEL=m
-# CONFIG_SND_HDA_HWDEP is not set
-# CONFIG_SND_HDA_INPUT_BEEP is not set
-# CONFIG_SND_HDA_INPUT_JACK is not set
-# CONFIG_SND_HDA_PATCH_LOADER is not set
-CONFIG_SND_HDA_CODEC_REALTEK=y
-CONFIG_SND_HDA_CODEC_ANALOG=y
-CONFIG_SND_HDA_CODEC_SIGMATEL=y
-CONFIG_SND_HDA_CODEC_VIA=y
-CONFIG_SND_HDA_CODEC_ATIHDMI=y
-CONFIG_SND_HDA_CODEC_NVHDMI=y
-CONFIG_SND_HDA_CODEC_INTELHDMI=y
-CONFIG_SND_HDA_ELD=y
-CONFIG_SND_HDA_CODEC_CIRRUS=y
-CONFIG_SND_HDA_CODEC_CONEXANT=y
-CONFIG_SND_HDA_CODEC_CA0110=y
-CONFIG_SND_HDA_CODEC_CMEDIA=y
-CONFIG_SND_HDA_CODEC_SI3054=y
-CONFIG_SND_HDA_GENERIC=y
-# CONFIG_SND_HDA_POWER_SAVE is not set
-CONFIG_SND_HDSP=m
-CONFIG_SND_HDSPM=m
-CONFIG_SND_HIFIER=m
-CONFIG_SND_ICE1712=m
-CONFIG_SND_ICE1724=m
-CONFIG_SND_INTEL8X0=m
-CONFIG_SND_INTEL8X0M=m
-CONFIG_SND_KORG1212=m
-CONFIG_SND_LX6464ES=m
-CONFIG_SND_MAESTRO3=m
-CONFIG_SND_MIXART=m
-CONFIG_SND_NM256=m
-CONFIG_SND_PCXHR=m
-CONFIG_SND_RIPTIDE=m
-CONFIG_SND_RME32=m
-CONFIG_SND_RME96=m
-CONFIG_SND_RME9652=m
-CONFIG_SND_SONICVIBES=m
-CONFIG_SND_TRIDENT=m
-CONFIG_SND_VIA82XX=m
-CONFIG_SND_VIA82XX_MODEM=m
-CONFIG_SND_VIRTUOSO=m
-CONFIG_SND_VX222=m
-CONFIG_SND_YMFPCI=m
 CONFIG_SND_ARM=y
-CONFIG_SND_ARMAACI=m
 CONFIG_SND_USB=y
 CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
 CONFIG_SND_USB_CAIAQ=m
 # CONFIG_SND_USB_CAIAQ_INPUT is not set
-CONFIG_SND_PCMCIA=y
-CONFIG_SND_VXPOCKET=m
-CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_USB_6FIRE=m
 CONFIG_SND_SOC=m
+# CONFIG_SND_SOC_CACHE_LZO is not set
+CONFIG_SND_OMAP_SOC=m
+CONFIG_SND_OMAP_SOC_MCBSP=m
+CONFIG_SND_OMAP_SOC_MCPDM=m
+CONFIG_SND_OMAP_SOC_RX51=m
+CONFIG_SND_OMAP_SOC_OVERO=m
+CONFIG_SND_OMAP_SOC_OMAP3EVM=m
+CONFIG_SND_OMAP_SOC_AM3517EVM=m
+CONFIG_SND_OMAP_SOC_SDP3430=m
+CONFIG_SND_OMAP_SOC_SDP4430=m
+# CONFIG_SND_OMAP_SOC_OMAP4_HDMI is not set
+CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m
+CONFIG_SND_OMAP_SOC_ZOOM2=m
+CONFIG_SND_OMAP_SOC_IGEP0020=m
 CONFIG_SND_SOC_I2C_AND_SPI=m
-CONFIG_SND_SOC_ALL_CODECS=m
-CONFIG_SND_SOC_WM_HUBS=m
-CONFIG_SND_SOC_AD73311=m
-CONFIG_SND_SOC_AK4535=m
-CONFIG_SND_SOC_AK4642=m
-CONFIG_SND_SOC_CS4270=m
-CONFIG_SND_SOC_L3=m
-CONFIG_SND_SOC_PCM3008=m
-CONFIG_SND_SOC_SPDIF=m
-CONFIG_SND_SOC_SSM2602=m
+# CONFIG_SND_SOC_ALL_CODECS is not set
 CONFIG_SND_SOC_TLV320AIC23=m
 CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_UDA134X=m
-CONFIG_SND_SOC_UDA1380=m
-CONFIG_SND_SOC_WM8350=m
-CONFIG_SND_SOC_WM8400=m
-CONFIG_SND_SOC_WM8510=m
-CONFIG_SND_SOC_WM8523=m
-CONFIG_SND_SOC_WM8580=m
-CONFIG_SND_SOC_WM8728=m
-CONFIG_SND_SOC_WM8731=m
-CONFIG_SND_SOC_WM8750=m
-CONFIG_SND_SOC_WM8753=m
-CONFIG_SND_SOC_WM8776=m
-CONFIG_SND_SOC_WM8900=m
-CONFIG_SND_SOC_WM8903=m
-CONFIG_SND_SOC_WM8940=m
-CONFIG_SND_SOC_WM8960=m
-CONFIG_SND_SOC_WM8961=m
-CONFIG_SND_SOC_WM8971=m
-CONFIG_SND_SOC_WM8974=m
-CONFIG_SND_SOC_WM8988=m
-CONFIG_SND_SOC_WM8990=m
-CONFIG_SND_SOC_WM8993=m
-CONFIG_SND_SOC_WM9081=m
-CONFIG_SND_SOC_MAX9877=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_SOC_TWL6040=m
+CONFIG_SND_SOC_TPA6130A2=m
 # CONFIG_SOUND_PRIME is not set
-CONFIG_AC97_BUS=m
 CONFIG_HID_SUPPORT=y
 CONFIG_HID=y
 # CONFIG_HIDRAW is not set
@@ -2581,33 +2862,57 @@ CONFIG_USB_HID=m
 # CONFIG_HID_PID is not set
 CONFIG_USB_HIDDEV=y
 
+#
+# USB HID Boot Protocol drivers
+#
+CONFIG_USB_KBD=m
+CONFIG_USB_MOUSE=m
+
 #
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+# CONFIG_HID_PRODIKEYS is not set
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
 CONFIG_DRAGONRISE_FF=y
+# CONFIG_HID_EMS_FF is not set
 CONFIG_HID_EZKEY=m
+# CONFIG_HID_HOLTEK is not set
+# CONFIG_HID_KEYTOUCH is not set
 CONFIG_HID_KYE=m
+# CONFIG_HID_UCLOGIC is not set
+# CONFIG_HID_WALTOP is not set
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+# CONFIG_HID_LCPOWER is not set
 CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+# CONFIG_LOGIG940_FF is not set
+CONFIG_LOGIWHEELS_FF=y
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+# CONFIG_HID_MULTITOUCH is not set
 CONFIG_HID_NTRIG=m
+# CONFIG_HID_ORTEK is not set
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+# CONFIG_HID_PICOLCD is not set
+CONFIG_HID_PRIMAX=m
+# CONFIG_HID_QUANTA is not set
+# CONFIG_HID_ROCCAT is not set
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
 CONFIG_GREENASIA_FF=y
@@ -2616,14 +2921,16 @@ CONFIG_SMARTJOYPLUS_FF=y
 CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
 CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
 CONFIG_HID_ZEROPLUS=m
 CONFIG_ZEROPLUS_FF=y
+# CONFIG_HID_ZYDACRON is not set
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2635,41 +2942,35 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_DWC3 is not set
 # CONFIG_USB_MON is not set
-CONFIG_USB_WUSB=m
-CONFIG_USB_WUSB_CBAF=m
-# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
 
 #
 # USB Host Controller Drivers
 #
 # CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=m
-# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_HCD=y
 CONFIG_USB_EHCI_ROOT_HUB_TT=y
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-CONFIG_USB_OXU210HP_HCD=m
-CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EHCI_HCD_OMAP=y
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
 # CONFIG_USB_ISP1760_HCD is not set
 # CONFIG_USB_ISP1362_HCD is not set
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_OMAP1=y
+CONFIG_USB_OHCI_HCD_OMAP3=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
-CONFIG_USB_SL811_HCD=m
-# CONFIG_USB_SL811_CS is not set
-CONFIG_USB_R8A66597_HCD=m
-CONFIG_USB_WHCI_HCD=m
-CONFIG_USB_HWA_HCD=m
-
-#
-# Enable Host or Gadget support to see Inventra options
-#
-# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_U132_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
 
 #
 # USB Device Class drivers
@@ -2688,6 +2989,8 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
 # CONFIG_USB_STORAGE_DATAFAB is not set
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
@@ -2699,6 +3002,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=m
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -2739,11 +3044,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -2755,9 +3062,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -2770,7 +3081,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -2784,7 +3094,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -2797,21 +3107,21 @@ CONFIG_USB_XUSBATM=m
 #
 CONFIG_USB_OTG_UTILS=y
 CONFIG_USB_GPIO_VBUS=m
-CONFIG_NOP_USB_XCEIV=m
-CONFIG_UWB=m
-CONFIG_UWB_HWA=m
-CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
-CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
-CONFIG_MMC=m
+# CONFIG_ISP1301_OMAP is not set
+# CONFIG_USB_ULPI is not set
+CONFIG_TWL4030_USB=m
+CONFIG_TWL6030_USB=m
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -2819,17 +3129,15 @@ CONFIG_MMC_TEST=m
 #
 # MMC/SD/SDIO Host Controller Drivers
 #
-CONFIG_MMC_ARMMMCI=m
 CONFIG_MMC_SDHCI=m
-CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
 CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
-CONFIG_MMC_TIFM_SD=m
-CONFIG_MMC_SDRICOH_CS=m
-CONFIG_MMC_CB710=m
-CONFIG_MMC_VIA_SDMMC=m
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+CONFIG_MMC_OMAP=y
+CONFIG_MMC_OMAP_HS=y
+# CONFIG_MMC_DW is not set
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -2842,29 +3150,32 @@ CONFIG_MSPRO_BLOCK=m
 #
 # MemoryStick Host Controller Drivers
 #
-CONFIG_MEMSTICK_TIFM_MS=m
-CONFIG_MEMSTICK_JMICRON_38X=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+# CONFIG_LEDS_LM3530 is not set
 CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
 CONFIG_LEDS_GPIO=m
-CONFIG_LEDS_GPIO_PLATFORM=y
 CONFIG_LEDS_LP3944=m
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+# CONFIG_LEDS_PWM is not set
+# CONFIG_LEDS_REGULATOR is not set
 CONFIG_LEDS_BD2802=m
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_RENESAS_TPU is not set
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
 CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
@@ -2872,11 +3183,12 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 #
 # iptables trigger is under Netfilter config (LED target)
 #
-CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
 CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -2885,26 +3197,32 @@ CONFIG_RTC_INTF_SYSFS=y
 CONFIG_RTC_INTF_PROC=y
 CONFIG_RTC_INTF_DEV=y
 # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
+# CONFIG_RTC_DRV_TEST is not set
 
 #
 # I2C RTC drivers
 #
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
+# CONFIG_RTC_DRV_DS1307 is not set
+# CONFIG_RTC_DRV_DS1374 is not set
+# CONFIG_RTC_DRV_DS1672 is not set
+# CONFIG_RTC_DRV_DS3232 is not set
+# CONFIG_RTC_DRV_MAX6900 is not set
+# CONFIG_RTC_DRV_RS5C372 is not set
+# CONFIG_RTC_DRV_ISL1208 is not set
+# CONFIG_RTC_DRV_ISL12022 is not set
+# CONFIG_RTC_DRV_X1205 is not set
+# CONFIG_RTC_DRV_PCF8563 is not set
+# CONFIG_RTC_DRV_PCF8583 is not set
+# CONFIG_RTC_DRV_M41T80 is not set
+CONFIG_RTC_DRV_BQ32K=y
+CONFIG_RTC_DRV_TWL92330=y
+CONFIG_RTC_DRV_TWL4030=y
+# CONFIG_RTC_DRV_S35390A is not set
+# CONFIG_RTC_DRV_FM3130 is not set
+# CONFIG_RTC_DRV_RX8581 is not set
+# CONFIG_RTC_DRV_RX8025 is not set
+# CONFIG_RTC_DRV_EM3027 is not set
+# CONFIG_RTC_DRV_RV3029C2 is not set
 
 #
 # SPI RTC drivers
@@ -2913,96 +3231,93 @@ CONFIG_RTC_DRV_RX8025=m
 #
 # Platform RTC drivers
 #
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
+# CONFIG_RTC_DRV_CMOS is not set
+# CONFIG_RTC_DRV_DS1286 is not set
+# CONFIG_RTC_DRV_DS1511 is not set
+# CONFIG_RTC_DRV_DS1553 is not set
+# CONFIG_RTC_DRV_DS1742 is not set
+# CONFIG_RTC_DRV_STK17TA8 is not set
+# CONFIG_RTC_DRV_M48T86 is not set
+# CONFIG_RTC_DRV_M48T35 is not set
+# CONFIG_RTC_DRV_M48T59 is not set
+# CONFIG_RTC_DRV_MSM6242 is not set
+CONFIG_RTC_DRV_BQ4802=y
+# CONFIG_RTC_DRV_RP5C01 is not set
+# CONFIG_RTC_DRV_V3020 is not set
+# CONFIG_RTC_DRV_PCF50633 is not set
 
 #
 # on-CPU RTC drivers
 #
-CONFIG_RTC_DRV_PL030=m
-CONFIG_RTC_DRV_PL031=m
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
+CONFIG_DW_DMAC=m
+CONFIG_TIMB_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
 # CONFIG_AUXDISPLAY is not set
 CONFIG_UIO=m
-CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
-CONFIG_UIO_AEC=m
-CONFIG_UIO_SERCOS3=m
-CONFIG_UIO_PCI_GENERIC=m
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
-CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+# CONFIG_USBIP_CORE is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
-# CONFIG_RTL8192E is not set
+CONFIG_R8712U=m
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
-CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-# CONFIG_VME_BUS is not set
+# CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_TIDSPBRIDGE is not set
+CONFIG_USB_ENESTORAGE=m
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
 
 #
-# RAR Register Driver
+# Speakup console speech
 #
-# CONFIG_RAR_REGISTER is not set
-# CONFIG_IIO is not set
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_STAGING_MEDIA is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_HWSPINLOCK=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_HWSPINLOCK_OMAP=m
+CONFIG_CLKSRC_MMIO=y
+# CONFIG_IOMMU_SUPPORT is not set
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
 
 #
 # File systems
@@ -3025,8 +3340,6 @@ CONFIG_EXT4_FS_SECURITY=y
 CONFIG_JBD=m
 CONFIG_JBD2=m
 CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3038,29 +3351,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3105,6 +3418,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
 CONFIG_MISC_FILESYSTEMS=y
@@ -3132,6 +3446,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3140,8 +3455,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
 CONFIG_NFS_V3=y
@@ -3149,6 +3467,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3156,15 +3477,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3174,7 +3492,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3189,7 +3508,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3241,12 +3560,12 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3255,12 +3574,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3276,9 +3596,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3287,41 +3609,52 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
 CONFIG_FRAME_POINTER=y
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_PAGE_POISONING is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
 CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
-# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
 # CONFIG_ARM_UNWIND is not set
 # CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_ERRORS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_LL is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3333,7 +3666,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3344,11 +3676,15 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
@@ -3384,7 +3720,7 @@ CONFIG_CRYPTO_VMAC=m
 #
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3404,6 +3740,7 @@ CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3428,16 +3765,19 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_OMAP_AES=m
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=m
@@ -3445,14 +3785,26 @@ CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3460,5 +3812,8 @@ CONFIG_TEXTSEARCH_FSM=m
 CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
-CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
diff --git a/config/kernel/kernel.config.armv5tel-ipfire-rpi b/config/kernel/kernel.config.armv5tel-ipfire-rpi
new file mode 100644 (file)
index 0000000..c2445ad
--- /dev/null
@@ -0,0 +1,3431 @@
+#
+# Automatically generated file; DO NOT EDIT.
+# Linux/arm 3.2.30 Kernel Configuration
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_HAVE_SCHED_CLOCK=y
+CONFIG_GENERIC_GPIO=y
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_FIQ=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_NEED_MACH_MEMORY_H=y
+CONFIG_GENERIC_BUG=y
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_HAVE_IRQ_WORK=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+# CONFIG_FHANDLE is not set
+# CONFIG_TASKSTATS is not set
+CONFIG_AUDIT=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_SPARSE_IRQ=y
+
+#
+# RCU Subsystem
+#
+CONFIG_TINY_RCU=y
+# CONFIG_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=19
+# CONFIG_CGROUPS is not set
+CONFIG_NAMESPACES=y
+CONFIG_UTS_NS=y
+CONFIG_IPC_NS=y
+# CONFIG_USER_NS is not set
+# CONFIG_PID_NS is not set
+# CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_RD_GZIP=y
+CONFIG_RD_BZIP2=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EXPERT=y
+CONFIG_UID16=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+
+#
+# Kernel Performance Events And Counters
+#
+# CONFIG_PERF_EVENTS is not set
+# CONFIG_PERF_COUNTERS is not set
+CONFIG_VM_EVENT_COUNTERS=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+
+#
+# GCOV-based kernel profiling
+#
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+# CONFIG_MODVERSIONS is not set
+# CONFIG_MODULE_SRCVERSION_ALL is not set
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_HIGHBANK is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_PRIMA2 is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_MXS is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LPC32XX is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_TEGRA is not set
+# CONFIG_ARCH_PICOXCELL is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_SHMOBILE is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P64X0 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_EXYNOS is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_TCC_926 is not set
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_OMAP is not set
+# CONFIG_PLAT_SPEAR is not set
+CONFIG_ARCH_BCM2708=y
+# CONFIG_ARCH_VT8500 is not set
+# CONFIG_ARCH_ZYNQ is not set
+# CONFIG_GPIO_PCA953X is not set
+
+#
+# System MMU
+#
+
+#
+# Broadcom BCM2708 Implementations
+#
+CONFIG_MACH_BCM2708=y
+CONFIG_BCM2708_GPIO=y
+CONFIG_BCM2708_VCMEM=y
+# CONFIG_BCM2708_NOL2CACHE is not set
+
+#
+# Processor Type
+#
+CONFIG_CPU_V6=y
+CONFIG_CPU_32v6=y
+CONFIG_CPU_ABRT_EV6=y
+CONFIG_CPU_PABRT_V6=y
+CONFIG_CPU_CACHE_V6=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_TLB_V6=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_USE_DOMAINS=y
+
+#
+# Processor Features
+#
+CONFIG_ARM_THUMB=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+# CONFIG_CPU_DCACHE_DISABLE is not set
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_ARM_ERRATA_326103 is not set
+CONFIG_ARM_ERRATA_411920=y
+# CONFIG_ARM_ERRATA_364296 is not set
+CONFIG_PL330=y
+
+#
+# Bus support
+#
+CONFIG_ARM_AMBA=y
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+# CONFIG_PCCARD is not set
+
+#
+# Kernel Features
+#
+CONFIG_TICK_ONESHOT=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMSPLIT_2G is not set
+# CONFIG_VMSPLIT_1G is not set
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PREEMPT is not set
+CONFIG_HZ=100
+CONFIG_AEABI=y
+# CONFIG_OABI_COMPAT is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+CONFIG_HAVE_ARCH_PFN_VALID=y
+# CONFIG_HIGHMEM is not set
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_HAVE_MEMBLOCK=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_ZONE_DMA_FLAG=0
+CONFIG_VIRT_TO_BUS=y
+# CONFIG_KSM is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
+CONFIG_NEED_PER_CPU_KM=y
+# CONFIG_CLEANCACHE is not set
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_UACCESS_WITH_MEMCPY=y
+# CONFIG_SECCOMP is not set
+# CONFIG_CC_STACKPROTECTOR is not set
+# CONFIG_DEPRECATED_PARAM_STRUCT is not set
+
+#
+# Boot options
+#
+CONFIG_USE_OF=y
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZBOOT_ROM_BSS=0x0
+# CONFIG_ARM_APPENDED_DTB is not set
+CONFIG_CMDLINE="dwc_otg.lpm_enable=0 console=tty1 kgdboc=ttyAMA0,115200 root=/dev/mmcblk0p3 rootwait ro"
+CONFIG_CMDLINE_FROM_BOOTLOADER=y
+# CONFIG_CMDLINE_EXTEND is not set
+# CONFIG_CMDLINE_FORCE is not set
+# CONFIG_XIP_KERNEL is not set
+# CONFIG_KEXEC is not set
+# CONFIG_CRASH_DUMP is not set
+# CONFIG_AUTO_ZRELADDR is not set
+
+#
+# CPU Power Management
+#
+
+#
+# CPU Frequency scaling
+#
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_FREQ_STAT=m
+# CONFIG_CPU_FREQ_STAT_DETAILS is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=m
+CONFIG_CPU_FREQ_GOV_USERSPACE=m
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
+
+#
+# ARM CPU frequency scaling drivers
+#
+CONFIG_ARM_BCM2835_CPUFREQ=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+
+#
+# Floating point emulation
+#
+
+#
+# At least one emulation must be selected
+#
+CONFIG_VFP=y
+
+#
+# Userspace binary formats
+#
+CONFIG_BINFMT_ELF=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_HAVE_AOUT=y
+# CONFIG_BINFMT_AOUT is not set
+# CONFIG_BINFMT_MISC is not set
+
+#
+# Power management options
+#
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
+# CONFIG_APM_EMULATION is not set
+CONFIG_PM_CLK=y
+CONFIG_CPU_PM=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_NET=y
+
+#
+# Networking options
+#
+CONFIG_PACKET=y
+CONFIG_UNIX=y
+CONFIG_XFRM=y
+CONFIG_XFRM_USER=m
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_MIGRATE=y
+CONFIG_XFRM_STATISTICS=y
+CONFIG_XFRM_IPCOMP=m
+CONFIG_NET_KEY=m
+CONFIG_NET_KEY_MIGRATE=y
+CONFIG_INET=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
+# CONFIG_IP_PNP is not set
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_ARPD=y
+CONFIG_SYN_COOKIES=y
+CONFIG_INET_AH=m
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=y
+CONFIG_INET_XFRM_MODE_TUNNEL=y
+CONFIG_INET_XFRM_MODE_BEET=y
+CONFIG_INET_LRO=y
+CONFIG_INET_DIAG=m
+CONFIG_INET_TCP_DIAG=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_DEFAULT_RENO=y
+CONFIG_DEFAULT_TCP_CONG="reno"
+# CONFIG_TCP_MD5SIG is not set
+CONFIG_IPV6=m
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_IPV6_MIP6=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPV6_MULTIPLE_TABLES=y
+# CONFIG_IPV6_SUBTREES is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_ADVANCED=y
+CONFIG_BRIDGE_NETFILTER=y
+
+#
+# Core Netfilter Configuration
+#
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_SET=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_IMQ=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_LAYER7=m
+# CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG is not set
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_SET_MAX=256
+CONFIG_IP_SET_BITMAP_IP=m
+CONFIG_IP_SET_BITMAP_IPMAC=m
+CONFIG_IP_SET_BITMAP_PORT=m
+CONFIG_IP_SET_HASH_IP=m
+CONFIG_IP_SET_HASH_IPPORT=m
+CONFIG_IP_SET_HASH_IPPORTIP=m
+CONFIG_IP_SET_HASH_IPPORTNET=m
+CONFIG_IP_SET_HASH_NET=m
+CONFIG_IP_SET_HASH_NETPORT=m
+CONFIG_IP_SET_HASH_NETIFACE=m
+CONFIG_IP_SET_LIST_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_TAB_BITS=12
+
+#
+# IPVS transport protocol load balancing support
+#
+# CONFIG_IP_VS_PROTO_TCP is not set
+# CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
+# CONFIG_IP_VS_PROTO_ESP is not set
+# CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
+
+#
+# IPVS scheduler
+#
+# CONFIG_IP_VS_RR is not set
+# CONFIG_IP_VS_WRR is not set
+# CONFIG_IP_VS_LC is not set
+# CONFIG_IP_VS_WLC is not set
+# CONFIG_IP_VS_LBLC is not set
+# CONFIG_IP_VS_LBLCR is not set
+# CONFIG_IP_VS_DH is not set
+# CONFIG_IP_VS_SH is not set
+# CONFIG_IP_VS_SED is not set
+# CONFIG_IP_VS_NQ is not set
+
+#
+# IPVS application helper
+#
+CONFIG_IP_VS_NFCT=y
+
+#
+# IP: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_MATCH_IPP2P=m
+
+#
+# IPv6: Netfilter Configuration
+#
+CONFIG_NF_DEFRAG_IPV6=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_SCTP is not set
+# CONFIG_RDS is not set
+# CONFIG_TIPC is not set
+CONFIG_ATM=m
+CONFIG_ATM_CLIP=m
+CONFIG_ATM_CLIP_NO_ICMP=y
+# CONFIG_ATM_LANE is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_STP=m
+CONFIG_GARP=m
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+# CONFIG_DECNET is not set
+CONFIG_LLC=m
+# CONFIG_LLC2 is not set
+# CONFIG_IPX is not set
+# CONFIG_ATALK is not set
+# CONFIG_X25 is not set
+# CONFIG_LAPB is not set
+# CONFIG_ECONET is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_PHONET is not set
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
+CONFIG_NET_SCHED=y
+
+#
+# Queueing/Scheduling
+#
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
+CONFIG_NET_SCH_INGRESS=m
+
+#
+# Classification
+#
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_CLS_U32_PERF=y
+CONFIG_CLS_U32_MARK=y
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_GACT_PROB=y
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+# CONFIG_NET_ACT_SIMP is not set
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
+CONFIG_NET_CLS_IND=y
+CONFIG_NET_SCH_FIFO=y
+# CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+
+#
+# Network testing
+#
+# CONFIG_NET_PKTGEN is not set
+# CONFIG_HAMRADIO is not set
+# CONFIG_CAN is not set
+CONFIG_IRDA=m
+
+#
+# IrDA protocols
+#
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+CONFIG_IRCOMM=m
+# CONFIG_IRDA_ULTRA is not set
+
+#
+# IrDA options
+#
+# CONFIG_IRDA_CACHE_LAST_LSAP is not set
+# CONFIG_IRDA_FAST_RR is not set
+# CONFIG_IRDA_DEBUG is not set
+
+#
+# Infrared-port device drivers
+#
+
+#
+# SIR device drivers
+#
+CONFIG_IRTTY_SIR=m
+
+#
+# Dongle support
+#
+# CONFIG_DONGLE is not set
+CONFIG_KINGSUN_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KS959_DONGLE=m
+
+#
+# FIR device drivers
+#
+CONFIG_USB_IRDA=m
+CONFIG_SIGMATEL_FIR=m
+CONFIG_MCS_FIR=m
+CONFIG_BT=m
+# CONFIG_BT_L2CAP is not set
+# CONFIG_BT_SCO is not set
+
+#
+# Bluetooth device drivers
+#
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_RXKAD=m
+CONFIG_FIB_RULES=y
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
+CONFIG_CFG80211=m
+# CONFIG_NL80211_TESTMODE is not set
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CFG80211_DEFAULT_PS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_WEP=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_MAC80211=m
+CONFIG_MAC80211_HAS_RC=y
+# CONFIG_MAC80211_RC_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MAC80211_RC_MINSTREL_HT=y
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_LEDS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+# CONFIG_WIMAX is not set
+CONFIG_RFKILL=m
+CONFIG_RFKILL_LEDS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_GPIO=m
+# CONFIG_NET_9P is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
+
+#
+# Device Drivers
+#
+
+#
+# Generic Driver Options
+#
+CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
+# CONFIG_DEVTMPFS is not set
+# CONFIG_STANDALONE is not set
+# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER=y
+# CONFIG_FIRMWARE_IN_KERNEL is not set
+CONFIG_EXTRA_FIRMWARE=""
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_CONNECTOR=m
+CONFIG_MTD=m
+# CONFIG_MTD_TESTS is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_OF_PARTS=m
+CONFIG_MTD_AR7_PARTS=m
+
+#
+# User Modules And Translation Layers
+#
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+# CONFIG_MTD_BLOCK_RO is not set
+# CONFIG_FTL is not set
+# CONFIG_NFTL is not set
+# CONFIG_INFTL is not set
+# CONFIG_RFD_FTL is not set
+# CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
+# CONFIG_MTD_OOPS is not set
+CONFIG_MTD_SWAP=m
+
+#
+# RAM/ROM/Flash chip drivers
+#
+# CONFIG_MTD_CFI is not set
+# CONFIG_MTD_JEDECPROBE is not set
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_ABSENT is not set
+
+#
+# Mapping drivers for chip access
+#
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+# CONFIG_MTD_PLATRAM is not set
+
+#
+# Self-contained MTD device drivers
+#
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_M25P80 is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_BLOCK2MTD is not set
+
+#
+# Disk-On-Chip Device Drivers
+#
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND is not set
+# CONFIG_MTD_ONENAND is not set
+
+#
+# LPDDR flash memory drivers
+#
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_GLUEBI is not set
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_DTC=y
+CONFIG_OF=y
+
+#
+# Device Tree and Open Firmware support
+#
+CONFIG_PROC_DEVICETREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=m
+CONFIG_OF_NET=y
+CONFIG_OF_SPI=y
+CONFIG_OF_MDIO=y
+# CONFIG_PARPORT is not set
+CONFIG_BLK_DEV=y
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=8
+CONFIG_BLK_DEV_RAM_SIZE=16384
+# CONFIG_BLK_DEV_XIP is not set
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_MG_DISK=m
+CONFIG_MG_DISK_RES=0
+# CONFIG_BLK_DEV_RBD is not set
+# CONFIG_SENSORS_LIS3LV02D is not set
+CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
+# CONFIG_ATMEL_PWM is not set
+# CONFIG_ICS932S401 is not set
+CONFIG_ENCLOSURE_SERVICES=m
+# CONFIG_APDS9802ALS is not set
+# CONFIG_ISL29003 is not set
+# CONFIG_ISL29020 is not set
+# CONFIG_SENSORS_TSL2550 is not set
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+# CONFIG_DS1682 is not set
+# CONFIG_TI_DAC7512 is not set
+# CONFIG_BMP085 is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
+# CONFIG_C2PORT is not set
+
+#
+# EEPROM support
+#
+# CONFIG_EEPROM_AT24 is not set
+# CONFIG_EEPROM_AT25 is not set
+# CONFIG_EEPROM_LEGACY is not set
+# CONFIG_EEPROM_MAX6875 is not set
+CONFIG_EEPROM_93CX6=m
+# CONFIG_EEPROM_93XX46 is not set
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+# CONFIG_SENSORS_LIS3_SPI is not set
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
+CONFIG_BCM2708_VCHIQ=y
+
+#
+# SCSI device support
+#
+CONFIG_SCSI_MOD=y
+# CONFIG_RAID_ATTRS is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_DMA=y
+# CONFIG_SCSI_TGT is not set
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_PROC_FS=y
+
+#
+# SCSI support type (disk, tape, CD-ROM)
+#
+CONFIG_BLK_DEV_SD=y
+# CONFIG_CHR_DEV_ST is not set
+# CONFIG_CHR_DEV_OSST is not set
+CONFIG_BLK_DEV_SR=m
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_SCAN_ASYNC is not set
+CONFIG_SCSI_WAIT_SCAN=m
+
+#
+# SCSI Transports
+#
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_LIBSAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+# CONFIG_SCSI_DEBUG is not set
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_ALUA=m
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_ATA=m
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_ATA_SFF=y
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
+CONFIG_SATA_MV=m
+
+#
+# PATA SFF controllers with BMDMA
+#
+# CONFIG_PATA_ARASAN_CF is not set
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_PLATFORM=m
+CONFIG_PATA_OF_PLATFORM=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_MD=y
+CONFIG_BLK_DEV_MD=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_MULTIPATH=m
+# CONFIG_MD_FAULTY is not set
+CONFIG_BLK_DEV_DM=m
+# CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_LOG_USERSPACE=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_DELAY=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
+CONFIG_NETDEVICES=y
+CONFIG_NET_CORE=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=m
+CONFIG_EQUALIZER=m
+CONFIG_IMQ=m
+# CONFIG_IMQ_BEHAVIOR_AA is not set
+CONFIG_IMQ_BEHAVIOR_AB=y
+# CONFIG_IMQ_BEHAVIOR_BA is not set
+# CONFIG_IMQ_BEHAVIOR_BB is not set
+CONFIG_IMQ_NUM_DEVS=2
+CONFIG_MII=m
+# CONFIG_IEEE802154_DRIVERS is not set
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+
+#
+# CAIF transport drivers
+#
+# CONFIG_CAIF_TTY is not set
+# CONFIG_CAIF_SPI_SLAVE is not set
+# CONFIG_CAIF_HSI is not set
+CONFIG_ETHERNET=y
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_DM9000=m
+# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set
+CONFIG_DNET=m
+CONFIG_NET_VENDOR_FARADAY=y
+# CONFIG_FTMAC100 is not set
+# CONFIG_FTGMAC100 is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_NET_VENDOR_MICREL=y
+# CONFIG_KS8842 is not set
+# CONFIG_KS8851 is not set
+CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_MICROCHIP=y
+# CONFIG_ENC28J60 is not set
+CONFIG_NET_VENDOR_NATSEMI=y
+CONFIG_NET_VENDOR_8390=y
+CONFIG_AX88796=m
+# CONFIG_AX88796_93CX6 is not set
+CONFIG_ETHOC=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC91X=m
+CONFIG_SMC911X=m
+CONFIG_SMSC911X=m
+# CONFIG_SMSC911X_ARCH_HOOKS is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_PHYLIB=y
+
+#
+# MII PHY device drivers
+#
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+# CONFIG_MDIO_GPIO is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+
+#
+# USB Network Adapters
+#
+CONFIG_USB_CATC=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+CONFIG_USB_BELKIN=y
+CONFIG_USB_ARMLINUX=y
+# CONFIG_USB_EPSON2888 is not set
+CONFIG_USB_KC2190=y
+CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
+CONFIG_USB_HSO=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_AT76C50X_USB=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+# CONFIG_MAC80211_HWSIM is not set
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATH9K_HW=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K=m
+# CONFIG_ATH9K_AHB is not set
+CONFIG_ATH9K_RATE_CONTROL=y
+CONFIG_ATH9K_HTC=m
+CONFIG_CARL9170=m
+CONFIG_CARL9170_LEDS=y
+CONFIG_CARL9170_WPC=y
+CONFIG_CARL9170_HWRNG=y
+CONFIG_ATH6KL=m
+# CONFIG_ATH6KL_DEBUG is not set
+CONFIG_B43=m
+CONFIG_B43_BCMA=y
+CONFIG_B43_SSB=y
+CONFIG_B43_SDIO=y
+CONFIG_B43_BCMA_PIO=y
+CONFIG_B43_PIO=y
+CONFIG_B43_PHY_N=y
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PHY_HT=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_HWRNG=y
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_PIO=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+# CONFIG_B43LEGACY_PIO_MODE is not set
+CONFIG_BRCMUTIL=m
+CONFIG_BRCMFMAC=m
+# CONFIG_BRCMDBG is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_IWM=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBERTAS_SDIO=m
+# CONFIG_LIBERTAS_SPI is not set
+# CONFIG_LIBERTAS_DEBUG is not set
+# CONFIG_LIBERTAS_MESH is not set
+CONFIG_P54_COMMON=m
+CONFIG_P54_USB=m
+# CONFIG_P54_SPI is not set
+CONFIG_P54_LEDS=y
+CONFIG_RT2X00=m
+CONFIG_RT2500USB=m
+CONFIG_RT73USB=m
+CONFIG_RT2800USB=m
+CONFIG_RT2800USB_RT33XX=y
+CONFIG_RT2800USB_RT35XX=y
+CONFIG_RT2800USB_RT53XX=y
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_LEDS=y
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_WL1251=m
+# CONFIG_WL1251_SPI is not set
+CONFIG_WL1251_SDIO=m
+CONFIG_WL12XX_MENU=m
+CONFIG_WL12XX=m
+# CONFIG_WL12XX_SPI is not set
+CONFIG_WL12XX_SDIO=m
+CONFIG_WL12XX_SDIO_TEST=m
+CONFIG_WL12XX_PLATFORM_DATA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_MWIFIEX=m
+CONFIG_MWIFIEX_SDIO=m
+CONFIG_RTL8192CU=m
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
+CONFIG_WAN=y
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+
+#
+# X.25/LAPB support is disabled
+#
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_ISDN=y
+# CONFIG_ISDN_I4L is not set
+# CONFIG_ISDN_CAPI is not set
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_DUMMYLL=y
+CONFIG_GIGASET_BASE=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIGASET_M101=m
+# CONFIG_GIGASET_DEBUG is not set
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCUSB=m
+# CONFIG_PHONE is not set
+
+#
+# Input device support
+#
+CONFIG_INPUT=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_POLLDEV=m
+# CONFIG_INPUT_SPARSEKMAP is not set
+
+#
+# Userland interfaces
+#
+CONFIG_INPUT_MOUSEDEV=y
+# CONFIG_INPUT_MOUSEDEV_PSAUX is not set
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_EVDEV=m
+# CONFIG_INPUT_EVBUG is not set
+
+#
+# Input Device Drivers
+#
+# CONFIG_INPUT_KEYBOARD is not set
+# CONFIG_INPUT_MOUSE is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TABLET is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+CONFIG_INPUT_MISC=y
+# CONFIG_INPUT_AD714X is not set
+# CONFIG_INPUT_BMA150 is not set
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_UINPUT=m
+# CONFIG_INPUT_PCF8574 is not set
+# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+
+#
+# Hardware I/O ports
+#
+CONFIG_SERIO=m
+CONFIG_SERIO_SERPORT=m
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SERIO_LIBPS2 is not set
+CONFIG_SERIO_RAW=m
+# CONFIG_SERIO_ALTERA_PS2 is not set
+# CONFIG_SERIO_PS2MULT is not set
+CONFIG_GAMEPORT=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GAMEPORT_L4=m
+
+#
+# Character devices
+#
+CONFIG_VT=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
+CONFIG_HW_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
+# CONFIG_SERIAL_NONSTANDARD is not set
+CONFIG_N_GSM=y
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
+
+#
+# Serial drivers
+#
+# CONFIG_SERIAL_8250 is not set
+
+#
+# Non-8250 serial port support
+#
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+# CONFIG_SERIAL_MAX3100 is not set
+# CONFIG_SERIAL_MAX3107 is not set
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+# CONFIG_SERIAL_TIMBERDALE is not set
+# CONFIG_SERIAL_ALTERA_JTAGUART is not set
+# CONFIG_SERIAL_ALTERA_UART is not set
+# CONFIG_SERIAL_IFX6X60 is not set
+# CONFIG_SERIAL_XILINX_PS_UART is not set
+# CONFIG_TTY_PRINTK is not set
+# CONFIG_HVC_DCC is not set
+# CONFIG_IPMI_HANDLER is not set
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_NVRAM=m
+# CONFIG_R3964 is not set
+CONFIG_RAW_DRIVER=y
+CONFIG_MAX_RAW_DEVS=256
+# CONFIG_TCG_TPM is not set
+# CONFIG_RAMOOPS is not set
+CONFIG_I2C=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_COMPAT=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+
+#
+# I2C Hardware Bus support
+#
+
+#
+# I2C system bus drivers (mostly embedded / system-on-chip)
+#
+CONFIG_I2C_BCM2708=m
+# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+
+#
+# External I2C/SMBus adapter drivers
+#
+CONFIG_I2C_DIOLAN_U2C=m
+# CONFIG_I2C_PARPORT_LIGHT is not set
+# CONFIG_I2C_TAOS_EVM is not set
+CONFIG_I2C_TINY_USB=m
+
+#
+# Other I2C/SMBus bus drivers
+#
+# CONFIG_I2C_STUB is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+CONFIG_SPI=y
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_MASTER=y
+
+#
+# SPI Master Controller Drivers
+#
+# CONFIG_SPI_ALTERA is not set
+CONFIG_SPI_BCM2708=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_GPIO=m
+# CONFIG_SPI_OC_TINY is not set
+# CONFIG_SPI_PL022 is not set
+# CONFIG_SPI_PXA2XX_PCI is not set
+# CONFIG_SPI_XILINX is not set
+# CONFIG_SPI_DESIGNWARE is not set
+
+#
+# SPI Protocol Masters
+#
+CONFIG_SPI_SPIDEV=m
+# CONFIG_SPI_TLE62X0 is not set
+
+#
+# PPS support
+#
+# CONFIG_PPS is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+
+#
+# Enable Device Drivers -> PPS to see the PTP clock options.
+#
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+
+#
+# Memory mapped GPIO drivers:
+#
+# CONFIG_GPIO_GENERIC_PLATFORM is not set
+# CONFIG_GPIO_IT8761E is not set
+# CONFIG_GPIO_PL061 is not set
+
+#
+# I2C GPIO expanders:
+#
+# CONFIG_GPIO_MAX7300 is not set
+# CONFIG_GPIO_MAX732X is not set
+# CONFIG_GPIO_PCF857X is not set
+# CONFIG_GPIO_ADP5588 is not set
+
+#
+# PCI GPIO expanders:
+#
+
+#
+# SPI GPIO expanders:
+#
+# CONFIG_GPIO_MAX7301 is not set
+# CONFIG_GPIO_MCP23S08 is not set
+# CONFIG_GPIO_MC33880 is not set
+# CONFIG_GPIO_74X164 is not set
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+CONFIG_W1=m
+CONFIG_W1_CON=y
+
+#
+# 1-wire Bus Masters
+#
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_DS2482=m
+# CONFIG_W1_MASTER_DS1WM is not set
+CONFIG_W1_MASTER_GPIO=m
+
+#
+# 1-wire Slaves
+#
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
+CONFIG_W1_SLAVE_BQ27000=m
+# CONFIG_POWER_SUPPLY is not set
+CONFIG_HWMON=y
+CONFIG_HWMON_VID=m
+# CONFIG_HWMON_DEBUG_CHIP is not set
+
+#
+# Native drivers
+#
+CONFIG_SENSORS_AD7314=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX16065=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
+CONFIG_SENSORS_SMM665=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_THERMAL=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_BCM2835=y
+CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_CORE is not set
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+
+#
+# Watchdog Device Drivers
+#
+CONFIG_SOFT_WATCHDOG=m
+# CONFIG_ARM_SP805_WATCHDOG is not set
+# CONFIG_DW_WATCHDOG is not set
+# CONFIG_MAX63XX_WATCHDOG is not set
+CONFIG_BCM2708_WDT=m
+
+#
+# USB-based Watchdog Cards
+#
+CONFIG_USBPCWATCHDOG=m
+CONFIG_SSB_POSSIBLE=y
+
+#
+# Sonics Silicon Backplane
+#
+CONFIG_SSB=m
+CONFIG_SSB_BLOCKIO=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+# CONFIG_SSB_SILENT is not set
+# CONFIG_SSB_DEBUG is not set
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_BLOCKIO=y
+# CONFIG_BCMA_DEBUG is not set
+
+#
+# Multifunction device drivers
+#
+# CONFIG_MFD_CORE is not set
+# CONFIG_MFD_SM501 is not set
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HTC_PASIC3 is not set
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
+# CONFIG_MFD_TPS65912_SPI is not set
+# CONFIG_MFD_TMIO is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_MFD_WM8400 is not set
+# CONFIG_MFD_WM831X_SPI is not set
+# CONFIG_MFD_PCF50633 is not set
+# CONFIG_MFD_MC13XXX is not set
+# CONFIG_ABX500_CORE is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_MFD_WL1273_CORE is not set
+# CONFIG_REGULATOR is not set
+CONFIG_MEDIA_SUPPORT=m
+
+#
+# Multimedia core support
+#
+# CONFIG_MEDIA_CONTROLLER is not set
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
+CONFIG_VIDEO_MEDIA=m
+
+#
+# Multimedia drivers
+#
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_RC_LOOPBACK=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_TDA18218=m
+CONFIG_MEDIA_TUNER_TDA18212=m
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEOBUF2_CORE=m
+CONFIG_VIDEOBUF2_MEMOPS=m
+CONFIG_VIDEOBUF2_DMA_CONTIG=m
+CONFIG_VIDEOBUF2_VMALLOC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+# CONFIG_VIDEO_ADV_DEBUG is not set
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
+
+#
+# Encoders, decoders, sensors and other helper chips
+#
+
+#
+# Audio decoders, processors and mixers
+#
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+CONFIG_VIDEO_MSP3400=m
+# CONFIG_VIDEO_CS5345 is not set
+CONFIG_VIDEO_CS53L32A=m
+# CONFIG_VIDEO_TLV320AIC23B is not set
+CONFIG_VIDEO_WM8775=m
+# CONFIG_VIDEO_WM8739 is not set
+# CONFIG_VIDEO_VP27SMPX is not set
+
+#
+# RDS decoders
+#
+# CONFIG_VIDEO_SAA6588 is not set
+
+#
+# Video decoders
+#
+CONFIG_VIDEO_ADV7180=m
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+CONFIG_VIDEO_SAA711X=m
+# CONFIG_VIDEO_SAA7191 is not set
+# CONFIG_VIDEO_TVP514X is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+
+#
+# Video and audio decoders
+#
+# CONFIG_VIDEO_SAA717X is not set
+CONFIG_VIDEO_CX25840=m
+
+#
+# MPEG video encoders
+#
+CONFIG_VIDEO_CX2341X=m
+
+#
+# Video encoders
+#
+# CONFIG_VIDEO_SAA7127 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_TCM825X is not set
+CONFIG_VIDEO_SR030PC30=m
+
+#
+# Flash devices
+#
+
+#
+# Video improvement chips
+#
+# CONFIG_VIDEO_UPD64031A is not set
+# CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_VIVI is not set
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_TIMBERDALE=m
+CONFIG_VIDEO_AU0828=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_IMX074=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_OV2640=m
+CONFIG_SOC_CAMERA_OV5642=m
+CONFIG_SOC_CAMERA_OV6650=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_OV9740=m
+CONFIG_VIDEO_SH_MOBILE_CSI2=m
+CONFIG_VIDEO_SH_MOBILE_CEU=m
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_GSPCA=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_GL860=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_KINECT=m
+CONFIG_USB_GSPCA_KONICA=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_NW80X=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SE401=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SPCA1528=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_SQ930X=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TOPRO=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_VICAM=m
+CONFIG_USB_GSPCA_XIRLINK_CIT=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_VIDEO_PVRUSB2=m
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_PVRUSB2_DVB=y
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_EM28XX_RC=y
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_RC=y
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_USB_ET61X251=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_ZR364XX=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_S2255=m
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
+# CONFIG_RADIO_ADAPTERS is not set
+CONFIG_DVB_MAX_ADAPTERS=8
+# CONFIG_DVB_DYNAMIC_MINORS is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+CONFIG_TTPCI_EEPROM=m
+
+#
+# Supported USB Adapters
+#
+CONFIG_DVB_USB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_EC168=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_LME2510=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_IT913X=m
+CONFIG_DVB_USB_MXL111SF=m
+CONFIG_SMS_SIANO_MDTV=m
+
+#
+# Siano module components
+#
+CONFIG_SMS_USB_DRV=m
+CONFIG_SMS_SDIO_DRV=m
+
+#
+# Supported FlexCopII (B2C2) Adapters
+#
+CONFIG_DVB_B2C2_FLEXCOP=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+
+#
+# Supported DVB Frontends
+#
+# CONFIG_DVB_FE_CUSTOMISE is not set
+
+#
+# Multistandard (satellite) frontends
+#
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110x=m
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+CONFIG_DVB_DRXK=m
+CONFIG_DVB_TDA18271C2DD=m
+
+#
+# DVB-S (satellite) frontends
+#
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_TDA10071=m
+
+#
+# DVB-T (terrestrial) frontends
+#
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_DRXD=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_EC100=m
+CONFIG_DVB_CXD2820R=m
+
+#
+# DVB-C (cable) frontends
+#
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_STV0297=m
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_S5H1411=m
+
+#
+# ISDB-T (terrestrial) frontends
+#
+CONFIG_DVB_S921=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_MB86A20S=m
+
+#
+# Digital terrestrial only tuners/PLL
+#
+CONFIG_DVB_PLL=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+
+#
+# SEC control devices for DVB-S
+#
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_LNBP22=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_A8293=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_IX2505V=m
+CONFIG_DVB_IT913X_FE=m
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
+
+#
+# Graphics support
+#
+# CONFIG_DRM is not set
+# CONFIG_VGASTATE is not set
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+CONFIG_FB=y
+# CONFIG_FIRMWARE_EDID is not set
+# CONFIG_FB_DDC is not set
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_SYS_FILLRECT is not set
+# CONFIG_FB_SYS_COPYAREA is not set
+# CONFIG_FB_SYS_IMAGEBLIT is not set
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+# CONFIG_FB_SYS_FOPS is not set
+# CONFIG_FB_WMT_GE_ROPS is not set
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_MODE_HELPERS is not set
+# CONFIG_FB_TILEBLITTING is not set
+
+#
+# Frame buffer hardware drivers
+#
+CONFIG_FB_BCM2708=y
+# CONFIG_FB_ARMCLCD is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FB_S1D13XXX is not set
+# CONFIG_FB_SMSCUFX is not set
+# CONFIG_FB_UDL is not set
+# CONFIG_FB_VIRTUAL is not set
+# CONFIG_FB_METRONOME is not set
+# CONFIG_FB_BROADSHEET is not set
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_LCD_CLASS_DEVICE=m
+# CONFIG_LCD_L4F00242T03 is not set
+# CONFIG_LCD_LMS283GF05 is not set
+# CONFIG_LCD_LTV350QV is not set
+# CONFIG_LCD_TDO24M is not set
+# CONFIG_LCD_VGG2432A4 is not set
+# CONFIG_LCD_PLATFORM is not set
+# CONFIG_LCD_S6E63M0 is not set
+# CONFIG_LCD_LD9040 is not set
+# CONFIG_LCD_AMS369FG06 is not set
+CONFIG_BACKLIGHT_CLASS_DEVICE=m
+CONFIG_BACKLIGHT_GENERIC=m
+# CONFIG_BACKLIGHT_ADP8860 is not set
+# CONFIG_BACKLIGHT_ADP8870 is not set
+
+#
+# Display device support
+#
+# CONFIG_DISPLAY_SUPPORT is not set
+
+#
+# Console display driver support
+#
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x8=y
+CONFIG_FONT_8x16=y
+CONFIG_LOGO=y
+# CONFIG_LOGO_LINUX_MONO is not set
+# CONFIG_LOGO_LINUX_VGA16 is not set
+CONFIG_LOGO_LINUX_CLUT224=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+CONFIG_SND=m
+CONFIG_SND_TIMER=m
+CONFIG_SND_PCM=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_SEQUENCER_OSS=y
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+# CONFIG_SND_DYNAMIC_MINORS is not set
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_VERBOSE_PROCFS=y
+# CONFIG_SND_VERBOSE_PRINTK is not set
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_ARM=y
+# CONFIG_SND_ARMAACI is not set
+CONFIG_SND_BCM2835=m
+CONFIG_SND_SPI=y
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_UA101=m
+CONFIG_SND_USB_CAIAQ=m
+# CONFIG_SND_USB_CAIAQ_INPUT is not set
+CONFIG_SND_USB_6FIRE=m
+# CONFIG_SND_SOC is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_HID_SUPPORT=y
+CONFIG_HID=y
+# CONFIG_HIDRAW is not set
+
+#
+# USB Input Devices
+#
+CONFIG_USB_HID=y
+CONFIG_HID_PID=y
+CONFIG_USB_HIDDEV=y
+
+#
+# Special HID drivers
+#
+CONFIG_HID_A4TECH=m
+CONFIG_HID_ACRUX=m
+# CONFIG_HID_ACRUX_FF is not set
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+# CONFIG_HID_PRODIKEYS is not set
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+# CONFIG_DRAGONRISE_FF is not set
+CONFIG_HID_EMS_FF=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_HOLTEK=m
+# CONFIG_HOLTEK_FF is not set
+CONFIG_HID_KEYTOUCH=m
+CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+# CONFIG_LOGITECH_FF is not set
+# CONFIG_LOGIRUMBLEPAD2_FF is not set
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+# CONFIG_PANTHERLORD_FF is not set
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+# CONFIG_HID_PICOLCD_FB is not set
+# CONFIG_HID_PICOLCD_BACKLIGHT is not set
+# CONFIG_HID_PICOLCD_LCD is not set
+# CONFIG_HID_PICOLCD_LEDS is not set
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+# CONFIG_HID_ROCCAT_ARVO is not set
+# CONFIG_HID_ROCCAT_KONE is not set
+# CONFIG_HID_ROCCAT_KONEPLUS is not set
+# CONFIG_HID_ROCCAT_KOVAPLUS is not set
+# CONFIG_HID_ROCCAT_PYRA is not set
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_GREENASIA=m
+# CONFIG_GREENASIA_FF is not set
+CONFIG_HID_SMARTJOYPLUS=m
+# CONFIG_SMARTJOYPLUS_FF is not set
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_THRUSTMASTER=m
+# CONFIG_THRUSTMASTER_FF is not set
+CONFIG_HID_ZEROPLUS=m
+# CONFIG_ZEROPLUS_FF is not set
+CONFIG_HID_ZYDACRON=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_ARCH_HAS_HCD=y
+# CONFIG_USB_ARCH_HAS_OHCI is not set
+# CONFIG_USB_ARCH_HAS_EHCI is not set
+# CONFIG_USB_ARCH_HAS_XHCI is not set
+CONFIG_USB=y
+# CONFIG_USB_DEBUG is not set
+CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
+
+#
+# Miscellaneous USB options
+#
+CONFIG_USB_DEVICEFS=y
+CONFIG_USB_DEVICE_CLASS=y
+CONFIG_USB_DYNAMIC_MINORS=y
+CONFIG_USB_SUSPEND=y
+# CONFIG_USB_OTG is not set
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+# CONFIG_USB_DWC3 is not set
+# CONFIG_USB_MON is not set
+# CONFIG_USB_WUSB is not set
+# CONFIG_USB_WUSB_CBAF is not set
+
+#
+# USB Host Controller Drivers
+#
+# CONFIG_USB_C67X00_HCD is not set
+# CONFIG_USB_OXU210HP_HCD is not set
+# CONFIG_USB_ISP116X_HCD is not set
+# CONFIG_USB_ISP1760_HCD is not set
+# CONFIG_USB_ISP1362_HCD is not set
+# CONFIG_USB_U132_HCD is not set
+# CONFIG_USB_SL811_HCD is not set
+# CONFIG_USB_R8A66597_HCD is not set
+# CONFIG_USB_HWA_HCD is not set
+CONFIG_USB_DWCOTG=y
+
+#
+# USB Device Class drivers
+#
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+# CONFIG_USB_WDM is not set
+# CONFIG_USB_TMC is not set
+
+#
+# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
+#
+
+#
+# also be needed; see USB_STORAGE Help for more info
+#
+CONFIG_USB_STORAGE=y
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
+CONFIG_USB_STORAGE_DATAFAB=m
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+CONFIG_USB_UAS=y
+CONFIG_USB_LIBUSUAL=y
+
+#
+# USB Imaging devices
+#
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+
+#
+# USB port drivers
+#
+CONFIG_USB_SERIAL=m
+CONFIG_USB_EZUSB=y
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
+CONFIG_USB_SERIAL_DEBUG=m
+
+#
+# USB Miscellaneous drivers
+#
+CONFIG_USB_EMI62=m
+CONFIG_USB_EMI26=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_LEGOTOWER=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LED=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_LD=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_TEST=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_YUREX=m
+CONFIG_USB_ATM=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_XUSBATM=m
+# CONFIG_USB_GADGET is not set
+
+#
+# OTG and related infrastructure
+#
+# CONFIG_USB_GPIO_VBUS is not set
+# CONFIG_USB_ULPI is not set
+# CONFIG_NOP_USB_XCEIV is not set
+CONFIG_MMC=y
+# CONFIG_MMC_DEBUG is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
+
+#
+# MMC/SD/SDIO Card Drivers
+#
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_BLOCK_MINORS=8
+CONFIG_MMC_BLOCK_BOUNCE=y
+# CONFIG_SDIO_UART is not set
+# CONFIG_MMC_TEST is not set
+
+#
+# MMC/SD/SDIO Host Controller Drivers
+#
+# CONFIG_MMC_ARMMMCI is not set
+CONFIG_MMC_SDHCI=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_PLTFM=y
+# CONFIG_MMC_SDHCI_PXAV3 is not set
+# CONFIG_MMC_SDHCI_PXAV2 is not set
+CONFIG_MMC_SDHCI_BCM2708=y
+CONFIG_MMC_SDHCI_BCM2708_DMA=y
+# CONFIG_MMC_BCM2708 is not set
+# CONFIG_MMC_SPI is not set
+# CONFIG_MMC_DW is not set
+# CONFIG_MMC_VUB300 is not set
+# CONFIG_MMC_USHC is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_NEW_LEDS=y
+CONFIG_LEDS_CLASS=y
+
+#
+# LED drivers
+#
+# CONFIG_LEDS_LM3530 is not set
+# CONFIG_LEDS_PCA9532 is not set
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_LP3944 is not set
+# CONFIG_LEDS_LP5521 is not set
+# CONFIG_LEDS_LP5523 is not set
+# CONFIG_LEDS_PCA955X is not set
+# CONFIG_LEDS_DAC124S085 is not set
+# CONFIG_LEDS_BD2802 is not set
+# CONFIG_LEDS_LT3593 is not set
+# CONFIG_LEDS_RENESAS_TPU is not set
+CONFIG_LEDS_TRIGGERS=y
+
+#
+# LED Triggers
+#
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+
+#
+# iptables trigger is under Netfilter config (LED target)
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_HCTOSYS is not set
+# CONFIG_RTC_DEBUG is not set
+
+#
+# RTC interfaces
+#
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_DEV=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_RTC_DRV_TEST is not set
+
+#
+# I2C RTC drivers
+#
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
+
+#
+# SPI RTC drivers
+#
+CONFIG_RTC_DRV_M41T93=m
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_PCF2123=m
+
+#
+# Platform RTC drivers
+#
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_V3020=m
+
+#
+# on-CPU RTC drivers
+#
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PL031=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+
+#
+# DMA Devices
+#
+CONFIG_AMBA_PL08X=y
+CONFIG_DW_DMAC=m
+CONFIG_TIMB_DMA=m
+CONFIG_PL330_DMA=m
+CONFIG_DMA_ENGINE=y
+
+#
+# DMA Clients
+#
+CONFIG_NET_DMA=y
+CONFIG_ASYNC_TX_DMA=y
+# CONFIG_DMATEST is not set
+# CONFIG_AUXDISPLAY is not set
+CONFIG_UIO=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+
+#
+# Virtio drivers
+#
+# CONFIG_VIRTIO_BALLOON is not set
+# CONFIG_VIRTIO_MMIO is not set
+# CONFIG_STAGING is not set
+CONFIG_CLKDEV_LOOKUP=y
+
+#
+# Hardware Spinlock drivers
+#
+# CONFIG_IOMMU_SUPPORT is not set
+# CONFIG_VIRT_DRIVERS is not set
+# CONFIG_PM_DEVFREQ is not set
+
+#
+# File systems
+#
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_FS=y
+# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
+CONFIG_EXT3_FS_XATTR=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_JBD=y
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
+CONFIG_REISERFS_FS=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_PROC_INFO=y
+CONFIG_REISERFS_FS_XATTR=y
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_STATISTICS=y
+CONFIG_XFS_FS=m
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+# CONFIG_XFS_RT is not set
+# CONFIG_XFS_DEBUG is not set
+# CONFIG_GFS2_FS is not set
+# CONFIG_BTRFS_FS is not set
+# CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
+CONFIG_FILE_LOCKING=y
+CONFIG_FSNOTIFY=y
+CONFIG_DNOTIFY=y
+CONFIG_INOTIFY_USER=y
+# CONFIG_FANOTIFY is not set
+CONFIG_QUOTA=y
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_TREE=m
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QUOTACTL=y
+CONFIG_AUTOFS4_FS=m
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+
+#
+# Caches
+#
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+
+#
+# CD-ROM/DVD Filesystems
+#
+CONFIG_ISO9660_FS=m
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+
+#
+# DOS/FAT/NT Filesystems
+#
+CONFIG_FAT_FS=m
+# CONFIG_MSDOS_FS is not set
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=850
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+# CONFIG_NTFS_FS is not set
+
+#
+# Pseudo filesystems
+#
+CONFIG_PROC_FS=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_SYSFS=y
+CONFIG_TMPFS=y
+# CONFIG_TMPFS_POSIX_ACL is not set
+# CONFIG_TMPFS_XATTR is not set
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_CONFIGFS_FS is not set
+CONFIG_MISC_FILESYSTEMS=y
+# CONFIG_ADFS_FS is not set
+# CONFIG_AFFS_FS is not set
+CONFIG_ECRYPT_FS=m
+# CONFIG_HFS_FS is not set
+# CONFIG_HFSPLUS_FS is not set
+# CONFIG_BEFS_FS is not set
+# CONFIG_BFS_FS is not set
+# CONFIG_EFS_FS is not set
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+# CONFIG_JFFS2_SUMMARY is not set
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFFS2_LZO is not set
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_CMODE_NONE is not set
+CONFIG_JFFS2_CMODE_PRIORITY=y
+# CONFIG_JFFS2_CMODE_SIZE is not set
+# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
+# CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
+# CONFIG_CRAMFS is not set
+# CONFIG_SQUASHFS is not set
+# CONFIG_VXFS_FS is not set
+# CONFIG_MINIX_FS is not set
+# CONFIG_OMFS_FS is not set
+# CONFIG_HPFS_FS is not set
+# CONFIG_QNX4FS_FS is not set
+# CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
+# CONFIG_SYSV_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NFS_FS=m
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+# CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_LOCKD=m
+CONFIG_LOCKD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_RPCSEC_GSS_KRB5=m
+# CONFIG_CEPH_FS is not set
+CONFIG_CIFS=m
+CONFIG_CIFS_STATS=y
+CONFIG_CIFS_STATS2=y
+# CONFIG_CIFS_WEAK_PW_HASH is not set
+# CONFIG_CIFS_UPCALL is not set
+CONFIG_CIFS_XATTR=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_DEBUG2 is not set
+# CONFIG_CIFS_DFS_UPCALL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
+# CONFIG_NCP_FS is not set
+# CONFIG_CODA_FS is not set
+# CONFIG_AFS_FS is not set
+
+#
+# Partition Types
+#
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_OSF_PARTITION is not set
+# CONFIG_AMIGA_PARTITION is not set
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MSDOS_PARTITION=y
+CONFIG_BSD_DISKLABEL=y
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_LDM_PARTITION=y
+# CONFIG_LDM_DEBUG is not set
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_SUN_PARTITION is not set
+# CONFIG_KARMA_PARTITION is not set
+CONFIG_EFI_PARTITION=y
+# CONFIG_SYSV68_PARTITION is not set
+CONFIG_NLS=y
+CONFIG_NLS_DEFAULT="cp850"
+# CONFIG_NLS_CODEPAGE_437 is not set
+# CONFIG_NLS_CODEPAGE_737 is not set
+# CONFIG_NLS_CODEPAGE_775 is not set
+CONFIG_NLS_CODEPAGE_850=y
+# CONFIG_NLS_CODEPAGE_852 is not set
+# CONFIG_NLS_CODEPAGE_855 is not set
+# CONFIG_NLS_CODEPAGE_857 is not set
+# CONFIG_NLS_CODEPAGE_860 is not set
+# CONFIG_NLS_CODEPAGE_861 is not set
+# CONFIG_NLS_CODEPAGE_862 is not set
+# CONFIG_NLS_CODEPAGE_863 is not set
+# CONFIG_NLS_CODEPAGE_864 is not set
+# CONFIG_NLS_CODEPAGE_865 is not set
+# CONFIG_NLS_CODEPAGE_866 is not set
+# CONFIG_NLS_CODEPAGE_869 is not set
+# CONFIG_NLS_CODEPAGE_936 is not set
+# CONFIG_NLS_CODEPAGE_950 is not set
+# CONFIG_NLS_CODEPAGE_932 is not set
+# CONFIG_NLS_CODEPAGE_949 is not set
+# CONFIG_NLS_CODEPAGE_874 is not set
+# CONFIG_NLS_ISO8859_8 is not set
+# CONFIG_NLS_CODEPAGE_1250 is not set
+# CONFIG_NLS_CODEPAGE_1251 is not set
+# CONFIG_NLS_ASCII is not set
+CONFIG_NLS_ISO8859_1=y
+# CONFIG_NLS_ISO8859_2 is not set
+# CONFIG_NLS_ISO8859_3 is not set
+# CONFIG_NLS_ISO8859_4 is not set
+# CONFIG_NLS_ISO8859_5 is not set
+# CONFIG_NLS_ISO8859_6 is not set
+# CONFIG_NLS_ISO8859_7 is not set
+# CONFIG_NLS_ISO8859_9 is not set
+# CONFIG_NLS_ISO8859_13 is not set
+# CONFIG_NLS_ISO8859_14 is not set
+# CONFIG_NLS_ISO8859_15 is not set
+# CONFIG_NLS_KOI8_R is not set
+# CONFIG_NLS_KOI8_U is not set
+CONFIG_NLS_UTF8=y
+
+#
+# Kernel hacking
+#
+# CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+CONFIG_ENABLE_MUST_CHECK=y
+CONFIG_FRAME_WARN=1024
+# CONFIG_MAGIC_SYSRQ is not set
+CONFIG_STRIP_ASM_SYMS=y
+# CONFIG_UNUSED_SYMBOLS is not set
+# CONFIG_DEBUG_FS is not set
+# CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+CONFIG_SCHED_DEBUG=y
+# CONFIG_SCHEDSTATS is not set
+CONFIG_TIMER_STATS=y
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_RT_MUTEX_TESTER is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
+# CONFIG_LOCK_STAT is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_KOBJECT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_INFO is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_CREDENTIALS is not set
+CONFIG_FRAME_POINTER=y
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_BACKTRACE_SELF_TEST is not set
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_FAULT_INJECTION is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_SYSCTL_SYSCALL_CHECK is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_FTRACE is not set
+# CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
+# CONFIG_SAMPLES is not set
+CONFIG_HAVE_ARCH_KGDB=y
+# CONFIG_KGDB is not set
+# CONFIG_TEST_KSTRTOX is not set
+# CONFIG_STRICT_DEVMEM is not set
+# CONFIG_ARM_UNWIND is not set
+# CONFIG_DEBUG_USER is not set
+# CONFIG_DEBUG_LL is not set
+# CONFIG_OC_ETM is not set
+
+#
+# Security options
+#
+CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
+# CONFIG_SECURITY is not set
+# CONFIG_SECURITYFS is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
+CONFIG_XOR_BLOCKS=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_XOR=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_CRYPTO=y
+
+#
+# Crypto core or helper
+#
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_BLKCIPHER=m
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
+CONFIG_CRYPTO_GF128MUL=m
+# CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_AUTHENC=m
+# CONFIG_CRYPTO_TEST is not set
+
+#
+# Authenticated Encryption with Associated Data
+#
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_SEQIV=m
+
+#
+# Block modes
+#
+CONFIG_CRYPTO_CBC=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_ECB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=m
+
+#
+# Hash modes
+#
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+
+#
+# Digest
+#
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+
+#
+# Ciphers
+#
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+
+#
+# Compression
+#
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYPTO_LZO=m
+
+#
+# Random Number Generation
+#
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_HW=y
+# CONFIG_BINARY_PRINTF is not set
+
+#
+# Library routines
+#
+CONFIG_RAID6_PQ=m
+CONFIG_BITREVERSE=y
+CONFIG_CRC_CCITT=m
+CONFIG_CRC16=y
+CONFIG_CRC_T10DIF=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
+CONFIG_AUDIT_GENERIC=y
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_DMA=y
+CONFIG_NLATTR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 2c08a1bd29af2250398109cc2ff8fd36e1bd812c..4295eb412a0aa83e1e2cdf88a542f33da6f90c59 100644 (file)
@@ -1,15 +1,14 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.41-ipfire
-# Tue May 31 14:26:02 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 3.2.20 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 # CONFIG_X86_64 is not set
 CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_CLOCKSOURCE_WATCHDOG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_ZONE_DMA32 is not set
@@ -44,34 +45,35 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
 CONFIG_X86_32_LAZY_GS=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 CONFIG_KTIME_SCALAR=y
 CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
 #
 CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -79,52 +81,73 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT is not set
 CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
 CONFIG_RCU_FANOUT=32
 # CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -133,35 +156,46 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 
 #
 # Kernel Performance Events And Counters
 #
-# CONFIG_PERF_EVENTS is not set
+CONFIG_PERF_EVENTS=y
 # CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -175,22 +209,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
@@ -200,19 +263,20 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
 CONFIG_SMP=y
-CONFIG_SPARSE_IRQ=y
 CONFIG_X86_MPPARSE=y
 # CONFIG_X86_BIGSMP is not set
 CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
+# CONFIG_X86_WANT_INTEL_MID is not set
 # CONFIG_X86_RDC321X is not set
 # CONFIG_X86_32_NON_STANDARD is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_32_IRIS is not set
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
-CONFIG_VMI=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
+# CONFIG_XEN_PRIVILEGED_GUEST is not set
 CONFIG_KVM_CLOCK=y
 CONFIG_KVM_GUEST=y
 CONFIG_LGUEST_GUEST=y
@@ -220,6 +284,7 @@ CONFIG_PARAVIRT=y
 CONFIG_PARAVIRT_SPINLOCKS=y
 CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -238,21 +303,20 @@ CONFIG_M586TSC=y
 # CONFIG_MEFFICEON is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
 # CONFIG_MGEODEGX1 is not set
 # CONFIG_MGEODE_LX is not set
 # CONFIG_MCYRIXIII is not set
 # CONFIG_MVIAC3_2 is not set
 # CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
 # CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
 CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=64
-CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
+CONFIG_X86_L1_CACHE_SHIFT=6
 CONFIG_X86_XADD=y
 CONFIG_X86_PPRO_FENCE=y
 CONFIG_X86_F00F_BUG=y
@@ -274,7 +338,6 @@ CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
 # CONFIG_IOMMU_HELPER is not set
-CONFIG_IOMMU_API=y
 CONFIG_NR_CPUS=8
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
@@ -308,37 +371,41 @@ CONFIG_HIGHMEM4G=y
 CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
 CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
 # CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_FLATMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 # CONFIG_PHYS_ADDR_T_64BIT is not set
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_MEMORY_FAILURE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CLEANCACHE is not set
 # CONFIG_HIGHPTE is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_RESERVE_LOW=64
 CONFIG_MATH_EMULATION=y
 CONFIG_MTRR=y
 # CONFIG_MTRR_SANITIZER is not set
-# CONFIG_X86_PAT is not set
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
 # CONFIG_EFI is not set
 CONFIG_SECCOMP=y
 # CONFIG_CC_STACKPROTECTOR is not set
@@ -361,20 +428,19 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 #
 # Power management and ACPI options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
 # CONFIG_HIBERNATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_POWER_METER=m
-CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_EC_DEBUGFS=m
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
 CONFIG_ACPI_BATTERY=m
@@ -383,6 +449,7 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
@@ -394,6 +461,8 @@ CONFIG_ACPI_PCI_SLOT=m
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
 CONFIG_ACPI_SBS=m
+# CONFIG_ACPI_HED is not set
+# CONFIG_ACPI_APEI is not set
 # CONFIG_SFI is not set
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=m
@@ -408,11 +477,9 @@ CONFIG_APM_CPU_IDLE=y
 #
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -423,8 +490,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 
 #
-# CPUFreq processor drivers
+# x86 CPU frequency scaling drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
@@ -449,6 +517,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
 
 #
 # Bus options (PCI etc.)
@@ -457,28 +526,30 @@ CONFIG_PCI=y
 # CONFIG_PCI_GOBIOS is not set
 # CONFIG_PCI_GOMMCONFIG is not set
 # CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
 CONFIG_PCI_GOANY=y
 CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
 CONFIG_PCI_DOMAINS=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_PCIEAER=y
 # CONFIG_PCIE_ECRC is not set
 # CONFIG_PCIEAER_INJECT is not set
 CONFIG_PCIEASPM=y
 # CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
 CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 CONFIG_EISA=y
@@ -492,12 +563,11 @@ CONFIG_MCA_LEGACY=y
 CONFIG_SCx200=m
 CONFIG_SCx200HR_TIMER=m
 # CONFIG_OLPC is not set
-CONFIG_K8_NB=y
+CONFIG_ALIX=y
+CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -514,8 +584,9 @@ CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
 CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 # CONFIG_HOTPLUG_PCI is not set
+# CONFIG_RAPIDIO is not set
 
 #
 # Executable file formats / Emulations
@@ -526,13 +597,13 @@ CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -545,17 +616,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -584,11 +656,6 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
@@ -607,12 +674,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -625,9 +694,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -636,7 +706,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -644,10 +716,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -655,28 +741,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -685,7 +781,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -696,7 +791,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -707,8 +802,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -727,6 +824,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -736,7 +834,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -774,6 +871,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -823,9 +921,12 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_V3 is not set
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -848,6 +949,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+# CONFIG_IEEE802154_6LOWPAN is not set
 CONFIG_NET_SCHED=y
 
 #
@@ -860,6 +962,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -867,6 +970,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -876,7 +982,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -901,9 +1006,15 @@ CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
 # CONFIG_NET_ACT_SIMP is not set
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+# CONFIG_BATMAN_ADV is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
 
 #
 # Network testing
@@ -959,8 +1070,8 @@ CONFIG_VLSI_FIR=m
 CONFIG_VIA_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -977,6 +1088,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -988,19 +1100,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -1010,9 +1128,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -1021,6 +1139,9 @@ CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+# CONFIG_CEPH_LIB is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -1039,12 +1160,11 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 # CONFIG_SYS_HYPERVISOR is not set
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 CONFIG_MTD_AR7_PARTS=m
 
@@ -1060,7 +1180,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -1106,6 +1228,9 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 # CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -1114,18 +1239,10 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
 CONFIG_PARPORT=m
 CONFIG_PARPORT_PC=m
@@ -1158,7 +1275,9 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
@@ -1171,16 +1290,32 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 CONFIG_ATA_OVER_ETH=m
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_RBD is not set
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
 CONFIG_HP_ILO=m
+CONFIG_APDS9802ALS=m
 CONFIG_ISL29003=m
+CONFIG_ISL29020=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_BH1780=m
+CONFIG_SENSORS_BH1770=m
+CONFIG_SENSORS_APDS990X=m
+CONFIG_HMC6352=m
+CONFIG_DS1682=m
+CONFIG_VMWARE_BALLOON=m
+CONFIG_BMP085=m
+CONFIG_PCH_PHUB=m
+CONFIG_USB_SWITCH_FSA9480=m
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1194,13 +1329,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1234,15 +1384,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
@@ -1268,11 +1422,12 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
 CONFIG_MEGARAID_NEWGEN=y
 CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
@@ -1284,6 +1439,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
@@ -1297,6 +1453,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_FUTURE_DOMAIN=m
 CONFIG_SCSI_FD_MCS=m
 CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_GENERIC_NCR5380=m
 CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
 CONFIG_SCSI_GENERIC_NCR53C400=y
@@ -1344,6 +1501,7 @@ CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1366,30 +1524,48 @@ CONFIG_ATA=m
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
@@ -1397,42 +1573,53 @@ CONFIG_PATA_CS5535=m
 CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_LEGACY=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_QDI=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
 CONFIG_PATA_WINBOND_VLB=m
-CONFIG_PATA_SCH=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1441,15 +1628,19 @@ CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
 # CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1457,6 +1648,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1468,27 +1661,18 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+# CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 # CONFIG_MACINTOSH_DRIVERS is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1496,58 +1680,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
 CONFIG_EL3=m
 CONFIG_3C515=m
-CONFIG_ELMC=m
-CONFIG_ELMC_II=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
 CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRAMCA=m
-CONFIG_ULTRA=m
-CONFIG_ULTRA32=m
-CONFIG_SMC9194=m
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
 CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1560,170 +1800,197 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
 CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_IBM=y
+# CONFIG_IBM_EMAC_ZMII is not set
+# CONFIG_IBM_EMAC_RGMII is not set
+# CONFIG_IBM_EMAC_TAH is not set
+# CONFIG_IBM_EMAC_EMAC4 is not set
+# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_APRICOT=m
 CONFIG_EEXPRESS=m
 CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
 CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
 CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-CONFIG_NE2_MCA=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_IBMLANA=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
 CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_ES3210=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
 CONFIG_LNE390=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
+CONFIG_NE2000=m
+CONFIG_NE2_MCA=m
 CONFIG_NE2K_PCI=m
 CONFIG_NE3210=m
-CONFIG_ES3210=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1736,7 +2003,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1751,131 +2020,96 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
-CONFIG_WAN=y
-CONFIG_HOSTESS_SV11=m
-CONFIG_COSA=m
-CONFIG_LANMEDIA=m
-CONFIG_SEALEVEL_4021=m
-CONFIG_HDLC=m
-CONFIG_HDLC_RAW=m
-CONFIG_HDLC_RAW_ETH=m
-CONFIG_HDLC_CISCO=m
-CONFIG_HDLC_FR=m
-CONFIG_HDLC_PPP=m
-
-#
-# X.25/LAPB support is disabled
-#
-CONFIG_PCI200SYN=m
-CONFIG_WANXL=m
-# CONFIG_WANXL_BUILD_FIRMWARE is not set
-CONFIG_PC300TOO=m
-CONFIG_N2=m
-CONFIG_C101=m
-CONFIG_FARSYNC=m
-CONFIG_DSCC4=m
-CONFIG_DSCC4_PCISYNC=y
-CONFIG_DSCC4_PCI_RST=y
-CONFIG_DLCI=m
-CONFIG_DLCI_MAX=8
-CONFIG_SDLA=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
-CONFIG_VMXNET3=m
-CONFIG_ISDN=y
-CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
 
 #
-# mISDN hardware drivers
+# Enable WiMAX (Networking options) to see the WiMAX drivers
 #
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
+CONFIG_WAN=y
+CONFIG_HOSTESS_SV11=m
+CONFIG_COSA=m
+CONFIG_LANMEDIA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_HDLC=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+
+#
+# X.25/LAPB support is disabled
+#
+CONFIG_PCI200SYN=m
+CONFIG_WANXL=m
+# CONFIG_WANXL_BUILD_FIRMWARE is not set
+CONFIG_PC300TOO=m
+CONFIG_N2=m
+CONFIG_C101=m
+CONFIG_FARSYNC=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_SDLA=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
+CONFIG_VMXNET3=m
+CONFIG_ISDN=y
+CONFIG_ISDN_I4L=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1966,16 +2200,11 @@ CONFIG_ISDN_DRV_ICN=m
 CONFIG_ISDN_DRV_PCBIT=m
 CONFIG_ISDN_DRV_SC=m
 CONFIG_ISDN_DRV_ACT2000=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -1998,10 +2227,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -2010,6 +2262,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -2027,11 +2280,19 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -2042,20 +2303,27 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_BMA150=m
 CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_APANEL=m
 # CONFIG_INPUT_WISTRON_BTNS is not set
 # CONFIG_INPUT_ATLAS_BTNS is not set
-CONFIG_INPUT_ATI_REMOTE=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
-CONFIG_INPUT_WINBOND_CIR=m
 CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
 
 #
 # Hardware I/O ports
@@ -2068,6 +2336,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -2076,11 +2346,17 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -2108,12 +2384,17 @@ CONFIG_SERIAL_8250_RSA=y
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
@@ -2150,7 +2431,6 @@ CONFIG_MWAVE=m
 CONFIG_SCx200_GPIO=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
-CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
 CONFIG_HPET=y
 CONFIG_HPET_MMAP=y
@@ -2158,11 +2438,21 @@ CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TCG_TPM is not set
 # CONFIG_TELCLOCK is not set
 CONFIG_DEVPORT=y
+# CONFIG_RAMOOPS is not set
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2198,40 +2488,35 @@ CONFIG_I2C_SCMI=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
 # CONFIG_I2C_TAOS_EVM is not set
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
 # CONFIG_SCx200_I2C is not set
 CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -2239,8 +2524,69 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+# CONFIG_DP83640_PHY is not set
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2250,27 +2596,39 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
 CONFIG_BATTERY_DS2782=m
+# CONFIG_BATTERY_BQ20Z75 is not set
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
 CONFIG_BATTERY_MAX17040=m
+# CONFIG_BATTERY_MAX17042 is not set
 CONFIG_CHARGER_PCF50633=m
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2288,13 +2646,17 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -2304,11 +2666,15 @@ CONFIG_SENSORS_FSCHMD=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2319,23 +2685,55 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2343,34 +2741,34 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_HDAPS=m
 CONFIG_SENSORS_APPLESMC=m
 
 #
 # ACPI drivers
 #
+CONFIG_SENSORS_ACPI_POWER=m
 CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CORE=y
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
 CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
@@ -2383,9 +2781,11 @@ CONFIG_ITCO_WDT=m
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
 CONFIG_SC1200_WDT=m
 CONFIG_SCx200_WDT=m
 CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
 CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_SBC7240_WDT=m
@@ -2434,74 +2834,115 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
 CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
 CONFIG_HTC_PASIC3=m
+# CONFIG_TPS6105X is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_TPS6507X is not set
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
+# CONFIG_ABX500_CORE is not set
+# CONFIG_MFD_CS5535 is not set
+# CONFIG_MFD_TIMBERDALE is not set
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_WL1273_CORE is not set
 # CONFIG_REGULATOR is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+# CONFIG_RC_ATI_REMOTE is not set
+# CONFIG_IR_ENE is not set
+# CONFIG_IR_IMON is not set
+# CONFIG_IR_MCEUSB is not set
+# CONFIG_IR_ITE_CIR is not set
+# CONFIG_IR_FINTEK is not set
+# CONFIG_IR_NUVOTON is not set
+# CONFIG_IR_REDRAT3 is not set
+# CONFIG_IR_STREAMZAP is not set
+# CONFIG_IR_WINBOND_CIR is not set
+# CONFIG_RC_LOOPBACK is not set
 # CONFIG_MEDIA_ATTACH is not set
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2520,19 +2961,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2547,29 +2987,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_PMS is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIDEO_MEYE is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
 # CONFIG_VIDEO_SAA7164 is not set
 # CONFIG_VIDEO_CAFE_CCIC is not set
+# CONFIG_VIDEO_VIA_CAMERA is not set
 # CONFIG_SOC_CAMERA is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
@@ -2578,24 +3051,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_CADET is not set
 # CONFIG_RADIO_RTRACK is not set
 # CONFIG_RADIO_RTRACK2 is not set
 # CONFIG_RADIO_AZTECH is not set
 # CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
 # CONFIG_RADIO_SF16FMI is not set
 # CONFIG_RADIO_SF16FMR2 is not set
 # CONFIG_RADIO_TERRATEC is not set
@@ -2608,6 +3082,14 @@ CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2646,17 +3128,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
@@ -2673,20 +3214,24 @@ CONFIG_AGP_SWORKS=m
 CONFIG_AGP_VIA=m
 CONFIG_AGP_EFFICEON=m
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_VGA_SWITCHEROO is not set
 CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_KMS is not set
 CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2702,6 +3247,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2716,6 +3262,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 # CONFIG_FB_ARC is not set
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
@@ -2756,6 +3303,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 CONFIG_FB_SAVAGE=m
 CONFIG_FB_SAVAGE_I2C=y
 CONFIG_FB_SAVAGE_ACCEL=y
@@ -2763,6 +3311,8 @@ CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
 CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIA_X_COMPATIBILITY is not set
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2781,21 +3331,24 @@ CONFIG_FB_GEODE_GX1=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_FB_METRONOME=m
 # CONFIG_FB_MB862XX is not set
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_APPLE=m
 CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2814,7 +3367,7 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2829,6 +3382,7 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -2843,7 +3397,7 @@ CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
+CONFIG_SND_RAWMIDI_SEQ=m
 # CONFIG_SND_OPL3_LIB_SEQ is not set
 # CONFIG_SND_OPL4_LIB_SEQ is not set
 # CONFIG_SND_SBAWE_SEQ is not set
@@ -2851,6 +3405,7 @@ CONFIG_SND_DMA_SGBUF=y
 CONFIG_SND_DRIVERS=y
 # CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
 # CONFIG_SND_VIRMIDI is not set
 # CONFIG_SND_MTPAV is not set
 # CONFIG_SND_MTS64 is not set
@@ -2862,12 +3417,12 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_AD1816A is not set
 # CONFIG_SND_AD1848 is not set
 # CONFIG_SND_ALS100 is not set
+# CONFIG_SND_AZT1605 is not set
+# CONFIG_SND_AZT2316 is not set
 # CONFIG_SND_AZT2320 is not set
 # CONFIG_SND_CMI8330 is not set
 # CONFIG_SND_CS4231 is not set
 # CONFIG_SND_CS4236 is not set
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_ES968 is not set
 # CONFIG_SND_ES1688 is not set
 # CONFIG_SND_ES18XX is not set
 # CONFIG_SND_SC6000 is not set
@@ -2876,6 +3431,7 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_GUSMAX is not set
 # CONFIG_SND_INTERWAVE is not set
 # CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_JAZZ16 is not set
 # CONFIG_SND_OPL3SA2 is not set
 # CONFIG_SND_OPTI92X_AD1848 is not set
 # CONFIG_SND_OPTI92X_CS4231 is not set
@@ -2884,7 +3440,6 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_SB8 is not set
 # CONFIG_SND_SB16 is not set
 # CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SGALAXY is not set
 # CONFIG_SND_SSCAPE is not set
 # CONFIG_SND_WAVEFRONT is not set
 # CONFIG_SND_MSND_PINNACLE is not set
@@ -2894,6 +3449,7 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_ALS300 is not set
 # CONFIG_SND_ALS4000 is not set
 # CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ASIHPI is not set
 # CONFIG_SND_ATIIXP is not set
 # CONFIG_SND_ATIIXP_MODEM is not set
 # CONFIG_SND_AU8810 is not set
@@ -2934,12 +3490,12 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_HDA_INTEL is not set
 # CONFIG_SND_HDSP is not set
 # CONFIG_SND_HDSPM is not set
-# CONFIG_SND_HIFIER is not set
 # CONFIG_SND_ICE1712 is not set
 # CONFIG_SND_ICE1724 is not set
 # CONFIG_SND_INTEL8X0 is not set
 # CONFIG_SND_INTEL8X0M is not set
 # CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
 # CONFIG_SND_LX6464ES is not set
 # CONFIG_SND_MAESTRO3 is not set
 # CONFIG_SND_MIXART is not set
@@ -2959,9 +3515,14 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_YMFPCI is not set
 CONFIG_SND_USB=y
 # CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_UA101 is not set
 # CONFIG_SND_USB_USX2Y is not set
 # CONFIG_SND_USB_CAIAQ is not set
 # CONFIG_SND_USB_US122L is not set
+# CONFIG_SND_USB_6FIRE is not set
+CONFIG_SND_FIREWIRE=y
+# CONFIG_SND_FIREWIRE_SPEAKERS is not set
+# CONFIG_SND_ISIGHT is not set
 CONFIG_SND_PCMCIA=y
 # CONFIG_SND_VXPOCKET is not set
 # CONFIG_SND_PDAUDIOCF is not set
@@ -2982,29 +3543,59 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
 CONFIG_DRAGONRISE_FF=y
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+# CONFIG_HID_HOLTEK is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+# CONFIG_LOGIG940_FF is not set
+# CONFIG_LOGIWHEELS_FF is not set
+# CONFIG_HID_MAGICMOUSE is not set
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
 CONFIG_GREENASIA_FF=y
@@ -3014,13 +3605,18 @@ CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
 CONFIG_THRUSTMASTER_FF=y
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
 CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -3032,6 +3628,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -3043,30 +3641,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
 #
 # USB Device Class drivers
 #
@@ -3084,6 +3678,8 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_REALTEK_AUTOPM=y
 # CONFIG_USB_STORAGE_DATAFAB is not set
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
@@ -3095,6 +3691,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+# CONFIG_USB_UAS is not set
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3135,11 +3733,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -3151,9 +3751,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3166,7 +3770,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -3180,7 +3783,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3192,21 +3795,22 @@ CONFIG_USB_XUSBATM=m
 # OTG and related infrastructure
 #
 CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -3216,15 +3820,15 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3239,41 +3843,50 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_NET48XX=m
 CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_ALIX2=m
 CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 
 #
 # iptables trigger is under Netfilter config (LED target)
 #
-CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 # CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=m
+CONFIG_RTC_LIB=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+# CONFIG_RTC_DEBUG is not set
 
 #
 # RTC interfaces
@@ -3290,18 +3903,23 @@ CONFIG_RTC_DRV_TEST=m
 CONFIG_RTC_DRV_DS1307=m
 CONFIG_RTC_DRV_DS1374=m
 CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS3232=m
 CONFIG_RTC_DRV_MAX6900=m
 CONFIG_RTC_DRV_RS5C372=m
 CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_ISL12022=m
 CONFIG_RTC_DRV_X1205=m
 CONFIG_RTC_DRV_PCF8563=m
 CONFIG_RTC_DRV_PCF8583=m
 CONFIG_RTC_DRV_M41T80=m
 # CONFIG_RTC_DRV_M41T80_WDT is not set
+CONFIG_RTC_DRV_BQ32K=m
 CONFIG_RTC_DRV_S35390A=m
 CONFIG_RTC_DRV_FM3130=m
 CONFIG_RTC_DRV_RX8581=m
 CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_EM3027=m
+CONFIG_RTC_DRV_RV3029C2=m
 
 #
 # SPI RTC drivers
@@ -3319,23 +3937,25 @@ CONFIG_RTC_DRV_STK17TA8=m
 CONFIG_RTC_DRV_M48T86=m
 CONFIG_RTC_DRV_M48T35=m
 CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_MSM6242=m
 CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_RP5C01=m
 CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
 CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
 
 #
 # on-CPU RTC drivers
 #
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
-CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_MID_DMAC=m
 CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
 CONFIG_DMA_ENGINE=y
 
 #
@@ -3350,98 +3970,152 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
 
 #
-# TI VLYNQ
+# Virtio drivers
 #
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_RT2860 is not set
-# CONFIG_RT2870 is not set
-# CONFIG_RT3090 is not set
 # CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+# CONFIG_R8187SE is not set
+# CONFIG_RTL8192U is not set
 # CONFIG_RTL8192E is not set
+# CONFIG_R8712U is not set
+# CONFIG_RTS_PSTOR is not set
+# CONFIG_RTS5139 is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
-# CONFIG_DRM_RADEON_KMS is not set
+# CONFIG_DRM_NOUVEAU is not set
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-CONFIG_HYPERV=m
 CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
 CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_MOUSE=m
 # CONFIG_VME_BUS is not set
-
-#
-# RAR Register Driver
-#
-# CONFIG_RAR_REGISTER is not set
+# CONFIG_DX_SEP is not set
 # CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_ACPI_QUICKSTART is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_DRM_PSB is not set
+# CONFIG_INTEL_MEI is not set
+# CONFIG_STAGING_MEDIA is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
 CONFIG_FUJITSU_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP_DEBUG=y
 CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
 CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_PANASONIC_LAPTOP=m
 CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
 CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
 # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
 # CONFIG_THINKPAD_ACPI_DEBUG is not set
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
 CONFIG_INTEL_MENLOW=m
 CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
 CONFIG_ACPI_ASUS=m
 CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+
+#
+# DEVFREQ Drivers
+#
 
 #
 # Firmware Drivers
@@ -3451,32 +4125,25 @@ CONFIG_FIRMWARE_MEMMAP=y
 # CONFIG_DELL_RBU is not set
 # CONFIG_DCDBAS is not set
 CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
 
 #
 # File systems
 #
-CONFIG_EXT2_FS=m
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=m
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=m
+# CONFIG_EXT2_FS is not set
+# CONFIG_EXT3_FS is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_USE_FOR_EXT23=y
 CONFIG_EXT4_FS_XATTR=y
 CONFIG_EXT4_FS_POSIX_ACL=y
 CONFIG_EXT4_FS_SECURITY=y
 # CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=m
-CONFIG_JBD2=m
-CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
+CONFIG_JBD2=y
+CONFIG_FS_MBCACHE=y
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3488,29 +4155,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3556,6 +4223,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
@@ -3584,6 +4252,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3592,8 +4261,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3602,6 +4274,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3609,15 +4284,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3627,7 +4299,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3642,7 +4315,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3694,13 +4367,13 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3709,12 +4382,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3730,9 +4404,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3742,6 +4418,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
@@ -3749,10 +4426,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_FRAME_POINTER is not set
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -3765,27 +4444,29 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
 # CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_STRICT_DEVMEM is not set
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DEBUG_RODATA=y
 CONFIG_DEBUG_RODATA_TEST=y
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
 # CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_4KSTACKS is not set
 CONFIG_DOUBLEFAULT=y
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -3800,17 +4481,20 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 # CONFIG_INTEL_TXT is not set
-# CONFIG_IMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3824,7 +4508,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3835,11 +4518,15 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
@@ -3876,7 +4563,7 @@ CONFIG_CRYPTO_VMAC=m
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3894,9 +4581,11 @@ CONFIG_CRYPTO_WP512=m
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3923,6 +4612,9 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=m
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
@@ -3934,39 +4626,49 @@ CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_EVENTFD=y
 CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
 CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
-CONFIG_CRC16=m
+CONFIG_CRC16=y
 CONFIG_CRC_T10DIF=m
 CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -3975,4 +4677,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 4b23df337a261c302f4087c9c72862f8a76994f5..7186e730de28526e5cec47d4a8c6241759c68ea6 100644 (file)
@@ -1,15 +1,14 @@
 #
-# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.32.41-ipfire-pae
-# Sat May 31 15:00:00 2011
+# Automatically generated file; DO NOT EDIT.
+# Linux/i386 2.6.42.20 Kernel Configuration
 #
 # CONFIG_64BIT is not set
 CONFIG_X86_32=y
 # CONFIG_X86_64 is not set
 CONFIG_X86=y
+CONFIG_INSTRUCTION_DECODER=y
 CONFIG_OUTPUT_FORMAT="elf32-i386"
 CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
-CONFIG_GENERIC_TIME=y
 CONFIG_GENERIC_CMOS_UPDATE=y
 CONFIG_CLOCKSOURCE_WATCHDOG=y
 CONFIG_GENERIC_CLOCKEVENTS=y
@@ -19,10 +18,13 @@ CONFIG_STACKTRACE_SUPPORT=y
 CONFIG_HAVE_LATENCYTOP_SUPPORT=y
 CONFIG_MMU=y
 CONFIG_ZONE_DMA=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_SG_DMA_LENGTH=y
 CONFIG_GENERIC_ISA_DMA=y
 CONFIG_GENERIC_IOMAP=y
 CONFIG_GENERIC_BUG=y
 CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_GPIO=y
 CONFIG_ARCH_MAY_HAVE_PC_FDC=y
 # CONFIG_RWSEM_GENERIC_SPINLOCK is not set
 CONFIG_RWSEM_XCHGADD_ALGORITHM=y
@@ -35,7 +37,6 @@ CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
 CONFIG_HAVE_SETUP_PER_CPU_AREA=y
 CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
 CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
-# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
 CONFIG_ARCH_HIBERNATION_POSSIBLE=y
 CONFIG_ARCH_SUSPEND_POSSIBLE=y
 # CONFIG_ZONE_DMA32 is not set
@@ -44,34 +45,35 @@ CONFIG_ARCH_POPULATES_NODE_MAP=y
 CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
 CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
 CONFIG_HAVE_INTEL_TXT=y
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_PENDING_IRQ=y
-CONFIG_USE_GENERIC_SMP_HELPERS=y
 CONFIG_X86_32_SMP=y
 CONFIG_X86_HT=y
-CONFIG_X86_TRAMPOLINE=y
 CONFIG_X86_32_LAZY_GS=y
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
 CONFIG_KTIME_SCALAR=y
 CONFIG_ARCH_CPU_PROBE_RELEASE=y
 CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_CONSTRUCTORS=y
+CONFIG_HAVE_IRQ_WORK=y
+CONFIG_IRQ_WORK=y
 
 #
 # General setup
 #
 CONFIG_EXPERIMENTAL=y
-CONFIG_LOCK_KERNEL=y
 CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
 CONFIG_LOCALVERSION=""
 # CONFIG_LOCALVERSION_AUTO is not set
 CONFIG_HAVE_KERNEL_GZIP=y
 CONFIG_HAVE_KERNEL_BZIP2=y
 CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_XZ=y
+CONFIG_HAVE_KERNEL_LZO=y
 # CONFIG_KERNEL_GZIP is not set
 # CONFIG_KERNEL_BZIP2 is not set
 CONFIG_KERNEL_LZMA=y
+# CONFIG_KERNEL_XZ is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_DEFAULT_HOSTNAME="(none)"
 CONFIG_SWAP=y
 CONFIG_SYSVIPC=y
 CONFIG_SYSVIPC_SYSCTL=y
@@ -79,52 +81,73 @@ CONFIG_POSIX_MQUEUE=y
 CONFIG_POSIX_MQUEUE_SYSCTL=y
 CONFIG_BSD_PROCESS_ACCT=y
 CONFIG_BSD_PROCESS_ACCT_V3=y
-# CONFIG_TASKSTATS is not set
+# CONFIG_FHANDLE is not set
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+# CONFIG_TASK_XACCT is not set
 CONFIG_AUDIT=y
 CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_WATCH=y
 CONFIG_AUDIT_TREE=y
+CONFIG_HAVE_GENERIC_HARDIRQS=y
+
+#
+# IRQ subsystem
+#
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_HAVE_SPARSE_IRQ=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_SPARSE_IRQ=y
 
 #
 # RCU Subsystem
 #
 CONFIG_TREE_RCU=y
-# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_PREEMPT_RCU is not set
 # CONFIG_RCU_TRACE is not set
 CONFIG_RCU_FANOUT=32
 # CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_RCU_FAST_NO_HZ is not set
 # CONFIG_TREE_RCU_TRACE is not set
 # CONFIG_IKCONFIG is not set
 CONFIG_LOG_BUF_SHIFT=17
 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
 # CONFIG_CGROUPS is not set
-CONFIG_SYSFS_DEPRECATED=y
-CONFIG_SYSFS_DEPRECATED_V2=y
-# CONFIG_RELAY is not set
 CONFIG_NAMESPACES=y
 CONFIG_UTS_NS=y
 CONFIG_IPC_NS=y
 # CONFIG_USER_NS is not set
 # CONFIG_PID_NS is not set
 # CONFIG_NET_NS is not set
+# CONFIG_SCHED_AUTOGROUP is not set
+CONFIG_SYSFS_DEPRECATED=y
+CONFIG_SYSFS_DEPRECATED_V2=y
+# CONFIG_RELAY is not set
 CONFIG_BLK_DEV_INITRD=y
 CONFIG_INITRAMFS_SOURCE=""
 CONFIG_RD_GZIP=y
 CONFIG_RD_BZIP2=y
 CONFIG_RD_LZMA=y
+CONFIG_RD_XZ=y
+CONFIG_RD_LZO=y
 CONFIG_CC_OPTIMIZE_FOR_SIZE=y
 CONFIG_SYSCTL=y
 CONFIG_ANON_INODES=y
-# CONFIG_EMBEDDED is not set
+# CONFIG_EXPERT is not set
 CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
+# CONFIG_SYSCTL_SYSCALL is not set
 CONFIG_KALLSYMS=y
 # CONFIG_KALLSYMS_ALL is not set
-# CONFIG_KALLSYMS_EXTRA_PASS is not set
 CONFIG_HOTPLUG=y
 CONFIG_PRINTK=y
 CONFIG_BUG=y
 CONFIG_ELF_CORE=y
 CONFIG_PCSPKR_PLATFORM=y
+CONFIG_HAVE_PCSPKR_PLATFORM=y
 CONFIG_BASE_FULL=y
 CONFIG_FUTEX=y
 CONFIG_EPOLL=y
@@ -133,35 +156,46 @@ CONFIG_TIMERFD=y
 CONFIG_EVENTFD=y
 CONFIG_SHMEM=y
 CONFIG_AIO=y
+# CONFIG_EMBEDDED is not set
 CONFIG_HAVE_PERF_EVENTS=y
 
 #
 # Kernel Performance Events And Counters
 #
-# CONFIG_PERF_EVENTS is not set
+CONFIG_PERF_EVENTS=y
 # CONFIG_PERF_COUNTERS is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
 CONFIG_VM_EVENT_COUNTERS=y
 CONFIG_PCI_QUIRKS=y
 CONFIG_SLUB_DEBUG=y
 # CONFIG_COMPAT_BRK is not set
 # CONFIG_SLAB is not set
 CONFIG_SLUB=y
-# CONFIG_SLOB is not set
 # CONFIG_PROFILING is not set
 CONFIG_HAVE_OPROFILE=y
 # CONFIG_KPROBES is not set
+# CONFIG_JUMP_LABEL is not set
 CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_USER_RETURN_NOTIFIER=y
 CONFIG_HAVE_IOREMAP_PROT=y
 CONFIG_HAVE_KPROBES=y
 CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_OPTPROBES=y
 CONFIG_HAVE_ARCH_TRACEHOOK=y
 CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HAVE_PERF_EVENTS_NMI=y
+CONFIG_HAVE_ARCH_JUMP_LABEL=y
+CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y
 
 #
 # GCOV-based kernel profiling
 #
-CONFIG_SLOW_WORK=y
 CONFIG_HAVE_GENERIC_DMA_COHERENT=y
 CONFIG_SLABINFO=y
 CONFIG_RT_MUTEXES=y
@@ -175,22 +209,51 @@ CONFIG_MODULE_FORCE_UNLOAD=y
 CONFIG_STOP_MACHINE=y
 CONFIG_BLOCK=y
 CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_BSGLIB=y
 # CONFIG_BLK_DEV_INTEGRITY is not set
 
 #
 # IO Schedulers
 #
 CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_AS=y
 CONFIG_IOSCHED_DEADLINE=y
 CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_AS is not set
 # CONFIG_DEFAULT_DEADLINE is not set
 CONFIG_DEFAULT_CFQ=y
 # CONFIG_DEFAULT_NOOP is not set
 CONFIG_DEFAULT_IOSCHED="cfq"
 CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PADATA=y
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
 CONFIG_FREEZER=y
 
 #
@@ -200,23 +263,25 @@ CONFIG_TICK_ONESHOT=y
 CONFIG_NO_HZ=y
 CONFIG_HIGH_RES_TIMERS=y
 CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y
 CONFIG_SMP=y
-CONFIG_SPARSE_IRQ=y
-CONFIG_NUMA_IRQ_DESC=y
 CONFIG_X86_MPPARSE=y
 CONFIG_X86_BIGSMP=y
 CONFIG_X86_EXTENDED_PLATFORM=y
-# CONFIG_X86_ELAN is not set
-# CONFIG_X86_MRST is not set
+# CONFIG_X86_WANT_INTEL_MID is not set
 # CONFIG_X86_RDC321X is not set
 # CONFIG_X86_32_NON_STANDARD is not set
 CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+# CONFIG_X86_32_IRIS is not set
 CONFIG_SCHED_OMIT_FRAME_POINTER=y
 CONFIG_PARAVIRT_GUEST=y
+# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set
 CONFIG_XEN=y
-CONFIG_XEN_MAX_DOMAIN_MEMORY=8
+CONFIG_XEN_DOM0=y
+CONFIG_XEN_PRIVILEGED_GUEST=y
+CONFIG_XEN_PVHVM=y
+CONFIG_XEN_MAX_DOMAIN_MEMORY=128
 CONFIG_XEN_SAVE_RESTORE=y
-CONFIG_VMI=y
 CONFIG_KVM_CLOCK=y
 CONFIG_KVM_GUEST=y
 CONFIG_LGUEST_GUEST=y
@@ -224,6 +289,7 @@ CONFIG_PARAVIRT=y
 CONFIG_PARAVIRT_SPINLOCKS=y
 CONFIG_PARAVIRT_CLOCK=y
 # CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_NO_BOOTMEM=y
 # CONFIG_MEMTEST is not set
 # CONFIG_M386 is not set
 # CONFIG_M486 is not set
@@ -242,21 +308,20 @@ CONFIG_M586TSC=y
 # CONFIG_MEFFICEON is not set
 # CONFIG_MWINCHIPC6 is not set
 # CONFIG_MWINCHIP3D is not set
+# CONFIG_MELAN is not set
 # CONFIG_MGEODEGX1 is not set
 # CONFIG_MGEODE_LX is not set
 # CONFIG_MCYRIXIII is not set
 # CONFIG_MVIAC3_2 is not set
 # CONFIG_MVIAC7 is not set
-# CONFIG_MPSC is not set
 # CONFIG_MCORE2 is not set
 # CONFIG_MATOM is not set
-# CONFIG_GENERIC_CPU is not set
 CONFIG_X86_GENERIC=y
-CONFIG_X86_CPU=y
-CONFIG_X86_L1_CACHE_BYTES=64
-CONFIG_X86_INTERNODE_CACHE_BYTES=64
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
 CONFIG_X86_CMPXCHG=y
-CONFIG_X86_L1_CACHE_SHIFT=5
+CONFIG_CMPXCHG_LOCAL=y
+CONFIG_CMPXCHG_DOUBLE=y
+CONFIG_X86_L1_CACHE_SHIFT=6
 CONFIG_X86_XADD=y
 CONFIG_X86_PPRO_FENCE=y
 CONFIG_X86_F00F_BUG=y
@@ -278,8 +343,8 @@ CONFIG_CPU_SUP_UMC_32=y
 CONFIG_HPET_TIMER=y
 CONFIG_HPET_EMULATE_RTC=y
 CONFIG_DMI=y
-# CONFIG_IOMMU_HELPER is not set
-CONFIG_IOMMU_API=y
+CONFIG_SWIOTLB=y
+CONFIG_IOMMU_HELPER=y
 CONFIG_NR_CPUS=256
 CONFIG_SCHED_SMT=y
 CONFIG_SCHED_MC=y
@@ -314,19 +379,20 @@ CONFIG_PAGE_OFFSET=0xC0000000
 CONFIG_HIGHMEM=y
 CONFIG_X86_PAE=y
 CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_DMA_ADDR_T_64BIT=y
 CONFIG_NUMA=y
+# CONFIG_NUMA_EMU is not set
 CONFIG_NODES_SHIFT=3
 CONFIG_HAVE_ARCH_BOOTMEM=y
+CONFIG_HAVE_ARCH_ALLOC_REMAP=y
 CONFIG_ARCH_HAVE_MEMORY_PRESENT=y
 CONFIG_NEED_NODE_MEMMAP_SIZE=y
-CONFIG_HAVE_ARCH_ALLOC_REMAP=y
 CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
 CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ILLEGAL_POINTER_VALUE=0
 CONFIG_SELECT_MEMORY_MODEL=y
-# CONFIG_FLATMEM_MANUAL is not set
 CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
 CONFIG_DISCONTIGMEM=y
@@ -334,27 +400,31 @@ CONFIG_FLAT_NODE_MEM_MAP=y
 CONFIG_NEED_MULTIPLE_NODES=y
 CONFIG_HAVE_MEMORY_PRESENT=y
 CONFIG_SPARSEMEM_STATIC=y
+CONFIG_HAVE_MEMBLOCK=y
 CONFIG_PAGEFLAGS_EXTENDED=y
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_COMPACTION is not set
 CONFIG_MIGRATION=y
 CONFIG_PHYS_ADDR_T_64BIT=y
 CONFIG_ZONE_DMA_FLAG=1
 CONFIG_BOUNCE=y
 CONFIG_VIRT_TO_BUS=y
-CONFIG_HAVE_MLOCK=y
-CONFIG_HAVE_MLOCKED_PAGE_BIT=y
 CONFIG_MMU_NOTIFIER=y
 CONFIG_KSM=y
 CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
 # CONFIG_MEMORY_FAILURE is not set
+# CONFIG_TRANSPARENT_HUGEPAGE is not set
+# CONFIG_CLEANCACHE is not set
 # CONFIG_HIGHPTE is not set
 # CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
-CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_RESERVE_LOW=64
 CONFIG_MATH_EMULATION=y
 CONFIG_MTRR=y
 # CONFIG_MTRR_SANITIZER is not set
-# CONFIG_X86_PAT is not set
+CONFIG_X86_PAT=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_RANDOM=y
 # CONFIG_EFI is not set
 CONFIG_SECCOMP=y
 # CONFIG_CC_STACKPROTECTOR is not set
@@ -373,25 +443,25 @@ CONFIG_HOTPLUG_CPU=y
 CONFIG_COMPAT_VDSO=y
 # CONFIG_CMDLINE_BOOL is not set
 CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
-# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
 
 #
 # Power management and ACPI options
 #
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-CONFIG_PM_SLEEP_SMP=y
-CONFIG_PM_SLEEP=y
 CONFIG_SUSPEND=y
 CONFIG_SUSPEND_FREEZER=y
+CONFIG_HIBERNATE_CALLBACKS=y
 # CONFIG_HIBERNATION is not set
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
 CONFIG_PM_RUNTIME=y
+CONFIG_PM=y
+# CONFIG_PM_DEBUG is not set
 CONFIG_ACPI=y
 CONFIG_ACPI_SLEEP=y
 # CONFIG_ACPI_PROCFS is not set
 CONFIG_ACPI_PROCFS_POWER=y
-CONFIG_ACPI_POWER_METER=m
-CONFIG_ACPI_SYSFS_POWER=y
+# CONFIG_ACPI_EC_DEBUGFS is not set
 CONFIG_ACPI_PROC_EVENT=y
 CONFIG_ACPI_AC=m
 CONFIG_ACPI_BATTERY=m
@@ -400,6 +470,7 @@ CONFIG_ACPI_VIDEO=m
 CONFIG_ACPI_FAN=m
 CONFIG_ACPI_DOCK=y
 CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_IPMI=m
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
 CONFIG_ACPI_THERMAL=m
@@ -412,6 +483,8 @@ CONFIG_ACPI_PCI_SLOT=m
 CONFIG_X86_PM_TIMER=y
 CONFIG_ACPI_CONTAINER=m
 CONFIG_ACPI_SBS=m
+# CONFIG_ACPI_HED is not set
+# CONFIG_ACPI_APEI is not set
 # CONFIG_SFI is not set
 CONFIG_X86_APM_BOOT=y
 CONFIG_APM=m
@@ -426,11 +499,9 @@ CONFIG_APM_CPU_IDLE=y
 #
 CONFIG_CPU_FREQ=y
 CONFIG_CPU_FREQ_TABLE=y
-# CONFIG_CPU_FREQ_DEBUG is not set
 CONFIG_CPU_FREQ_STAT=y
 CONFIG_CPU_FREQ_STAT_DETAILS=y
 CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
 # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
@@ -441,8 +512,9 @@ CONFIG_CPU_FREQ_GOV_ONDEMAND=m
 CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
 
 #
-# CPUFreq processor drivers
+# x86 CPU frequency scaling drivers
 #
+CONFIG_X86_PCC_CPUFREQ=m
 CONFIG_X86_ACPI_CPUFREQ=m
 CONFIG_X86_POWERNOW_K6=m
 CONFIG_X86_POWERNOW_K7=m
@@ -467,6 +539,7 @@ CONFIG_X86_SPEEDSTEP_LIB=m
 CONFIG_CPU_IDLE=y
 CONFIG_CPU_IDLE_GOV_LADDER=y
 CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_INTEL_IDLE=y
 
 #
 # Bus options (PCI etc.)
@@ -475,28 +548,32 @@ CONFIG_PCI=y
 # CONFIG_PCI_GOBIOS is not set
 # CONFIG_PCI_GOMMCONFIG is not set
 # CONFIG_PCI_GODIRECT is not set
-# CONFIG_PCI_GOOLPC is not set
 CONFIG_PCI_GOANY=y
 CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
 CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_XEN=y
 CONFIG_PCI_DOMAINS=y
-CONFIG_DMAR=y
-CONFIG_DMAR_DEFAULT_ON=y
-CONFIG_DMAR_FLOPPY_WA=y
+# CONFIG_PCI_CNB20LE_QUIRK is not set
 CONFIG_PCIEPORTBUS=y
 CONFIG_PCIEAER=y
 # CONFIG_PCIE_ECRC is not set
 # CONFIG_PCIEAER_INJECT is not set
 CONFIG_PCIEASPM=y
 # CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIE_PME=y
 CONFIG_ARCH_SUPPORTS_MSI=y
 CONFIG_PCI_MSI=y
-CONFIG_PCI_LEGACY=y
 # CONFIG_PCI_DEBUG is not set
 CONFIG_PCI_STUB=m
+CONFIG_XEN_PCIDEV_FRONTEND=y
 CONFIG_HT_IRQ=y
+CONFIG_PCI_ATS=y
 CONFIG_PCI_IOV=y
+# CONFIG_PCI_PRI is not set
+# CONFIG_PCI_PASID is not set
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_LABEL=y
 CONFIG_ISA_DMA_API=y
 CONFIG_ISA=y
 CONFIG_EISA=y
@@ -509,13 +586,11 @@ CONFIG_MCA_LEGACY=y
 # CONFIG_MCA_PROC_FS is not set
 CONFIG_SCx200=m
 CONFIG_SCx200HR_TIMER=m
-# CONFIG_OLPC is not set
-CONFIG_K8_NB=y
+CONFIG_ALIX=y
+CONFIG_AMD_NB=y
 CONFIG_PCCARD=m
-# CONFIG_PCMCIA_DEBUG is not set
 CONFIG_PCMCIA=m
 CONFIG_PCMCIA_LOAD_CIS=y
-CONFIG_PCMCIA_IOCTL=y
 CONFIG_CARDBUS=y
 
 #
@@ -532,8 +607,9 @@ CONFIG_I82092=m
 CONFIG_I82365=m
 CONFIG_TCIC=m
 CONFIG_PCMCIA_PROBE=y
-CONFIG_PCCARD_NONSTATIC=m
+CONFIG_PCCARD_NONSTATIC=y
 # CONFIG_HOTPLUG_PCI is not set
+# CONFIG_RAPIDIO is not set
 
 #
 # Executable file formats / Emulations
@@ -544,13 +620,13 @@ CONFIG_HAVE_AOUT=y
 # CONFIG_BINFMT_AOUT is not set
 # CONFIG_BINFMT_MISC is not set
 CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_TEXT_POKE_SMP=y
 CONFIG_NET=y
 
 #
 # Networking options
 #
 CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
 CONFIG_UNIX=y
 CONFIG_XFRM=y
 CONFIG_XFRM_USER=m
@@ -563,17 +639,18 @@ CONFIG_NET_KEY_MIGRATE=y
 CONFIG_INET=y
 CONFIG_IP_MULTICAST=y
 CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_ASK_IP_FIB_HASH=y
-# CONFIG_IP_FIB_TRIE is not set
-CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE_STATS is not set
 CONFIG_IP_MULTIPLE_TABLES=y
 CONFIG_IP_ROUTE_MULTIPATH=y
 CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_ROUTE_CLASSID=y
 # CONFIG_IP_PNP is not set
 CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
 CONFIG_NET_IPGRE=m
 CONFIG_NET_IPGRE_BROADCAST=y
 CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
 CONFIG_IP_PIMSM_V1=y
 CONFIG_IP_PIMSM_V2=y
 CONFIG_ARPD=y
@@ -602,11 +679,6 @@ CONFIG_TCP_CONG_LP=m
 CONFIG_TCP_CONG_VENO=m
 CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
-# CONFIG_DEFAULT_BIC is not set
-# CONFIG_DEFAULT_CUBIC is not set
-# CONFIG_DEFAULT_HTCP is not set
-# CONFIG_DEFAULT_VEGAS is not set
-# CONFIG_DEFAULT_WESTWOOD is not set
 CONFIG_DEFAULT_RENO=y
 CONFIG_DEFAULT_TCP_CONG="reno"
 # CONFIG_TCP_MD5SIG is not set
@@ -625,12 +697,14 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m
 CONFIG_INET6_XFRM_MODE_BEET=m
 CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
 CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
 CONFIG_IPV6_NDISC_NODETYPE=y
 CONFIG_IPV6_TUNNEL=m
 CONFIG_IPV6_MULTIPLE_TABLES=y
 # CONFIG_IPV6_SUBTREES is not set
 # CONFIG_IPV6_MROUTE is not set
 # CONFIG_NETWORK_SECMARK is not set
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
 CONFIG_NETFILTER=y
 # CONFIG_NETFILTER_DEBUG is not set
 CONFIG_NETFILTER_ADVANCED=y
@@ -643,9 +717,10 @@ CONFIG_NETFILTER_NETLINK=m
 CONFIG_NETFILTER_NETLINK_QUEUE=m
 CONFIG_NETFILTER_NETLINK_LOG=m
 CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CT_ACCT=y
 CONFIG_NF_CONNTRACK_MARK=y
+# CONFIG_NF_CONNTRACK_ZONES is not set
 CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_TIMESTAMP=y
 CONFIG_NF_CT_PROTO_DCCP=m
 CONFIG_NF_CT_PROTO_GRE=m
 CONFIG_NF_CT_PROTO_SCTP=m
@@ -654,7 +729,9 @@ CONFIG_NF_CONNTRACK_AMANDA=m
 CONFIG_NF_CONNTRACK_FTP=m
 CONFIG_NF_CONNTRACK_H323=m
 CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_BROADCAST=m
 CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
 CONFIG_NF_CONNTRACK_PPTP=m
 CONFIG_NF_CONNTRACK_SANE=m
 CONFIG_NF_CONNTRACK_SIP=m
@@ -662,10 +739,24 @@ CONFIG_NF_CONNTRACK_TFTP=m
 CONFIG_NF_CT_NETLINK=m
 CONFIG_NETFILTER_TPROXY=m
 CONFIG_NETFILTER_XTABLES=m
+
+#
+# Xtables combined modules
+#
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+
+#
+# Xtables targets
+#
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
 CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
 CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
 CONFIG_NETFILTER_XT_TARGET_DSCP=m
 CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
 CONFIG_NETFILTER_XT_TARGET_LED=m
 CONFIG_NETFILTER_XT_TARGET_IMQ=m
 CONFIG_NETFILTER_XT_TARGET_MARK=m
@@ -673,28 +764,38 @@ CONFIG_NETFILTER_XT_TARGET_NFLOG=m
 CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
 CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
 CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
 CONFIG_NETFILTER_XT_TARGET_TPROXY=m
 CONFIG_NETFILTER_XT_TARGET_TRACE=m
 CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
 CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+
+#
+# Xtables matches
+#
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
 CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
 CONFIG_NETFILTER_XT_MATCH_COMMENT=m
 CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
 CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
 CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
 CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
 CONFIG_NETFILTER_XT_MATCH_DSCP=m
 CONFIG_NETFILTER_XT_MATCH_ESP=m
 CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
 CONFIG_NETFILTER_XT_MATCH_HELPER=m
 CONFIG_NETFILTER_XT_MATCH_HL=m
 CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
 CONFIG_NETFILTER_XT_MATCH_LENGTH=m
 CONFIG_NETFILTER_XT_MATCH_LIMIT=m
 CONFIG_NETFILTER_XT_MATCH_MAC=m
 CONFIG_NETFILTER_XT_MATCH_MARK=m
 CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
 CONFIG_NETFILTER_XT_MATCH_OWNER=m
 CONFIG_NETFILTER_XT_MATCH_POLICY=m
 CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
@@ -703,7 +804,6 @@ CONFIG_NETFILTER_XT_MATCH_QUOTA=m
 CONFIG_NETFILTER_XT_MATCH_RATEEST=m
 CONFIG_NETFILTER_XT_MATCH_REALM=m
 CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_RECENT_PROC_COMPAT=y
 CONFIG_NETFILTER_XT_MATCH_SCTP=m
 CONFIG_NETFILTER_XT_MATCH_SOCKET=m
 CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -714,7 +814,7 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
 CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
 CONFIG_NETFILTER_XT_MATCH_TIME=m
 CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_IP_SET is not set
 CONFIG_IP_VS=m
 CONFIG_IP_VS_IPV6=y
 # CONFIG_IP_VS_DEBUG is not set
@@ -725,8 +825,10 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # CONFIG_IP_VS_PROTO_TCP is not set
 # CONFIG_IP_VS_PROTO_UDP is not set
+# CONFIG_IP_VS_PROTO_AH_ESP is not set
 # CONFIG_IP_VS_PROTO_ESP is not set
 # CONFIG_IP_VS_PROTO_AH is not set
+# CONFIG_IP_VS_PROTO_SCTP is not set
 
 #
 # IPVS scheduler
@@ -745,6 +847,7 @@ CONFIG_IP_VS_TAB_BITS=12
 #
 # IPVS application helper
 #
+# CONFIG_IP_VS_NFCT is not set
 
 #
 # IP: Netfilter Configuration
@@ -754,7 +857,6 @@ CONFIG_NF_CONNTRACK_IPV4=m
 CONFIG_NF_CONNTRACK_PROC_COMPAT=y
 CONFIG_IP_NF_QUEUE=m
 CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_ADDRTYPE=m
 CONFIG_IP_NF_MATCH_AH=m
 CONFIG_IP_NF_MATCH_ECN=m
 CONFIG_IP_NF_MATCH_TTL=m
@@ -792,6 +894,7 @@ CONFIG_IP_NF_MATCH_IPP2P=m
 #
 # IPv6: Netfilter Configuration
 #
+CONFIG_NF_DEFRAG_IPV6=m
 CONFIG_NF_CONNTRACK_IPV6=m
 CONFIG_IP6_NF_QUEUE=m
 CONFIG_IP6_NF_IPTABLES=m
@@ -841,9 +944,12 @@ CONFIG_ATM_CLIP_NO_ICMP=y
 # CONFIG_ATM_LANE is not set
 CONFIG_ATM_BR2684=m
 # CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_L2TP=m
+# CONFIG_L2TP_V3 is not set
 CONFIG_STP=m
 CONFIG_GARP=m
 CONFIG_BRIDGE=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
 CONFIG_NET_DSA=y
 CONFIG_NET_DSA_TAG_DSA=y
 CONFIG_NET_DSA_TAG_EDSA=y
@@ -866,6 +972,7 @@ CONFIG_LLC=m
 # CONFIG_WAN_ROUTER is not set
 # CONFIG_PHONET is not set
 CONFIG_IEEE802154=m
+CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_NET_SCHED=y
 
 #
@@ -878,6 +985,7 @@ CONFIG_NET_SCH_ATM=m
 CONFIG_NET_SCH_PRIO=m
 CONFIG_NET_SCH_MULTIQ=m
 CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFB=m
 CONFIG_NET_SCH_SFQ=m
 CONFIG_NET_SCH_TEQL=m
 CONFIG_NET_SCH_TBF=m
@@ -885,6 +993,9 @@ CONFIG_NET_SCH_GRED=m
 CONFIG_NET_SCH_DSMARK=m
 CONFIG_NET_SCH_NETEM=m
 CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_MQPRIO=m
+CONFIG_NET_SCH_CHOKE=m
+CONFIG_NET_SCH_QFQ=m
 CONFIG_NET_SCH_INGRESS=m
 
 #
@@ -894,7 +1005,6 @@ CONFIG_NET_CLS=y
 CONFIG_NET_CLS_BASIC=m
 CONFIG_NET_CLS_TCINDEX=m
 CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_CLS_U32=m
 CONFIG_CLS_U32_PERF=y
@@ -919,9 +1029,16 @@ CONFIG_NET_ACT_NAT=m
 CONFIG_NET_ACT_PEDIT=m
 # CONFIG_NET_ACT_SIMP is not set
 CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_ACT_CSUM=m
 CONFIG_NET_CLS_IND=y
 CONFIG_NET_SCH_FIFO=y
 # CONFIG_DCB is not set
+CONFIG_DNS_RESOLVER=y
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_RPS=y
+CONFIG_RFS_ACCEL=y
+CONFIG_XPS=y
 
 #
 # Network testing
@@ -977,8 +1094,8 @@ CONFIG_VLSI_FIR=m
 CONFIG_VIA_FIR=m
 CONFIG_MCS_FIR=m
 CONFIG_BT=m
-CONFIG_BT_L2CAP=m
-CONFIG_BT_SCO=m
+CONFIG_BT_L2CAP=y
+CONFIG_BT_SCO=y
 CONFIG_BT_RFCOMM=m
 CONFIG_BT_RFCOMM_TTY=y
 CONFIG_BT_BNEP=m
@@ -995,6 +1112,7 @@ CONFIG_BT_HCIBTSDIO=m
 CONFIG_BT_HCIUART=m
 CONFIG_BT_HCIUART_H4=y
 CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
 CONFIG_BT_HCIUART_LL=y
 CONFIG_BT_HCIBCM203X=m
 CONFIG_BT_HCIBPA10X=m
@@ -1006,19 +1124,25 @@ CONFIG_BT_HCIBTUART=m
 CONFIG_BT_HCIVHCI=m
 CONFIG_BT_MRVL=m
 CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_WILINK=m
 CONFIG_AF_RXRPC=m
 # CONFIG_AF_RXRPC_DEBUG is not set
 CONFIG_RXKAD=m
 CONFIG_FIB_RULES=y
 CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WEXT_PRIV=y
 CONFIG_CFG80211=m
 # CONFIG_NL80211_TESTMODE is not set
 # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
 # CONFIG_CFG80211_REG_DEBUG is not set
 # CONFIG_CFG80211_DEFAULT_PS is not set
-CONFIG_CFG80211_DEFAULT_PS_VALUE=0
-CONFIG_WIRELESS_OLD_REGULATORY=y
-CONFIG_WIRELESS_EXT=y
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
 CONFIG_WIRELESS_EXT_SYSFS=y
 CONFIG_LIB80211=m
 CONFIG_LIB80211_CRYPT_WEP=m
@@ -1028,9 +1152,9 @@ CONFIG_LIB80211_CRYPT_TKIP=m
 CONFIG_MAC80211=m
 CONFIG_MAC80211_HAS_RC=y
 CONFIG_MAC80211_RC_MINSTREL=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL_HT=y
 CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
 CONFIG_MAC80211_MESH=y
 CONFIG_MAC80211_LEDS=y
 # CONFIG_MAC80211_DEBUG_MENU is not set
@@ -1038,7 +1162,13 @@ CONFIG_MAC80211_LEDS=y
 CONFIG_RFKILL=m
 CONFIG_RFKILL_LEDS=y
 CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_REGULATOR=m
 # CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
+CONFIG_CEPH_LIB=m
+# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
+# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
+# CONFIG_NFC is not set
 
 #
 # Device Drivers
@@ -1057,12 +1187,11 @@ CONFIG_EXTRA_FIRMWARE=""
 # CONFIG_DEBUG_DRIVER is not set
 # CONFIG_DEBUG_DEVRES is not set
 CONFIG_SYS_HYPERVISOR=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=m
 CONFIG_CONNECTOR=m
 CONFIG_MTD=m
-# CONFIG_MTD_DEBUG is not set
 CONFIG_MTD_TESTS=m
-CONFIG_MTD_CONCAT=m
-CONFIG_MTD_PARTITIONS=y
 # CONFIG_MTD_REDBOOT_PARTS is not set
 CONFIG_MTD_AR7_PARTS=m
 
@@ -1078,7 +1207,9 @@ CONFIG_MTD_BLOCK=m
 # CONFIG_INFTL is not set
 # CONFIG_RFD_FTL is not set
 # CONFIG_SSFDC is not set
+CONFIG_SM_FTL=m
 # CONFIG_MTD_OOPS is not set
+# CONFIG_MTD_SWAP is not set
 
 #
 # RAM/ROM/Flash chip drivers
@@ -1124,6 +1255,9 @@ CONFIG_MTD_PHYSMAP=m
 # CONFIG_MTD_DOC2000 is not set
 # CONFIG_MTD_DOC2001 is not set
 # CONFIG_MTD_DOC2001PLUS is not set
+# CONFIG_MTD_DOCG3 is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
 # CONFIG_MTD_NAND is not set
 # CONFIG_MTD_ONENAND is not set
 
@@ -1132,18 +1266,10 @@ CONFIG_MTD_PHYSMAP=m
 #
 CONFIG_MTD_LPDDR=m
 CONFIG_MTD_QINFO_PROBE=m
-
-#
-# UBI - Unsorted block images
-#
 CONFIG_MTD_UBI=m
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
 CONFIG_MTD_UBI_BEB_RESERVE=1
 # CONFIG_MTD_UBI_GLUEBI is not set
-
-#
-# UBI debugging options
-#
 # CONFIG_MTD_UBI_DEBUG is not set
 CONFIG_PARPORT=m
 CONFIG_PARPORT_PC=m
@@ -1176,7 +1302,9 @@ CONFIG_BLK_DEV_DAC960=m
 # CONFIG_BLK_DEV_UMEM is not set
 # CONFIG_BLK_DEV_COW_COMMON is not set
 CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
 CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_DRBD is not set
 CONFIG_BLK_DEV_NBD=m
 CONFIG_BLK_DEV_OSD=m
 CONFIG_BLK_DEV_SX8=m
@@ -1188,18 +1316,38 @@ CONFIG_BLK_DEV_RAM_SIZE=16384
 # CONFIG_CDROM_PKTCDVD is not set
 CONFIG_ATA_OVER_ETH=m
 CONFIG_XEN_BLKDEV_FRONTEND=y
+CONFIG_XEN_BLKDEV_BACKEND=y
 CONFIG_VIRTIO_BLK=m
 # CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_RBD=m
+CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_MISC_DEVICES=y
+# CONFIG_AD525X_DPOT is not set
 # CONFIG_IBM_ASM is not set
 # CONFIG_PHANTOM is not set
+# CONFIG_INTEL_MID_PTI is not set
 # CONFIG_SGI_IOC4 is not set
 CONFIG_TIFM_CORE=m
 CONFIG_TIFM_7XX1=m
 CONFIG_ICS932S401=m
 CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_CS5535_MFGPT=m
+CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7
+CONFIG_CS5535_CLOCK_EVENT_SRC=m
 CONFIG_HP_ILO=m
+# CONFIG_APDS9802ALS is not set
 CONFIG_ISL29003=m
+# CONFIG_ISL29020 is not set
+CONFIG_SENSORS_TSL2550=m
+# CONFIG_SENSORS_BH1780 is not set
+# CONFIG_SENSORS_BH1770 is not set
+# CONFIG_SENSORS_APDS990X is not set
+# CONFIG_HMC6352 is not set
+CONFIG_DS1682=m
+# CONFIG_VMWARE_BALLOON is not set
+# CONFIG_BMP085 is not set
+# CONFIG_PCH_PHUB is not set
+# CONFIG_USB_SWITCH_FSA9480 is not set
 CONFIG_C2PORT=m
 CONFIG_C2PORT_DURAMAR_2150=m
 
@@ -1213,13 +1361,28 @@ CONFIG_EEPROM_93CX6=m
 CONFIG_CB710_CORE=m
 # CONFIG_CB710_DEBUG is not set
 CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+
+#
+# Texas Instruments shared transport line discipline
+#
+CONFIG_TI_ST=m
+# CONFIG_SENSORS_LIS3_I2C is not set
+
+#
+# Altera FPGA firmware download module
+#
+# CONFIG_ALTERA_STAPL is not set
 CONFIG_HAVE_IDE=y
 # CONFIG_IDE is not set
 
 #
 # SCSI device support
 #
-CONFIG_RAID_ATTRS=y
+CONFIG_SCSI_MOD=m
+CONFIG_RAID_ATTRS=m
 CONFIG_SCSI=m
 CONFIG_SCSI_DMA=y
 # CONFIG_SCSI_TGT is not set
@@ -1253,15 +1416,19 @@ CONFIG_SCSI_SAS_ATTRS=m
 CONFIG_SCSI_SAS_LIBSAS=m
 CONFIG_SCSI_SAS_ATA=y
 CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
 CONFIG_SCSI_SRP_ATTRS=m
 CONFIG_SCSI_LOWLEVEL=y
 CONFIG_ISCSI_TCP=m
+CONFIG_ISCSI_BOOT_SYSFS=m
 CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_CXGB4_ISCSI=m
 CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BNX2X_FCOE=m
 CONFIG_BE2ISCSI=m
 CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_SCSI_HPSA=m
 CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
 CONFIG_SCSI_7000FASST=m
 CONFIG_SCSI_ACARD=m
 CONFIG_SCSI_AHA152X=m
@@ -1287,11 +1454,12 @@ CONFIG_SCSI_AIC94XX=m
 # CONFIG_AIC94XX_DEBUG is not set
 CONFIG_SCSI_MVSAS=m
 CONFIG_SCSI_MVSAS_DEBUG=y
+# CONFIG_SCSI_MVSAS_TASKLET is not set
+CONFIG_SCSI_MVUMI=m
 CONFIG_SCSI_DPT_I2O=m
 CONFIG_SCSI_ADVANSYS=m
 CONFIG_SCSI_IN2000=m
 CONFIG_SCSI_ARCMSR=m
-# CONFIG_SCSI_ARCMSR_AER is not set
 CONFIG_MEGARAID_NEWGEN=y
 CONFIG_MEGARAID_MM=m
 CONFIG_MEGARAID_MAILBOX=m
@@ -1303,6 +1471,7 @@ CONFIG_SCSI_MPT2SAS_MAX_SGE=128
 CONFIG_SCSI_HPTIOP=m
 CONFIG_SCSI_BUSLOGIC=m
 CONFIG_SCSI_FLASHPOINT=y
+CONFIG_VMWARE_PVSCSI=m
 CONFIG_LIBFC=m
 CONFIG_LIBFCOE=m
 CONFIG_FCOE=m
@@ -1316,6 +1485,7 @@ CONFIG_SCSI_EATA_MAX_TAGS=16
 CONFIG_SCSI_FUTURE_DOMAIN=m
 CONFIG_SCSI_FD_MCS=m
 CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_ISCI=m
 CONFIG_SCSI_GENERIC_NCR5380=m
 CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
 CONFIG_SCSI_GENERIC_NCR53C400=y
@@ -1363,6 +1533,7 @@ CONFIG_SCSI_ULTRASTOR=m
 CONFIG_SCSI_NSP32=m
 # CONFIG_SCSI_DEBUG is not set
 CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PM8001=m
 # CONFIG_SCSI_SRP is not set
 CONFIG_SCSI_BFA_FC=m
 CONFIG_SCSI_LOWLEVEL_PCMCIA=y
@@ -1385,30 +1556,48 @@ CONFIG_ATA=m
 CONFIG_ATA_VERBOSE_ERROR=y
 CONFIG_ATA_ACPI=y
 CONFIG_SATA_PMP=y
+
+#
+# Controllers with non-SFF native interface
+#
 CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_ACARD_AHCI=m
 CONFIG_SATA_SIL24=m
 CONFIG_ATA_SFF=y
-CONFIG_SATA_SVW=m
+
+#
+# SFF controllers with custom DMA interface
+#
+CONFIG_PDC_ADMA=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SX4=m
+CONFIG_ATA_BMDMA=y
+
+#
+# SATA SFF controllers with BMDMA
+#
 CONFIG_ATA_PIIX=m
 CONFIG_SATA_MV=m
 CONFIG_SATA_NV=m
-CONFIG_PDC_ADMA=m
-CONFIG_SATA_QSTOR=m
 CONFIG_SATA_PROMISE=m
-CONFIG_SATA_SX4=m
 CONFIG_SATA_SIL=m
 CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
 CONFIG_SATA_ULI=m
 CONFIG_SATA_VIA=m
 CONFIG_SATA_VITESSE=m
-CONFIG_SATA_INIC162X=m
-CONFIG_PATA_ACPI=m
+
+#
+# PATA SFF controllers with BMDMA
+#
 CONFIG_PATA_ALI=m
 CONFIG_PATA_AMD=m
+CONFIG_PATA_ARASAN_CF=m
 CONFIG_PATA_ARTOP=m
-CONFIG_PATA_ATP867X=m
 CONFIG_PATA_ATIIXP=m
-CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ATP867X=m
 CONFIG_PATA_CMD64X=m
 CONFIG_PATA_CS5520=m
 CONFIG_PATA_CS5530=m
@@ -1416,42 +1605,53 @@ CONFIG_PATA_CS5535=m
 CONFIG_PATA_CS5536=m
 CONFIG_PATA_CYPRESS=m
 CONFIG_PATA_EFAR=m
-CONFIG_ATA_GENERIC=m
 CONFIG_PATA_HPT366=m
 CONFIG_PATA_HPT37X=m
 CONFIG_PATA_HPT3X2N=m
 CONFIG_PATA_HPT3X3=m
 CONFIG_PATA_HPT3X3_DMA=y
-CONFIG_PATA_ISAPNP=m
-CONFIG_PATA_IT821X=m
 CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
 CONFIG_PATA_JMICRON=m
-CONFIG_PATA_LEGACY=m
-CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_MARVELL=m
-CONFIG_PATA_MPIIX=m
-CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_NETCELL=m
 CONFIG_PATA_NINJA32=m
-CONFIG_PATA_NS87410=m
 CONFIG_PATA_NS87415=m
-CONFIG_PATA_OPTI=m
+CONFIG_PATA_OLDPIIX=m
 CONFIG_PATA_OPTIDMA=m
-CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_PDC_OLD=m
-CONFIG_PATA_QDI=m
 CONFIG_PATA_RADISYS=m
 CONFIG_PATA_RDC=m
-CONFIG_PATA_RZ1000=m
 CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
 CONFIG_PATA_SERVERWORKS=m
-CONFIG_PATA_PDC2027X=m
 CONFIG_PATA_SIL680=m
 CONFIG_PATA_SIS=m
+CONFIG_PATA_TOSHIBA=m
+CONFIG_PATA_TRIFLEX=m
 CONFIG_PATA_VIA=m
 CONFIG_PATA_WINBOND=m
+
+#
+# PIO-only SFF controllers
+#
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RZ1000=m
 CONFIG_PATA_WINBOND_VLB=m
-CONFIG_PATA_SCH=m
+
+#
+# Generic fallback / legacy drivers
+#
+CONFIG_PATA_ACPI=m
+CONFIG_ATA_GENERIC=m
+CONFIG_PATA_LEGACY=m
 CONFIG_MD=y
 CONFIG_BLK_DEV_MD=m
 CONFIG_MD_LINEAR=m
@@ -1460,15 +1660,19 @@ CONFIG_MD_RAID1=m
 CONFIG_MD_RAID10=m
 CONFIG_MD_RAID456=m
 # CONFIG_MULTICORE_RAID456 is not set
-CONFIG_MD_RAID6_PQ=m
-CONFIG_ASYNC_RAID6_TEST=m
 CONFIG_MD_MULTIPATH=m
 # CONFIG_MD_FAULTY is not set
 CONFIG_BLK_DEV_DM=m
 # CONFIG_DM_DEBUG is not set
+CONFIG_DM_BUFIO=m
+CONFIG_DM_PERSISTENT_DATA=m
 CONFIG_DM_CRYPT=m
 CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set
+# CONFIG_DM_DEBUG_SPACE_MAPS is not set
 CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
 CONFIG_DM_LOG_USERSPACE=m
 CONFIG_DM_ZERO=m
 CONFIG_DM_MULTIPATH=m
@@ -1476,6 +1680,8 @@ CONFIG_DM_MULTIPATH_QL=m
 CONFIG_DM_MULTIPATH_ST=m
 CONFIG_DM_DELAY=m
 CONFIG_DM_UEVENT=y
+CONFIG_DM_FLAKEY=m
+# CONFIG_TARGET_CORE is not set
 CONFIG_FUSION=y
 CONFIG_FUSION_SPI=m
 CONFIG_FUSION_FC=m
@@ -1487,27 +1693,18 @@ CONFIG_FUSION_CTL=m
 #
 # IEEE 1394 (FireWire) support
 #
-
-#
-# You can enable one or both FireWire driver stacks.
-#
-
-#
-# See the help texts for more information.
-#
 CONFIG_FIREWIRE=m
 CONFIG_FIREWIRE_OHCI=m
 CONFIG_FIREWIRE_OHCI_DEBUG=y
 CONFIG_FIREWIRE_SBP2=m
 CONFIG_FIREWIRE_NET=m
-# CONFIG_IEEE1394 is not set
+# CONFIG_FIREWIRE_NOSY is not set
 # CONFIG_I2O is not set
 # CONFIG_MACINTOSH_DRIVERS is not set
 CONFIG_NETDEVICES=y
-CONFIG_IFB=m
-CONFIG_DUMMY=m
+CONFIG_NET_CORE=y
 CONFIG_BONDING=m
-CONFIG_MACVLAN=m
+CONFIG_DUMMY=m
 CONFIG_EQUALIZER=m
 CONFIG_IMQ=m
 # CONFIG_IMQ_BEHAVIOR_AA is not set
@@ -1515,58 +1712,114 @@ CONFIG_IMQ_BEHAVIOR_AB=y
 # CONFIG_IMQ_BEHAVIOR_BA is not set
 # CONFIG_IMQ_BEHAVIOR_BB is not set
 CONFIG_IMQ_NUM_DEVS=2
+# CONFIG_NET_FC is not set
+CONFIG_MII=m
+CONFIG_IEEE802154_DRIVERS=m
+CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_IFB=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+# CONFIG_NETCONSOLE is not set
+# CONFIG_NETPOLL is not set
+# CONFIG_NET_POLL_CONTROLLER is not set
 CONFIG_TUN=m
 CONFIG_VETH=m
-CONFIG_NET_SB1000=m
+CONFIG_VIRTIO_NET=m
+CONFIG_SUNGEM_PHY=m
 # CONFIG_ARCNET is not set
-CONFIG_PHYLIB=y
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_TCP=m
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_ENI=m
+CONFIG_ATM_ENI_DEBUG=y
+CONFIG_ATM_ENI_TUNE_BURST=y
+CONFIG_ATM_ENI_BURST_TX_16W=y
+CONFIG_ATM_ENI_BURST_TX_8W=y
+CONFIG_ATM_ENI_BURST_TX_4W=y
+CONFIG_ATM_ENI_BURST_TX_2W=y
+CONFIG_ATM_ENI_BURST_RX_16W=y
+CONFIG_ATM_ENI_BURST_RX_8W=y
+CONFIG_ATM_ENI_BURST_RX_4W=y
+CONFIG_ATM_ENI_BURST_RX_2W=y
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+CONFIG_ATM_NICSTAR=m
+CONFIG_ATM_NICSTAR_USE_SUNI=y
+CONFIG_ATM_NICSTAR_USE_IDT77105=y
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_USE_TASKLET=y
+CONFIG_ATM_FORE200E_TX_RETRY=16
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_SOLOS=m
 
 #
-# MII PHY device drivers
+# CAIF transport drivers
 #
-CONFIG_MARVELL_PHY=m
-CONFIG_DAVICOM_PHY=m
-CONFIG_QSEMI_PHY=m
-CONFIG_LXT_PHY=m
-CONFIG_CICADA_PHY=m
-CONFIG_VITESSE_PHY=m
-CONFIG_SMSC_PHY=m
-CONFIG_BROADCOM_PHY=m
-CONFIG_ICPLUS_PHY=m
-CONFIG_REALTEK_PHY=m
-CONFIG_NATIONAL_PHY=m
-CONFIG_STE10XP=m
-CONFIG_LSI_ET1011C_PHY=m
-# CONFIG_FIXED_PHY is not set
-CONFIG_MDIO_BITBANG=m
-CONFIG_NET_ETHERNET=y
-CONFIG_MII=m
-CONFIG_HAPPYMEAL=m
-CONFIG_SUNGEM=m
-CONFIG_CASSINI=m
+CONFIG_ETHERNET=y
+CONFIG_MDIO=m
 CONFIG_NET_VENDOR_3COM=y
 CONFIG_EL1=m
-CONFIG_EL2=m
-CONFIG_ELPLUS=m
-CONFIG_EL16=m
 CONFIG_EL3=m
 CONFIG_3C515=m
-CONFIG_ELMC=m
-CONFIG_ELMC_II=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
 CONFIG_VORTEX=m
 CONFIG_TYPHOON=m
+CONFIG_NET_VENDOR_ADAPTEC=y
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NET_VENDOR_ALTEON=y
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_NET_VENDOR_AMD=y
+CONFIG_AMD8111_ETH=m
 CONFIG_LANCE=m
-CONFIG_NET_VENDOR_SMC=y
-CONFIG_WD80x3=m
-CONFIG_ULTRAMCA=m
-CONFIG_ULTRA=m
-CONFIG_ULTRA32=m
-CONFIG_SMC9194=m
-CONFIG_ETHOC=m
-CONFIG_NET_VENDOR_RACAL=y
-CONFIG_NI52=m
+CONFIG_PCNET32=m
+CONFIG_DEPCA=m
+CONFIG_PCMCIA_NMCLAN=m
 CONFIG_NI65=m
+CONFIG_NET_VENDOR_ATHEROS=y
+CONFIG_ATL2=m
+CONFIG_ATL1=m
+CONFIG_ATL1E=m
+CONFIG_ATL1C=m
+CONFIG_NET_VENDOR_BROADCOM=y
+CONFIG_B44=m
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI=y
+CONFIG_BNX2=m
+CONFIG_CNIC=m
+CONFIG_TIGON3=m
+CONFIG_BNX2X=m
+CONFIG_NET_VENDOR_BROCADE=y
+CONFIG_BNA=m
+CONFIG_NET_VENDOR_CHELSIO=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4VF=m
+CONFIG_NET_VENDOR_CIRRUS=y
+CONFIG_CS89x0=m
+CONFIG_NET_VENDOR_CISCO=y
+CONFIG_ENIC=m
 CONFIG_DNET=m
+CONFIG_NET_VENDOR_DEC=y
+CONFIG_EWRK3=m
 CONFIG_NET_TULIP=y
 CONFIG_DE2104X=m
 CONFIG_DE2104X_DSL=0
@@ -1579,170 +1832,197 @@ CONFIG_WINBOND_840=m
 CONFIG_DM9102=m
 CONFIG_ULI526X=m
 CONFIG_PCMCIA_XIRCOM=m
+CONFIG_NET_VENDOR_DLINK=y
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DL2K=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_EMULEX=y
+CONFIG_BE2NET=m
+CONFIG_NET_VENDOR_EXAR=y
+CONFIG_S2IO=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_NET_VENDOR_FUJITSU=y
 CONFIG_AT1700=m
-CONFIG_DEPCA=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_ETH16I=m
+CONFIG_NET_VENDOR_HP=y
 CONFIG_HP100=m
-CONFIG_NET_ISA=y
-CONFIG_E2100=m
-CONFIG_EWRK3=m
+CONFIG_NET_VENDOR_IBM=y
+# CONFIG_IBM_EMAC_ZMII is not set
+# CONFIG_IBM_EMAC_RGMII is not set
+# CONFIG_IBM_EMAC_TAH is not set
+# CONFIG_IBM_EMAC_EMAC4 is not set
+# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set
+CONFIG_NET_VENDOR_INTEL=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_IGB=m
+CONFIG_IGB_DCA=y
+CONFIG_IGBVF=m
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBEVF=m
+CONFIG_NET_VENDOR_I825XX=y
+CONFIG_ELPLUS=m
+CONFIG_EL16=m
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_APRICOT=m
 CONFIG_EEXPRESS=m
 CONFIG_EEXPRESS_PRO=m
-CONFIG_HPLAN_PLUS=m
-CONFIG_HPLAN=m
 CONFIG_LP486E=m
-CONFIG_ETH16I=m
-CONFIG_NE2000=m
+CONFIG_NI52=m
 CONFIG_ZNET=m
-CONFIG_SEEQ8005=m
-CONFIG_NE2_MCA=m
+CONFIG_IP1000=m
+CONFIG_JME=m
+CONFIG_NET_VENDOR_MARVELL=y
+CONFIG_SKGE=m
+CONFIG_SKGE_GENESIS=y
+CONFIG_SKY2=m
+CONFIG_NET_VENDOR_MELLANOX=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_NET_VENDOR_MICREL=y
+CONFIG_KS8842=m
+CONFIG_KS8851_MLL=m
+CONFIG_KSZ884X_PCI=m
+CONFIG_NET_VENDOR_MYRI=y
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_FEALNX=m
+CONFIG_NET_VENDOR_NATSEMI=y
 CONFIG_IBMLANA=m
-# CONFIG_IBM_NEW_EMAC_ZMII is not set
-# CONFIG_IBM_NEW_EMAC_RGMII is not set
-# CONFIG_IBM_NEW_EMAC_TAH is not set
-# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
-# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
-# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
-# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
-CONFIG_NET_PCI=y
-CONFIG_PCNET32=m
-CONFIG_AMD8111_ETH=m
-CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_NATSEMI=m
+CONFIG_NS83820=m
+CONFIG_NET_VENDOR_8390=y
+CONFIG_EL2=m
 CONFIG_AC3200=m
-CONFIG_APRICOT=m
-CONFIG_B44=m
-CONFIG_B44_PCI_AUTOSELECT=y
-CONFIG_B44_PCICORE_AUTOSELECT=y
-CONFIG_B44_PCI=y
-CONFIG_FORCEDETH=m
-# CONFIG_FORCEDETH_NAPI is not set
-CONFIG_CS89x0=m
-CONFIG_E100=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_E2100=m
+CONFIG_ES3210=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HPLAN=m
 CONFIG_LNE390=m
-CONFIG_FEALNX=m
-CONFIG_NATSEMI=m
+CONFIG_NE2000=m
+CONFIG_NE2_MCA=m
 CONFIG_NE2K_PCI=m
 CONFIG_NE3210=m
-CONFIG_ES3210=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_WD80x3=m
+CONFIG_NET_VENDOR_NVIDIA=y
+CONFIG_FORCEDETH=m
+CONFIG_NET_VENDOR_OKI=y
+CONFIG_PCH_GBE=m
+CONFIG_ETHOC=m
+CONFIG_NET_PACKET_ENGINE=y
+CONFIG_HAMACHI=m
+CONFIG_YELLOWFIN=m
+CONFIG_NET_VENDOR_QLOGIC=y
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_REALTEK=y
+CONFIG_ATP=m
 CONFIG_8139CP=m
 CONFIG_8139TOO=m
 # CONFIG_8139TOO_PIO is not set
 CONFIG_8139TOO_TUNE_TWISTER=y
 CONFIG_8139TOO_8129=y
 # CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_R8169=m
+CONFIG_NET_VENDOR_RDC=y
 CONFIG_R6040=m
+CONFIG_NET_VENDOR_SEEQ=y
+CONFIG_SEEQ8005=m
+CONFIG_NET_VENDOR_SILAN=y
+CONFIG_SC92031=m
+CONFIG_NET_VENDOR_SIS=y
 CONFIG_SIS900=m
+CONFIG_SIS190=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_NET_VENDOR_SMSC=y
+CONFIG_SMC9194=m
+CONFIG_PCMCIA_SMC91C92=m
 CONFIG_EPIC100=m
 CONFIG_SMSC9420=m
-CONFIG_SUNDANCE=m
-# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_NET_VENDOR_STMICRO=y
+CONFIG_STMMAC_ETH=m
+# CONFIG_STMMAC_DA is not set
+CONFIG_STMMAC_RING=y
+# CONFIG_STMMAC_CHAINED is not set
+CONFIG_NET_VENDOR_SUN=y
+CONFIG_HAPPYMEAL=m
+CONFIG_SUNGEM=m
+CONFIG_CASSINI=m
+CONFIG_NIU=m
+CONFIG_NET_VENDOR_TEHUTI=y
+CONFIG_TEHUTI=m
+CONFIG_NET_VENDOR_TI=y
 CONFIG_TLAN=m
-CONFIG_KS8842=m
-CONFIG_KS8851_MLL=m
+CONFIG_NET_VENDOR_VIA=y
 CONFIG_VIA_RHINE=m
 CONFIG_VIA_RHINE_MMIO=y
-CONFIG_SC92031=m
-CONFIG_NET_POCKET=y
-CONFIG_ATP=m
-CONFIG_DE600=m
-CONFIG_DE620=m
-CONFIG_ATL2=m
-CONFIG_NETDEV_1000=y
-CONFIG_ACENIC=m
-# CONFIG_ACENIC_OMIT_TIGON_I is not set
-CONFIG_DL2K=m
-CONFIG_E1000=m
-CONFIG_E1000E=m
-CONFIG_IP1000=m
-CONFIG_IGB=m
-CONFIG_IGB_DCA=y
-CONFIG_IGBVF=m
-CONFIG_NS83820=m
-CONFIG_HAMACHI=m
-CONFIG_YELLOWFIN=m
-CONFIG_R8169=m
-CONFIG_R8169_VLAN=y
-CONFIG_SIS190=m
-CONFIG_SKGE=m
-CONFIG_SKY2=m
 CONFIG_VIA_VELOCITY=m
-CONFIG_TIGON3=m
-CONFIG_BNX2=m
-CONFIG_CNIC=m
-CONFIG_QLA3XXX=m
-CONFIG_ATL1=m
-CONFIG_ATL1E=m
-CONFIG_ATL1C=m
-CONFIG_JME=m
-CONFIG_NETDEV_10000=y
-CONFIG_MDIO=m
-CONFIG_CHELSIO_T1=m
-CONFIG_CHELSIO_T1_1G=y
-CONFIG_CHELSIO_T3_DEPENDS=y
-CONFIG_CHELSIO_T3=m
-CONFIG_ENIC=m
-CONFIG_IXGBE=m
-CONFIG_IXGBE_DCA=y
-CONFIG_IXGB=m
-CONFIG_S2IO=m
-CONFIG_VXGE=m
-# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
-CONFIG_MYRI10GE=m
-CONFIG_MYRI10GE_DCA=y
-CONFIG_NETXEN_NIC=m
-CONFIG_NIU=m
-CONFIG_MLX4_EN=m
-CONFIG_MLX4_CORE=m
-CONFIG_MLX4_DEBUG=y
-CONFIG_TEHUTI=m
-CONFIG_BNX2X=m
-CONFIG_QLGE=m
-CONFIG_SFC=m
-CONFIG_SFC_MTD=y
-CONFIG_BE2NET=m
-# CONFIG_TR is not set
-CONFIG_WLAN=y
-# CONFIG_WLAN_PRE80211 is not set
-CONFIG_WLAN_80211=y
-CONFIG_PCMCIA_RAYCS=m
-# CONFIG_LIBERTAS is not set
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AIRO=m
-CONFIG_ATMEL=m
-CONFIG_PCI_ATMEL=m
-CONFIG_PCMCIA_ATMEL=m
-CONFIG_AT76C50X_USB=m
-CONFIG_AIRO_CS=m
-CONFIG_PCMCIA_WL3501=m
-# CONFIG_PRISM54 is not set
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-# CONFIG_RTL8180 is not set
-# CONFIG_RTL8187 is not set
-# CONFIG_ADM8211 is not set
-# CONFIG_MAC80211_HWSIM is not set
-# CONFIG_MWL8K is not set
-# CONFIG_P54_COMMON is not set
-# CONFIG_ATH_COMMON is not set
-# CONFIG_IPW2100 is not set
-# CONFIG_IPW2200 is not set
-# CONFIG_IWLWIFI is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-CONFIG_HOSTAP_PLX=m
-CONFIG_HOSTAP_PCI=m
-CONFIG_HOSTAP_CS=m
-# CONFIG_B43 is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_ZD1211RW is not set
-# CONFIG_RT2X00 is not set
-# CONFIG_HERMES is not set
-# CONFIG_WL12XX is not set
-# CONFIG_IWM is not set
+CONFIG_NET_VENDOR_XIRCOM=y
+CONFIG_PCMCIA_XIRC2PS=m
+# CONFIG_FDDI is not set
+# CONFIG_HIPPI is not set
+CONFIG_NET_SB1000=m
+CONFIG_PHYLIB=y
 
 #
-# Enable WiMAX (Networking options) to see the WiMAX drivers
+# MII PHY device drivers
 #
+CONFIG_MARVELL_PHY=m
+CONFIG_DAVICOM_PHY=m
+CONFIG_QSEMI_PHY=m
+CONFIG_LXT_PHY=m
+CONFIG_CICADA_PHY=m
+CONFIG_VITESSE_PHY=m
+CONFIG_SMSC_PHY=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_ICPLUS_PHY=m
+CONFIG_REALTEK_PHY=m
+CONFIG_NATIONAL_PHY=m
+CONFIG_STE10XP=m
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_MICREL_PHY=m
+# CONFIG_FIXED_PHY is not set
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+# CONFIG_PLIP is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_SLIP=m
+CONFIG_SLHC=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+CONFIG_SLIP_MODE_SLIP6=y
+# CONFIG_TR is not set
 
 #
 # USB Network Adapters
@@ -1755,7 +2035,9 @@ CONFIG_USB_USBNET=m
 CONFIG_USB_NET_AX8817X=m
 CONFIG_USB_NET_CDCETHER=m
 CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_NCM=m
 CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_SMSC75XX=m
 CONFIG_USB_NET_SMSC95XX=m
 CONFIG_USB_NET_GL620A=m
 CONFIG_USB_NET_NET1080=m
@@ -1770,17 +2052,63 @@ CONFIG_USB_ARMLINUX=y
 CONFIG_USB_EPSON2888=y
 CONFIG_USB_KC2190=y
 CONFIG_USB_NET_ZAURUS=m
+CONFIG_USB_NET_CX82310_ETH=m
+CONFIG_USB_NET_KALMIA=m
 CONFIG_USB_HSO=m
 CONFIG_USB_NET_INT51X1=m
-CONFIG_NET_PCMCIA=y
-CONFIG_PCMCIA_3C589=m
-CONFIG_PCMCIA_3C574=m
-CONFIG_PCMCIA_FMVJ18X=m
-CONFIG_PCMCIA_PCNET=m
-CONFIG_PCMCIA_NMCLAN=m
-CONFIG_PCMCIA_SMC91C92=m
-CONFIG_PCMCIA_XIRC2PS=m
-CONFIG_PCMCIA_AXNET=m
+# CONFIG_USB_IPHETH is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_VL600=m
+CONFIG_WLAN=y
+CONFIG_PCMCIA_RAYCS=m
+# CONFIG_LIBERTAS_THINFIRM is not set
+CONFIG_AIRO=m
+CONFIG_ATMEL=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_AT76C50X_USB=m
+CONFIG_AIRO_CS=m
+CONFIG_PCMCIA_WL3501=m
+# CONFIG_PRISM54 is not set
+CONFIG_USB_ZD1201=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+# CONFIG_RTL8180 is not set
+# CONFIG_RTL8187 is not set
+# CONFIG_ADM8211 is not set
+# CONFIG_MAC80211_HWSIM is not set
+# CONFIG_MWL8K is not set
+# CONFIG_ATH_COMMON is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_BRCMFMAC is not set
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_FIRMWARE=y
+# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_CS=m
+# CONFIG_IPW2100 is not set
+# CONFIG_IPW2200 is not set
+# CONFIG_IWLWIFI is not set
+# CONFIG_IWL4965 is not set
+# CONFIG_IWL3945 is not set
+# CONFIG_IWM is not set
+# CONFIG_LIBERTAS is not set
+# CONFIG_HERMES is not set
+# CONFIG_P54_COMMON is not set
+# CONFIG_RT2X00 is not set
+# CONFIG_RTL8192CE is not set
+# CONFIG_RTL8192SE is not set
+# CONFIG_RTL8192DE is not set
+# CONFIG_RTL8192CU is not set
+# CONFIG_WL1251 is not set
+# CONFIG_WL12XX_MENU is not set
+# CONFIG_ZD1211RW is not set
+# CONFIG_MWIFIEX is not set
+
+#
+# Enable WiMAX (Networking options) to see the WiMAX drivers
+#
 CONFIG_WAN=y
 CONFIG_HOSTESS_SV11=m
 CONFIG_COSA=m
@@ -1809,93 +2137,13 @@ CONFIG_DSCC4_PCI_RST=y
 CONFIG_DLCI=m
 CONFIG_DLCI_MAX=8
 CONFIG_SDLA=m
-CONFIG_SBNI=m
-CONFIG_SBNI_MULTILINE=y
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-CONFIG_ATM_TCP=m
-CONFIG_ATM_LANAI=m
-CONFIG_ATM_ENI=m
-CONFIG_ATM_ENI_DEBUG=y
-CONFIG_ATM_ENI_TUNE_BURST=y
-CONFIG_ATM_ENI_BURST_TX_16W=y
-CONFIG_ATM_ENI_BURST_TX_8W=y
-CONFIG_ATM_ENI_BURST_TX_4W=y
-CONFIG_ATM_ENI_BURST_TX_2W=y
-CONFIG_ATM_ENI_BURST_RX_16W=y
-CONFIG_ATM_ENI_BURST_RX_8W=y
-CONFIG_ATM_ENI_BURST_RX_4W=y
-CONFIG_ATM_ENI_BURST_RX_2W=y
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
-# CONFIG_ATM_ZATM_DEBUG is not set
-CONFIG_ATM_NICSTAR=m
-CONFIG_ATM_NICSTAR_USE_SUNI=y
-CONFIG_ATM_NICSTAR_USE_IDT77105=y
-CONFIG_ATM_IDT77252=m
-# CONFIG_ATM_IDT77252_DEBUG is not set
-# CONFIG_ATM_IDT77252_RCV_ALL is not set
-CONFIG_ATM_IDT77252_USE_SUNI=y
-CONFIG_ATM_AMBASSADOR=m
-# CONFIG_ATM_AMBASSADOR_DEBUG is not set
-CONFIG_ATM_HORIZON=m
-# CONFIG_ATM_HORIZON_DEBUG is not set
-CONFIG_ATM_IA=m
-# CONFIG_ATM_IA_DEBUG is not set
-CONFIG_ATM_FORE200E=m
-CONFIG_ATM_FORE200E_USE_TASKLET=y
-CONFIG_ATM_FORE200E_TX_RETRY=16
-CONFIG_ATM_FORE200E_DEBUG=0
-CONFIG_ATM_HE=m
-CONFIG_ATM_HE_USE_SUNI=y
-CONFIG_ATM_SOLOS=m
-CONFIG_IEEE802154_DRIVERS=m
-CONFIG_IEEE802154_FAKEHARD=m
+CONFIG_SBNI=m
+CONFIG_SBNI_MULTILINE=y
 CONFIG_XEN_NETDEV_FRONTEND=m
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-CONFIG_PPPOATM=m
-CONFIG_PPPOL2TP=m
-CONFIG_SLIP=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLHC=m
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-# CONFIG_NET_FC is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_VIRTIO_NET=m
+CONFIG_XEN_NETDEV_BACKEND=m
 CONFIG_VMXNET3=m
 CONFIG_ISDN=y
 CONFIG_ISDN_I4L=m
-CONFIG_MISDN=m
-CONFIG_MISDN_DSP=m
-CONFIG_MISDN_L1OIP=m
-
-#
-# mISDN hardware drivers
-#
-CONFIG_MISDN_HFCPCI=m
-CONFIG_MISDN_HFCMULTI=m
-CONFIG_MISDN_HFCUSB=m
-CONFIG_MISDN_AVMFRITZ=m
-CONFIG_MISDN_SPEEDFAX=m
-CONFIG_MISDN_INFINEON=m
-CONFIG_MISDN_W6692=m
-CONFIG_MISDN_NETJET=m
-CONFIG_MISDN_IPAC=m
-CONFIG_MISDN_ISAR=m
 CONFIG_ISDN_PPP=y
 CONFIG_ISDN_PPP_VJ=y
 CONFIG_ISDN_MPP=y
@@ -1986,16 +2234,11 @@ CONFIG_ISDN_DRV_ICN=m
 CONFIG_ISDN_DRV_PCBIT=m
 CONFIG_ISDN_DRV_SC=m
 CONFIG_ISDN_DRV_ACT2000=m
-CONFIG_HYSDN=m
-CONFIG_HYSDN_CAPI=y
-CONFIG_ISDN_HDLC=m
 CONFIG_ISDN_CAPI=m
 CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
 CONFIG_CAPI_TRACE=y
 CONFIG_ISDN_CAPI_MIDDLEWARE=y
 CONFIG_ISDN_CAPI_CAPI20=m
-CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
-CONFIG_ISDN_CAPI_CAPIFS=m
 CONFIG_ISDN_CAPI_CAPIDRV=m
 
 #
@@ -2018,10 +2261,33 @@ CONFIG_ISDN_DIVAS_DIVACAPI=m
 CONFIG_ISDN_DIVAS_USERIDI=m
 CONFIG_ISDN_DIVAS_MAINT=m
 CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_GIGASET_CAPI=y
+# CONFIG_GIGASET_I4L is not set
+# CONFIG_GIGASET_DUMMYLL is not set
 CONFIG_GIGASET_BASE=m
 CONFIG_GIGASET_M105=m
 CONFIG_GIGASET_M101=m
 # CONFIG_GIGASET_DEBUG is not set
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+CONFIG_MISDN=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_L1OIP=m
+
+#
+# mISDN hardware drivers
+#
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_W6692=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_ISDN_HDLC=m
 # CONFIG_PHONE is not set
 
 #
@@ -2030,6 +2296,7 @@ CONFIG_GIGASET_M101=m
 CONFIG_INPUT=y
 CONFIG_INPUT_FF_MEMLESS=m
 CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_SPARSEKMAP=m
 
 #
 # Userland interfaces
@@ -2041,18 +2308,25 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
 # CONFIG_INPUT_JOYDEV is not set
 # CONFIG_INPUT_EVDEV is not set
 # CONFIG_INPUT_EVBUG is not set
-CONFIG_XEN_KBDDEV_FRONTEND=m
 
 #
 # Input Device Drivers
 #
 CONFIG_INPUT_KEYBOARD=y
 CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ADP5589=m
 CONFIG_KEYBOARD_ATKBD=y
-CONFIG_QT2160=m
+CONFIG_KEYBOARD_QT1070=m
+CONFIG_KEYBOARD_QT2160=m
 CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_GPIO_POLLED=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_MATRIX=m
 CONFIG_KEYBOARD_LM8323=m
 CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_MCS=m
+CONFIG_KEYBOARD_MPR121=m
 CONFIG_KEYBOARD_NEWTON=m
 CONFIG_KEYBOARD_OPENCORES=m
 CONFIG_KEYBOARD_STOWAWAY=m
@@ -2063,20 +2337,28 @@ CONFIG_KEYBOARD_XTKBD=m
 # CONFIG_INPUT_TABLET is not set
 # CONFIG_INPUT_TOUCHSCREEN is not set
 CONFIG_INPUT_MISC=y
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+# CONFIG_INPUT_BMA150 is not set
 CONFIG_INPUT_PCSPKR=m
+# CONFIG_INPUT_MMA8450 is not set
+# CONFIG_INPUT_MPU3050 is not set
 CONFIG_INPUT_APANEL=m
 # CONFIG_INPUT_WISTRON_BTNS is not set
 # CONFIG_INPUT_ATLAS_BTNS is not set
-CONFIG_INPUT_ATI_REMOTE=m
 CONFIG_INPUT_ATI_REMOTE2=m
 CONFIG_INPUT_KEYSPAN_REMOTE=m
+# CONFIG_INPUT_KXTJ9 is not set
 CONFIG_INPUT_POWERMATE=m
 CONFIG_INPUT_YEALINK=m
 CONFIG_INPUT_CM109=m
 # CONFIG_INPUT_UINPUT is not set
-CONFIG_INPUT_WINBOND_CIR=m
 CONFIG_INPUT_PCF50633_PMU=m
-CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+# CONFIG_INPUT_ADXL34X is not set
+# CONFIG_INPUT_CMA3000 is not set
+CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
 
 #
 # Hardware I/O ports
@@ -2089,6 +2371,8 @@ CONFIG_SERIO_SERPORT=y
 # CONFIG_SERIO_PCIPS2 is not set
 CONFIG_SERIO_LIBPS2=y
 # CONFIG_SERIO_RAW is not set
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_PS2MULT=m
 # CONFIG_GAMEPORT is not set
 
 #
@@ -2097,11 +2381,17 @@ CONFIG_SERIO_LIBPS2=y
 CONFIG_VT=y
 CONFIG_CONSOLE_TRANSLATIONS=y
 CONFIG_VT_CONSOLE=y
+CONFIG_VT_CONSOLE_SLEEP=y
 CONFIG_HW_CONSOLE=y
 # CONFIG_VT_HW_CONSOLE_BINDING is not set
-CONFIG_DEVKMEM=y
+CONFIG_UNIX98_PTYS=y
+# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
+# CONFIG_LEGACY_PTYS is not set
 # CONFIG_SERIAL_NONSTANDARD is not set
 CONFIG_NOZOMI=m
+CONFIG_N_GSM=m
+# CONFIG_TRACE_SINK is not set
+CONFIG_DEVKMEM=y
 
 #
 # Serial drivers
@@ -2129,12 +2419,18 @@ CONFIG_SERIAL_8250_RSA=y
 #
 # Non-8250 serial port support
 #
+CONFIG_SERIAL_MFD_HSU=m
+CONFIG_SERIAL_UARTLITE=m
 CONFIG_SERIAL_CORE=y
 CONFIG_SERIAL_CORE_CONSOLE=y
 # CONFIG_SERIAL_JSM is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_PCH_UART=m
+CONFIG_SERIAL_XILINX_PS_UART=m
 CONFIG_PRINTER=m
 # CONFIG_LP_CONSOLE is not set
 CONFIG_PPDEV=m
@@ -2157,6 +2453,9 @@ CONFIG_HW_RANDOM_GEODE=m
 CONFIG_HW_RANDOM_VIA=m
 CONFIG_HW_RANDOM_VIRTIO=m
 CONFIG_NVRAM=m
+CONFIG_RTC=m
+CONFIG_GEN_RTC=m
+CONFIG_GEN_RTC_X=y
 # CONFIG_DTLK is not set
 # CONFIG_R3964 is not set
 # CONFIG_APPLICOM is not set
@@ -2173,7 +2472,6 @@ CONFIG_MWAVE=m
 CONFIG_SCx200_GPIO=m
 CONFIG_PC8736x_GPIO=m
 CONFIG_NSC_GPIO=m
-CONFIG_CS5535_GPIO=m
 # CONFIG_RAW_DRIVER is not set
 CONFIG_HPET=y
 CONFIG_HPET_MMAP=y
@@ -2181,11 +2479,21 @@ CONFIG_HANGCHECK_TIMER=m
 # CONFIG_TCG_TPM is not set
 # CONFIG_TELCLOCK is not set
 CONFIG_DEVPORT=y
+# CONFIG_RAMOOPS is not set
 CONFIG_I2C=m
 CONFIG_I2C_BOARDINFO=y
 CONFIG_I2C_COMPAT=y
 CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_MUX=m
+
+#
+# Multiplexer I2C Chip support
+#
+CONFIG_I2C_MUX_GPIO=m
+CONFIG_I2C_MUX_PCA9541=m
+CONFIG_I2C_MUX_PCA954x=m
 CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_SMBUS=m
 CONFIG_I2C_ALGOBIT=m
 CONFIG_I2C_ALGOPCA=m
 
@@ -2221,40 +2529,35 @@ CONFIG_I2C_SCMI=m
 #
 # I2C system bus drivers (mostly embedded / system-on-chip)
 #
+CONFIG_I2C_DESIGNWARE_PCI=m
+CONFIG_I2C_GPIO=m
+CONFIG_I2C_INTEL_MID=m
 CONFIG_I2C_OCORES=m
+CONFIG_I2C_PCA_PLATFORM=m
+# CONFIG_I2C_PXA_PCI is not set
 CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2C_EG20T=m
 
 #
 # External I2C/SMBus adapter drivers
 #
+CONFIG_I2C_DIOLAN_U2C=m
 CONFIG_I2C_PARPORT=m
 CONFIG_I2C_PARPORT_LIGHT=m
 # CONFIG_I2C_TAOS_EVM is not set
 CONFIG_I2C_TINY_USB=m
 
-#
-# Graphics adapter I2C/DDC channel drivers
-#
-CONFIG_I2C_VOODOO3=m
-
 #
 # Other I2C/SMBus bus drivers
 #
 CONFIG_I2C_PCA_ISA=m
-CONFIG_I2C_PCA_PLATFORM=m
 CONFIG_I2C_STUB=m
 # CONFIG_SCx200_I2C is not set
 CONFIG_SCx200_ACB=m
-
-#
-# Miscellaneous I2C Chip support
-#
-CONFIG_DS1682=m
-CONFIG_SENSORS_TSL2550=m
 # CONFIG_I2C_DEBUG_CORE is not set
 # CONFIG_I2C_DEBUG_ALGO is not set
 # CONFIG_I2C_DEBUG_BUS is not set
-# CONFIG_I2C_DEBUG_CHIP is not set
 # CONFIG_SPI is not set
 
 #
@@ -2262,8 +2565,72 @@ CONFIG_SENSORS_TSL2550=m
 #
 CONFIG_PPS=m
 # CONFIG_PPS_DEBUG is not set
+
+#
+# PPS clients support
+#
+# CONFIG_PPS_CLIENT_KTIMER is not set
+# CONFIG_PPS_CLIENT_LDISC is not set
+# CONFIG_PPS_CLIENT_PARPORT is not set
+# CONFIG_PPS_CLIENT_GPIO is not set
+
+#
+# PPS generators support
+#
+
+#
+# PTP clock support
+#
+CONFIG_PTP_1588_CLOCK=m
+CONFIG_DP83640_PHY=m
 CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
-# CONFIG_GPIOLIB is not set
+CONFIG_GPIOLIB=y
+# CONFIG_DEBUG_GPIO is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_GENERIC=m
+CONFIG_GPIO_MAX730X=m
+
+#
+# Memory mapped GPIO drivers:
+#
+CONFIG_GPIO_GENERIC_PLATFORM=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_VX855=m
+
+#
+# I2C GPIO expanders:
+#
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_ADP5588=m
+
+#
+# PCI GPIO expanders:
+#
+CONFIG_GPIO_CS5535=m
+# CONFIG_GPIO_BT8XX is not set
+# CONFIG_GPIO_LANGWELL is not set
+CONFIG_GPIO_PCH=m
+CONFIG_GPIO_ML_IOH=m
+# CONFIG_GPIO_TIMBERDALE is not set
+CONFIG_GPIO_RDC321X=m
+
+#
+# SPI GPIO expanders:
+#
+CONFIG_GPIO_MCP23S08=m
+
+#
+# AC97 GPIO expanders:
+#
+
+#
+# MODULbus GPIO expanders:
+#
+# CONFIG_GPIO_JANZ_TTL is not set
 CONFIG_W1=m
 CONFIG_W1_CON=y
 
@@ -2273,27 +2640,39 @@ CONFIG_W1_CON=y
 CONFIG_W1_MASTER_MATROX=m
 CONFIG_W1_MASTER_DS2490=m
 CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_GPIO=m
 
 #
 # 1-wire Slaves
 #
 CONFIG_W1_SLAVE_THERM=m
 CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_DS2408=m
+CONFIG_W1_SLAVE_DS2423=m
 CONFIG_W1_SLAVE_DS2431=m
 CONFIG_W1_SLAVE_DS2433=m
 CONFIG_W1_SLAVE_DS2433_CRC=y
 CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_DS2780=m
 CONFIG_W1_SLAVE_BQ27000=m
 CONFIG_POWER_SUPPLY=y
 # CONFIG_POWER_SUPPLY_DEBUG is not set
 # CONFIG_PDA_POWER is not set
-CONFIG_WM831X_POWER=m
-CONFIG_WM8350_POWER=m
+# CONFIG_TEST_POWER is not set
 # CONFIG_BATTERY_DS2760 is not set
+# CONFIG_BATTERY_DS2780 is not set
 CONFIG_BATTERY_DS2782=m
+# CONFIG_BATTERY_BQ20Z75 is not set
 CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_BQ27X00_I2C=y
+CONFIG_BATTERY_BQ27X00_PLATFORM=y
 CONFIG_BATTERY_MAX17040=m
+# CONFIG_BATTERY_MAX17042 is not set
 CONFIG_CHARGER_PCF50633=m
+# CONFIG_CHARGER_ISP1704 is not set
+# CONFIG_CHARGER_MAX8903 is not set
+# CONFIG_CHARGER_GPIO is not set
 CONFIG_HWMON=m
 CONFIG_HWMON_VID=m
 # CONFIG_HWMON_DEBUG_CHIP is not set
@@ -2311,13 +2690,17 @@ CONFIG_SENSORS_ADM1026=m
 CONFIG_SENSORS_ADM1029=m
 CONFIG_SENSORS_ADM1031=m
 CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADT7411=m
 CONFIG_SENSORS_ADT7462=m
 CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7473=m
 CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_ASC7621=m
 CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_FAM15H_POWER=m
 CONFIG_SENSORS_ASB100=m
 CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DS620=m
 CONFIG_SENSORS_DS1621=m
 CONFIG_SENSORS_I5K_AMB=m
 CONFIG_SENSORS_F71805F=m
@@ -2327,11 +2710,15 @@ CONFIG_SENSORS_FSCHMD=m
 CONFIG_SENSORS_G760A=m
 CONFIG_SENSORS_GL518SM=m
 CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_GPIO_FAN=m
 CONFIG_SENSORS_CORETEMP=m
 CONFIG_SENSORS_IBMAEM=m
 CONFIG_SENSORS_IBMPEX=m
 CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_JC42=m
+CONFIG_SENSORS_LINEAGE=m
 CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM73=m
 CONFIG_SENSORS_LM75=m
 CONFIG_SENSORS_LM77=m
 CONFIG_SENSORS_LM78=m
@@ -2342,23 +2729,55 @@ CONFIG_SENSORS_LM87=m
 CONFIG_SENSORS_LM90=m
 CONFIG_SENSORS_LM92=m
 CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LTC4151=m
 CONFIG_SENSORS_LTC4215=m
 CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_LTC4261=m
 CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LM95245=m
+CONFIG_SENSORS_MAX16065=m
 CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX1668=m
+CONFIG_SENSORS_MAX6639=m
+CONFIG_SENSORS_MAX6642=m
 CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_NTC_THERMISTOR=m
 CONFIG_SENSORS_PC87360=m
 CONFIG_SENSORS_PC87427=m
 CONFIG_SENSORS_PCF8591=m
+CONFIG_PMBUS=m
+CONFIG_SENSORS_PMBUS=m
+CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LTC2978=m
+CONFIG_SENSORS_MAX16064=m
+CONFIG_SENSORS_MAX34440=m
+CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_UCD9000=m
+CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_ZL6100=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SHT21=m
 CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMM665=m
 CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC6W201=m
 CONFIG_SENSORS_SMSC47M1=m
 CONFIG_SENSORS_SMSC47M192=m
 CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SCH56XX_COMMON=m
+CONFIG_SENSORS_SCH5627=m
+CONFIG_SENSORS_SCH5636=m
+CONFIG_SENSORS_ADS1015=m
 CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_AMC6821=m
 CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
 CONFIG_SENSORS_TMP401=m
 CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
 CONFIG_SENSORS_VIA686A=m
 CONFIG_SENSORS_VT1211=m
 CONFIG_SENSORS_VT8231=m
@@ -2366,34 +2785,35 @@ CONFIG_SENSORS_W83781D=m
 CONFIG_SENSORS_W83791D=m
 CONFIG_SENSORS_W83792D=m
 CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83795=m
+# CONFIG_SENSORS_W83795_FANCTRL is not set
 CONFIG_SENSORS_W83L785TS=m
 CONFIG_SENSORS_W83L786NG=m
 CONFIG_SENSORS_W83627HF=m
 CONFIG_SENSORS_W83627EHF=m
-CONFIG_SENSORS_WM831X=m
-CONFIG_SENSORS_WM8350=m
-CONFIG_SENSORS_HDAPS=m
 CONFIG_SENSORS_APPLESMC=m
 
 #
 # ACPI drivers
 #
+CONFIG_SENSORS_ACPI_POWER=m
 CONFIG_SENSORS_ATK0110=m
-CONFIG_SENSORS_LIS3LV02D=m
 CONFIG_THERMAL=y
 CONFIG_WATCHDOG=y
+# CONFIG_WATCHDOG_CORE is not set
 # CONFIG_WATCHDOG_NOWAYOUT is not set
 
 #
 # Watchdog Device Drivers
 #
 CONFIG_SOFT_WATCHDOG=m
-CONFIG_WM831X_WATCHDOG=m
-CONFIG_WM8350_WATCHDOG=m
 CONFIG_ACQUIRE_WDT=m
 CONFIG_ADVANTECH_WDT=m
 CONFIG_ALIM1535_WDT=m
 CONFIG_ALIM7101_WDT=m
+CONFIG_F71808E_WDT=m
+CONFIG_SP5100_TCO=m
+CONFIG_GEODE_WDT=m
 CONFIG_SC520_WDT=m
 CONFIG_SBC_FITPC2_WATCHDOG=m
 CONFIG_EUROTECH_WDT=m
@@ -2406,9 +2826,11 @@ CONFIG_ITCO_WDT=m
 CONFIG_IT8712F_WDT=m
 CONFIG_IT87_WDT=m
 CONFIG_HP_WATCHDOG=m
+CONFIG_HPWDT_NMI_DECODING=y
 CONFIG_SC1200_WDT=m
 CONFIG_SCx200_WDT=m
 CONFIG_PC87413_WDT=m
+CONFIG_NV_TCO=m
 CONFIG_60XX_WDT=m
 CONFIG_SBC8360_WDT=m
 CONFIG_SBC7240_WDT=m
@@ -2422,6 +2844,7 @@ CONFIG_W83877F_WDT=m
 CONFIG_W83977F_WDT=m
 CONFIG_MACHZ_WDT=m
 CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_XEN_WDT=m
 
 #
 # ISA-based Watchdog Cards
@@ -2447,10 +2870,9 @@ CONFIG_SSB_POSSIBLE=y
 #
 CONFIG_SSB=m
 CONFIG_SSB_SPROM=y
-CONFIG_SSB_BLOCKIO=y
 CONFIG_SSB_PCIHOST_POSSIBLE=y
 CONFIG_SSB_PCIHOST=y
-CONFIG_SSB_B43_PCI_BRIDGE=y
+# CONFIG_SSB_B43_PCI_BRIDGE is not set
 CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
 CONFIG_SSB_PCMCIAHOST=y
 CONFIG_SSB_SDIOHOST_POSSIBLE=y
@@ -2458,74 +2880,135 @@ CONFIG_SSB_SDIOHOST=y
 # CONFIG_SSB_DEBUG is not set
 CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
 CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_BCMA_POSSIBLE=y
+
+#
+# Broadcom specific AMBA
+#
+CONFIG_BCMA=m
+CONFIG_BCMA_HOST_PCI_POSSIBLE=y
+# CONFIG_BCMA_HOST_PCI is not set
+# CONFIG_BCMA_DEBUG is not set
 
 #
 # Multifunction device drivers
 #
 CONFIG_MFD_CORE=m
 CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
 CONFIG_HTC_PASIC3=m
+CONFIG_TPS6105X=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
 # CONFIG_MFD_TMIO is not set
 CONFIG_MFD_WM8400=m
-CONFIG_MFD_WM831X=m
-CONFIG_MFD_WM8350=m
-CONFIG_MFD_WM8350_I2C=m
 CONFIG_MFD_PCF50633=m
 CONFIG_PCF50633_ADC=m
 CONFIG_PCF50633_GPIO=m
-CONFIG_AB3100_CORE=m
-CONFIG_AB3100_OTP=m
-# CONFIG_REGULATOR is not set
+# CONFIG_ABX500_CORE is not set
+CONFIG_MFD_CS5535=m
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_LPC_SCH=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_VX855=m
+# CONFIG_MFD_WL1273_CORE is not set
+CONFIG_REGULATOR=y
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+CONFIG_REGULATOR_FIXED_VOLTAGE=m
+# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
+# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
+CONFIG_REGULATOR_GPIO=m
+# CONFIG_REGULATOR_BQ24022 is not set
+# CONFIG_REGULATOR_MAX1586 is not set
+# CONFIG_REGULATOR_MAX8649 is not set
+# CONFIG_REGULATOR_MAX8660 is not set
+# CONFIG_REGULATOR_MAX8952 is not set
+# CONFIG_REGULATOR_WM8400 is not set
+# CONFIG_REGULATOR_PCF50633 is not set
+# CONFIG_REGULATOR_LP3971 is not set
+# CONFIG_REGULATOR_LP3972 is not set
+# CONFIG_REGULATOR_TPS6105X is not set
+# CONFIG_REGULATOR_TPS65023 is not set
+# CONFIG_REGULATOR_TPS6507X is not set
+# CONFIG_REGULATOR_ISL6271A is not set
+# CONFIG_REGULATOR_AD5398 is not set
 CONFIG_MEDIA_SUPPORT=m
 
 #
 # Multimedia core support
 #
+CONFIG_MEDIA_CONTROLLER=y
 CONFIG_VIDEO_DEV=m
 CONFIG_VIDEO_V4L2_COMMON=m
-# CONFIG_VIDEO_ALLOW_V4L1 is not set
-CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2_SUBDEV_API=y
 CONFIG_DVB_CORE=m
+CONFIG_DVB_NET=y
 CONFIG_VIDEO_MEDIA=m
 
 #
 # Multimedia drivers
 #
+CONFIG_RC_CORE=m
+CONFIG_LIRC=m
+CONFIG_RC_MAP=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_RC5_SZ_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_LIRC_CODEC=m
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_ENE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_ITE_CIR=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_NUVOTON=m
+CONFIG_IR_REDRAT3=m
+CONFIG_IR_STREAMZAP=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_LOOPBACK=m
 # CONFIG_MEDIA_ATTACH is not set
 CONFIG_MEDIA_TUNER=m
 # CONFIG_MEDIA_TUNER_CUSTOMISE is not set
 CONFIG_MEDIA_TUNER_SIMPLE=m
 CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA18271=m
 CONFIG_MEDIA_TUNER_TDA9887=m
 CONFIG_MEDIA_TUNER_TEA5761=m
 CONFIG_MEDIA_TUNER_TEA5767=m
 CONFIG_MEDIA_TUNER_MT20XX=m
 CONFIG_MEDIA_TUNER_XC2028=m
 CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEDIA_TUNER_XC4000=m
 CONFIG_MEDIA_TUNER_MC44S803=m
 CONFIG_VIDEO_V4L2=m
 CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_ADV_DEBUG is not set
 # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
 # CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_IR_I2C=m
 
 #
-# Encoders/decoders and other helper chips
+# Encoders, decoders, sensors and other helper chips
 #
 
 #
-# Audio decoders
+# Audio decoders, processors and mixers
 #
 # CONFIG_VIDEO_TVAUDIO is not set
 # CONFIG_VIDEO_TDA7432 is not set
 # CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TDA9875 is not set
 # CONFIG_VIDEO_TEA6415C is not set
 # CONFIG_VIDEO_TEA6420 is not set
 # CONFIG_VIDEO_MSP3400 is not set
 # CONFIG_VIDEO_CS5345 is not set
 # CONFIG_VIDEO_CS53L32A is not set
-# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_TLV320AIC23B is not set
 # CONFIG_VIDEO_WM8775 is not set
 # CONFIG_VIDEO_WM8739 is not set
@@ -2544,19 +3027,18 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_BT856 is not set
 # CONFIG_VIDEO_BT866 is not set
 # CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
 # CONFIG_VIDEO_SAA7110 is not set
 # CONFIG_VIDEO_SAA711X is not set
-# CONFIG_VIDEO_SAA717X is not set
+# CONFIG_VIDEO_SAA7191 is not set
 # CONFIG_VIDEO_TVP514X is not set
 # CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_TVP7002 is not set
 # CONFIG_VIDEO_VPX3220 is not set
 
 #
 # Video and audio decoders
 #
+# CONFIG_VIDEO_SAA717X is not set
 # CONFIG_VIDEO_CX25840 is not set
 
 #
@@ -2571,29 +3053,62 @@ CONFIG_VIDEO_CAPTURE_DRIVERS=y
 # CONFIG_VIDEO_SAA7185 is not set
 # CONFIG_VIDEO_ADV7170 is not set
 # CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_THS7303 is not set
 # CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_AK881X is not set
+
+#
+# Camera sensor devices
+#
+# CONFIG_VIDEO_OV7670 is not set
+# CONFIG_VIDEO_MT9P031 is not set
+# CONFIG_VIDEO_MT9T001 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_MT9V032 is not set
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_SR030PC30 is not set
+# CONFIG_VIDEO_NOON010PC30 is not set
+# CONFIG_VIDEO_M5MOLS is not set
+# CONFIG_VIDEO_S5K6AA is not set
+
+#
+# Flash devices
+#
+# CONFIG_VIDEO_ADP1653 is not set
 
 #
 # Video improvement chips
 #
 # CONFIG_VIDEO_UPD64031A is not set
 # CONFIG_VIDEO_UPD64083 is not set
+
+#
+# Miscelaneous helper chips
+#
+# CONFIG_VIDEO_THS7303 is not set
+# CONFIG_VIDEO_M52790 is not set
 # CONFIG_VIDEO_VIVI is not set
 # CONFIG_VIDEO_BT848 is not set
-# CONFIG_VIDEO_SAA5246A is not set
-# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_PMS is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_VIDEO_CPIA2 is not set
 # CONFIG_VIDEO_ZORAN is not set
+# CONFIG_VIDEO_MEYE is not set
 # CONFIG_VIDEO_SAA7134 is not set
+# CONFIG_VIDEO_MXB is not set
 # CONFIG_VIDEO_HEXIUM_ORION is not set
 # CONFIG_VIDEO_HEXIUM_GEMINI is not set
+# CONFIG_VIDEO_TIMBERDALE is not set
 # CONFIG_VIDEO_CX88 is not set
 # CONFIG_VIDEO_CX23885 is not set
+# CONFIG_VIDEO_CX25821 is not set
 # CONFIG_VIDEO_AU0828 is not set
 # CONFIG_VIDEO_IVTV is not set
 # CONFIG_VIDEO_CX18 is not set
 # CONFIG_VIDEO_SAA7164 is not set
 # CONFIG_VIDEO_CAFE_CCIC is not set
+# CONFIG_VIDEO_VIA_CAMERA is not set
 # CONFIG_SOC_CAMERA is not set
 CONFIG_V4L_USB_DRIVERS=y
 # CONFIG_USB_VIDEO_CLASS is not set
@@ -2602,24 +3117,25 @@ CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
 # CONFIG_VIDEO_PVRUSB2 is not set
 # CONFIG_VIDEO_HDPVR is not set
 # CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_TLG2300 is not set
 # CONFIG_VIDEO_CX231XX is not set
+# CONFIG_VIDEO_TM6000 is not set
 # CONFIG_VIDEO_USBVISION is not set
 # CONFIG_USB_ET61X251 is not set
 # CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_ZC0301 is not set
-# CONFIG_USB_PWC_INPUT_EVDEV is not set
+# CONFIG_USB_PWC is not set
 # CONFIG_USB_ZR364XX is not set
 # CONFIG_USB_STKWEBCAM is not set
 # CONFIG_USB_S2255 is not set
+# CONFIG_V4L_MEM2MEM_DRIVERS is not set
 CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_CADET is not set
 # CONFIG_RADIO_RTRACK is not set
 # CONFIG_RADIO_RTRACK2 is not set
 # CONFIG_RADIO_AZTECH is not set
 # CONFIG_RADIO_GEMTEK is not set
-# CONFIG_RADIO_GEMTEK_PCI is not set
 # CONFIG_RADIO_MAXIRADIO is not set
-# CONFIG_RADIO_MAESTRO is not set
+# CONFIG_RADIO_MIROPCM20 is not set
 # CONFIG_RADIO_SF16FMI is not set
 # CONFIG_RADIO_SF16FMR2 is not set
 # CONFIG_RADIO_TERRATEC is not set
@@ -2632,6 +3148,15 @@ CONFIG_RADIO_ADAPTERS=y
 # CONFIG_RADIO_SI470X is not set
 # CONFIG_USB_MR800 is not set
 # CONFIG_RADIO_TEA5764 is not set
+# CONFIG_RADIO_SAA7706H is not set
+# CONFIG_RADIO_TEF6862 is not set
+# CONFIG_RADIO_TIMBERDALE is not set
+# CONFIG_RADIO_WL1273 is not set
+
+#
+# Texas Instruments WL128x FM driver (ST based)
+#
+# CONFIG_RADIO_WL128X is not set
 CONFIG_DVB_MAX_ADAPTERS=8
 # CONFIG_DVB_DYNAMIC_MINORS is not set
 CONFIG_DVB_CAPTURE_DRIVERS=y
@@ -2670,17 +3195,76 @@ CONFIG_DVB_CAPTURE_DRIVERS=y
 #
 # CONFIG_DVB_DM1105 is not set
 
+#
+# Supported FireWire (IEEE 1394) Adapters
+#
+# CONFIG_DVB_FIREDTV is not set
+
 #
 # Supported Earthsoft PT1 Adapters
 #
 # CONFIG_DVB_PT1 is not set
 
+#
+# Supported Mantis Adapters
+#
+# CONFIG_MANTIS_CORE is not set
+
+#
+# Supported nGene Adapters
+#
+# CONFIG_DVB_NGENE is not set
+
+#
+# Supported ddbridge ('Octopus') Adapters
+#
+# CONFIG_DVB_DDBRIDGE is not set
+
 #
 # Supported DVB Frontends
 #
 # CONFIG_DVB_FE_CUSTOMISE is not set
-CONFIG_DAB=y
-# CONFIG_USB_DABUSB is not set
+
+#
+# Multistandard (satellite) frontends
+#
+
+#
+# Multistandard (cable + terrestrial) frontends
+#
+
+#
+# DVB-S (satellite) frontends
+#
+
+#
+# DVB-T (terrestrial) frontends
+#
+
+#
+# DVB-C (cable) frontends
+#
+
+#
+# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
+#
+
+#
+# ISDB-T (terrestrial) frontends
+#
+
+#
+# Digital terrestrial only tuners/PLL
+#
+
+#
+# SEC control devices for DVB-S
+#
+
+#
+# Tools to develop new frontends
+#
+# CONFIG_DVB_DUMMY_FE is not set
 
 #
 # Graphics support
@@ -2697,20 +3281,24 @@ CONFIG_AGP_SWORKS=m
 CONFIG_AGP_VIA=m
 CONFIG_AGP_EFFICEON=m
 CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_VGA_SWITCHEROO is not set
 CONFIG_DRM=m
 CONFIG_DRM_KMS_HELPER=m
 CONFIG_DRM_TTM=m
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
+# CONFIG_DRM_RADEON_KMS is not set
 CONFIG_DRM_I810=m
-CONFIG_DRM_I830=m
 CONFIG_DRM_I915=m
 CONFIG_DRM_I915_KMS=y
 CONFIG_DRM_MGA=m
 CONFIG_DRM_SIS=m
 CONFIG_DRM_VIA=m
 CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_STUB_POULSBO=m
 CONFIG_VGASTATE=m
 CONFIG_VIDEO_OUTPUT_CONTROL=m
 CONFIG_FB=y
@@ -2726,6 +3314,7 @@ CONFIG_FB_SYS_COPYAREA=m
 CONFIG_FB_SYS_IMAGEBLIT=m
 # CONFIG_FB_FOREIGN_ENDIAN is not set
 CONFIG_FB_SYS_FOPS=m
+# CONFIG_FB_WMT_GE_ROPS is not set
 CONFIG_FB_DEFERRED_IO=y
 CONFIG_FB_SVGALIB=m
 # CONFIG_FB_MACMODES is not set
@@ -2740,6 +3329,7 @@ CONFIG_FB_CIRRUS=m
 CONFIG_FB_PM2=m
 CONFIG_FB_PM2_FIFO_DISCONNECT=y
 CONFIG_FB_CYBER2000=m
+CONFIG_FB_CYBER2000_DDC=y
 # CONFIG_FB_ARC is not set
 CONFIG_FB_ASILIANT=y
 # CONFIG_FB_IMSTT is not set
@@ -2780,6 +3370,7 @@ CONFIG_FB_ATY_CT=y
 CONFIG_FB_ATY_GX=y
 CONFIG_FB_ATY_BACKLIGHT=y
 CONFIG_FB_S3=m
+CONFIG_FB_S3_DDC=y
 CONFIG_FB_SAVAGE=m
 CONFIG_FB_SAVAGE_I2C=y
 CONFIG_FB_SAVAGE_ACCEL=y
@@ -2787,6 +3378,8 @@ CONFIG_FB_SIS=m
 CONFIG_FB_SIS_300=y
 CONFIG_FB_SIS_315=y
 CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIA_X_COMPATIBILITY is not set
 CONFIG_FB_NEOMAGIC=m
 CONFIG_FB_KYRO=m
 CONFIG_FB_3DFX=m
@@ -2805,6 +3398,8 @@ CONFIG_FB_GEODE_GX1=m
 CONFIG_FB_TMIO=m
 CONFIG_FB_TMIO_ACCELL=y
 CONFIG_FB_SM501=m
+CONFIG_FB_SMSCUFX=m
+# CONFIG_FB_UDL is not set
 # CONFIG_FB_VIRTUAL is not set
 CONFIG_XEN_FBDEV_FRONTEND=m
 CONFIG_FB_METRONOME=m
@@ -2812,15 +3407,16 @@ CONFIG_FB_METRONOME=m
 # CONFIG_FB_BROADSHEET is not set
 CONFIG_BACKLIGHT_LCD_SUPPORT=y
 CONFIG_LCD_CLASS_DEVICE=m
-# CONFIG_LCD_ILI9320 is not set
 CONFIG_LCD_PLATFORM=m
 CONFIG_BACKLIGHT_CLASS_DEVICE=y
 CONFIG_BACKLIGHT_GENERIC=m
 CONFIG_BACKLIGHT_PROGEAR=m
 CONFIG_BACKLIGHT_CARILLO_RANCH=m
-CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_APPLE=m
 CONFIG_BACKLIGHT_SAHARA=m
-CONFIG_BACKLIGHT_WM831X=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_ADP8870=m
+CONFIG_BACKLIGHT_PCF50633=m
 
 #
 # Display device support
@@ -2839,7 +3435,7 @@ CONFIG_VGA_CONSOLE=y
 # CONFIG_MDA_CONSOLE is not set
 CONFIG_DUMMY_CONSOLE=y
 CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
 # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
 # CONFIG_FONTS is not set
 CONFIG_FONT_8x8=y
@@ -2854,6 +3450,7 @@ CONFIG_SOUND_OSS_CORE_PRECLAIM=y
 CONFIG_SND=m
 CONFIG_SND_TIMER=m
 CONFIG_SND_PCM=m
+CONFIG_SND_RAWMIDI=m
 CONFIG_SND_SEQUENCER=m
 CONFIG_SND_SEQ_DUMMY=m
 CONFIG_SND_OSSEMUL=y
@@ -2862,13 +3459,15 @@ CONFIG_SND_PCM_OSS=m
 CONFIG_SND_PCM_OSS_PLUGINS=y
 CONFIG_SND_SEQUENCER_OSS=y
 # CONFIG_SND_HRTIMER is not set
+CONFIG_SND_RTCTIMER=m
+CONFIG_SND_SEQ_RTCTIMER_DEFAULT=y
 # CONFIG_SND_DYNAMIC_MINORS is not set
 # CONFIG_SND_SUPPORT_OLD_API is not set
 CONFIG_SND_VERBOSE_PROCFS=y
 # CONFIG_SND_VERBOSE_PRINTK is not set
 # CONFIG_SND_DEBUG is not set
 CONFIG_SND_DMA_SGBUF=y
-# CONFIG_SND_RAWMIDI_SEQ is not set
+CONFIG_SND_RAWMIDI_SEQ=m
 # CONFIG_SND_OPL3_LIB_SEQ is not set
 # CONFIG_SND_OPL4_LIB_SEQ is not set
 # CONFIG_SND_SBAWE_SEQ is not set
@@ -2876,6 +3475,7 @@ CONFIG_SND_DMA_SGBUF=y
 CONFIG_SND_DRIVERS=y
 # CONFIG_SND_PCSP is not set
 CONFIG_SND_DUMMY=m
+CONFIG_SND_ALOOP=m
 # CONFIG_SND_VIRMIDI is not set
 # CONFIG_SND_MTPAV is not set
 # CONFIG_SND_MTS64 is not set
@@ -2887,12 +3487,12 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_AD1816A is not set
 # CONFIG_SND_AD1848 is not set
 # CONFIG_SND_ALS100 is not set
+# CONFIG_SND_AZT1605 is not set
+# CONFIG_SND_AZT2316 is not set
 # CONFIG_SND_AZT2320 is not set
 # CONFIG_SND_CMI8330 is not set
 # CONFIG_SND_CS4231 is not set
 # CONFIG_SND_CS4236 is not set
-# CONFIG_SND_DT019X is not set
-# CONFIG_SND_ES968 is not set
 # CONFIG_SND_ES1688 is not set
 # CONFIG_SND_ES18XX is not set
 # CONFIG_SND_SC6000 is not set
@@ -2901,6 +3501,7 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_GUSMAX is not set
 # CONFIG_SND_INTERWAVE is not set
 # CONFIG_SND_INTERWAVE_STB is not set
+# CONFIG_SND_JAZZ16 is not set
 # CONFIG_SND_OPL3SA2 is not set
 # CONFIG_SND_OPTI92X_AD1848 is not set
 # CONFIG_SND_OPTI92X_CS4231 is not set
@@ -2909,7 +3510,6 @@ CONFIG_SND_ISA=y
 # CONFIG_SND_SB8 is not set
 # CONFIG_SND_SB16 is not set
 # CONFIG_SND_SBAWE is not set
-# CONFIG_SND_SGALAXY is not set
 # CONFIG_SND_SSCAPE is not set
 # CONFIG_SND_WAVEFRONT is not set
 # CONFIG_SND_MSND_PINNACLE is not set
@@ -2919,6 +3519,7 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_ALS300 is not set
 # CONFIG_SND_ALS4000 is not set
 # CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_ASIHPI is not set
 # CONFIG_SND_ATIIXP is not set
 # CONFIG_SND_ATIIXP_MODEM is not set
 # CONFIG_SND_AU8810 is not set
@@ -2959,12 +3560,12 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_HDA_INTEL is not set
 # CONFIG_SND_HDSP is not set
 # CONFIG_SND_HDSPM is not set
-# CONFIG_SND_HIFIER is not set
 # CONFIG_SND_ICE1712 is not set
 # CONFIG_SND_ICE1724 is not set
 # CONFIG_SND_INTEL8X0 is not set
 # CONFIG_SND_INTEL8X0M is not set
 # CONFIG_SND_KORG1212 is not set
+# CONFIG_SND_LOLA is not set
 # CONFIG_SND_LX6464ES is not set
 # CONFIG_SND_MAESTRO3 is not set
 # CONFIG_SND_MIXART is not set
@@ -2984,9 +3585,14 @@ CONFIG_SND_PCI=y
 # CONFIG_SND_YMFPCI is not set
 CONFIG_SND_USB=y
 # CONFIG_SND_USB_AUDIO is not set
+# CONFIG_SND_USB_UA101 is not set
 # CONFIG_SND_USB_USX2Y is not set
 # CONFIG_SND_USB_CAIAQ is not set
 # CONFIG_SND_USB_US122L is not set
+# CONFIG_SND_USB_6FIRE is not set
+CONFIG_SND_FIREWIRE=y
+# CONFIG_SND_FIREWIRE_SPEAKERS is not set
+# CONFIG_SND_ISIGHT is not set
 CONFIG_SND_PCMCIA=y
 # CONFIG_SND_VXPOCKET is not set
 # CONFIG_SND_PDAUDIOCF is not set
@@ -3007,29 +3613,59 @@ CONFIG_USB_HIDDEV=y
 # Special HID drivers
 #
 CONFIG_HID_A4TECH=m
+# CONFIG_HID_ACRUX is not set
 CONFIG_HID_APPLE=m
 CONFIG_HID_BELKIN=m
 CONFIG_HID_CHERRY=m
 CONFIG_HID_CHICONY=m
+CONFIG_HID_PRODIKEYS=m
 CONFIG_HID_CYPRESS=m
 CONFIG_HID_DRAGONRISE=m
 CONFIG_DRAGONRISE_FF=y
+# CONFIG_HID_EMS_FF is not set
+CONFIG_HID_ELECOM=m
 CONFIG_HID_EZKEY=m
+# CONFIG_HID_HOLTEK is not set
+CONFIG_HID_KEYTOUCH=m
 CONFIG_HID_KYE=m
+CONFIG_HID_UCLOGIC=m
+CONFIG_HID_WALTOP=m
 CONFIG_HID_GYRATION=m
 CONFIG_HID_TWINHAN=m
 CONFIG_HID_KENSINGTON=m
+CONFIG_HID_LCPOWER=m
 CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
 CONFIG_LOGITECH_FF=y
 CONFIG_LOGIRUMBLEPAD2_FF=y
+# CONFIG_LOGIG940_FF is not set
+CONFIG_LOGIWHEELS_FF=y
+CONFIG_HID_MAGICMOUSE=m
 CONFIG_HID_MICROSOFT=m
 CONFIG_HID_MONTEREY=m
+CONFIG_HID_MULTITOUCH=m
 CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
 CONFIG_HID_PANTHERLORD=m
 CONFIG_PANTHERLORD_FF=y
 CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PRIMAX=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_COMMON=m
+CONFIG_HID_ROCCAT_ARVO=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_ROCCAT_KONEPLUS=m
+CONFIG_HID_ROCCAT_KOVAPLUS=m
+CONFIG_HID_ROCCAT_PYRA=m
 CONFIG_HID_SAMSUNG=m
 CONFIG_HID_SONY=m
+CONFIG_HID_SPEEDLINK=m
 CONFIG_HID_SUNPLUS=m
 CONFIG_HID_GREENASIA=m
 CONFIG_GREENASIA_FF=y
@@ -3039,13 +3675,18 @@ CONFIG_HID_TOPSEED=m
 CONFIG_HID_THRUSTMASTER=m
 CONFIG_THRUSTMASTER_FF=y
 CONFIG_HID_WACOM=m
+# CONFIG_HID_WACOM_POWER_SUPPLY is not set
+CONFIG_HID_WIIMOTE=m
 CONFIG_HID_ZEROPLUS=m
 CONFIG_ZEROPLUS_FF=y
+CONFIG_HID_ZYDACRON=m
 CONFIG_USB_SUPPORT=y
+CONFIG_USB_COMMON=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB_ARCH_HAS_XHCI=y
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -3057,6 +3698,8 @@ CONFIG_USB_DEVICE_CLASS=y
 CONFIG_USB_DYNAMIC_MINORS=y
 CONFIG_USB_SUSPEND=y
 # CONFIG_USB_OTG is not set
+CONFIG_USB_DWC3=m
+# CONFIG_USB_DWC3_DEBUG is not set
 # CONFIG_USB_MON is not set
 CONFIG_USB_WUSB=m
 CONFIG_USB_WUSB_CBAF=m
@@ -3068,30 +3711,26 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
-CONFIG_USB_OHCI_HCD_SSB=y
+CONFIG_USB_OHCI_HCD=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
+# CONFIG_USB_SL811_HCD_ISO is not set
 # CONFIG_USB_SL811_CS is not set
 CONFIG_USB_R8A66597_HCD=m
 CONFIG_USB_WHCI_HCD=m
 CONFIG_USB_HWA_HCD=m
 
-#
-# Enable Host or Gadget support to see Inventra options
-#
-
 #
 # USB Device Class drivers
 #
@@ -3109,6 +3748,8 @@ CONFIG_USB_TMC=m
 #
 CONFIG_USB_STORAGE=m
 # CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_REALTEK=m
+# CONFIG_REALTEK_AUTOPM is not set
 # CONFIG_USB_STORAGE_DATAFAB is not set
 CONFIG_USB_STORAGE_FREECOM=m
 CONFIG_USB_STORAGE_ISD200=m
@@ -3120,6 +3761,8 @@ CONFIG_USB_STORAGE_ALAUDA=m
 CONFIG_USB_STORAGE_ONETOUCH=m
 CONFIG_USB_STORAGE_KARMA=m
 CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_ENE_UB6250=m
+# CONFIG_USB_UAS is not set
 # CONFIG_USB_LIBUSUAL is not set
 
 #
@@ -3160,11 +3803,13 @@ CONFIG_USB_SERIAL_IUU=m
 # CONFIG_USB_SERIAL_KOBIL_SCT is not set
 CONFIG_USB_SERIAL_MCT_U232=m
 CONFIG_USB_SERIAL_MOS7720=m
+# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
 CONFIG_USB_SERIAL_MOS7840=m
 CONFIG_USB_SERIAL_MOTOROLA=m
 # CONFIG_USB_SERIAL_NAVMAN is not set
 CONFIG_USB_SERIAL_PL2303=m
 CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_QCAUX=m
 CONFIG_USB_SERIAL_QUALCOMM=m
 CONFIG_USB_SERIAL_SPCP8X5=m
 CONFIG_USB_SERIAL_HP4X=m
@@ -3176,9 +3821,13 @@ CONFIG_USB_SERIAL_SYMBOL=m
 CONFIG_USB_SERIAL_TI=m
 # CONFIG_USB_SERIAL_CYBERJACK is not set
 CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_WWAN=m
 CONFIG_USB_SERIAL_OPTION=m
 # CONFIG_USB_SERIAL_OMNINET is not set
 CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SERIAL_SSU100=m
 # CONFIG_USB_SERIAL_DEBUG is not set
 
 #
@@ -3191,7 +3840,6 @@ CONFIG_USB_SEVSEG=m
 # CONFIG_USB_RIO500 is not set
 # CONFIG_USB_LEGOTOWER is not set
 CONFIG_USB_LCD=m
-CONFIG_USB_BERRY_CHARGE=m
 CONFIG_USB_LED=m
 CONFIG_USB_CYPRESS_CY7C63=m
 CONFIG_USB_CYTHERM=m
@@ -3205,7 +3853,7 @@ CONFIG_USB_SISUSBVGA_CON=y
 CONFIG_USB_IOWARRIOR=m
 # CONFIG_USB_TEST is not set
 CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_VST=m
+CONFIG_USB_YUREX=m
 CONFIG_USB_ATM=m
 CONFIG_USB_SPEEDTOUCH=m
 CONFIG_USB_CXACRU=m
@@ -3217,21 +3865,22 @@ CONFIG_USB_XUSBATM=m
 # OTG and related infrastructure
 #
 CONFIG_USB_OTG_UTILS=y
+CONFIG_USB_GPIO_VBUS=m
 CONFIG_NOP_USB_XCEIV=m
 CONFIG_UWB=m
 CONFIG_UWB_HWA=m
 CONFIG_UWB_WHCI=m
-CONFIG_UWB_WLP=m
 CONFIG_UWB_I1480U=m
-CONFIG_UWB_I1480U_WLP=m
 CONFIG_MMC=m
 # CONFIG_MMC_DEBUG is not set
 # CONFIG_MMC_UNSAFE_RESUME is not set
+# CONFIG_MMC_CLKGATE is not set
 
 #
 # MMC/SD/SDIO Card Drivers
 #
 CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_MINORS=8
 CONFIG_MMC_BLOCK_BOUNCE=y
 CONFIG_SDIO_UART=m
 CONFIG_MMC_TEST=m
@@ -3241,15 +3890,15 @@ CONFIG_MMC_TEST=m
 #
 CONFIG_MMC_SDHCI=m
 CONFIG_MMC_SDHCI_PCI=m
-CONFIG_MMC_RICOH_MMC=m
+# CONFIG_MMC_RICOH_MMC is not set
 CONFIG_MMC_SDHCI_PLTFM=m
 CONFIG_MMC_WBSD=m
-# CONFIG_MMC_AT91 is not set
-# CONFIG_MMC_ATMELMCI is not set
 CONFIG_MMC_TIFM_SD=m
 CONFIG_MMC_SDRICOH_CS=m
 CONFIG_MMC_CB710=m
 CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_VUB300=m
+CONFIG_MMC_USHC=m
 CONFIG_MEMSTICK=m
 # CONFIG_MEMSTICK_DEBUG is not set
 
@@ -3264,103 +3913,58 @@ CONFIG_MSPRO_BLOCK=m
 #
 CONFIG_MEMSTICK_TIFM_MS=m
 CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_R592=m
 CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_CLASS=y
 
 #
 # LED drivers
 #
+CONFIG_LEDS_LM3530=m
 CONFIG_LEDS_NET48XX=m
+CONFIG_LEDS_NET5501=m
 CONFIG_LEDS_WRAP=m
-CONFIG_LEDS_ALIX2=m
 CONFIG_LEDS_PCA9532=m
+# CONFIG_LEDS_PCA9532_GPIO is not set
+CONFIG_LEDS_GPIO=m
 CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LP5521=m
+CONFIG_LEDS_LP5523=m
 CONFIG_LEDS_CLEVO_MAIL=m
 CONFIG_LEDS_PCA955X=m
-CONFIG_LEDS_WM831X_STATUS=m
-CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_REGULATOR=m
 CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_TRIGGERS=y
 
 #
 # LED Triggers
 #
-CONFIG_LEDS_TRIGGERS=y
 CONFIG_LEDS_TRIGGER_TIMER=m
 CONFIG_LEDS_TRIGGER_HEARTBEAT=m
 CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
 CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
 
 #
 # iptables trigger is under Netfilter config (LED target)
 #
-CONFIG_LEDS_TRIGGER_NETDEV=m
 # CONFIG_ACCESSIBILITY is not set
 # CONFIG_INFINIBAND is not set
 # CONFIG_EDAC is not set
-CONFIG_RTC_LIB=m
-CONFIG_RTC_CLASS=m
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-CONFIG_RTC_DRV_TEST=m
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-# CONFIG_RTC_DRV_M41T80_WDT is not set
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-
-#
-# SPI RTC drivers
-#
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_V3020=m
-CONFIG_RTC_DRV_WM831X=m
-CONFIG_RTC_DRV_WM8350=m
-CONFIG_RTC_DRV_PCF50633=m
-CONFIG_RTC_DRV_AB3100=m
-
-#
-# on-CPU RTC drivers
-#
+# CONFIG_RTC_CLASS is not set
 CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
 
 #
 # DMA Devices
 #
-CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_INTEL_MID_DMAC=m
 CONFIG_INTEL_IOATDMA=m
+CONFIG_TIMB_DMA=m
+CONFIG_PCH_DMA=m
 CONFIG_DMA_ENGINE=y
 
 #
@@ -3375,104 +3979,170 @@ CONFIG_UIO=m
 CONFIG_UIO_CIF=m
 CONFIG_UIO_PDRV=m
 CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_SMX=m
 CONFIG_UIO_AEC=m
 CONFIG_UIO_SERCOS3=m
 CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_NETX=m
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_RING=y
+
+#
+# Virtio drivers
+#
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MMIO=m
 
 #
-# TI VLYNQ
+# Xen driver support
 #
 CONFIG_XEN_BALLOON=y
 CONFIG_XEN_SCRUB_PAGES=y
 CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_BACKEND=y
 CONFIG_XENFS=m
 CONFIG_XEN_COMPAT_XENFS=y
 CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XEN_XENBUS_FRONTEND=y
+CONFIG_XEN_GNTDEV=m
+CONFIG_XEN_GRANT_DEV_ALLOC=m
+CONFIG_SWIOTLB_XEN=y
+CONFIG_XEN_PCIDEV_BACKEND=m
 CONFIG_STAGING=y
-# CONFIG_STAGING_EXCLUDE_BUILD is not set
 CONFIG_ET131X=m
-# CONFIG_ET131X_DEBUG is not set
 CONFIG_SLICOSS=m
-# CONFIG_VIDEO_GO7007 is not set
-# CONFIG_VIDEO_CX25821 is not set
-# CONFIG_USB_IP_COMMON is not set
+CONFIG_USBIP_CORE=m
+CONFIG_USBIP_VHCI_HCD=m
+CONFIG_USBIP_HOST=m
+# CONFIG_USBIP_DEBUG is not set
 # CONFIG_W35UND is not set
 # CONFIG_PRISM2_USB is not set
 # CONFIG_ECHO is not set
-# CONFIG_POCH is not set
-# CONFIG_OTUS is not set
-# CONFIG_RT2860 is not set
-# CONFIG_RT2870 is not set
-# CONFIG_RT3090 is not set
 # CONFIG_COMEDI is not set
 # CONFIG_ASUS_OLED is not set
 # CONFIG_PANEL is not set
-# CONFIG_ALTERA_PCIE_CHDMA is not set
-# CONFIG_RTL8187SE is not set
-# CONFIG_RTL8192SU is not set
+CONFIG_R8187SE=m
+CONFIG_RTL8192U=m
 # CONFIG_RTL8192E is not set
+CONFIG_R8712U=m
+CONFIG_RTS_PSTOR=m
+# CONFIG_RTS_PSTOR_DEBUG is not set
+CONFIG_RTS5139=m
+# CONFIG_RTS5139_DEBUG is not set
 # CONFIG_TRANZPORT is not set
-
-#
-# Android
-#
-
-#
-# Qualcomm MSM Camera And Video
-#
-
-#
-# Camera Sensor Selection
-#
-# CONFIG_INPUT_GPIO is not set
-# CONFIG_DST is not set
 # CONFIG_POHMELFS is not set
-# CONFIG_B3DFG is not set
 CONFIG_IDE_PHISON=m
-# CONFIG_PLAN9AUTH is not set
 # CONFIG_LINE6_USB is not set
-# CONFIG_DRM_RADEON_KMS is not set
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+
+#
+# I2C encoder or helper chips
+#
+# CONFIG_DRM_I2C_CH7006 is not set
+# CONFIG_DRM_I2C_SIL164 is not set
 # CONFIG_USB_SERIAL_QUATECH2 is not set
 # CONFIG_USB_SERIAL_QUATECH_USB2 is not set
 # CONFIG_VT6655 is not set
 # CONFIG_VT6656 is not set
-# CONFIG_FB_UDL is not set
-CONFIG_HYPERV=m
 CONFIG_HYPERV_STORAGE=m
-CONFIG_HYPERV_BLOCK=m
 CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_MOUSE=m
 # CONFIG_VME_BUS is not set
-
-#
-# RAR Register Driver
-#
-# CONFIG_RAR_REGISTER is not set
+# CONFIG_DX_SEP is not set
 # CONFIG_IIO is not set
+# CONFIG_XVMALLOC is not set
+# CONFIG_ZRAM is not set
+# CONFIG_WLAGS49_H2 is not set
+# CONFIG_WLAGS49_H25 is not set
+# CONFIG_FB_SM7XX is not set
+# CONFIG_CRYSTALHD is not set
+# CONFIG_CXT1E1 is not set
+# CONFIG_FB_XGI is not set
+# CONFIG_ACPI_QUICKSTART is not set
+# CONFIG_SBE_2T3E3 is not set
+# CONFIG_USB_ENESTORAGE is not set
+# CONFIG_BCM_WIMAX is not set
+# CONFIG_FT1000 is not set
+
+#
+# Speakup console speech
+#
+# CONFIG_SPEAKUP is not set
+# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
+# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
+# CONFIG_DRM_PSB is not set
+# CONFIG_STAGING_MEDIA is not set
 CONFIG_X86_PLATFORM_DEVICES=y
 CONFIG_ACER_WMI=m
+CONFIG_ACERHDF=m
 CONFIG_ASUS_LAPTOP=m
 CONFIG_DELL_WMI=m
+CONFIG_DELL_WMI_AIO=m
 CONFIG_FUJITSU_LAPTOP=m
 CONFIG_FUJITSU_LAPTOP_DEBUG=y
 CONFIG_TC1100_WMI=m
+CONFIG_HP_ACCEL=m
 CONFIG_HP_WMI=m
 CONFIG_MSI_LAPTOP=m
 CONFIG_PANASONIC_LAPTOP=m
 CONFIG_COMPAL_LAPTOP=m
 CONFIG_SONY_LAPTOP=m
 # CONFIG_SONYPI_COMPAT is not set
+CONFIG_IDEAPAD_LAPTOP=m
 CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
 # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set
 # CONFIG_THINKPAD_ACPI_DEBUG is not set
 # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
 CONFIG_THINKPAD_ACPI_VIDEO=y
 CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+CONFIG_SENSORS_HDAPS=m
 CONFIG_INTEL_MENLOW=m
 CONFIG_ACPI_WMI=m
+CONFIG_MSI_WMI=m
 CONFIG_ACPI_ASUS=m
 CONFIG_TOPSTAR_LAPTOP=m
 CONFIG_ACPI_TOSHIBA=m
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_ACPI_CMPC=m
+CONFIG_INTEL_IPS=m
+CONFIG_IBM_RTL=m
+CONFIG_XO15_EBOOK=m
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_MXM_WMI=m
+CONFIG_INTEL_OAKTRAIL=m
+CONFIG_SAMSUNG_Q10=m
+
+#
+# Hardware Spinlock drivers
+#
+CONFIG_CLKSRC_I8253=y
+CONFIG_CLKEVT_I8253=y
+CONFIG_I8253_LOCK=y
+CONFIG_CLKBLD_I8253=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_SUPPORT=y
+CONFIG_DMAR_TABLE=y
+CONFIG_INTEL_IOMMU=y
+CONFIG_INTEL_IOMMU_DEFAULT_ON=y
+CONFIG_INTEL_IOMMU_FLOPPY_WA=y
+CONFIG_VIRT_DRIVERS=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_PM_DEVFREQ=y
+
+#
+# DEVFREQ Governors
+#
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+
+#
+# DEVFREQ Drivers
+#
 
 #
 # Firmware Drivers
@@ -3482,8 +4152,11 @@ CONFIG_FIRMWARE_MEMMAP=y
 # CONFIG_DELL_RBU is not set
 # CONFIG_DCDBAS is not set
 CONFIG_DMIID=y
+CONFIG_DMI_SYSFS=m
 CONFIG_ISCSI_IBFT_FIND=y
 CONFIG_ISCSI_IBFT=m
+CONFIG_SIGMA=m
+# CONFIG_GOOGLE_FIRMWARE is not set
 
 #
 # File systems
@@ -3506,8 +4179,6 @@ CONFIG_EXT4_FS_SECURITY=y
 CONFIG_JBD=m
 CONFIG_JBD2=m
 CONFIG_FS_MBCACHE=m
-CONFIG_REISER4_FS=m
-# CONFIG_REISER4_DEBUG is not set
 CONFIG_REISERFS_FS=m
 # CONFIG_REISERFS_CHECK is not set
 CONFIG_REISERFS_PROC_INFO=y
@@ -3519,29 +4190,29 @@ CONFIG_JFS_POSIX_ACL=y
 CONFIG_JFS_SECURITY=y
 # CONFIG_JFS_DEBUG is not set
 CONFIG_JFS_STATISTICS=y
-CONFIG_FS_POSIX_ACL=y
 CONFIG_XFS_FS=m
 CONFIG_XFS_QUOTA=y
 CONFIG_XFS_POSIX_ACL=y
 # CONFIG_XFS_RT is not set
 # CONFIG_XFS_DEBUG is not set
 # CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
 # CONFIG_BTRFS_FS is not set
 # CONFIG_NILFS2_FS is not set
+CONFIG_FS_POSIX_ACL=y
+CONFIG_EXPORTFS=m
 CONFIG_FILE_LOCKING=y
 CONFIG_FSNOTIFY=y
 CONFIG_DNOTIFY=y
-CONFIG_INOTIFY=y
 CONFIG_INOTIFY_USER=y
+CONFIG_FANOTIFY=y
 CONFIG_QUOTA=y
 CONFIG_QUOTA_NETLINK_INTERFACE=y
 CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_QUOTA_DEBUG is not set
 CONFIG_QUOTA_TREE=m
 CONFIG_QFMT_V1=m
 CONFIG_QFMT_V2=m
 CONFIG_QUOTACTL=y
-CONFIG_AUTOFS_FS=m
 CONFIG_AUTOFS4_FS=m
 CONFIG_FUSE_FS=m
 CONFIG_CUSE=m
@@ -3587,6 +4258,7 @@ CONFIG_PROC_PAGE_MONITOR=y
 CONFIG_SYSFS=y
 CONFIG_TMPFS=y
 # CONFIG_TMPFS_POSIX_ACL is not set
+CONFIG_TMPFS_XATTR=y
 # CONFIG_HUGETLBFS is not set
 # CONFIG_HUGETLB_PAGE is not set
 # CONFIG_CONFIGFS_FS is not set
@@ -3615,6 +4287,7 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_JFFS2_CMODE_SIZE is not set
 # CONFIG_JFFS2_CMODE_FAVOURLZO is not set
 # CONFIG_UBIFS_FS is not set
+# CONFIG_LOGFS is not set
 # CONFIG_CRAMFS is not set
 # CONFIG_SQUASHFS is not set
 # CONFIG_VXFS_FS is not set
@@ -3623,8 +4296,11 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_HPFS_FS is not set
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
+# CONFIG_PSTORE is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3633,6 +4309,9 @@ CONFIG_NFS_V3_ACL=y
 CONFIG_NFS_V4=y
 # CONFIG_NFS_V4_1 is not set
 # CONFIG_NFS_FSCACHE is not set
+# CONFIG_NFS_USE_LEGACY_DNS is not set
+CONFIG_NFS_USE_KERNEL_DNS=y
+# CONFIG_NFS_USE_NEW_IDMAPPER is not set
 CONFIG_NFSD=m
 CONFIG_NFSD_V2_ACL=y
 CONFIG_NFSD_V3=y
@@ -3640,15 +4319,12 @@ CONFIG_NFSD_V3_ACL=y
 CONFIG_NFSD_V4=y
 CONFIG_LOCKD=m
 CONFIG_LOCKD_V4=y
-CONFIG_EXPORTFS=m
 CONFIG_NFS_ACL_SUPPORT=m
 CONFIG_NFS_COMMON=y
 CONFIG_SUNRPC=m
 CONFIG_SUNRPC_GSS=m
 CONFIG_RPCSEC_GSS_KRB5=m
-# CONFIG_RPCSEC_GSS_SPKM3 is not set
-CONFIG_SMB_FS=m
-# CONFIG_SMB_NLS_DEFAULT is not set
+# CONFIG_CEPH_FS is not set
 CONFIG_CIFS=m
 CONFIG_CIFS_STATS=y
 CONFIG_CIFS_STATS2=y
@@ -3658,7 +4334,8 @@ CONFIG_CIFS_XATTR=y
 CONFIG_CIFS_POSIX=y
 # CONFIG_CIFS_DEBUG2 is not set
 # CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_FSCACHE is not set
+CONFIG_CIFS_ACL=y
 # CONFIG_NCP_FS is not set
 # CONFIG_CODA_FS is not set
 # CONFIG_AFS_FS is not set
@@ -3673,7 +4350,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
@@ -3725,13 +4402,13 @@ CONFIG_NLS_ISO8859_1=y
 # CONFIG_NLS_KOI8_R is not set
 # CONFIG_NLS_KOI8_U is not set
 CONFIG_NLS_UTF8=y
-# CONFIG_DLM is not set
 
 #
 # Kernel hacking
 #
 CONFIG_TRACE_IRQFLAGS_SUPPORT=y
 # CONFIG_PRINTK_TIME is not set
+CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
 # CONFIG_ENABLE_WARN_DEPRECATED is not set
 CONFIG_ENABLE_MUST_CHECK=y
 CONFIG_FRAME_WARN=1024
@@ -3740,12 +4417,13 @@ CONFIG_STRIP_ASM_SYMS=y
 # CONFIG_UNUSED_SYMBOLS is not set
 # CONFIG_DEBUG_FS is not set
 # CONFIG_HEADERS_CHECK is not set
+# CONFIG_DEBUG_SECTION_MISMATCH is not set
 CONFIG_DEBUG_KERNEL=y
 # CONFIG_DEBUG_SHIRQ is not set
-CONFIG_DETECT_SOFTLOCKUP=y
-# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
-CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_LOCKUP_DETECTOR is not set
+# CONFIG_HARDLOCKUP_DETECTOR is not set
 CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
 CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
 CONFIG_SCHED_DEBUG=y
@@ -3761,9 +4439,11 @@ CONFIG_TIMER_STATS=y
 # CONFIG_DEBUG_MUTEXES is not set
 # CONFIG_DEBUG_LOCK_ALLOC is not set
 # CONFIG_PROVE_LOCKING is not set
+# CONFIG_SPARSE_RCU_POINTER is not set
 # CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_ATOMIC_SLEEP is not set
 # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
 # CONFIG_DEBUG_KOBJECT is not set
 # CONFIG_DEBUG_HIGHMEM is not set
 CONFIG_DEBUG_BUGVERBOSE=y
@@ -3773,6 +4453,7 @@ CONFIG_DEBUG_BUGVERBOSE=y
 # CONFIG_DEBUG_WRITECOUNT is not set
 CONFIG_DEBUG_MEMORY_INIT=y
 # CONFIG_DEBUG_LIST is not set
+# CONFIG_TEST_LIST_SORT is not set
 # CONFIG_DEBUG_SG is not set
 # CONFIG_DEBUG_NOTIFIERS is not set
 # CONFIG_DEBUG_CREDENTIALS is not set
@@ -3780,10 +4461,12 @@ CONFIG_ARCH_WANT_FRAME_POINTERS=y
 # CONFIG_FRAME_POINTER is not set
 # CONFIG_BOOT_PRINTK_DELAY is not set
 # CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+CONFIG_RCU_CPU_STALL_TIMEOUT=60
 # CONFIG_BACKTRACE_SELF_TEST is not set
 # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
 # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
 # CONFIG_FAULT_INJECTION is not set
 # CONFIG_LATENCYTOP is not set
 # CONFIG_SYSCTL_SYSCALL_CHECK is not set
@@ -3796,27 +4479,29 @@ CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
 CONFIG_HAVE_DYNAMIC_FTRACE=y
 CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_C_RECORDMCOUNT=y
 CONFIG_TRACING_SUPPORT=y
 # CONFIG_FTRACE is not set
 # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
 # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
 # CONFIG_DMA_API_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ASYNC_RAID6_TEST=m
 # CONFIG_SAMPLES is not set
 CONFIG_HAVE_ARCH_KGDB=y
 # CONFIG_KGDB is not set
 CONFIG_HAVE_ARCH_KMEMCHECK=y
+# CONFIG_TEST_KSTRTOX is not set
 # CONFIG_STRICT_DEVMEM is not set
 CONFIG_X86_VERBOSE_BOOTUP=y
 CONFIG_EARLY_PRINTK=y
 # CONFIG_EARLY_PRINTK_DBGP is not set
 # CONFIG_DEBUG_STACKOVERFLOW is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
 # CONFIG_X86_PTDUMP is not set
 CONFIG_DEBUG_RODATA=y
 CONFIG_DEBUG_RODATA_TEST=y
+# CONFIG_DEBUG_SET_MODULE_RONX is not set
 # CONFIG_DEBUG_NX_TEST is not set
-# CONFIG_4KSTACKS is not set
 CONFIG_DOUBLEFAULT=y
 # CONFIG_IOMMU_STRESS is not set
 CONFIG_HAVE_MMIOTRACE_SUPPORT=y
@@ -3831,17 +4516,20 @@ CONFIG_IO_DELAY_0X80=y
 CONFIG_DEFAULT_IO_DELAY_TYPE=0
 # CONFIG_CPA_DEBUG is not set
 # CONFIG_OPTIMIZE_INLINING is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
 
 #
 # Security options
 #
 CONFIG_KEYS=y
+# CONFIG_ENCRYPTED_KEYS is not set
 # CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+# CONFIG_SECURITY_DMESG_RESTRICT is not set
 # CONFIG_SECURITY is not set
 # CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_FILE_CAPABILITIES is not set
 # CONFIG_INTEL_TXT is not set
-# CONFIG_IMA is not set
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_DEFAULT_SECURITY=""
 CONFIG_XOR_BLOCKS=m
 CONFIG_ASYNC_CORE=m
 CONFIG_ASYNC_MEMCPY=m
@@ -3855,7 +4543,6 @@ CONFIG_CRYPTO=y
 #
 # Crypto core or helper
 #
-CONFIG_CRYPTO_FIPS=y
 CONFIG_CRYPTO_ALGAPI=y
 CONFIG_CRYPTO_ALGAPI2=y
 CONFIG_CRYPTO_AEAD=m
@@ -3866,11 +4553,15 @@ CONFIG_CRYPTO_HASH=y
 CONFIG_CRYPTO_HASH2=y
 CONFIG_CRYPTO_RNG=m
 CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCOMP=m
+CONFIG_CRYPTO_PCOMP2=y
 CONFIG_CRYPTO_MANAGER=y
 CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_USER=m
+CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
 CONFIG_CRYPTO_GF128MUL=m
 # CONFIG_CRYPTO_NULL is not set
+CONFIG_CRYPTO_PCRYPT=m
 CONFIG_CRYPTO_WORKQUEUE=y
 CONFIG_CRYPTO_CRYPTD=m
 CONFIG_CRYPTO_AUTHENC=m
@@ -3907,7 +4598,7 @@ CONFIG_CRYPTO_VMAC=m
 CONFIG_CRYPTO_CRC32C=m
 CONFIG_CRYPTO_CRC32C_INTEL=m
 CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_MD4 is not set
+CONFIG_CRYPTO_MD4=m
 CONFIG_CRYPTO_MD5=m
 CONFIG_CRYPTO_MICHAEL_MIC=m
 CONFIG_CRYPTO_RMD128=m
@@ -3925,9 +4616,11 @@ CONFIG_CRYPTO_WP512=m
 #
 CONFIG_CRYPTO_AES=m
 CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
 CONFIG_CRYPTO_ANUBIS=m
 CONFIG_CRYPTO_ARC4=m
 CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_BLOWFISH_COMMON=m
 CONFIG_CRYPTO_CAMELLIA=m
 CONFIG_CRYPTO_CAST5=m
 CONFIG_CRYPTO_CAST6=m
@@ -3954,35 +4647,34 @@ CONFIG_CRYPTO_LZO=m
 # Random Number Generation
 #
 CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
 CONFIG_CRYPTO_HW=y
 CONFIG_CRYPTO_DEV_PADLOCK=m
 CONFIG_CRYPTO_DEV_PADLOCK_AES=m
 CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
 CONFIG_CRYPTO_DEV_GEODE=m
-CONFIG_CRYPTO_DEV_HIFN_795X=m
-CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
 CONFIG_HAVE_KVM=y
 CONFIG_HAVE_KVM_IRQCHIP=y
 CONFIG_HAVE_KVM_EVENTFD=y
 CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_MMIO=y
+CONFIG_KVM_ASYNC_PF=y
 CONFIG_VIRTUALIZATION=y
 CONFIG_KVM=m
 CONFIG_KVM_INTEL=m
 CONFIG_KVM_AMD=m
+CONFIG_VHOST_NET=m
 CONFIG_LGUEST=m
-CONFIG_VIRTIO=y
-CONFIG_VIRTIO_RING=y
-CONFIG_VIRTIO_PCI=m
-CONFIG_VIRTIO_BALLOON=m
 # CONFIG_BINARY_PRINTF is not set
 
 #
 # Library routines
 #
+CONFIG_RAID6_PQ=m
 CONFIG_BITREVERSE=y
 CONFIG_GENERIC_FIND_FIRST_BIT=y
-CONFIG_GENERIC_FIND_NEXT_BIT=y
-CONFIG_GENERIC_FIND_LAST_BIT=y
 CONFIG_CRC_CCITT=m
 CONFIG_CRC16=m
 CONFIG_CRC_T10DIF=m
@@ -3990,14 +4682,26 @@ CONFIG_CRC_ITU_T=m
 CONFIG_CRC32=y
 CONFIG_CRC7=m
 CONFIG_LIBCRC32C=m
+CONFIG_CRC8=m
 CONFIG_AUDIT_GENERIC=y
 CONFIG_ZLIB_INFLATE=y
 CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=m
-CONFIG_LZO_DECOMPRESS=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_XZ_DEC=y
+CONFIG_XZ_DEC_X86=y
+CONFIG_XZ_DEC_POWERPC=y
+CONFIG_XZ_DEC_IA64=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_ARMTHUMB=y
+CONFIG_XZ_DEC_SPARC=y
+CONFIG_XZ_DEC_BCJ=y
+# CONFIG_XZ_DEC_TEST is not set
 CONFIG_DECOMPRESS_GZIP=y
 CONFIG_DECOMPRESS_BZIP2=y
 CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_XZ=y
+CONFIG_DECOMPRESS_LZO=y
 CONFIG_TEXTSEARCH=y
 CONFIG_TEXTSEARCH_KMP=m
 CONFIG_TEXTSEARCH_BM=m
@@ -4006,4 +4710,7 @@ CONFIG_HAS_IOMEM=y
 CONFIG_HAS_IOPORT=y
 CONFIG_HAS_DMA=y
 CONFIG_CHECK_SIGNATURE=y
+CONFIG_CPU_RMAP=y
 CONFIG_NLATTR=y
+CONFIG_AVERAGE=y
+CONFIG_CORDIC=m
index 72fd49098ce4a9b9a1aecdd8010416d02b88d5f1..53496b04b1363be565fe67b81f5cd62ca613e4a9 100644 (file)
@@ -2766,7 +2766,7 @@ CONFIG_USB_SUPPORT=y
 CONFIG_USB_ARCH_HAS_HCD=y
 CONFIG_USB_ARCH_HAS_OHCI=y
 CONFIG_USB_ARCH_HAS_EHCI=y
-CONFIG_USB=m
+CONFIG_USB=y
 # CONFIG_USB_DEBUG is not set
 CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
 
@@ -2789,19 +2789,19 @@ CONFIG_USB_WUSB_CBAF=m
 # CONFIG_USB_C67X00_HCD is not set
 CONFIG_USB_XHCI_HCD=m
 # CONFIG_USB_XHCI_HCD_DEBUGGING is not set
-CONFIG_USB_EHCI_HCD=m
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
 CONFIG_USB_OXU210HP_HCD=m
 CONFIG_USB_ISP116X_HCD=m
 # CONFIG_USB_ISP1760_HCD is not set
 CONFIG_USB_ISP1362_HCD=m
-CONFIG_USB_OHCI_HCD=m
+CONFIG_USB_OHCI_HCD=y
 CONFIG_USB_OHCI_HCD_SSB=y
 # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
 # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
 CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_UHCI_HCD=y
 CONFIG_USB_U132_HCD=m
 CONFIG_USB_SL811_HCD=m
 # CONFIG_USB_SL811_CS is not set
@@ -3385,7 +3385,9 @@ CONFIG_JFFS2_CMODE_PRIORITY=y
 # CONFIG_QNX4FS_FS is not set
 # CONFIG_ROMFS_FS is not set
 # CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+# CONFIG_UFS_DEBUG is not set
 # CONFIG_EXOFS_FS is not set
 CONFIG_NETWORK_FILESYSTEMS=y
 CONFIG_NFS_FS=m
@@ -3433,7 +3435,7 @@ CONFIG_PARTITION_ADVANCED=y
 # CONFIG_ATARI_PARTITION is not set
 # CONFIG_MAC_PARTITION is not set
 CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
+CONFIG_BSD_DISKLABEL=y
 # CONFIG_MINIX_SUBPARTITION is not set
 # CONFIG_SOLARIS_X86_PARTITION is not set
 # CONFIG_UNIXWARE_DISKLABEL is not set
diff --git a/config/madwifi/madwifi.conf b/config/madwifi/madwifi.conf
deleted file mode 100644 (file)
index a4a234f..0000000
+++ /dev/null
@@ -1,295 +0,0 @@
-##### hostapd configuration file ##############################################
-# Empty lines and lines starting with # are ignored
-
-# AP netdevice name (without 'ap' prefix, i.e., wlan0 uses wlan0ap for
-# management frames)
-interface=ath0
-
-# Driver interface type (hostap/wired/madwifi/prism54; default: hostap)
-driver=madwifi
-
-# hostapd event logger configuration
-#
-# Two output method: syslog and stdout (only usable if not forking to
-# background).
-#
-# Module bitfield (ORed bitfield of modules that will be logged; -1 = all
-# modules):
-# bit 0 (1) = IEEE 802.11
-# bit 1 (2) = IEEE 802.1X
-# bit 2 (4) = RADIUS
-# bit 3 (8) = WPA
-# bit 4 (16) = driver interface
-# bit 5 (32) = IAPP
-#
-# Levels (minimum value for logged events):
-#  0 = verbose debugging
-#  1 = debugging
-#  2 = informational messages
-#  3 = notification
-#  4 = warning
-#
-logger_syslog=-1
-logger_syslog_level=2
-logger_stdout=-1
-logger_stdout_level=1
-
-# Debugging: 0 = no, 1 = minimal, 2 = verbose, 3 = msg dumps, 4 = excessive
-debug=0
-
-# Dump file for state information (on SIGUSR1)
-dump_file=/tmp/hostapd.dump
-
-# Interface for separate control program. If this is specified, hostapd
-# will create this directory and a UNIX domain socket for listening to requests
-# from external programs (CLI/GUI, etc.) for status information and
-# configuration. The socket file will be named based on the interface name, so
-# multiple hostapd processes/interfaces can be run at the same time if more
-# than one interface is used.
-# /var/run/hostapd is the recommended directory for sockets and by default,
-# hostapd_cli will use it when trying to connect with hostapd.
-ctrl_interface=/var/run/hostapd
-
-# Access control for the control interface can be configured by setting the
-# directory to allow only members of a group to use sockets. This way, it is
-# possible to run hostapd as root (since it needs to change network
-# configuration and open raw sockets) and still allow GUI/CLI components to be
-# run as non-root users. However, since the control interface can be used to
-# change the network configuration, this access needs to be protected in many
-# cases. By default, hostapd is configured to use gid 0 (root). If you
-# want to allow non-root users to use the contron interface, add a new group
-# and change this value to match with that group. Add users that should have
-# control interface access to this group.
-#
-# This variable can be a group name or gid.
-#ctrl_interface_group=wheel
-ctrl_interface_group=0
-
-
-##### IEEE 802.11 related configuration #######################################
-
-# SSID to be used in IEEE 802.11 management frames
-ssid=IPFire
-
-# Station MAC address -based authentication
-# 0 = accept unless in deny list
-# 1 = deny unless in accept list
-# 2 = use external RADIUS server (accept/deny lists are searched first)
-macaddr_acl=0
-
-# Accept/deny lists are read from separate files (containing list of
-# MAC addresses, one per line). Use absolute path name to make sure that the
-
-# files can be read on SIGHUP configuration reloads.
-#accept_mac_file=/etc/hostapd/hostapd.accept
-#deny_mac_file=/etc/hostapd/hostapd.deny
-
-# IEEE 802.11 specifies two authentication algorithms. hostapd can be
-# configured to allow both of these or only one. Open system authentication
-# should be used with IEEE 802.1X.
-# Bit fields of allowed authentication algorithms:
-# bit 0 = Open System Authentication
-# bit 1 = Shared Key Authentication (requires WEP)
-auth_algs=1
-
-# Associate as a station to another AP while still acting as an AP on the same
-# channel.
-#assoc_ap_addr=00:12:34:56:78:9a
-
-
-##### IEEE 802.1X (and IEEE 802.1aa/D4) related configuration #################
-
-# Require IEEE 802.1X authorization
-#ieee8021x=0
-
-# Use integrated EAP authenticator instead of external RADIUS authentication
-# server
-#eap_authenticator=0
-
-# Path for EAP authenticator user database
-#eap_user_file=/etc/hostapd/eap_user
-
-# CA certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
-#ca_cert=/etc/hostapd/ca.pem
-
-# Server certificate (PEM or DER file) for EAP-TLS/PEAP/TTLS
-#server_cert=/etc/hostapd/server.pem
-
-# Private key matching with the server certificate for EAP-TLS/PEAP/TTLS
-# This may point to the same file as server_cert if both certificate and key
-# are included in a single file. PKCS#12 (PFX) file (.p12/.pfx) can also be
-# used by commenting out server_cert and specifying the PFX file as the
-# private_key.
-#private_key=/etc/hostapd/server.prv
-
-# Passphrase for private key
-#private_key_passwd=secret passphrase
-
-# Configuration data for EAP-SIM database/authentication gateway interface.
-# This is a text string in implementation specific format. The example
-# implementation in eap_sim_db.c uses this as the file name for the GSM
-# authentication triplets.
-#eap_sim_db=/etc/hostapd/sim_db
-
-# Optional displayable message sent with EAP Request-Identity
-#eap_message=hello
-
-# WEP rekeying (disabled if key lengths are not set or are set to 0)
-# Key lengths for default/broadcast and individual/unicast keys:
-# 5 = 40-bit WEP (also known as 64-bit WEP with 40 secret bits)
-# 13 = 104-bit WEP (also known as 128-bit WEP with 104 secret bits)
-#wep_key_len_broadcast=5
-#wep_key_len_unicast=5
-# Rekeying period in seconds. 0 = do not rekey (i.e., set keys only once)
-#wep_rekey_period=300
-
-# EAPOL-Key index workaround (set bit7) for WinXP Supplicant (needed only if
-# only broadcast keys are used)
-#eapol_key_index_workaround=0
-
-# EAP reauthentication period in seconds (default: 3600 seconds; 0 = disable
-# reauthentication).
-#eap_reauth_period=3600
-
-
-##### IEEE 802.11f - Inter-Access Point Protocol (IAPP) #######################
-
-# Interface to be used for IAPP broadcast packets
-#iapp_interface=eth0
-
-
-##### RADIUS configuration ####################################################
-# for IEEE 802.1X with external Authentication Server, IEEE 802.11
-# authentication with external ACL for MAC addresses, and accounting
-
-# The own IP address of the access point (used as NAS-IP-Address)
-#own_ip_addr=127.0.0.1
-
-# Optional NAS-Identifier string for RADIUS messages. When used, this should be
-# a unique to the NAS within the scope of the RADIUS server. For example, a
-# fully qualified domain name can be used here.
-#nas_identifier=ap.example.com
-
-# RADIUS authentication server
-#auth_server_addr=127.0.0.1
-#auth_server_port=1812
-#auth_server_shared_secret=secret
-
-# RADIUS accounting server
-#acct_server_addr=127.0.0.1
-#acct_server_port=1813
-#acct_server_shared_secret=secret
-
-# Secondary RADIUS servers; to be used if primary one does not reply to
-# RADIUS packets. These are optional and there can be more than one secondary
-# server listed.
-#auth_server_addr=127.0.0.2
-#auth_server_port=1812
-#auth_server_shared_secret=secret2
-#
-#acct_server_addr=127.0.0.2
-#acct_server_port=1813
-#acct_server_shared_secret=secret2
-
-# Retry interval for trying to return to the primary RADIUS server (in
-# seconds). RADIUS client code will automatically try to use the next server
-# when the current server is not replying to requests. If this interval is set,
-# primary server will be retried after configured amount of time even if the
-# currently used secondary server is still working.
-#radius_retry_primary_interval=600
-
-# Interim accounting update interval
-# If this is set (larger than 0) and acct_server is configured, hostapd will
-# send interim accounting updates every N seconds. Note: if set, this overrides
-# possible Acct-Interim-Interval attribute in Access-Accept message. Thus, this
-# value should not be configured in hostapd.conf, if RADIUS server is used to
-# control the interim interval.
-# This value should not be less 600 (10 minutes) and must not be less than
-# 60 (1 minute).
-#radius_acct_interim_interval=600
-
-# hostapd can be used as a RADIUS authentication server for other hosts. This
-# requires that the integrated EAP authenticator is also enabled and both
-# authentication services are sharing the same configuration.
-
-# File name of the RADIUS clients configuration for the RADIUS server. If this
-# commented out, RADIUS server is disabled.
-#radius_server_clients=/etc/hostapd/radius_clients
-
-# The UDP port number for the RADIUS authentication server
-#radius_server_auth_port=1812
-
-
-##### WPA/IEEE 802.11i configuration ##########################################
-
-# Enable WPA. Setting this variable configures the AP to require WPA (either
-# WPA-PSK or WPA-RADIUS/EAP based on other configuration). For WPA-PSK, either
-# wpa_psk or wpa_passphrase must be set and wpa_key_mgmt must include WPA-PSK.
-# For WPA-RADIUS/EAP, ieee8021x must be set (but without dynamic WEP keys),
-# RADIUS authentication server must be configured, and WPA-EAP must be included
-# in wpa_key_mgmt.
-# This field is a bit field that can be used to enable WPA (IEEE 802.11i/D3.0)
-# and/or WPA2 (full IEEE 802.11i/RSN):
-# bit0 = WPA
-# bit1 = IEEE 802.11i/RSN (WPA2) (dot11RSNAEnabled)
-wpa=1
-
-# WPA pre-shared keys for WPA-PSK. This can be either entered as a 256-bit
-# secret in hex format (64 hex digits), wpa_psk, or as an ASCII passphrase
-# (8..63 characters) that will be converted to PSK. This conversion uses SSID
-# so the PSK changes when ASCII passphrase is used and the SSID is changed.
-# wpa_psk (dot11RSNAConfigPSKValue)
-# wpa_passphrase (dot11RSNAConfigPSKPassPhrase)
-#wpa_psk=0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
-wpa_passphrase=yoursecretpassphrase
-
-# Optionally, WPA PSKs can be read from a separate text file (containing list
-# of (PSK,MAC address) pairs. This allows more than one PSK to be configured.
-# Use absolute path name to make sure that the files can be read on SIGHUP
-# configuration reloads.
-#wpa_psk_file=/etc/hostapd/wpa_psk
-
-# Set of accepted key management algorithms (WPA-PSK, WPA-EAP, or both). The
-# entries are separated with a space.
-# (dot11RSNAConfigAuthenticationSuitesTable)
-#wpa_key_mgmt=WPA-PSK WPA-EAP
-wpa_key_mgmt=WPA-PSK
-
-# Set of accepted cipher suites (encryption algorithms) for pairwise keys
-# (unicast packets). This is a space separated list of algorithms:
-
-# CCMP = AES in Counter mode with CBC-MAC [RFC 3610, IEEE 802.11i/D7.0]
-# TKIP = Temporal Key Integrity Protocol [IEEE 802.11i/D7.0]
-# Group cipher suite (encryption algorithm for broadcast and multicast frames)
-# is automatically selected based on this configuration. If only CCMP is
-# allowed as the pairwise cipher, group cipher will also be CCMP. Otherwise,
-# TKIP will be used as the group cipher.
-# (dot11RSNAConfigPairwiseCiphersTable)
-wpa_pairwise=TKIP CCMP
-
-# Time interval for rekeying GTK (broadcast/multicast encryption keys) in
-# seconds. (dot11RSNAConfigGroupRekeyTime)
-#wpa_group_rekey=600
-
-# Rekey GTK when any STA that possesses the current GTK is leaving the BSS.
-# (dot11RSNAConfigGroupRekeyStrict)
-#wpa_strict_rekey=1
-
-# Time interval for rekeying GMK (master key used internally to generate GTKs
-# (in seconds).
-#wpa_gmk_rekey=86400
-
-# Enable IEEE 802.11i/RSN/WPA2 pre-authentication. This is used to speed up
-# roaming be pre-authenticating IEEE 802.1X/EAP part of the full RSN
-# authentication and key handshake before actually associating with a new AP.
-# (dot11RSNAPreauthenticationEnabled)
-#rsn_preauth=1
-#
-# Space separated list of interfaces from which pre-authentication frames are
-# accepted (e.g., 'eth0' or 'eth0 wlan0wds0'. This list should include all
-# interface that are used for connections to other APs. This could include
-# wired interfaces and WDS links. The normal wireless data interface towards
-# associated stations (e.g., wlan0) should not be added, since
-# pre-authentication is only used with APs other than the currently associated
-# one.
-#rsn_preauth_interfaces=eth0
index 0b97b85a6c18db626f76997d89ca5ebab6be593e..122e6b97e031e800769fb7ba163eafbe0c65fd09 100644 (file)
@@ -76,6 +76,7 @@ $qossettings{'IMQ_DEV'} = 'imq0';
 $qossettings{'TOS'} = '';
 $qossettings{'VALID'} = 'yes';
 $qossettings{'IMQ_MODE'} = 'PREROUTING';
+$qossettings{'QLENGTH'} = '1000';
 
 &General::readhash("${General::swroot}/qos/settings", \%qossettings);
 
@@ -480,7 +481,7 @@ foreach $classentry (sort @classes)
        if ($qossettings{'IMQ_DEV'} eq $classline[0]) {
                $qossettings{'DEVICE'} = $classline[0];
                $qossettings{'CLASS'} = $classline[1];
-               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n";
+               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'CLASS'} handle $qossettings{'CLASS'}: fq_codel\n";
        }
 }
 foreach $subclassentry (sort @subclasses) {
@@ -488,7 +489,7 @@ foreach $subclassentry (sort @subclasses) {
        if ($qossettings{'IMQ_DEV'} eq $subclassline[0]) {
                $qossettings{'DEVICE'} = $subclassline[0];
                $qossettings{'SCLASS'} = $subclassline[2];
-               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: sfq perturb $qossettings{'SFQ_PERTUB'}\n";
+               print "\ttc qdisc add dev $qossettings{'DEVICE'} parent 2:$qossettings{'SCLASS'} handle $qossettings{'SCLASS'}: fq_codel\n";
        }
 }
 print "\n\t### FILTER TRAFFIC INTO CLASSES\n";
index 2295ae92f45af11504cc7ae8b30e12b5c5794030..c7f169034ec7675be326d62e8a539bb660a359d0 100644 (file)
@@ -2,7 +2,7 @@
 #usr/bin/armv5tel-unknown-linux-gnueabi-c++
 #usr/bin/armv5tel-unknown-linux-gnueabi-g++
 #usr/bin/armv5tel-unknown-linux-gnueabi-gcc
-#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.1.2
+#usr/bin/armv5tel-unknown-linux-gnueabi-gcc-4.4.7
 #usr/bin/c++
 #usr/bin/cc
 #usr/bin/cpp
 #usr/bin/gccbug
 #usr/bin/gcov
 #usr/include/c++
-#usr/include/c++/4.1.2
-#usr/include/c++/4.1.2/algorithm
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++config.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++io.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/gthr.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O0g.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/stdc++.h.gch/O2g.gch
-#usr/include/c++/4.1.2/armv5tel-unknown-linux-gnueabi/bits/time_members.h
-#usr/include/c++/4.1.2/backward
-#usr/include/c++/4.1.2/backward/algo.h
-#usr/include/c++/4.1.2/backward/algobase.h
-#usr/include/c++/4.1.2/backward/alloc.h
-#usr/include/c++/4.1.2/backward/backward_warning.h
-#usr/include/c++/4.1.2/backward/bvector.h
-#usr/include/c++/4.1.2/backward/complex.h
-#usr/include/c++/4.1.2/backward/defalloc.h
-#usr/include/c++/4.1.2/backward/deque.h
-#usr/include/c++/4.1.2/backward/fstream.h
-#usr/include/c++/4.1.2/backward/function.h
-#usr/include/c++/4.1.2/backward/hash_map.h
-#usr/include/c++/4.1.2/backward/hash_set.h
-#usr/include/c++/4.1.2/backward/hashtable.h
-#usr/include/c++/4.1.2/backward/heap.h
-#usr/include/c++/4.1.2/backward/iomanip.h
-#usr/include/c++/4.1.2/backward/iostream.h
-#usr/include/c++/4.1.2/backward/istream.h
-#usr/include/c++/4.1.2/backward/iterator.h
-#usr/include/c++/4.1.2/backward/list.h
-#usr/include/c++/4.1.2/backward/map.h
-#usr/include/c++/4.1.2/backward/multimap.h
-#usr/include/c++/4.1.2/backward/multiset.h
-#usr/include/c++/4.1.2/backward/new.h
-#usr/include/c++/4.1.2/backward/ostream.h
-#usr/include/c++/4.1.2/backward/pair.h
-#usr/include/c++/4.1.2/backward/queue.h
-#usr/include/c++/4.1.2/backward/rope.h
-#usr/include/c++/4.1.2/backward/set.h
-#usr/include/c++/4.1.2/backward/slist.h
-#usr/include/c++/4.1.2/backward/stack.h
-#usr/include/c++/4.1.2/backward/stream.h
-#usr/include/c++/4.1.2/backward/streambuf.h
-#usr/include/c++/4.1.2/backward/strstream
-#usr/include/c++/4.1.2/backward/tempbuf.h
-#usr/include/c++/4.1.2/backward/tree.h
-#usr/include/c++/4.1.2/backward/vector.h
-#usr/include/c++/4.1.2/bits
-#usr/include/c++/4.1.2/bits/allocator.h
-#usr/include/c++/4.1.2/bits/atomicity.h
-#usr/include/c++/4.1.2/bits/basic_ios.h
-#usr/include/c++/4.1.2/bits/basic_ios.tcc
-#usr/include/c++/4.1.2/bits/basic_string.h
-#usr/include/c++/4.1.2/bits/basic_string.tcc
-#usr/include/c++/4.1.2/bits/boost_concept_check.h
-#usr/include/c++/4.1.2/bits/char_traits.h
-#usr/include/c++/4.1.2/bits/cmath.tcc
-#usr/include/c++/4.1.2/bits/codecvt.h
-#usr/include/c++/4.1.2/bits/concept_check.h
-#usr/include/c++/4.1.2/bits/concurrence.h
-#usr/include/c++/4.1.2/bits/cpp_type_traits.h
-#usr/include/c++/4.1.2/bits/deque.tcc
-#usr/include/c++/4.1.2/bits/fstream.tcc
-#usr/include/c++/4.1.2/bits/functexcept.h
-#usr/include/c++/4.1.2/bits/gslice.h
-#usr/include/c++/4.1.2/bits/gslice_array.h
-#usr/include/c++/4.1.2/bits/indirect_array.h
-#usr/include/c++/4.1.2/bits/ios_base.h
-#usr/include/c++/4.1.2/bits/istream.tcc
-#usr/include/c++/4.1.2/bits/list.tcc
-#usr/include/c++/4.1.2/bits/locale_classes.h
-#usr/include/c++/4.1.2/bits/locale_facets.h
-#usr/include/c++/4.1.2/bits/locale_facets.tcc
-#usr/include/c++/4.1.2/bits/localefwd.h
-#usr/include/c++/4.1.2/bits/mask_array.h
-#usr/include/c++/4.1.2/bits/ostream.tcc
-#usr/include/c++/4.1.2/bits/postypes.h
-#usr/include/c++/4.1.2/bits/slice_array.h
-#usr/include/c++/4.1.2/bits/sstream.tcc
-#usr/include/c++/4.1.2/bits/stl_algo.h
-#usr/include/c++/4.1.2/bits/stl_algobase.h
-#usr/include/c++/4.1.2/bits/stl_bvector.h
-#usr/include/c++/4.1.2/bits/stl_construct.h
-#usr/include/c++/4.1.2/bits/stl_deque.h
-#usr/include/c++/4.1.2/bits/stl_function.h
-#usr/include/c++/4.1.2/bits/stl_heap.h
-#usr/include/c++/4.1.2/bits/stl_iterator.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h
-#usr/include/c++/4.1.2/bits/stl_list.h
-#usr/include/c++/4.1.2/bits/stl_map.h
-#usr/include/c++/4.1.2/bits/stl_multimap.h
-#usr/include/c++/4.1.2/bits/stl_multiset.h
-#usr/include/c++/4.1.2/bits/stl_numeric.h
-#usr/include/c++/4.1.2/bits/stl_pair.h
-#usr/include/c++/4.1.2/bits/stl_queue.h
-#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.1.2/bits/stl_relops.h
-#usr/include/c++/4.1.2/bits/stl_set.h
-#usr/include/c++/4.1.2/bits/stl_stack.h
-#usr/include/c++/4.1.2/bits/stl_tempbuf.h
-#usr/include/c++/4.1.2/bits/stl_tree.h
-#usr/include/c++/4.1.2/bits/stl_uninitialized.h
-#usr/include/c++/4.1.2/bits/stl_vector.h
-#usr/include/c++/4.1.2/bits/stream_iterator.h
-#usr/include/c++/4.1.2/bits/streambuf.tcc
-#usr/include/c++/4.1.2/bits/streambuf_iterator.h
-#usr/include/c++/4.1.2/bits/stringfwd.h
-#usr/include/c++/4.1.2/bits/valarray_after.h
-#usr/include/c++/4.1.2/bits/valarray_array.h
-#usr/include/c++/4.1.2/bits/valarray_array.tcc
-#usr/include/c++/4.1.2/bits/valarray_before.h
-#usr/include/c++/4.1.2/bits/vector.tcc
-#usr/include/c++/4.1.2/bitset
-#usr/include/c++/4.1.2/cassert
-#usr/include/c++/4.1.2/cctype
-#usr/include/c++/4.1.2/cerrno
-#usr/include/c++/4.1.2/cfloat
-#usr/include/c++/4.1.2/ciso646
-#usr/include/c++/4.1.2/climits
-#usr/include/c++/4.1.2/clocale
-#usr/include/c++/4.1.2/cmath
-#usr/include/c++/4.1.2/complex
-#usr/include/c++/4.1.2/csetjmp
-#usr/include/c++/4.1.2/csignal
-#usr/include/c++/4.1.2/cstdarg
-#usr/include/c++/4.1.2/cstddef
-#usr/include/c++/4.1.2/cstdio
-#usr/include/c++/4.1.2/cstdlib
-#usr/include/c++/4.1.2/cstring
-#usr/include/c++/4.1.2/ctime
-#usr/include/c++/4.1.2/cwchar
-#usr/include/c++/4.1.2/cwctype
-#usr/include/c++/4.1.2/cxxabi.h
-#usr/include/c++/4.1.2/debug
-#usr/include/c++/4.1.2/debug/bitset
-#usr/include/c++/4.1.2/debug/debug.h
-#usr/include/c++/4.1.2/debug/deque
-#usr/include/c++/4.1.2/debug/formatter.h
-#usr/include/c++/4.1.2/debug/functions.h
-#usr/include/c++/4.1.2/debug/hash_map
-#usr/include/c++/4.1.2/debug/hash_map.h
-#usr/include/c++/4.1.2/debug/hash_multimap.h
-#usr/include/c++/4.1.2/debug/hash_multiset.h
-#usr/include/c++/4.1.2/debug/hash_set
-#usr/include/c++/4.1.2/debug/hash_set.h
-#usr/include/c++/4.1.2/debug/list
-#usr/include/c++/4.1.2/debug/macros.h
-#usr/include/c++/4.1.2/debug/map
-#usr/include/c++/4.1.2/debug/map.h
-#usr/include/c++/4.1.2/debug/multimap.h
-#usr/include/c++/4.1.2/debug/multiset.h
-#usr/include/c++/4.1.2/debug/safe_base.h
-#usr/include/c++/4.1.2/debug/safe_iterator.h
-#usr/include/c++/4.1.2/debug/safe_iterator.tcc
-#usr/include/c++/4.1.2/debug/safe_sequence.h
-#usr/include/c++/4.1.2/debug/set
-#usr/include/c++/4.1.2/debug/set.h
-#usr/include/c++/4.1.2/debug/string
-#usr/include/c++/4.1.2/debug/vector
-#usr/include/c++/4.1.2/deque
-#usr/include/c++/4.1.2/exception
-#usr/include/c++/4.1.2/exception_defines.h
-#usr/include/c++/4.1.2/ext
-#usr/include/c++/4.1.2/ext/algorithm
-#usr/include/c++/4.1.2/ext/array_allocator.h
-#usr/include/c++/4.1.2/ext/bitmap_allocator.h
-#usr/include/c++/4.1.2/ext/codecvt_specializations.h
-#usr/include/c++/4.1.2/ext/debug_allocator.h
-#usr/include/c++/4.1.2/ext/functional
-#usr/include/c++/4.1.2/ext/hash_fun.h
-#usr/include/c++/4.1.2/ext/hash_map
-#usr/include/c++/4.1.2/ext/hash_set
-#usr/include/c++/4.1.2/ext/hashtable.h
-#usr/include/c++/4.1.2/ext/iterator
-#usr/include/c++/4.1.2/ext/malloc_allocator.h
-#usr/include/c++/4.1.2/ext/memory
-#usr/include/c++/4.1.2/ext/mt_allocator.h
-#usr/include/c++/4.1.2/ext/new_allocator.h
-#usr/include/c++/4.1.2/ext/numeric
-#usr/include/c++/4.1.2/ext/pb_assoc
-#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp
-#usr/include/c++/4.1.2/ext/pod_char_traits.h
-#usr/include/c++/4.1.2/ext/pool_allocator.h
-#usr/include/c++/4.1.2/ext/rb_tree
-#usr/include/c++/4.1.2/ext/rc_string_base.h
-#usr/include/c++/4.1.2/ext/rope
-#usr/include/c++/4.1.2/ext/ropeimpl.h
-#usr/include/c++/4.1.2/ext/slist
-#usr/include/c++/4.1.2/ext/sso_string_base.h
-#usr/include/c++/4.1.2/ext/stdio_filebuf.h
-#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.1.2/ext/typelist.h
-#usr/include/c++/4.1.2/ext/vstring.h
-#usr/include/c++/4.1.2/ext/vstring.tcc
-#usr/include/c++/4.1.2/ext/vstring_fwd.h
-#usr/include/c++/4.1.2/ext/vstring_util.h
-#usr/include/c++/4.1.2/fstream
-#usr/include/c++/4.1.2/functional
-#usr/include/c++/4.1.2/iomanip
-#usr/include/c++/4.1.2/ios
-#usr/include/c++/4.1.2/iosfwd
-#usr/include/c++/4.1.2/iostream
-#usr/include/c++/4.1.2/istream
-#usr/include/c++/4.1.2/iterator
-#usr/include/c++/4.1.2/limits
-#usr/include/c++/4.1.2/list
-#usr/include/c++/4.1.2/locale
-#usr/include/c++/4.1.2/map
-#usr/include/c++/4.1.2/memory
-#usr/include/c++/4.1.2/new
-#usr/include/c++/4.1.2/numeric
-#usr/include/c++/4.1.2/ostream
-#usr/include/c++/4.1.2/queue
-#usr/include/c++/4.1.2/set
-#usr/include/c++/4.1.2/sstream
-#usr/include/c++/4.1.2/stack
-#usr/include/c++/4.1.2/stdexcept
-#usr/include/c++/4.1.2/streambuf
-#usr/include/c++/4.1.2/string
-#usr/include/c++/4.1.2/tr1
-#usr/include/c++/4.1.2/tr1/array
-#usr/include/c++/4.1.2/tr1/bind_iterate.h
-#usr/include/c++/4.1.2/tr1/bind_repeat.h
-#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h
-#usr/include/c++/4.1.2/tr1/functional
-#usr/include/c++/4.1.2/tr1/functional_iterate.h
-#usr/include/c++/4.1.2/tr1/hashtable
-#usr/include/c++/4.1.2/tr1/memory
-#usr/include/c++/4.1.2/tr1/mu_iterate.h
-#usr/include/c++/4.1.2/tr1/ref_fwd.h
-#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h
-#usr/include/c++/4.1.2/tr1/repeat.h
-#usr/include/c++/4.1.2/tr1/tuple
-#usr/include/c++/4.1.2/tr1/tuple_iterate.h
-#usr/include/c++/4.1.2/tr1/type_traits
-#usr/include/c++/4.1.2/tr1/type_traits_fwd.h
-#usr/include/c++/4.1.2/tr1/unordered_map
-#usr/include/c++/4.1.2/tr1/unordered_set
-#usr/include/c++/4.1.2/tr1/utility
-#usr/include/c++/4.1.2/typeinfo
-#usr/include/c++/4.1.2/utility
-#usr/include/c++/4.1.2/valarray
-#usr/include/c++/4.1.2/vector
+#usr/include/c++/4.4.7
+#usr/include/c++/4.4.7/algorithm
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/atomic_word.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/basic_file.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++allocator.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++config.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++io.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/c++locale.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cpu_defines.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_base.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_inline.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/ctype_noninline.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/cxxabi_tweaks.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/error_constants.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/extc++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-default.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-posix.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-single.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr-tpf.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/gthr.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/messages_members.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/os_defines.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdc++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/stdtr1c++.h
+#usr/include/c++/4.4.7/armv5tel-unknown-linux-gnueabi/bits/time_members.h
+#usr/include/c++/4.4.7/array
+#usr/include/c++/4.4.7/backward
+#usr/include/c++/4.4.7/backward/auto_ptr.h
+#usr/include/c++/4.4.7/backward/backward_warning.h
+#usr/include/c++/4.4.7/backward/binders.h
+#usr/include/c++/4.4.7/backward/hash_fun.h
+#usr/include/c++/4.4.7/backward/hash_map
+#usr/include/c++/4.4.7/backward/hash_set
+#usr/include/c++/4.4.7/backward/hashtable.h
+#usr/include/c++/4.4.7/backward/strstream
+#usr/include/c++/4.4.7/bits
+#usr/include/c++/4.4.7/bits/algorithmfwd.h
+#usr/include/c++/4.4.7/bits/allocator.h
+#usr/include/c++/4.4.7/bits/atomic_0.h
+#usr/include/c++/4.4.7/bits/atomic_2.h
+#usr/include/c++/4.4.7/bits/atomicfwd_c.h
+#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h
+#usr/include/c++/4.4.7/bits/basic_ios.h
+#usr/include/c++/4.4.7/bits/basic_ios.tcc
+#usr/include/c++/4.4.7/bits/basic_string.h
+#usr/include/c++/4.4.7/bits/basic_string.tcc
+#usr/include/c++/4.4.7/bits/boost_concept_check.h
+#usr/include/c++/4.4.7/bits/char_traits.h
+#usr/include/c++/4.4.7/bits/cmath.tcc
+#usr/include/c++/4.4.7/bits/codecvt.h
+#usr/include/c++/4.4.7/bits/concept_check.h
+#usr/include/c++/4.4.7/bits/cpp_type_traits.h
+#usr/include/c++/4.4.7/bits/deque.tcc
+#usr/include/c++/4.4.7/bits/forward_list.h
+#usr/include/c++/4.4.7/bits/forward_list.tcc
+#usr/include/c++/4.4.7/bits/fstream.tcc
+#usr/include/c++/4.4.7/bits/functexcept.h
+#usr/include/c++/4.4.7/bits/functional_hash.h
+#usr/include/c++/4.4.7/bits/gslice.h
+#usr/include/c++/4.4.7/bits/gslice_array.h
+#usr/include/c++/4.4.7/bits/hashtable.h
+#usr/include/c++/4.4.7/bits/indirect_array.h
+#usr/include/c++/4.4.7/bits/ios_base.h
+#usr/include/c++/4.4.7/bits/istream.tcc
+#usr/include/c++/4.4.7/bits/list.tcc
+#usr/include/c++/4.4.7/bits/locale_classes.h
+#usr/include/c++/4.4.7/bits/locale_classes.tcc
+#usr/include/c++/4.4.7/bits/locale_facets.h
+#usr/include/c++/4.4.7/bits/locale_facets.tcc
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.h
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc
+#usr/include/c++/4.4.7/bits/localefwd.h
+#usr/include/c++/4.4.7/bits/mask_array.h
+#usr/include/c++/4.4.7/bits/move.h
+#usr/include/c++/4.4.7/bits/ostream.tcc
+#usr/include/c++/4.4.7/bits/ostream_insert.h
+#usr/include/c++/4.4.7/bits/postypes.h
+#usr/include/c++/4.4.7/bits/shared_ptr.h
+#usr/include/c++/4.4.7/bits/slice_array.h
+#usr/include/c++/4.4.7/bits/sstream.tcc
+#usr/include/c++/4.4.7/bits/stl_algo.h
+#usr/include/c++/4.4.7/bits/stl_algobase.h
+#usr/include/c++/4.4.7/bits/stl_bvector.h
+#usr/include/c++/4.4.7/bits/stl_construct.h
+#usr/include/c++/4.4.7/bits/stl_deque.h
+#usr/include/c++/4.4.7/bits/stl_function.h
+#usr/include/c++/4.4.7/bits/stl_heap.h
+#usr/include/c++/4.4.7/bits/stl_iterator.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h
+#usr/include/c++/4.4.7/bits/stl_list.h
+#usr/include/c++/4.4.7/bits/stl_map.h
+#usr/include/c++/4.4.7/bits/stl_multimap.h
+#usr/include/c++/4.4.7/bits/stl_multiset.h
+#usr/include/c++/4.4.7/bits/stl_numeric.h
+#usr/include/c++/4.4.7/bits/stl_pair.h
+#usr/include/c++/4.4.7/bits/stl_queue.h
+#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h
+#usr/include/c++/4.4.7/bits/stl_relops.h
+#usr/include/c++/4.4.7/bits/stl_set.h
+#usr/include/c++/4.4.7/bits/stl_stack.h
+#usr/include/c++/4.4.7/bits/stl_tempbuf.h
+#usr/include/c++/4.4.7/bits/stl_tree.h
+#usr/include/c++/4.4.7/bits/stl_uninitialized.h
+#usr/include/c++/4.4.7/bits/stl_vector.h
+#usr/include/c++/4.4.7/bits/stream_iterator.h
+#usr/include/c++/4.4.7/bits/streambuf.tcc
+#usr/include/c++/4.4.7/bits/streambuf_iterator.h
+#usr/include/c++/4.4.7/bits/stringfwd.h
+#usr/include/c++/4.4.7/bits/unique_ptr.h
+#usr/include/c++/4.4.7/bits/valarray_after.h
+#usr/include/c++/4.4.7/bits/valarray_array.h
+#usr/include/c++/4.4.7/bits/valarray_array.tcc
+#usr/include/c++/4.4.7/bits/valarray_before.h
+#usr/include/c++/4.4.7/bits/vector.tcc
+#usr/include/c++/4.4.7/bitset
+#usr/include/c++/4.4.7/c++0x_warning.h
+#usr/include/c++/4.4.7/cassert
+#usr/include/c++/4.4.7/ccomplex
+#usr/include/c++/4.4.7/cctype
+#usr/include/c++/4.4.7/cerrno
+#usr/include/c++/4.4.7/cfenv
+#usr/include/c++/4.4.7/cfloat
+#usr/include/c++/4.4.7/chrono
+#usr/include/c++/4.4.7/cinttypes
+#usr/include/c++/4.4.7/ciso646
+#usr/include/c++/4.4.7/climits
+#usr/include/c++/4.4.7/clocale
+#usr/include/c++/4.4.7/cmath
+#usr/include/c++/4.4.7/complex
+#usr/include/c++/4.4.7/complex.h
+#usr/include/c++/4.4.7/condition_variable
+#usr/include/c++/4.4.7/csetjmp
+#usr/include/c++/4.4.7/csignal
+#usr/include/c++/4.4.7/cstdarg
+#usr/include/c++/4.4.7/cstdatomic
+#usr/include/c++/4.4.7/cstdbool
+#usr/include/c++/4.4.7/cstddef
+#usr/include/c++/4.4.7/cstdint
+#usr/include/c++/4.4.7/cstdio
+#usr/include/c++/4.4.7/cstdlib
+#usr/include/c++/4.4.7/cstring
+#usr/include/c++/4.4.7/ctgmath
+#usr/include/c++/4.4.7/ctime
+#usr/include/c++/4.4.7/cwchar
+#usr/include/c++/4.4.7/cwctype
+#usr/include/c++/4.4.7/cxxabi-forced.h
+#usr/include/c++/4.4.7/cxxabi.h
+#usr/include/c++/4.4.7/debug
+#usr/include/c++/4.4.7/debug/bitset
+#usr/include/c++/4.4.7/debug/debug.h
+#usr/include/c++/4.4.7/debug/deque
+#usr/include/c++/4.4.7/debug/formatter.h
+#usr/include/c++/4.4.7/debug/functions.h
+#usr/include/c++/4.4.7/debug/list
+#usr/include/c++/4.4.7/debug/macros.h
+#usr/include/c++/4.4.7/debug/map
+#usr/include/c++/4.4.7/debug/map.h
+#usr/include/c++/4.4.7/debug/multimap.h
+#usr/include/c++/4.4.7/debug/multiset.h
+#usr/include/c++/4.4.7/debug/safe_base.h
+#usr/include/c++/4.4.7/debug/safe_iterator.h
+#usr/include/c++/4.4.7/debug/safe_iterator.tcc
+#usr/include/c++/4.4.7/debug/safe_sequence.h
+#usr/include/c++/4.4.7/debug/set
+#usr/include/c++/4.4.7/debug/set.h
+#usr/include/c++/4.4.7/debug/string
+#usr/include/c++/4.4.7/debug/unordered_map
+#usr/include/c++/4.4.7/debug/unordered_set
+#usr/include/c++/4.4.7/debug/vector
+#usr/include/c++/4.4.7/deque
+#usr/include/c++/4.4.7/exception
+#usr/include/c++/4.4.7/exception_defines.h
+#usr/include/c++/4.4.7/exception_ptr.h
+#usr/include/c++/4.4.7/ext
+#usr/include/c++/4.4.7/ext/algorithm
+#usr/include/c++/4.4.7/ext/array_allocator.h
+#usr/include/c++/4.4.7/ext/atomicity.h
+#usr/include/c++/4.4.7/ext/bitmap_allocator.h
+#usr/include/c++/4.4.7/ext/cast.h
+#usr/include/c++/4.4.7/ext/codecvt_specializations.h
+#usr/include/c++/4.4.7/ext/concurrence.h
+#usr/include/c++/4.4.7/ext/debug_allocator.h
+#usr/include/c++/4.4.7/ext/enc_filebuf.h
+#usr/include/c++/4.4.7/ext/extptr_allocator.h
+#usr/include/c++/4.4.7/ext/functional
+#usr/include/c++/4.4.7/ext/hash_map
+#usr/include/c++/4.4.7/ext/hash_set
+#usr/include/c++/4.4.7/ext/iterator
+#usr/include/c++/4.4.7/ext/malloc_allocator.h
+#usr/include/c++/4.4.7/ext/memory
+#usr/include/c++/4.4.7/ext/mt_allocator.h
+#usr/include/c++/4.4.7/ext/new_allocator.h
+#usr/include/c++/4.4.7/ext/numeric
+#usr/include/c++/4.4.7/ext/numeric_traits.h
+#usr/include/c++/4.4.7/ext/pb_ds
+#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/4.4.7/ext/pod_char_traits.h
+#usr/include/c++/4.4.7/ext/pointer.h
+#usr/include/c++/4.4.7/ext/pool_allocator.h
+#usr/include/c++/4.4.7/ext/rb_tree
+#usr/include/c++/4.4.7/ext/rc_string_base.h
+#usr/include/c++/4.4.7/ext/rope
+#usr/include/c++/4.4.7/ext/ropeimpl.h
+#usr/include/c++/4.4.7/ext/slist
+#usr/include/c++/4.4.7/ext/sso_string_base.h
+#usr/include/c++/4.4.7/ext/stdio_filebuf.h
+#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h
+#usr/include/c++/4.4.7/ext/string_conversions.h
+#usr/include/c++/4.4.7/ext/throw_allocator.h
+#usr/include/c++/4.4.7/ext/type_traits.h
+#usr/include/c++/4.4.7/ext/typelist.h
+#usr/include/c++/4.4.7/ext/vstring.h
+#usr/include/c++/4.4.7/ext/vstring.tcc
+#usr/include/c++/4.4.7/ext/vstring_fwd.h
+#usr/include/c++/4.4.7/ext/vstring_util.h
+#usr/include/c++/4.4.7/fenv.h
+#usr/include/c++/4.4.7/forward_list
+#usr/include/c++/4.4.7/fstream
+#usr/include/c++/4.4.7/functional
+#usr/include/c++/4.4.7/initializer_list
+#usr/include/c++/4.4.7/iomanip
+#usr/include/c++/4.4.7/ios
+#usr/include/c++/4.4.7/iosfwd
+#usr/include/c++/4.4.7/iostream
+#usr/include/c++/4.4.7/istream
+#usr/include/c++/4.4.7/iterator
+#usr/include/c++/4.4.7/limits
+#usr/include/c++/4.4.7/list
+#usr/include/c++/4.4.7/locale
+#usr/include/c++/4.4.7/map
+#usr/include/c++/4.4.7/memory
+#usr/include/c++/4.4.7/mutex
+#usr/include/c++/4.4.7/new
+#usr/include/c++/4.4.7/numeric
+#usr/include/c++/4.4.7/ostream
+#usr/include/c++/4.4.7/parallel
+#usr/include/c++/4.4.7/parallel/algo.h
+#usr/include/c++/4.4.7/parallel/algobase.h
+#usr/include/c++/4.4.7/parallel/algorithm
+#usr/include/c++/4.4.7/parallel/algorithmfwd.h
+#usr/include/c++/4.4.7/parallel/balanced_quicksort.h
+#usr/include/c++/4.4.7/parallel/base.h
+#usr/include/c++/4.4.7/parallel/basic_iterator.h
+#usr/include/c++/4.4.7/parallel/checkers.h
+#usr/include/c++/4.4.7/parallel/compatibility.h
+#usr/include/c++/4.4.7/parallel/compiletime_settings.h
+#usr/include/c++/4.4.7/parallel/equally_split.h
+#usr/include/c++/4.4.7/parallel/features.h
+#usr/include/c++/4.4.7/parallel/find.h
+#usr/include/c++/4.4.7/parallel/find_selectors.h
+#usr/include/c++/4.4.7/parallel/for_each.h
+#usr/include/c++/4.4.7/parallel/for_each_selectors.h
+#usr/include/c++/4.4.7/parallel/iterator.h
+#usr/include/c++/4.4.7/parallel/list_partition.h
+#usr/include/c++/4.4.7/parallel/losertree.h
+#usr/include/c++/4.4.7/parallel/merge.h
+#usr/include/c++/4.4.7/parallel/multiseq_selection.h
+#usr/include/c++/4.4.7/parallel/multiway_merge.h
+#usr/include/c++/4.4.7/parallel/multiway_mergesort.h
+#usr/include/c++/4.4.7/parallel/numeric
+#usr/include/c++/4.4.7/parallel/numericfwd.h
+#usr/include/c++/4.4.7/parallel/omp_loop.h
+#usr/include/c++/4.4.7/parallel/omp_loop_static.h
+#usr/include/c++/4.4.7/parallel/par_loop.h
+#usr/include/c++/4.4.7/parallel/parallel.h
+#usr/include/c++/4.4.7/parallel/partial_sum.h
+#usr/include/c++/4.4.7/parallel/partition.h
+#usr/include/c++/4.4.7/parallel/queue.h
+#usr/include/c++/4.4.7/parallel/quicksort.h
+#usr/include/c++/4.4.7/parallel/random_number.h
+#usr/include/c++/4.4.7/parallel/random_shuffle.h
+#usr/include/c++/4.4.7/parallel/search.h
+#usr/include/c++/4.4.7/parallel/set_operations.h
+#usr/include/c++/4.4.7/parallel/settings.h
+#usr/include/c++/4.4.7/parallel/sort.h
+#usr/include/c++/4.4.7/parallel/tags.h
+#usr/include/c++/4.4.7/parallel/types.h
+#usr/include/c++/4.4.7/parallel/unique_copy.h
+#usr/include/c++/4.4.7/parallel/workstealing.h
+#usr/include/c++/4.4.7/queue
+#usr/include/c++/4.4.7/random
+#usr/include/c++/4.4.7/ratio
+#usr/include/c++/4.4.7/regex
+#usr/include/c++/4.4.7/set
+#usr/include/c++/4.4.7/sstream
+#usr/include/c++/4.4.7/stack
+#usr/include/c++/4.4.7/stdatomic.h
+#usr/include/c++/4.4.7/stdexcept
+#usr/include/c++/4.4.7/streambuf
+#usr/include/c++/4.4.7/string
+#usr/include/c++/4.4.7/system_error
+#usr/include/c++/4.4.7/tgmath.h
+#usr/include/c++/4.4.7/thread
+#usr/include/c++/4.4.7/tr1
+#usr/include/c++/4.4.7/tr1/array
+#usr/include/c++/4.4.7/tr1/bessel_function.tcc
+#usr/include/c++/4.4.7/tr1/beta_function.tcc
+#usr/include/c++/4.4.7/tr1/ccomplex
+#usr/include/c++/4.4.7/tr1/cctype
+#usr/include/c++/4.4.7/tr1/cfenv
+#usr/include/c++/4.4.7/tr1/cfloat
+#usr/include/c++/4.4.7/tr1/cinttypes
+#usr/include/c++/4.4.7/tr1/climits
+#usr/include/c++/4.4.7/tr1/cmath
+#usr/include/c++/4.4.7/tr1/complex
+#usr/include/c++/4.4.7/tr1/complex.h
+#usr/include/c++/4.4.7/tr1/cstdarg
+#usr/include/c++/4.4.7/tr1/cstdbool
+#usr/include/c++/4.4.7/tr1/cstdint
+#usr/include/c++/4.4.7/tr1/cstdio
+#usr/include/c++/4.4.7/tr1/cstdlib
+#usr/include/c++/4.4.7/tr1/ctgmath
+#usr/include/c++/4.4.7/tr1/ctime
+#usr/include/c++/4.4.7/tr1/ctype.h
+#usr/include/c++/4.4.7/tr1/cwchar
+#usr/include/c++/4.4.7/tr1/cwctype
+#usr/include/c++/4.4.7/tr1/ell_integral.tcc
+#usr/include/c++/4.4.7/tr1/exp_integral.tcc
+#usr/include/c++/4.4.7/tr1/fenv.h
+#usr/include/c++/4.4.7/tr1/float.h
+#usr/include/c++/4.4.7/tr1/functional
+#usr/include/c++/4.4.7/tr1/functional_hash.h
+#usr/include/c++/4.4.7/tr1/gamma.tcc
+#usr/include/c++/4.4.7/tr1/hashtable.h
+#usr/include/c++/4.4.7/tr1/hypergeometric.tcc
+#usr/include/c++/4.4.7/tr1/inttypes.h
+#usr/include/c++/4.4.7/tr1/legendre_function.tcc
+#usr/include/c++/4.4.7/tr1/limits.h
+#usr/include/c++/4.4.7/tr1/math.h
+#usr/include/c++/4.4.7/tr1/memory
+#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc
+#usr/include/c++/4.4.7/tr1/poly_hermite.tcc
+#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc
+#usr/include/c++/4.4.7/tr1/random
+#usr/include/c++/4.4.7/tr1/regex
+#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc
+#usr/include/c++/4.4.7/tr1/shared_ptr.h
+#usr/include/c++/4.4.7/tr1/special_function_util.h
+#usr/include/c++/4.4.7/tr1/stdarg.h
+#usr/include/c++/4.4.7/tr1/stdbool.h
+#usr/include/c++/4.4.7/tr1/stdint.h
+#usr/include/c++/4.4.7/tr1/stdio.h
+#usr/include/c++/4.4.7/tr1/stdlib.h
+#usr/include/c++/4.4.7/tr1/tgmath.h
+#usr/include/c++/4.4.7/tr1/tuple
+#usr/include/c++/4.4.7/tr1/type_traits
+#usr/include/c++/4.4.7/tr1/unordered_map
+#usr/include/c++/4.4.7/tr1/unordered_set
+#usr/include/c++/4.4.7/tr1/utility
+#usr/include/c++/4.4.7/tr1/wchar.h
+#usr/include/c++/4.4.7/tr1/wctype.h
+#usr/include/c++/4.4.7/tr1_impl
+#usr/include/c++/4.4.7/tr1_impl/array
+#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h
+#usr/include/c++/4.4.7/tr1_impl/cctype
+#usr/include/c++/4.4.7/tr1_impl/cfenv
+#usr/include/c++/4.4.7/tr1_impl/cinttypes
+#usr/include/c++/4.4.7/tr1_impl/cmath
+#usr/include/c++/4.4.7/tr1_impl/complex
+#usr/include/c++/4.4.7/tr1_impl/cstdint
+#usr/include/c++/4.4.7/tr1_impl/cstdio
+#usr/include/c++/4.4.7/tr1_impl/cstdlib
+#usr/include/c++/4.4.7/tr1_impl/cwchar
+#usr/include/c++/4.4.7/tr1_impl/cwctype
+#usr/include/c++/4.4.7/tr1_impl/functional
+#usr/include/c++/4.4.7/tr1_impl/functional_hash.h
+#usr/include/c++/4.4.7/tr1_impl/hashtable
+#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h
+#usr/include/c++/4.4.7/tr1_impl/random
+#usr/include/c++/4.4.7/tr1_impl/random.tcc
+#usr/include/c++/4.4.7/tr1_impl/regex
+#usr/include/c++/4.4.7/tr1_impl/type_traits
+#usr/include/c++/4.4.7/tr1_impl/unordered_map
+#usr/include/c++/4.4.7/tr1_impl/unordered_set
+#usr/include/c++/4.4.7/tr1_impl/utility
+#usr/include/c++/4.4.7/tuple
+#usr/include/c++/4.4.7/type_traits
+#usr/include/c++/4.4.7/typeinfo
+#usr/include/c++/4.4.7/unordered_map
+#usr/include/c++/4.4.7/unordered_set
+#usr/include/c++/4.4.7/utility
+#usr/include/c++/4.4.7/valarray
+#usr/include/c++/4.4.7/vector
+#usr/info
 #usr/info/cpp.info
 #usr/info/cppinternals.info
+#usr/info/dir
 #usr/info/gcc.info
 #usr/info/gccinstall.info
 #usr/info/gccint.info
+#usr/info/libgomp.info
 #usr/lib/gcc
 #usr/lib/gcc/armv5tel-unknown-linux-gnueabi
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/cc1plus
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/collect2
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbegin.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtbeginT.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtend.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/crtendS.o
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/float.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/iso646.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/mmintrin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdarg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stdbool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/stddef.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/syslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/unwind.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/include/varargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixinc.sh
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/fixincl
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/gsyslimits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/README
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/float.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/iso646.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/limits.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/mmintrin.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdarg.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stdbool.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/stddef.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/unwind.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/include/varargs.h
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/macro_list
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/install-tools/mkheaders.conf
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcc_eh.a
-#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.1.2/libgcov.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/cc1plus
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/collect2
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbegin.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtbeginT.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtend.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/crtendS.o
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/finclude
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include-fixed/syslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/arm_neon.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/float.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/iso646.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mf-runtime.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/mmintrin.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/omp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/ssp.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/stdio.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/string.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/ssp/unistd.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdarg.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdbool.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stddef.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/stdfix.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/unwind.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/include/varargs.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc.sh
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixinc_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/fixincl
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/gsyslimits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/README
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/include/limits.h
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/macro_list
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkheaders.conf
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/install-tools/mkinstalldirs
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcc_eh.a
+#usr/lib/gcc/armv5tel-unknown-linux-gnueabi/4.4.7/libgcov.a
+#usr/lib/libgomp.a
+#usr/lib/libgomp.la
+#usr/lib/libgomp.so
+usr/lib/libgomp.so.1
+usr/lib/libgomp.so.1.0.0
+#usr/lib/libgomp.spec
+#usr/lib/libmudflap.a
+#usr/lib/libmudflap.la
+#usr/lib/libmudflap.so
+usr/lib/libmudflap.so.0
+usr/lib/libmudflap.so.0.0.0
+#usr/lib/libmudflapth.a
+#usr/lib/libmudflapth.la
+#usr/lib/libmudflapth.so
+usr/lib/libmudflapth.so.0
+usr/lib/libmudflapth.so.0.0.0
+#usr/lib/libssp.a
+#usr/lib/libssp.la
+#usr/lib/libssp.so
+usr/lib/libssp.so.0
+usr/lib/libssp.so.0.0.0
+#usr/lib/libssp_nonshared.a
+#usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-#usr/lib/libstdc++.la
-#usr/lib/libstdc++.so
-usr/lib/libstdc++.so.6
-usr/lib/libstdc++.so.6.0.8
+usr/lib/libstdc++.so.6.0.13
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
 #usr/man/man1/cpp.1
index 2393ff2414dc90f8db41c43226c156e84769fd9c..57a0a7d39ab75f6c52f0eca629a878fb5a6154f2 100644 (file)
@@ -1,44 +1,48 @@
-#etc/rpc
-lib/ld-2.5.so
+#etc/ld.so.cache
+etc/localtime
+etc/rpc
+lib/ld-2.12.so
 lib/ld-linux.so.3
-lib/libBrokenLocale-2.5.so
-#lib/libBrokenLocale.so.1
+lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-lib/libanl-2.5.so
-#lib/libanl.so.1
-lib/libc-2.5.so
+lib/libanl-2.12.so
+lib/libanl.so.1
+lib/libc-2.12.so
 lib/libc.so.6
-lib/libcrypt-2.5.so
+lib/libcidn-2.12.so
+lib/libcidn.so.1
+lib/libcrypt-2.12.so
 lib/libcrypt.so.1
-lib/libdl-2.5.so
+lib/libdl-2.12.so
 lib/libdl.so.2
-lib/libm-2.5.so
+lib/libm-2.12.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.5.so
+lib/libnsl-2.12.so
 lib/libnsl.so.1
-lib/libnss_compat-2.5.so
+lib/libnss_compat-2.12.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.5.so
+lib/libnss_dns-2.12.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.5.so
+lib/libnss_files-2.12.so
 lib/libnss_files.so.2
-lib/libnss_hesiod-2.5.so
-#lib/libnss_hesiod.so.2
-lib/libnss_nis-2.5.so
-#lib/libnss_nis.so.2
-lib/libnss_nisplus-2.5.so
-#lib/libnss_nisplus.so.2
+lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod.so.2
+lib/libnss_nis-2.12.so
+lib/libnss_nis.so.2
+lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.5.so
+lib/libpthread-2.12.so
 lib/libpthread.so.0
-lib/libresolv-2.5.so
+lib/libresolv-2.12.so
 lib/libresolv.so.2
-lib/librt-2.5.so
+lib/librt-2.12.so
 lib/librt.so.1
-#lib/libthread_db-1.0.so
-#lib/libthread_db.so.1
-lib/libutil-2.5.so
+lib/libthread_db-1.0.so
+lib/libthread_db.so.1
+lib/libutil-2.12.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -48,6 +52,7 @@ sbin/ldconfig
 #usr/bin/getent
 #usr/bin/iconv
 usr/bin/ldd
+#usr/bin/lddlibc4
 #usr/bin/locale
 #usr/bin/localedef
 #usr/bin/mtrace
@@ -83,7 +88,9 @@ usr/bin/ldd
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
 #usr/include/bits/errno.h
+#usr/include/bits/error.h
 #usr/include/bits/fcntl.h
+#usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
 #usr/include/bits/huge_val.h
@@ -107,6 +114,7 @@ usr/bin/ldd
 #usr/include/bits/mman.h
 #usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
+#usr/include/bits/mqueue2.h
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
@@ -122,6 +130,7 @@ usr/bin/ldd
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
+#usr/include/bits/setjmp2.h
 #usr/include/bits/shm.h
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
@@ -147,7 +156,6 @@ usr/bin/ldd
 #usr/include/bits/string.h
 #usr/include/bits/string2.h
 #usr/include/bits/string3.h
-#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
 #usr/include/bits/syslog-ldbl.h
@@ -170,7 +178,6 @@ usr/bin/ldd
 #usr/include/bits/wchar2.h
 #usr/include/bits/wordsize.h
 #usr/include/bits/xopen_lim.h
-#usr/include/bits/xtitypes.h
 #usr/include/byteswap.h
 #usr/include/complex.h
 #usr/include/cpio.h
@@ -201,8 +208,10 @@ usr/bin/ldd
 #usr/include/gnu-versions.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs-32.h
 #usr/include/gnu/stubs.h
 #usr/include/grp.h
+#usr/include/gshadow.h
 #usr/include/iconv.h
 #usr/include/ieee754.h
 #usr/include/ifaddrs.h
@@ -258,6 +267,8 @@ usr/bin/ldd
 #usr/include/netinet/udp.h
 #usr/include/netipx
 #usr/include/netipx/ipx.h
+#usr/include/netiucv
+#usr/include/netiucv/iucv.h
 #usr/include/netpacket
 #usr/include/netpacket/packet.h
 #usr/include/netrom
@@ -304,10 +315,15 @@ usr/bin/ldd
 #usr/include/rpc/xdr.h
 #usr/include/rpcsvc
 #usr/include/rpcsvc/bootparam.h
+#usr/include/rpcsvc/bootparam_prot.h
 #usr/include/rpcsvc/bootparam_prot.x
+#usr/include/rpcsvc/key_prot.h
 #usr/include/rpcsvc/key_prot.x
+#usr/include/rpcsvc/klm_prot.h
 #usr/include/rpcsvc/klm_prot.x
+#usr/include/rpcsvc/mount.h
 #usr/include/rpcsvc/mount.x
+#usr/include/rpcsvc/nfs_prot.h
 #usr/include/rpcsvc/nfs_prot.x
 #usr/include/rpcsvc/nis.h
 #usr/include/rpcsvc/nis.x
@@ -316,17 +332,25 @@ usr/bin/ldd
 #usr/include/rpcsvc/nis_object.x
 #usr/include/rpcsvc/nis_tags.h
 #usr/include/rpcsvc/nislib.h
+#usr/include/rpcsvc/nlm_prot.h
 #usr/include/rpcsvc/nlm_prot.x
+#usr/include/rpcsvc/rex.h
 #usr/include/rpcsvc/rex.x
+#usr/include/rpcsvc/rquota.h
 #usr/include/rpcsvc/rquota.x
+#usr/include/rpcsvc/rstat.h
 #usr/include/rpcsvc/rstat.x
+#usr/include/rpcsvc/rusers.h
 #usr/include/rpcsvc/rusers.x
+#usr/include/rpcsvc/sm_inter.h
 #usr/include/rpcsvc/sm_inter.x
+#usr/include/rpcsvc/spray.h
 #usr/include/rpcsvc/spray.x
 #usr/include/rpcsvc/yp.h
 #usr/include/rpcsvc/yp.x
 #usr/include/rpcsvc/yp_prot.h
 #usr/include/rpcsvc/ypclnt.h
+#usr/include/rpcsvc/yppasswd.h
 #usr/include/rpcsvc/yppasswd.x
 #usr/include/rpcsvc/ypupd.h
 #usr/include/sched.h
@@ -346,15 +370,16 @@ usr/bin/ldd
 #usr/include/stdlib.h
 #usr/include/string.h
 #usr/include/strings.h
-#usr/include/stropts.h
 #usr/include/sys
 #usr/include/sys/acct.h
 #usr/include/sys/bitypes.h
 #usr/include/sys/cdefs.h
+#usr/include/sys/debugreg.h
 #usr/include/sys/dir.h
 #usr/include/sys/elf.h
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
+#usr/include/sys/eventfd.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -373,6 +398,7 @@ usr/bin/ldd
 #usr/include/sys/mtio.h
 #usr/include/sys/param.h
 #usr/include/sys/pci.h
+#usr/include/sys/perm.h
 #usr/include/sys/personality.h
 #usr/include/sys/poll.h
 #usr/include/sys/prctl.h
@@ -383,19 +409,20 @@ usr/bin/ldd
 #usr/include/sys/quota.h
 #usr/include/sys/raw.h
 #usr/include/sys/reboot.h
+#usr/include/sys/reg.h
 #usr/include/sys/resource.h
 #usr/include/sys/select.h
 #usr/include/sys/sem.h
 #usr/include/sys/sendfile.h
 #usr/include/sys/shm.h
 #usr/include/sys/signal.h
+#usr/include/sys/signalfd.h
 #usr/include/sys/socket.h
 #usr/include/sys/socketvar.h
 #usr/include/sys/soundcard.h
 #usr/include/sys/stat.h
 #usr/include/sys/statfs.h
 #usr/include/sys/statvfs.h
-#usr/include/sys/stropts.h
 #usr/include/sys/swap.h
 #usr/include/sys/syscall.h
 #usr/include/sys/sysctl.h
@@ -405,6 +432,7 @@ usr/bin/ldd
 #usr/include/sys/termios.h
 #usr/include/sys/time.h
 #usr/include/sys/timeb.h
+#usr/include/sys/timerfd.h
 #usr/include/sys/times.h
 #usr/include/sys/timex.h
 #usr/include/sys/ttychars.h
@@ -420,6 +448,7 @@ usr/bin/ldd
 #usr/include/sys/utsname.h
 #usr/include/sys/vfs.h
 #usr/include/sys/vlimit.h
+#usr/include/sys/vm86.h
 #usr/include/sys/vt.h
 #usr/include/sys/vtimes.h
 #usr/include/sys/wait.h
@@ -447,20 +476,6 @@ usr/bin/ldd
 #usr/include/wctype.h
 #usr/include/wordexp.h
 #usr/include/xlocale.h
-#usr/info
-#usr/info/dir
-#usr/info/libc.info
-#usr/info/libc.info-1
-#usr/info/libc.info-10
-#usr/info/libc.info-11
-#usr/info/libc.info-2
-#usr/info/libc.info-3
-#usr/info/libc.info-4
-#usr/info/libc.info-5
-#usr/info/libc.info-6
-#usr/info/libc.info-7
-#usr/info/libc.info-8
-#usr/info/libc.info-9
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
 #usr/lib/crt1.o
@@ -472,6 +487,7 @@ usr/lib/gconv
 #usr/lib/gconv/ASMO_449.so
 #usr/lib/gconv/BIG5.so
 #usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/BRF.so
 #usr/lib/gconv/CP10007.so
 #usr/lib/gconv/CP1125.so
 #usr/lib/gconv/CP1250.so
@@ -522,7 +538,11 @@ usr/lib/gconv
 #usr/lib/gconv/GREEK-CCITT.so
 #usr/lib/gconv/GREEK7-OLD.so
 #usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-GREEK8.so
 #usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/HP-ROMAN9.so
+#usr/lib/gconv/HP-THAI8.so
+#usr/lib/gconv/HP-TURKISH8.so
 #usr/lib/gconv/IBM037.so
 #usr/lib/gconv/IBM038.so
 #usr/lib/gconv/IBM1004.so
@@ -663,6 +683,7 @@ usr/lib/gconv
 #usr/lib/gconv/ISO8859-7.so
 #usr/lib/gconv/ISO8859-8.so
 #usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO8859-9E.so
 #usr/lib/gconv/ISO_10367-BOX.so
 #usr/lib/gconv/ISO_11548-1.so
 #usr/lib/gconv/ISO_2033.so
@@ -674,10 +695,12 @@ usr/lib/gconv
 #usr/lib/gconv/JOHAB.so
 #usr/lib/gconv/KOI-8.so
 #usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-RU.so
 #usr/lib/gconv/KOI8-T.so
 #usr/lib/gconv/KOI8-U.so
 #usr/lib/gconv/LATIN-GREEK-1.so
 #usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-CENTRALEUROPE.so
 #usr/lib/gconv/MAC-IS.so
 #usr/lib/gconv/MAC-SAMI.so
 #usr/lib/gconv/MAC-UK.so
@@ -712,6 +735,8 @@ usr/lib/gconv
 #usr/lib/glibc/getconf
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG
 #usr/lib/glibc/pt_chown
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
@@ -721,6 +746,7 @@ usr/lib/gconv
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
+#usr/lib/libcidn.so
 #usr/lib/libcrypt.a
 #usr/lib/libcrypt.so
 #usr/lib/libdl.a
@@ -743,6 +769,7 @@ usr/lib/gconv
 #usr/lib/libpthread_nonshared.a
 #usr/lib/libresolv.a
 #usr/lib/libresolv.so
+#usr/lib/librpcsvc.a
 #usr/lib/librt.a
 #usr/lib/librt.so
 #usr/lib/libthread_db.so
@@ -763,6 +790,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ASMO_449.gz
 #usr/share/i18n/charmaps/BIG5-HKSCS.gz
 #usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BRF.gz
 #usr/share/i18n/charmaps/BS_4730.gz
 #usr/share/i18n/charmaps/BS_VIEWDATA.gz
 #usr/share/i18n/charmaps/CP10007.gz
@@ -821,7 +849,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/GREEK-CCITT.gz
 #usr/share/i18n/charmaps/GREEK7-OLD.gz
 #usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-GREEK8.gz
 #usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/HP-ROMAN9.gz
+#usr/share/i18n/charmaps/HP-THAI8.gz
+#usr/share/i18n/charmaps/HP-TURKISH8.gz
 #usr/share/i18n/charmaps/IBM037.gz
 #usr/share/i18n/charmaps/IBM038.gz
 #usr/share/i18n/charmaps/IBM1004.gz
@@ -901,6 +933,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ISO-8859-7.gz
 #usr/share/i18n/charmaps/ISO-8859-8.gz
 #usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-8859-9E.gz
 #usr/share/i18n/charmaps/ISO-IR-197.gz
 #usr/share/i18n/charmaps/ISO-IR-209.gz
 #usr/share/i18n/charmaps/ISO-IR-90.gz
@@ -934,11 +967,13 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
 #usr/share/i18n/charmaps/KOI-8.gz
 #usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-RU.gz
 #usr/share/i18n/charmaps/KOI8-T.gz
 #usr/share/i18n/charmaps/KOI8-U.gz
 #usr/share/i18n/charmaps/KSC5636.gz
 #usr/share/i18n/charmaps/LATIN-GREEK-1.gz
 #usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz
 #usr/share/i18n/charmaps/MAC-CYRILLIC.gz
 #usr/share/i18n/charmaps/MAC-IS.gz
 #usr/share/i18n/charmaps/MAC-SAMI.gz
@@ -1004,12 +1039,17 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ar_TN
 #usr/share/i18n/locales/ar_YE
 #usr/share/i18n/locales/as_IN
+#usr/share/i18n/locales/ast_ES
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
 #usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/ber_DZ
+#usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
 #usr/share/i18n/locales/bn_BD
 #usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/bo_CN
+#usr/share/i18n/locales/bo_IN
 #usr/share/i18n/locales/br_FR
 #usr/share/i18n/locales/br_FR@euro
 #usr/share/i18n/locales/bs_BA
@@ -1019,8 +1059,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ca_ES@euro
 #usr/share/i18n/locales/ca_FR
 #usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
 #usr/share/i18n/locales/csb_PL
+#usr/share/i18n/locales/cv_RU
 #usr/share/i18n/locales/cy_GB
 #usr/share/i18n/locales/da_DK
 #usr/share/i18n/locales/de_AT
@@ -1032,10 +1074,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/de_DE@euro
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/dv_MV
 #usr/share/i18n/locales/dz_BT
 #usr/share/i18n/locales/el_CY
 #usr/share/i18n/locales/el_GR
 #usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AG
 #usr/share/i18n/locales/en_AU
 #usr/share/i18n/locales/en_BW
 #usr/share/i18n/locales/en_CA
@@ -1045,6 +1089,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
 #usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
 #usr/share/i18n/locales/en_PH
 #usr/share/i18n/locales/en_SG
@@ -1078,6 +1123,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fa_IR
 #usr/share/i18n/locales/fi_FI
 #usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
 #usr/share/i18n/locales/fr_BE
 #usr/share/i18n/locales/fr_BE@euro
@@ -1087,6 +1133,8 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fr_FR@euro
 #usr/share/i18n/locales/fr_LU
 #usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/fur_IT
+#usr/share/i18n/locales/fy_DE
 #usr/share/i18n/locales/fy_NL
 #usr/share/i18n/locales/ga_IE
 #usr/share/i18n/locales/ga_IE@euro
@@ -1099,19 +1147,27 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/gl_ES@euro
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/ha_NG
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hne_IN
 #usr/share/i18n/locales/hr_HR
 #usr/share/i18n/locales/hsb_DE
+#usr/share/i18n/locales/ht_HT
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
 #usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/ig_NG
+#usr/share/i18n/locales/ik_CA
 #usr/share/i18n/locales/is_IS
 #usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/iso14651_t1_common
+#usr/share/i18n/locales/iso14651_t1_pinyin
 #usr/share/i18n/locales/it_CH
 #usr/share/i18n/locales/it_IT
 #usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iu_CA
 #usr/share/i18n/locales/iw_IL
 #usr/share/i18n/locales/ja_JP
 #usr/share/i18n/locales/ka_GE
@@ -1120,13 +1176,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/km_KH
 #usr/share/i18n/locales/kn_IN
 #usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kok_IN
+#usr/share/i18n/locales/ks_IN
+#usr/share/i18n/locales/ks_IN@devanagari
 #usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
 #usr/share/i18n/locales/ky_KG
 #usr/share/i18n/locales/lg_UG
+#usr/share/i18n/locales/li_BE
+#usr/share/i18n/locales/li_NL
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mai_IN
 #usr/share/i18n/locales/mg_MG
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
@@ -1135,13 +1197,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/mr_IN
 #usr/share/i18n/locales/ms_MY
 #usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/my_MM
+#usr/share/i18n/locales/nan_TW@latin
 #usr/share/i18n/locales/nb_NO
+#usr/share/i18n/locales/nds_DE
+#usr/share/i18n/locales/nds_NL
 #usr/share/i18n/locales/ne_NP
+#usr/share/i18n/locales/nl_AW
 #usr/share/i18n/locales/nl_BE
 #usr/share/i18n/locales/nl_BE@euro
 #usr/share/i18n/locales/nl_NL
 #usr/share/i18n/locales/nl_NL@euro
 #usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
 #usr/share/i18n/locales/nr_ZA
 #usr/share/i18n/locales/nso_ZA
 #usr/share/i18n/locales/oc_FR
@@ -1150,7 +1218,9 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/or_IN
 #usr/share/i18n/locales/pa_IN
 #usr/share/i18n/locales/pa_PK
+#usr/share/i18n/locales/pap_AN
 #usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/ps_AF
 #usr/share/i18n/locales/pt_BR
 #usr/share/i18n/locales/pt_PT
 #usr/share/i18n/locales/pt_PT@euro
@@ -1158,7 +1228,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ru_RU
 #usr/share/i18n/locales/ru_UA
 #usr/share/i18n/locales/rw_RW
+#usr/share/i18n/locales/sa_IN
+#usr/share/i18n/locales/sc_IT
+#usr/share/i18n/locales/sd_IN
+#usr/share/i18n/locales/sd_IN@devanagari
 #usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/shs_CA
 #usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
 #usr/share/i18n/locales/sk_SK
@@ -1168,8 +1243,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/so_KE
 #usr/share/i18n/locales/so_SO
 #usr/share/i18n/locales/sq_AL
-#usr/share/i18n/locales/sr_CS
+#usr/share/i18n/locales/sq_MK
 #usr/share/i18n/locales/sr_ME
+#usr/share/i18n/locales/sr_RS
+#usr/share/i18n/locales/sr_RS@latin
 #usr/share/i18n/locales/ss_ZA
 #usr/share/i18n/locales/st_ZA
 #usr/share/i18n/locales/sv_FI
@@ -1182,6 +1259,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
+#usr/share/i18n/locales/tk_TM
 #usr/share/i18n/locales/tl_PH
 #usr/share/i18n/locales/tn_ZA
 #usr/share/i18n/locales/tr_CY
@@ -1200,7 +1278,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/translit_wide
 #usr/share/i18n/locales/ts_ZA
 #usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/tt_RU@iqtelif
+#usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
 #usr/share/i18n/locales/uz_UZ@cyrillic
@@ -1209,16 +1290,34 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
 #usr/share/i18n/locales/wal_ET
+#usr/share/i18n/locales/wo_SN
 #usr/share/i18n/locales/xh_ZA
 #usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/yo_NG
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
 #usr/share/i18n/locales/zh_TW
 #usr/share/i18n/locales/zu_ZA
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
 #usr/share/locale/be
 #usr/share/locale/be/LC_MESSAGES
 #usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/bg
+#usr/share/locale/bg/LC_MESSAGES
+#usr/share/locale/bg/LC_MESSAGES/libc.mo
 #usr/share/locale/ca
 #usr/share/locale/ca/LC_MESSAGES
 #usr/share/locale/ca/LC_MESSAGES/libc.mo
@@ -1255,6 +1354,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/libc.mo
 #usr/share/locale/it
 #usr/share/locale/it/LC_MESSAGES
 #usr/share/locale/it/LC_MESSAGES/libc.mo
@@ -1265,6 +1367,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/ko/LC_MESSAGES
 #usr/share/locale/ko/LC_MESSAGES/libc.mo
 #usr/share/locale/locale.alias
+#usr/share/locale/lt
+#usr/share/locale/lt/LC_MESSAGES
+#usr/share/locale/lt/LC_MESSAGES/libc.mo
 #usr/share/locale/nb
 #usr/share/locale/nb/LC_MESSAGES
 #usr/share/locale/nb/LC_MESSAGES/libc.mo
@@ -1292,11 +1397,1777 @@ usr/lib/locale/locale-archive
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/vi
+#usr/share/locale/vi/LC_MESSAGES
+#usr/share/locale/vi/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_CN
 #usr/share/locale/zh_CN/LC_MESSAGES
 #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_TW
 #usr/share/locale/zh_TW/LC_MESSAGES
 #usr/share/locale/zh_TW/LC_MESSAGES/libc.mo
+#usr/share/zoneinfo/Africa
+#usr/share/zoneinfo/Africa/Abidjan
+#usr/share/zoneinfo/Africa/Accra
+#usr/share/zoneinfo/Africa/Addis_Ababa
+#usr/share/zoneinfo/Africa/Algiers
+#usr/share/zoneinfo/Africa/Asmara
+#usr/share/zoneinfo/Africa/Asmera
+#usr/share/zoneinfo/Africa/Bamako
+#usr/share/zoneinfo/Africa/Bangui
+#usr/share/zoneinfo/Africa/Banjul
+#usr/share/zoneinfo/Africa/Bissau
+#usr/share/zoneinfo/Africa/Blantyre
+#usr/share/zoneinfo/Africa/Brazzaville
+#usr/share/zoneinfo/Africa/Bujumbura
+#usr/share/zoneinfo/Africa/Cairo
+#usr/share/zoneinfo/Africa/Casablanca
+#usr/share/zoneinfo/Africa/Ceuta
+#usr/share/zoneinfo/Africa/Conakry
+#usr/share/zoneinfo/Africa/Dakar
+#usr/share/zoneinfo/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/Africa/Djibouti
+#usr/share/zoneinfo/Africa/Douala
+#usr/share/zoneinfo/Africa/El_Aaiun
+#usr/share/zoneinfo/Africa/Freetown
+#usr/share/zoneinfo/Africa/Gaborone
+#usr/share/zoneinfo/Africa/Harare
+#usr/share/zoneinfo/Africa/Johannesburg
+#usr/share/zoneinfo/Africa/Kampala
+#usr/share/zoneinfo/Africa/Khartoum
+#usr/share/zoneinfo/Africa/Kigali
+#usr/share/zoneinfo/Africa/Kinshasa
+#usr/share/zoneinfo/Africa/Lagos
+#usr/share/zoneinfo/Africa/Libreville
+#usr/share/zoneinfo/Africa/Lome
+#usr/share/zoneinfo/Africa/Luanda
+#usr/share/zoneinfo/Africa/Lubumbashi
+#usr/share/zoneinfo/Africa/Lusaka
+#usr/share/zoneinfo/Africa/Malabo
+#usr/share/zoneinfo/Africa/Maputo
+#usr/share/zoneinfo/Africa/Maseru
+#usr/share/zoneinfo/Africa/Mbabane
+#usr/share/zoneinfo/Africa/Mogadishu
+#usr/share/zoneinfo/Africa/Monrovia
+#usr/share/zoneinfo/Africa/Nairobi
+#usr/share/zoneinfo/Africa/Ndjamena
+#usr/share/zoneinfo/Africa/Niamey
+#usr/share/zoneinfo/Africa/Nouakchott
+#usr/share/zoneinfo/Africa/Ouagadougou
+#usr/share/zoneinfo/Africa/Porto-Novo
+#usr/share/zoneinfo/Africa/Sao_Tome
+#usr/share/zoneinfo/Africa/Timbuktu
+#usr/share/zoneinfo/Africa/Tripoli
+#usr/share/zoneinfo/Africa/Tunis
+#usr/share/zoneinfo/Africa/Windhoek
+#usr/share/zoneinfo/America
+#usr/share/zoneinfo/America/Adak
+#usr/share/zoneinfo/America/Anchorage
+#usr/share/zoneinfo/America/Anguilla
+#usr/share/zoneinfo/America/Antigua
+#usr/share/zoneinfo/America/Araguaina
+#usr/share/zoneinfo/America/Argentina
+#usr/share/zoneinfo/America/Argentina/Buenos_Aires
+#usr/share/zoneinfo/America/Argentina/Catamarca
+#usr/share/zoneinfo/America/Argentina/ComodRivadavia
+#usr/share/zoneinfo/America/Argentina/Cordoba
+#usr/share/zoneinfo/America/Argentina/Jujuy
+#usr/share/zoneinfo/America/Argentina/La_Rioja
+#usr/share/zoneinfo/America/Argentina/Mendoza
+#usr/share/zoneinfo/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/America/Argentina/Salta
+#usr/share/zoneinfo/America/Argentina/San_Juan
+#usr/share/zoneinfo/America/Argentina/San_Luis
+#usr/share/zoneinfo/America/Argentina/Tucuman
+#usr/share/zoneinfo/America/Argentina/Ushuaia
+#usr/share/zoneinfo/America/Aruba
+#usr/share/zoneinfo/America/Asuncion
+#usr/share/zoneinfo/America/Atikokan
+#usr/share/zoneinfo/America/Atka
+#usr/share/zoneinfo/America/Bahia
+#usr/share/zoneinfo/America/Barbados
+#usr/share/zoneinfo/America/Belem
+#usr/share/zoneinfo/America/Belize
+#usr/share/zoneinfo/America/Blanc-Sablon
+#usr/share/zoneinfo/America/Boa_Vista
+#usr/share/zoneinfo/America/Bogota
+#usr/share/zoneinfo/America/Boise
+#usr/share/zoneinfo/America/Buenos_Aires
+#usr/share/zoneinfo/America/Cambridge_Bay
+#usr/share/zoneinfo/America/Campo_Grande
+#usr/share/zoneinfo/America/Cancun
+#usr/share/zoneinfo/America/Caracas
+#usr/share/zoneinfo/America/Catamarca
+#usr/share/zoneinfo/America/Cayenne
+#usr/share/zoneinfo/America/Cayman
+#usr/share/zoneinfo/America/Chicago
+#usr/share/zoneinfo/America/Chihuahua
+#usr/share/zoneinfo/America/Coral_Harbour
+#usr/share/zoneinfo/America/Cordoba
+#usr/share/zoneinfo/America/Costa_Rica
+#usr/share/zoneinfo/America/Cuiaba
+#usr/share/zoneinfo/America/Curacao
+#usr/share/zoneinfo/America/Danmarkshavn
+#usr/share/zoneinfo/America/Dawson
+#usr/share/zoneinfo/America/Dawson_Creek
+#usr/share/zoneinfo/America/Denver
+#usr/share/zoneinfo/America/Detroit
+#usr/share/zoneinfo/America/Dominica
+#usr/share/zoneinfo/America/Edmonton
+#usr/share/zoneinfo/America/Eirunepe
+#usr/share/zoneinfo/America/El_Salvador
+#usr/share/zoneinfo/America/Ensenada
+#usr/share/zoneinfo/America/Fort_Wayne
+#usr/share/zoneinfo/America/Fortaleza
+#usr/share/zoneinfo/America/Glace_Bay
+#usr/share/zoneinfo/America/Godthab
+#usr/share/zoneinfo/America/Goose_Bay
+#usr/share/zoneinfo/America/Grand_Turk
+#usr/share/zoneinfo/America/Grenada
+#usr/share/zoneinfo/America/Guadeloupe
+#usr/share/zoneinfo/America/Guatemala
+#usr/share/zoneinfo/America/Guayaquil
+#usr/share/zoneinfo/America/Guyana
+#usr/share/zoneinfo/America/Halifax
+#usr/share/zoneinfo/America/Havana
+#usr/share/zoneinfo/America/Hermosillo
+#usr/share/zoneinfo/America/Indiana
+#usr/share/zoneinfo/America/Indiana/Indianapolis
+#usr/share/zoneinfo/America/Indiana/Knox
+#usr/share/zoneinfo/America/Indiana/Marengo
+#usr/share/zoneinfo/America/Indiana/Petersburg
+#usr/share/zoneinfo/America/Indiana/Tell_City
+#usr/share/zoneinfo/America/Indiana/Vevay
+#usr/share/zoneinfo/America/Indiana/Vincennes
+#usr/share/zoneinfo/America/Indiana/Winamac
+#usr/share/zoneinfo/America/Indianapolis
+#usr/share/zoneinfo/America/Inuvik
+#usr/share/zoneinfo/America/Iqaluit
+#usr/share/zoneinfo/America/Jamaica
+#usr/share/zoneinfo/America/Jujuy
+#usr/share/zoneinfo/America/Juneau
+#usr/share/zoneinfo/America/Kentucky
+#usr/share/zoneinfo/America/Kentucky/Louisville
+#usr/share/zoneinfo/America/Kentucky/Monticello
+#usr/share/zoneinfo/America/Knox_IN
+#usr/share/zoneinfo/America/La_Paz
+#usr/share/zoneinfo/America/Lima
+#usr/share/zoneinfo/America/Los_Angeles
+#usr/share/zoneinfo/America/Louisville
+#usr/share/zoneinfo/America/Maceio
+#usr/share/zoneinfo/America/Managua
+#usr/share/zoneinfo/America/Manaus
+#usr/share/zoneinfo/America/Marigot
+#usr/share/zoneinfo/America/Martinique
+#usr/share/zoneinfo/America/Mazatlan
+#usr/share/zoneinfo/America/Mendoza
+#usr/share/zoneinfo/America/Menominee
+#usr/share/zoneinfo/America/Merida
+#usr/share/zoneinfo/America/Mexico_City
+#usr/share/zoneinfo/America/Miquelon
+#usr/share/zoneinfo/America/Moncton
+#usr/share/zoneinfo/America/Monterrey
+#usr/share/zoneinfo/America/Montevideo
+#usr/share/zoneinfo/America/Montreal
+#usr/share/zoneinfo/America/Montserrat
+#usr/share/zoneinfo/America/Nassau
+#usr/share/zoneinfo/America/New_York
+#usr/share/zoneinfo/America/Nipigon
+#usr/share/zoneinfo/America/Nome
+#usr/share/zoneinfo/America/Noronha
+#usr/share/zoneinfo/America/North_Dakota
+#usr/share/zoneinfo/America/North_Dakota/Center
+#usr/share/zoneinfo/America/North_Dakota/New_Salem
+#usr/share/zoneinfo/America/Panama
+#usr/share/zoneinfo/America/Pangnirtung
+#usr/share/zoneinfo/America/Paramaribo
+#usr/share/zoneinfo/America/Phoenix
+#usr/share/zoneinfo/America/Port-au-Prince
+#usr/share/zoneinfo/America/Port_of_Spain
+#usr/share/zoneinfo/America/Porto_Acre
+#usr/share/zoneinfo/America/Porto_Velho
+#usr/share/zoneinfo/America/Puerto_Rico
+#usr/share/zoneinfo/America/Rainy_River
+#usr/share/zoneinfo/America/Rankin_Inlet
+#usr/share/zoneinfo/America/Recife
+#usr/share/zoneinfo/America/Regina
+#usr/share/zoneinfo/America/Resolute
+#usr/share/zoneinfo/America/Rio_Branco
+#usr/share/zoneinfo/America/Rosario
+#usr/share/zoneinfo/America/Santarem
+#usr/share/zoneinfo/America/Santiago
+#usr/share/zoneinfo/America/Santo_Domingo
+#usr/share/zoneinfo/America/Sao_Paulo
+#usr/share/zoneinfo/America/Scoresbysund
+#usr/share/zoneinfo/America/Shiprock
+#usr/share/zoneinfo/America/St_Barthelemy
+#usr/share/zoneinfo/America/St_Johns
+#usr/share/zoneinfo/America/St_Kitts
+#usr/share/zoneinfo/America/St_Lucia
+#usr/share/zoneinfo/America/St_Thomas
+#usr/share/zoneinfo/America/St_Vincent
+#usr/share/zoneinfo/America/Swift_Current
+#usr/share/zoneinfo/America/Tegucigalpa
+#usr/share/zoneinfo/America/Thule
+#usr/share/zoneinfo/America/Thunder_Bay
+#usr/share/zoneinfo/America/Tijuana
+#usr/share/zoneinfo/America/Toronto
+#usr/share/zoneinfo/America/Tortola
+#usr/share/zoneinfo/America/Vancouver
+#usr/share/zoneinfo/America/Virgin
+#usr/share/zoneinfo/America/Whitehorse
+#usr/share/zoneinfo/America/Winnipeg
+#usr/share/zoneinfo/America/Yakutat
+#usr/share/zoneinfo/America/Yellowknife
+#usr/share/zoneinfo/Antarctica
+#usr/share/zoneinfo/Antarctica/Casey
+#usr/share/zoneinfo/Antarctica/Davis
+#usr/share/zoneinfo/Antarctica/DumontDUrville
+#usr/share/zoneinfo/Antarctica/Mawson
+#usr/share/zoneinfo/Antarctica/McMurdo
+#usr/share/zoneinfo/Antarctica/Palmer
+#usr/share/zoneinfo/Antarctica/Rothera
+#usr/share/zoneinfo/Antarctica/South_Pole
+#usr/share/zoneinfo/Antarctica/Syowa
+#usr/share/zoneinfo/Antarctica/Vostok
+#usr/share/zoneinfo/Arctic
+#usr/share/zoneinfo/Arctic/Longyearbyen
+#usr/share/zoneinfo/Asia
+#usr/share/zoneinfo/Asia/Aden
+#usr/share/zoneinfo/Asia/Almaty
+#usr/share/zoneinfo/Asia/Amman
+#usr/share/zoneinfo/Asia/Anadyr
+#usr/share/zoneinfo/Asia/Aqtau
+#usr/share/zoneinfo/Asia/Aqtobe
+#usr/share/zoneinfo/Asia/Ashgabat
+#usr/share/zoneinfo/Asia/Ashkhabad
+#usr/share/zoneinfo/Asia/Baghdad
+#usr/share/zoneinfo/Asia/Bahrain
+#usr/share/zoneinfo/Asia/Baku
+#usr/share/zoneinfo/Asia/Bangkok
+#usr/share/zoneinfo/Asia/Beirut
+#usr/share/zoneinfo/Asia/Bishkek
+#usr/share/zoneinfo/Asia/Brunei
+#usr/share/zoneinfo/Asia/Calcutta
+#usr/share/zoneinfo/Asia/Choibalsan
+#usr/share/zoneinfo/Asia/Chongqing
+#usr/share/zoneinfo/Asia/Chungking
+#usr/share/zoneinfo/Asia/Colombo
+#usr/share/zoneinfo/Asia/Dacca
+#usr/share/zoneinfo/Asia/Damascus
+#usr/share/zoneinfo/Asia/Dhaka
+#usr/share/zoneinfo/Asia/Dili
+#usr/share/zoneinfo/Asia/Dubai
+#usr/share/zoneinfo/Asia/Dushanbe
+#usr/share/zoneinfo/Asia/Gaza
+#usr/share/zoneinfo/Asia/Harbin
+#usr/share/zoneinfo/Asia/Ho_Chi_Minh
+#usr/share/zoneinfo/Asia/Hong_Kong
+#usr/share/zoneinfo/Asia/Hovd
+#usr/share/zoneinfo/Asia/Irkutsk
+#usr/share/zoneinfo/Asia/Istanbul
+#usr/share/zoneinfo/Asia/Jakarta
+#usr/share/zoneinfo/Asia/Jayapura
+#usr/share/zoneinfo/Asia/Jerusalem
+#usr/share/zoneinfo/Asia/Kabul
+#usr/share/zoneinfo/Asia/Kamchatka
+#usr/share/zoneinfo/Asia/Karachi
+#usr/share/zoneinfo/Asia/Kashgar
+#usr/share/zoneinfo/Asia/Kathmandu
+#usr/share/zoneinfo/Asia/Katmandu
+#usr/share/zoneinfo/Asia/Kolkata
+#usr/share/zoneinfo/Asia/Krasnoyarsk
+#usr/share/zoneinfo/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/Asia/Kuching
+#usr/share/zoneinfo/Asia/Kuwait
+#usr/share/zoneinfo/Asia/Macao
+#usr/share/zoneinfo/Asia/Macau
+#usr/share/zoneinfo/Asia/Magadan
+#usr/share/zoneinfo/Asia/Makassar
+#usr/share/zoneinfo/Asia/Manila
+#usr/share/zoneinfo/Asia/Muscat
+#usr/share/zoneinfo/Asia/Nicosia
+#usr/share/zoneinfo/Asia/Novosibirsk
+#usr/share/zoneinfo/Asia/Omsk
+#usr/share/zoneinfo/Asia/Oral
+#usr/share/zoneinfo/Asia/Phnom_Penh
+#usr/share/zoneinfo/Asia/Pontianak
+#usr/share/zoneinfo/Asia/Pyongyang
+#usr/share/zoneinfo/Asia/Qatar
+#usr/share/zoneinfo/Asia/Qyzylorda
+#usr/share/zoneinfo/Asia/Rangoon
+#usr/share/zoneinfo/Asia/Riyadh
+#usr/share/zoneinfo/Asia/Riyadh87
+#usr/share/zoneinfo/Asia/Riyadh88
+#usr/share/zoneinfo/Asia/Riyadh89
+#usr/share/zoneinfo/Asia/Saigon
+#usr/share/zoneinfo/Asia/Sakhalin
+#usr/share/zoneinfo/Asia/Samarkand
+#usr/share/zoneinfo/Asia/Seoul
+#usr/share/zoneinfo/Asia/Shanghai
+#usr/share/zoneinfo/Asia/Singapore
+#usr/share/zoneinfo/Asia/Taipei
+#usr/share/zoneinfo/Asia/Tashkent
+#usr/share/zoneinfo/Asia/Tbilisi
+#usr/share/zoneinfo/Asia/Tehran
+#usr/share/zoneinfo/Asia/Tel_Aviv
+#usr/share/zoneinfo/Asia/Thimbu
+#usr/share/zoneinfo/Asia/Thimphu
+#usr/share/zoneinfo/Asia/Tokyo
+#usr/share/zoneinfo/Asia/Ujung_Pandang
+#usr/share/zoneinfo/Asia/Ulaanbaatar
+#usr/share/zoneinfo/Asia/Ulan_Bator
+#usr/share/zoneinfo/Asia/Urumqi
+#usr/share/zoneinfo/Asia/Vientiane
+#usr/share/zoneinfo/Asia/Vladivostok
+#usr/share/zoneinfo/Asia/Yakutsk
+#usr/share/zoneinfo/Asia/Yekaterinburg
+#usr/share/zoneinfo/Asia/Yerevan
+#usr/share/zoneinfo/Atlantic
+#usr/share/zoneinfo/Atlantic/Azores
+#usr/share/zoneinfo/Atlantic/Bermuda
+#usr/share/zoneinfo/Atlantic/Canary
+#usr/share/zoneinfo/Atlantic/Cape_Verde
+#usr/share/zoneinfo/Atlantic/Faeroe
+#usr/share/zoneinfo/Atlantic/Faroe
+#usr/share/zoneinfo/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/Atlantic/Madeira
+#usr/share/zoneinfo/Atlantic/Reykjavik
+#usr/share/zoneinfo/Atlantic/South_Georgia
+#usr/share/zoneinfo/Atlantic/St_Helena
+#usr/share/zoneinfo/Atlantic/Stanley
+#usr/share/zoneinfo/Australia
+#usr/share/zoneinfo/Australia/ACT
+#usr/share/zoneinfo/Australia/Adelaide
+#usr/share/zoneinfo/Australia/Brisbane
+#usr/share/zoneinfo/Australia/Broken_Hill
+#usr/share/zoneinfo/Australia/Canberra
+#usr/share/zoneinfo/Australia/Currie
+#usr/share/zoneinfo/Australia/Darwin
+#usr/share/zoneinfo/Australia/Eucla
+#usr/share/zoneinfo/Australia/Hobart
+#usr/share/zoneinfo/Australia/LHI
+#usr/share/zoneinfo/Australia/Lindeman
+#usr/share/zoneinfo/Australia/Lord_Howe
+#usr/share/zoneinfo/Australia/Melbourne
+#usr/share/zoneinfo/Australia/NSW
+#usr/share/zoneinfo/Australia/North
+#usr/share/zoneinfo/Australia/Perth
+#usr/share/zoneinfo/Australia/Queensland
+#usr/share/zoneinfo/Australia/South
+#usr/share/zoneinfo/Australia/Sydney
+#usr/share/zoneinfo/Australia/Tasmania
+#usr/share/zoneinfo/Australia/Victoria
+#usr/share/zoneinfo/Australia/West
+#usr/share/zoneinfo/Australia/Yancowinna
+#usr/share/zoneinfo/Brazil
+#usr/share/zoneinfo/Brazil/Acre
+#usr/share/zoneinfo/Brazil/DeNoronha
+#usr/share/zoneinfo/Brazil/East
+#usr/share/zoneinfo/Brazil/West
+#usr/share/zoneinfo/CET
+#usr/share/zoneinfo/CST6CDT
+#usr/share/zoneinfo/Canada
+#usr/share/zoneinfo/Canada/Atlantic
+#usr/share/zoneinfo/Canada/Central
+#usr/share/zoneinfo/Canada/East-Saskatchewan
+#usr/share/zoneinfo/Canada/Eastern
+#usr/share/zoneinfo/Canada/Mountain
+#usr/share/zoneinfo/Canada/Newfoundland
+#usr/share/zoneinfo/Canada/Pacific
+#usr/share/zoneinfo/Canada/Saskatchewan
+#usr/share/zoneinfo/Canada/Yukon
+#usr/share/zoneinfo/Chile
+#usr/share/zoneinfo/Chile/Continental
+#usr/share/zoneinfo/Chile/EasterIsland
+#usr/share/zoneinfo/Cuba
+#usr/share/zoneinfo/EET
+#usr/share/zoneinfo/EST
+#usr/share/zoneinfo/EST5EDT
+#usr/share/zoneinfo/Egypt
+#usr/share/zoneinfo/Eire
+#usr/share/zoneinfo/Etc
+#usr/share/zoneinfo/Etc/GMT
+#usr/share/zoneinfo/Etc/GMT+0
+#usr/share/zoneinfo/Etc/GMT+1
+#usr/share/zoneinfo/Etc/GMT+10
+#usr/share/zoneinfo/Etc/GMT+11
+#usr/share/zoneinfo/Etc/GMT+12
+#usr/share/zoneinfo/Etc/GMT+2
+#usr/share/zoneinfo/Etc/GMT+3
+#usr/share/zoneinfo/Etc/GMT+4
+#usr/share/zoneinfo/Etc/GMT+5
+#usr/share/zoneinfo/Etc/GMT+6
+#usr/share/zoneinfo/Etc/GMT+7
+#usr/share/zoneinfo/Etc/GMT+8
+#usr/share/zoneinfo/Etc/GMT+9
+#usr/share/zoneinfo/Etc/GMT-0
+#usr/share/zoneinfo/Etc/GMT-1
+#usr/share/zoneinfo/Etc/GMT-10
+#usr/share/zoneinfo/Etc/GMT-11
+#usr/share/zoneinfo/Etc/GMT-12
+#usr/share/zoneinfo/Etc/GMT-13
+#usr/share/zoneinfo/Etc/GMT-14
+#usr/share/zoneinfo/Etc/GMT-2
+#usr/share/zoneinfo/Etc/GMT-3
+#usr/share/zoneinfo/Etc/GMT-4
+#usr/share/zoneinfo/Etc/GMT-5
+#usr/share/zoneinfo/Etc/GMT-6
+#usr/share/zoneinfo/Etc/GMT-7
+#usr/share/zoneinfo/Etc/GMT-8
+#usr/share/zoneinfo/Etc/GMT-9
+#usr/share/zoneinfo/Etc/GMT0
+#usr/share/zoneinfo/Etc/Greenwich
+#usr/share/zoneinfo/Etc/UCT
+#usr/share/zoneinfo/Etc/UTC
+#usr/share/zoneinfo/Etc/Universal
+#usr/share/zoneinfo/Etc/Zulu
+#usr/share/zoneinfo/Europe
+#usr/share/zoneinfo/Europe/Amsterdam
+#usr/share/zoneinfo/Europe/Andorra
+#usr/share/zoneinfo/Europe/Athens
+#usr/share/zoneinfo/Europe/Belfast
+#usr/share/zoneinfo/Europe/Belgrade
+#usr/share/zoneinfo/Europe/Berlin
+#usr/share/zoneinfo/Europe/Bratislava
+#usr/share/zoneinfo/Europe/Brussels
+#usr/share/zoneinfo/Europe/Bucharest
+#usr/share/zoneinfo/Europe/Budapest
+#usr/share/zoneinfo/Europe/Chisinau
+#usr/share/zoneinfo/Europe/Copenhagen
+#usr/share/zoneinfo/Europe/Dublin
+#usr/share/zoneinfo/Europe/Gibraltar
+#usr/share/zoneinfo/Europe/Guernsey
+#usr/share/zoneinfo/Europe/Helsinki
+#usr/share/zoneinfo/Europe/Isle_of_Man
+#usr/share/zoneinfo/Europe/Istanbul
+#usr/share/zoneinfo/Europe/Jersey
+#usr/share/zoneinfo/Europe/Kaliningrad
+#usr/share/zoneinfo/Europe/Kiev
+#usr/share/zoneinfo/Europe/Lisbon
+#usr/share/zoneinfo/Europe/Ljubljana
+#usr/share/zoneinfo/Europe/London
+#usr/share/zoneinfo/Europe/Luxembourg
+#usr/share/zoneinfo/Europe/Madrid
+#usr/share/zoneinfo/Europe/Malta
+#usr/share/zoneinfo/Europe/Mariehamn
+#usr/share/zoneinfo/Europe/Minsk
+#usr/share/zoneinfo/Europe/Monaco
+#usr/share/zoneinfo/Europe/Moscow
+#usr/share/zoneinfo/Europe/Nicosia
+#usr/share/zoneinfo/Europe/Oslo
+#usr/share/zoneinfo/Europe/Paris
+#usr/share/zoneinfo/Europe/Podgorica
+#usr/share/zoneinfo/Europe/Prague
+#usr/share/zoneinfo/Europe/Riga
+#usr/share/zoneinfo/Europe/Rome
+#usr/share/zoneinfo/Europe/Samara
+#usr/share/zoneinfo/Europe/San_Marino
+#usr/share/zoneinfo/Europe/Sarajevo
+#usr/share/zoneinfo/Europe/Simferopol
+#usr/share/zoneinfo/Europe/Skopje
+#usr/share/zoneinfo/Europe/Sofia
+#usr/share/zoneinfo/Europe/Stockholm
+#usr/share/zoneinfo/Europe/Tallinn
+#usr/share/zoneinfo/Europe/Tirane
+#usr/share/zoneinfo/Europe/Tiraspol
+#usr/share/zoneinfo/Europe/Uzhgorod
+#usr/share/zoneinfo/Europe/Vaduz
+#usr/share/zoneinfo/Europe/Vatican
+#usr/share/zoneinfo/Europe/Vienna
+#usr/share/zoneinfo/Europe/Vilnius
+#usr/share/zoneinfo/Europe/Volgograd
+#usr/share/zoneinfo/Europe/Warsaw
+#usr/share/zoneinfo/Europe/Zagreb
+#usr/share/zoneinfo/Europe/Zaporozhye
+#usr/share/zoneinfo/Europe/Zurich
+#usr/share/zoneinfo/Factory
+#usr/share/zoneinfo/GB
+#usr/share/zoneinfo/GB-Eire
+#usr/share/zoneinfo/GMT
+#usr/share/zoneinfo/GMT+0
+#usr/share/zoneinfo/GMT-0
+#usr/share/zoneinfo/GMT0
+#usr/share/zoneinfo/Greenwich
+#usr/share/zoneinfo/HST
+#usr/share/zoneinfo/Hongkong
+#usr/share/zoneinfo/Iceland
+#usr/share/zoneinfo/Indian
+#usr/share/zoneinfo/Indian/Antananarivo
+#usr/share/zoneinfo/Indian/Chagos
+#usr/share/zoneinfo/Indian/Christmas
+#usr/share/zoneinfo/Indian/Cocos
+#usr/share/zoneinfo/Indian/Comoro
+#usr/share/zoneinfo/Indian/Kerguelen
+#usr/share/zoneinfo/Indian/Mahe
+#usr/share/zoneinfo/Indian/Maldives
+#usr/share/zoneinfo/Indian/Mauritius
+#usr/share/zoneinfo/Indian/Mayotte
+#usr/share/zoneinfo/Indian/Reunion
+#usr/share/zoneinfo/Iran
+#usr/share/zoneinfo/Israel
+#usr/share/zoneinfo/Jamaica
+#usr/share/zoneinfo/Japan
+#usr/share/zoneinfo/Kwajalein
+#usr/share/zoneinfo/Libya
+#usr/share/zoneinfo/MET
+#usr/share/zoneinfo/MST
+#usr/share/zoneinfo/MST7MDT
+#usr/share/zoneinfo/Mexico
+#usr/share/zoneinfo/Mexico/BajaNorte
+#usr/share/zoneinfo/Mexico/BajaSur
+#usr/share/zoneinfo/Mexico/General
+#usr/share/zoneinfo/Mideast
+#usr/share/zoneinfo/Mideast/Riyadh87
+#usr/share/zoneinfo/Mideast/Riyadh88
+#usr/share/zoneinfo/Mideast/Riyadh89
+#usr/share/zoneinfo/NZ
+#usr/share/zoneinfo/NZ-CHAT
+#usr/share/zoneinfo/Navajo
+#usr/share/zoneinfo/PRC
+#usr/share/zoneinfo/PST8PDT
+#usr/share/zoneinfo/Pacific
+#usr/share/zoneinfo/Pacific/Apia
+#usr/share/zoneinfo/Pacific/Auckland
+#usr/share/zoneinfo/Pacific/Chatham
+#usr/share/zoneinfo/Pacific/Easter
+#usr/share/zoneinfo/Pacific/Efate
+#usr/share/zoneinfo/Pacific/Enderbury
+#usr/share/zoneinfo/Pacific/Fakaofo
+#usr/share/zoneinfo/Pacific/Fiji
+#usr/share/zoneinfo/Pacific/Funafuti
+#usr/share/zoneinfo/Pacific/Galapagos
+#usr/share/zoneinfo/Pacific/Gambier
+#usr/share/zoneinfo/Pacific/Guadalcanal
+#usr/share/zoneinfo/Pacific/Guam
+#usr/share/zoneinfo/Pacific/Honolulu
+#usr/share/zoneinfo/Pacific/Johnston
+#usr/share/zoneinfo/Pacific/Kiritimati
+#usr/share/zoneinfo/Pacific/Kosrae
+#usr/share/zoneinfo/Pacific/Kwajalein
+#usr/share/zoneinfo/Pacific/Majuro
+#usr/share/zoneinfo/Pacific/Marquesas
+#usr/share/zoneinfo/Pacific/Midway
+#usr/share/zoneinfo/Pacific/Nauru
+#usr/share/zoneinfo/Pacific/Niue
+#usr/share/zoneinfo/Pacific/Norfolk
+#usr/share/zoneinfo/Pacific/Noumea
+#usr/share/zoneinfo/Pacific/Pago_Pago
+#usr/share/zoneinfo/Pacific/Palau
+#usr/share/zoneinfo/Pacific/Pitcairn
+#usr/share/zoneinfo/Pacific/Ponape
+#usr/share/zoneinfo/Pacific/Port_Moresby
+#usr/share/zoneinfo/Pacific/Rarotonga
+#usr/share/zoneinfo/Pacific/Saipan
+#usr/share/zoneinfo/Pacific/Samoa
+#usr/share/zoneinfo/Pacific/Tahiti
+#usr/share/zoneinfo/Pacific/Tarawa
+#usr/share/zoneinfo/Pacific/Tongatapu
+#usr/share/zoneinfo/Pacific/Truk
+#usr/share/zoneinfo/Pacific/Wake
+#usr/share/zoneinfo/Pacific/Wallis
+#usr/share/zoneinfo/Pacific/Yap
+#usr/share/zoneinfo/Poland
+#usr/share/zoneinfo/Portugal
+#usr/share/zoneinfo/ROC
+#usr/share/zoneinfo/ROK
+#usr/share/zoneinfo/Singapore
+#usr/share/zoneinfo/Turkey
+#usr/share/zoneinfo/UCT
+#usr/share/zoneinfo/US
+#usr/share/zoneinfo/US/Alaska
+#usr/share/zoneinfo/US/Aleutian
+#usr/share/zoneinfo/US/Arizona
+#usr/share/zoneinfo/US/Central
+#usr/share/zoneinfo/US/East-Indiana
+#usr/share/zoneinfo/US/Eastern
+#usr/share/zoneinfo/US/Hawaii
+#usr/share/zoneinfo/US/Indiana-Starke
+#usr/share/zoneinfo/US/Michigan
+#usr/share/zoneinfo/US/Mountain
+#usr/share/zoneinfo/US/Pacific
+#usr/share/zoneinfo/US/Samoa
+#usr/share/zoneinfo/UTC
+#usr/share/zoneinfo/Universal
+#usr/share/zoneinfo/W-SU
+#usr/share/zoneinfo/WET
+#usr/share/zoneinfo/Zulu
 #usr/share/zoneinfo/iso3166.tab
+usr/share/zoneinfo/posix
+#usr/share/zoneinfo/posix/Africa
+#usr/share/zoneinfo/posix/Africa/Abidjan
+#usr/share/zoneinfo/posix/Africa/Accra
+#usr/share/zoneinfo/posix/Africa/Addis_Ababa
+#usr/share/zoneinfo/posix/Africa/Algiers
+#usr/share/zoneinfo/posix/Africa/Asmara
+#usr/share/zoneinfo/posix/Africa/Asmera
+#usr/share/zoneinfo/posix/Africa/Bamako
+#usr/share/zoneinfo/posix/Africa/Bangui
+#usr/share/zoneinfo/posix/Africa/Banjul
+#usr/share/zoneinfo/posix/Africa/Bissau
+#usr/share/zoneinfo/posix/Africa/Blantyre
+#usr/share/zoneinfo/posix/Africa/Brazzaville
+#usr/share/zoneinfo/posix/Africa/Bujumbura
+#usr/share/zoneinfo/posix/Africa/Cairo
+#usr/share/zoneinfo/posix/Africa/Casablanca
+#usr/share/zoneinfo/posix/Africa/Ceuta
+#usr/share/zoneinfo/posix/Africa/Conakry
+#usr/share/zoneinfo/posix/Africa/Dakar
+#usr/share/zoneinfo/posix/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/posix/Africa/Djibouti
+#usr/share/zoneinfo/posix/Africa/Douala
+#usr/share/zoneinfo/posix/Africa/El_Aaiun
+#usr/share/zoneinfo/posix/Africa/Freetown
+#usr/share/zoneinfo/posix/Africa/Gaborone
+#usr/share/zoneinfo/posix/Africa/Harare
+#usr/share/zoneinfo/posix/Africa/Johannesburg
+#usr/share/zoneinfo/posix/Africa/Kampala
+#usr/share/zoneinfo/posix/Africa/Khartoum
+#usr/share/zoneinfo/posix/Africa/Kigali
+#usr/share/zoneinfo/posix/Africa/Kinshasa
+#usr/share/zoneinfo/posix/Africa/Lagos
+#usr/share/zoneinfo/posix/Africa/Libreville
+#usr/share/zoneinfo/posix/Africa/Lome
+#usr/share/zoneinfo/posix/Africa/Luanda
+#usr/share/zoneinfo/posix/Africa/Lubumbashi
+#usr/share/zoneinfo/posix/Africa/Lusaka
+#usr/share/zoneinfo/posix/Africa/Malabo
+#usr/share/zoneinfo/posix/Africa/Maputo
+#usr/share/zoneinfo/posix/Africa/Maseru
+#usr/share/zoneinfo/posix/Africa/Mbabane
+#usr/share/zoneinfo/posix/Africa/Mogadishu
+#usr/share/zoneinfo/posix/Africa/Monrovia
+#usr/share/zoneinfo/posix/Africa/Nairobi
+#usr/share/zoneinfo/posix/Africa/Ndjamena
+#usr/share/zoneinfo/posix/Africa/Niamey
+#usr/share/zoneinfo/posix/Africa/Nouakchott
+#usr/share/zoneinfo/posix/Africa/Ouagadougou
+#usr/share/zoneinfo/posix/Africa/Porto-Novo
+#usr/share/zoneinfo/posix/Africa/Sao_Tome
+#usr/share/zoneinfo/posix/Africa/Timbuktu
+#usr/share/zoneinfo/posix/Africa/Tripoli
+#usr/share/zoneinfo/posix/Africa/Tunis
+#usr/share/zoneinfo/posix/Africa/Windhoek
+#usr/share/zoneinfo/posix/America
+#usr/share/zoneinfo/posix/America/Adak
+#usr/share/zoneinfo/posix/America/Anchorage
+#usr/share/zoneinfo/posix/America/Anguilla
+#usr/share/zoneinfo/posix/America/Antigua
+#usr/share/zoneinfo/posix/America/Araguaina
+#usr/share/zoneinfo/posix/America/Argentina
+#usr/share/zoneinfo/posix/America/Argentina/Buenos_Aires
+#usr/share/zoneinfo/posix/America/Argentina/Catamarca
+#usr/share/zoneinfo/posix/America/Argentina/ComodRivadavia
+#usr/share/zoneinfo/posix/America/Argentina/Cordoba
+#usr/share/zoneinfo/posix/America/Argentina/Jujuy
+#usr/share/zoneinfo/posix/America/Argentina/La_Rioja
+#usr/share/zoneinfo/posix/America/Argentina/Mendoza
+#usr/share/zoneinfo/posix/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/posix/America/Argentina/Salta
+#usr/share/zoneinfo/posix/America/Argentina/San_Juan
+#usr/share/zoneinfo/posix/America/Argentina/San_Luis
+#usr/share/zoneinfo/posix/America/Argentina/Tucuman
+#usr/share/zoneinfo/posix/America/Argentina/Ushuaia
+#usr/share/zoneinfo/posix/America/Aruba
+#usr/share/zoneinfo/posix/America/Asuncion
+#usr/share/zoneinfo/posix/America/Atikokan
+#usr/share/zoneinfo/posix/America/Atka
+#usr/share/zoneinfo/posix/America/Bahia
+#usr/share/zoneinfo/posix/America/Barbados
+#usr/share/zoneinfo/posix/America/Belem
+#usr/share/zoneinfo/posix/America/Belize
+#usr/share/zoneinfo/posix/America/Blanc-Sablon
+#usr/share/zoneinfo/posix/America/Boa_Vista
+#usr/share/zoneinfo/posix/America/Bogota
+#usr/share/zoneinfo/posix/America/Boise
+#usr/share/zoneinfo/posix/America/Buenos_Aires
+#usr/share/zoneinfo/posix/America/Cambridge_Bay
+#usr/share/zoneinfo/posix/America/Campo_Grande
+#usr/share/zoneinfo/posix/America/Cancun
+#usr/share/zoneinfo/posix/America/Caracas
+#usr/share/zoneinfo/posix/America/Catamarca
+#usr/share/zoneinfo/posix/America/Cayenne
+#usr/share/zoneinfo/posix/America/Cayman
+#usr/share/zoneinfo/posix/America/Chicago
+#usr/share/zoneinfo/posix/America/Chihuahua
+#usr/share/zoneinfo/posix/America/Coral_Harbour
+#usr/share/zoneinfo/posix/America/Cordoba
+#usr/share/zoneinfo/posix/America/Costa_Rica
+#usr/share/zoneinfo/posix/America/Cuiaba
+#usr/share/zoneinfo/posix/America/Curacao
+#usr/share/zoneinfo/posix/America/Danmarkshavn
+#usr/share/zoneinfo/posix/America/Dawson
+#usr/share/zoneinfo/posix/America/Dawson_Creek
+#usr/share/zoneinfo/posix/America/Denver
+#usr/share/zoneinfo/posix/America/Detroit
+#usr/share/zoneinfo/posix/America/Dominica
+#usr/share/zoneinfo/posix/America/Edmonton
+#usr/share/zoneinfo/posix/America/Eirunepe
+#usr/share/zoneinfo/posix/America/El_Salvador
+#usr/share/zoneinfo/posix/America/Ensenada
+#usr/share/zoneinfo/posix/America/Fort_Wayne
+#usr/share/zoneinfo/posix/America/Fortaleza
+#usr/share/zoneinfo/posix/America/Glace_Bay
+#usr/share/zoneinfo/posix/America/Godthab
+#usr/share/zoneinfo/posix/America/Goose_Bay
+#usr/share/zoneinfo/posix/America/Grand_Turk
+#usr/share/zoneinfo/posix/America/Grenada
+#usr/share/zoneinfo/posix/America/Guadeloupe
+#usr/share/zoneinfo/posix/America/Guatemala
+#usr/share/zoneinfo/posix/America/Guayaquil
+#usr/share/zoneinfo/posix/America/Guyana
+#usr/share/zoneinfo/posix/America/Halifax
+#usr/share/zoneinfo/posix/America/Havana
+#usr/share/zoneinfo/posix/America/Hermosillo
+#usr/share/zoneinfo/posix/America/Indiana
+#usr/share/zoneinfo/posix/America/Indiana/Indianapolis
+#usr/share/zoneinfo/posix/America/Indiana/Knox
+#usr/share/zoneinfo/posix/America/Indiana/Marengo
+#usr/share/zoneinfo/posix/America/Indiana/Petersburg
+#usr/share/zoneinfo/posix/America/Indiana/Tell_City
+#usr/share/zoneinfo/posix/America/Indiana/Vevay
+#usr/share/zoneinfo/posix/America/Indiana/Vincennes
+#usr/share/zoneinfo/posix/America/Indiana/Winamac
+#usr/share/zoneinfo/posix/America/Indianapolis
+#usr/share/zoneinfo/posix/America/Inuvik
+#usr/share/zoneinfo/posix/America/Iqaluit
+#usr/share/zoneinfo/posix/America/Jamaica
+#usr/share/zoneinfo/posix/America/Jujuy
+#usr/share/zoneinfo/posix/America/Juneau
+#usr/share/zoneinfo/posix/America/Kentucky
+#usr/share/zoneinfo/posix/America/Kentucky/Louisville
+#usr/share/zoneinfo/posix/America/Kentucky/Monticello
+#usr/share/zoneinfo/posix/America/Knox_IN
+#usr/share/zoneinfo/posix/America/La_Paz
+#usr/share/zoneinfo/posix/America/Lima
+#usr/share/zoneinfo/posix/America/Los_Angeles
+#usr/share/zoneinfo/posix/America/Louisville
+#usr/share/zoneinfo/posix/America/Maceio
+#usr/share/zoneinfo/posix/America/Managua
+#usr/share/zoneinfo/posix/America/Manaus
+#usr/share/zoneinfo/posix/America/Marigot
+#usr/share/zoneinfo/posix/America/Martinique
+#usr/share/zoneinfo/posix/America/Mazatlan
+#usr/share/zoneinfo/posix/America/Mendoza
+#usr/share/zoneinfo/posix/America/Menominee
+#usr/share/zoneinfo/posix/America/Merida
+#usr/share/zoneinfo/posix/America/Mexico_City
+#usr/share/zoneinfo/posix/America/Miquelon
+#usr/share/zoneinfo/posix/America/Moncton
+#usr/share/zoneinfo/posix/America/Monterrey
+#usr/share/zoneinfo/posix/America/Montevideo
+#usr/share/zoneinfo/posix/America/Montreal
+#usr/share/zoneinfo/posix/America/Montserrat
+#usr/share/zoneinfo/posix/America/Nassau
+#usr/share/zoneinfo/posix/America/New_York
+#usr/share/zoneinfo/posix/America/Nipigon
+#usr/share/zoneinfo/posix/America/Nome
+#usr/share/zoneinfo/posix/America/Noronha
+#usr/share/zoneinfo/posix/America/North_Dakota
+#usr/share/zoneinfo/posix/America/North_Dakota/Center
+#usr/share/zoneinfo/posix/America/North_Dakota/New_Salem
+#usr/share/zoneinfo/posix/America/Panama
+#usr/share/zoneinfo/posix/America/Pangnirtung
+#usr/share/zoneinfo/posix/America/Paramaribo
+#usr/share/zoneinfo/posix/America/Phoenix
+#usr/share/zoneinfo/posix/America/Port-au-Prince
+#usr/share/zoneinfo/posix/America/Port_of_Spain
+#usr/share/zoneinfo/posix/America/Porto_Acre
+#usr/share/zoneinfo/posix/America/Porto_Velho
+#usr/share/zoneinfo/posix/America/Puerto_Rico
+#usr/share/zoneinfo/posix/America/Rainy_River
+#usr/share/zoneinfo/posix/America/Rankin_Inlet
+#usr/share/zoneinfo/posix/America/Recife
+#usr/share/zoneinfo/posix/America/Regina
+#usr/share/zoneinfo/posix/America/Resolute
+#usr/share/zoneinfo/posix/America/Rio_Branco
+#usr/share/zoneinfo/posix/America/Rosario
+#usr/share/zoneinfo/posix/America/Santarem
+#usr/share/zoneinfo/posix/America/Santiago
+#usr/share/zoneinfo/posix/America/Santo_Domingo
+#usr/share/zoneinfo/posix/America/Sao_Paulo
+#usr/share/zoneinfo/posix/America/Scoresbysund
+#usr/share/zoneinfo/posix/America/Shiprock
+#usr/share/zoneinfo/posix/America/St_Barthelemy
+#usr/share/zoneinfo/posix/America/St_Johns
+#usr/share/zoneinfo/posix/America/St_Kitts
+#usr/share/zoneinfo/posix/America/St_Lucia
+#usr/share/zoneinfo/posix/America/St_Thomas
+#usr/share/zoneinfo/posix/America/St_Vincent
+#usr/share/zoneinfo/posix/America/Swift_Current
+#usr/share/zoneinfo/posix/America/Tegucigalpa
+#usr/share/zoneinfo/posix/America/Thule
+#usr/share/zoneinfo/posix/America/Thunder_Bay
+#usr/share/zoneinfo/posix/America/Tijuana
+#usr/share/zoneinfo/posix/America/Toronto
+#usr/share/zoneinfo/posix/America/Tortola
+#usr/share/zoneinfo/posix/America/Vancouver
+#usr/share/zoneinfo/posix/America/Virgin
+#usr/share/zoneinfo/posix/America/Whitehorse
+#usr/share/zoneinfo/posix/America/Winnipeg
+#usr/share/zoneinfo/posix/America/Yakutat
+#usr/share/zoneinfo/posix/America/Yellowknife
+#usr/share/zoneinfo/posix/Antarctica
+#usr/share/zoneinfo/posix/Antarctica/Casey
+#usr/share/zoneinfo/posix/Antarctica/Davis
+#usr/share/zoneinfo/posix/Antarctica/DumontDUrville
+#usr/share/zoneinfo/posix/Antarctica/Mawson
+#usr/share/zoneinfo/posix/Antarctica/McMurdo
+#usr/share/zoneinfo/posix/Antarctica/Palmer
+#usr/share/zoneinfo/posix/Antarctica/Rothera
+#usr/share/zoneinfo/posix/Antarctica/South_Pole
+#usr/share/zoneinfo/posix/Antarctica/Syowa
+#usr/share/zoneinfo/posix/Antarctica/Vostok
+#usr/share/zoneinfo/posix/Arctic
+#usr/share/zoneinfo/posix/Arctic/Longyearbyen
+#usr/share/zoneinfo/posix/Asia
+#usr/share/zoneinfo/posix/Asia/Aden
+#usr/share/zoneinfo/posix/Asia/Almaty
+#usr/share/zoneinfo/posix/Asia/Amman
+#usr/share/zoneinfo/posix/Asia/Anadyr
+#usr/share/zoneinfo/posix/Asia/Aqtau
+#usr/share/zoneinfo/posix/Asia/Aqtobe
+#usr/share/zoneinfo/posix/Asia/Ashgabat
+#usr/share/zoneinfo/posix/Asia/Ashkhabad
+#usr/share/zoneinfo/posix/Asia/Baghdad
+#usr/share/zoneinfo/posix/Asia/Bahrain
+#usr/share/zoneinfo/posix/Asia/Baku
+#usr/share/zoneinfo/posix/Asia/Bangkok
+#usr/share/zoneinfo/posix/Asia/Beirut
+#usr/share/zoneinfo/posix/Asia/Bishkek
+#usr/share/zoneinfo/posix/Asia/Brunei
+#usr/share/zoneinfo/posix/Asia/Calcutta
+#usr/share/zoneinfo/posix/Asia/Choibalsan
+#usr/share/zoneinfo/posix/Asia/Chongqing
+#usr/share/zoneinfo/posix/Asia/Chungking
+#usr/share/zoneinfo/posix/Asia/Colombo
+#usr/share/zoneinfo/posix/Asia/Dacca
+#usr/share/zoneinfo/posix/Asia/Damascus
+#usr/share/zoneinfo/posix/Asia/Dhaka
+#usr/share/zoneinfo/posix/Asia/Dili
+#usr/share/zoneinfo/posix/Asia/Dubai
+#usr/share/zoneinfo/posix/Asia/Dushanbe
+#usr/share/zoneinfo/posix/Asia/Gaza
+#usr/share/zoneinfo/posix/Asia/Harbin
+#usr/share/zoneinfo/posix/Asia/Ho_Chi_Minh
+#usr/share/zoneinfo/posix/Asia/Hong_Kong
+#usr/share/zoneinfo/posix/Asia/Hovd
+#usr/share/zoneinfo/posix/Asia/Irkutsk
+#usr/share/zoneinfo/posix/Asia/Istanbul
+#usr/share/zoneinfo/posix/Asia/Jakarta
+#usr/share/zoneinfo/posix/Asia/Jayapura
+#usr/share/zoneinfo/posix/Asia/Jerusalem
+#usr/share/zoneinfo/posix/Asia/Kabul
+#usr/share/zoneinfo/posix/Asia/Kamchatka
+#usr/share/zoneinfo/posix/Asia/Karachi
+#usr/share/zoneinfo/posix/Asia/Kashgar
+#usr/share/zoneinfo/posix/Asia/Kathmandu
+#usr/share/zoneinfo/posix/Asia/Katmandu
+#usr/share/zoneinfo/posix/Asia/Kolkata
+#usr/share/zoneinfo/posix/Asia/Krasnoyarsk
+#usr/share/zoneinfo/posix/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/posix/Asia/Kuching
+#usr/share/zoneinfo/posix/Asia/Kuwait
+#usr/share/zoneinfo/posix/Asia/Macao
+#usr/share/zoneinfo/posix/Asia/Macau
+#usr/share/zoneinfo/posix/Asia/Magadan
+#usr/share/zoneinfo/posix/Asia/Makassar
+#usr/share/zoneinfo/posix/Asia/Manila
+#usr/share/zoneinfo/posix/Asia/Muscat
+#usr/share/zoneinfo/posix/Asia/Nicosia
+#usr/share/zoneinfo/posix/Asia/Novosibirsk
+#usr/share/zoneinfo/posix/Asia/Omsk
+#usr/share/zoneinfo/posix/Asia/Oral
+#usr/share/zoneinfo/posix/Asia/Phnom_Penh
+#usr/share/zoneinfo/posix/Asia/Pontianak
+#usr/share/zoneinfo/posix/Asia/Pyongyang
+#usr/share/zoneinfo/posix/Asia/Qatar
+#usr/share/zoneinfo/posix/Asia/Qyzylorda
+#usr/share/zoneinfo/posix/Asia/Rangoon
+#usr/share/zoneinfo/posix/Asia/Riyadh
+#usr/share/zoneinfo/posix/Asia/Riyadh87
+#usr/share/zoneinfo/posix/Asia/Riyadh88
+#usr/share/zoneinfo/posix/Asia/Riyadh89
+#usr/share/zoneinfo/posix/Asia/Saigon
+#usr/share/zoneinfo/posix/Asia/Sakhalin
+#usr/share/zoneinfo/posix/Asia/Samarkand
+#usr/share/zoneinfo/posix/Asia/Seoul
+#usr/share/zoneinfo/posix/Asia/Shanghai
+#usr/share/zoneinfo/posix/Asia/Singapore
+#usr/share/zoneinfo/posix/Asia/Taipei
+#usr/share/zoneinfo/posix/Asia/Tashkent
+#usr/share/zoneinfo/posix/Asia/Tbilisi
+#usr/share/zoneinfo/posix/Asia/Tehran
+#usr/share/zoneinfo/posix/Asia/Tel_Aviv
+#usr/share/zoneinfo/posix/Asia/Thimbu
+#usr/share/zoneinfo/posix/Asia/Thimphu
+#usr/share/zoneinfo/posix/Asia/Tokyo
+#usr/share/zoneinfo/posix/Asia/Ujung_Pandang
+#usr/share/zoneinfo/posix/Asia/Ulaanbaatar
+#usr/share/zoneinfo/posix/Asia/Ulan_Bator
+#usr/share/zoneinfo/posix/Asia/Urumqi
+#usr/share/zoneinfo/posix/Asia/Vientiane
+#usr/share/zoneinfo/posix/Asia/Vladivostok
+#usr/share/zoneinfo/posix/Asia/Yakutsk
+#usr/share/zoneinfo/posix/Asia/Yekaterinburg
+#usr/share/zoneinfo/posix/Asia/Yerevan
+#usr/share/zoneinfo/posix/Atlantic
+#usr/share/zoneinfo/posix/Atlantic/Azores
+#usr/share/zoneinfo/posix/Atlantic/Bermuda
+#usr/share/zoneinfo/posix/Atlantic/Canary
+#usr/share/zoneinfo/posix/Atlantic/Cape_Verde
+#usr/share/zoneinfo/posix/Atlantic/Faeroe
+#usr/share/zoneinfo/posix/Atlantic/Faroe
+#usr/share/zoneinfo/posix/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/posix/Atlantic/Madeira
+#usr/share/zoneinfo/posix/Atlantic/Reykjavik
+#usr/share/zoneinfo/posix/Atlantic/South_Georgia
+#usr/share/zoneinfo/posix/Atlantic/St_Helena
+#usr/share/zoneinfo/posix/Atlantic/Stanley
+#usr/share/zoneinfo/posix/Australia
+#usr/share/zoneinfo/posix/Australia/ACT
+#usr/share/zoneinfo/posix/Australia/Adelaide
+#usr/share/zoneinfo/posix/Australia/Brisbane
+#usr/share/zoneinfo/posix/Australia/Broken_Hill
+#usr/share/zoneinfo/posix/Australia/Canberra
+#usr/share/zoneinfo/posix/Australia/Currie
+#usr/share/zoneinfo/posix/Australia/Darwin
+#usr/share/zoneinfo/posix/Australia/Eucla
+#usr/share/zoneinfo/posix/Australia/Hobart
+#usr/share/zoneinfo/posix/Australia/LHI
+#usr/share/zoneinfo/posix/Australia/Lindeman
+#usr/share/zoneinfo/posix/Australia/Lord_Howe
+#usr/share/zoneinfo/posix/Australia/Melbourne
+#usr/share/zoneinfo/posix/Australia/NSW
+#usr/share/zoneinfo/posix/Australia/North
+#usr/share/zoneinfo/posix/Australia/Perth
+#usr/share/zoneinfo/posix/Australia/Queensland
+#usr/share/zoneinfo/posix/Australia/South
+#usr/share/zoneinfo/posix/Australia/Sydney
+#usr/share/zoneinfo/posix/Australia/Tasmania
+#usr/share/zoneinfo/posix/Australia/Victoria
+#usr/share/zoneinfo/posix/Australia/West
+#usr/share/zoneinfo/posix/Australia/Yancowinna
+#usr/share/zoneinfo/posix/Brazil
+#usr/share/zoneinfo/posix/Brazil/Acre
+#usr/share/zoneinfo/posix/Brazil/DeNoronha
+#usr/share/zoneinfo/posix/Brazil/East
+#usr/share/zoneinfo/posix/Brazil/West
+#usr/share/zoneinfo/posix/CET
+#usr/share/zoneinfo/posix/CST6CDT
+#usr/share/zoneinfo/posix/Canada
+#usr/share/zoneinfo/posix/Canada/Atlantic
+#usr/share/zoneinfo/posix/Canada/Central
+#usr/share/zoneinfo/posix/Canada/East-Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Eastern
+#usr/share/zoneinfo/posix/Canada/Mountain
+#usr/share/zoneinfo/posix/Canada/Newfoundland
+#usr/share/zoneinfo/posix/Canada/Pacific
+#usr/share/zoneinfo/posix/Canada/Saskatchewan
+#usr/share/zoneinfo/posix/Canada/Yukon
+#usr/share/zoneinfo/posix/Chile
+#usr/share/zoneinfo/posix/Chile/Continental
+#usr/share/zoneinfo/posix/Chile/EasterIsland
+#usr/share/zoneinfo/posix/Cuba
+#usr/share/zoneinfo/posix/EET
+#usr/share/zoneinfo/posix/EST
+#usr/share/zoneinfo/posix/EST5EDT
+#usr/share/zoneinfo/posix/Egypt
+#usr/share/zoneinfo/posix/Eire
+#usr/share/zoneinfo/posix/Etc
+#usr/share/zoneinfo/posix/Etc/GMT
+#usr/share/zoneinfo/posix/Etc/GMT+0
+#usr/share/zoneinfo/posix/Etc/GMT+1
+#usr/share/zoneinfo/posix/Etc/GMT+10
+#usr/share/zoneinfo/posix/Etc/GMT+11
+#usr/share/zoneinfo/posix/Etc/GMT+12
+#usr/share/zoneinfo/posix/Etc/GMT+2
+#usr/share/zoneinfo/posix/Etc/GMT+3
+#usr/share/zoneinfo/posix/Etc/GMT+4
+#usr/share/zoneinfo/posix/Etc/GMT+5
+#usr/share/zoneinfo/posix/Etc/GMT+6
+#usr/share/zoneinfo/posix/Etc/GMT+7
+#usr/share/zoneinfo/posix/Etc/GMT+8
+#usr/share/zoneinfo/posix/Etc/GMT+9
+#usr/share/zoneinfo/posix/Etc/GMT-0
+#usr/share/zoneinfo/posix/Etc/GMT-1
+#usr/share/zoneinfo/posix/Etc/GMT-10
+#usr/share/zoneinfo/posix/Etc/GMT-11
+#usr/share/zoneinfo/posix/Etc/GMT-12
+#usr/share/zoneinfo/posix/Etc/GMT-13
+#usr/share/zoneinfo/posix/Etc/GMT-14
+#usr/share/zoneinfo/posix/Etc/GMT-2
+#usr/share/zoneinfo/posix/Etc/GMT-3
+#usr/share/zoneinfo/posix/Etc/GMT-4
+#usr/share/zoneinfo/posix/Etc/GMT-5
+#usr/share/zoneinfo/posix/Etc/GMT-6
+#usr/share/zoneinfo/posix/Etc/GMT-7
+#usr/share/zoneinfo/posix/Etc/GMT-8
+#usr/share/zoneinfo/posix/Etc/GMT-9
+#usr/share/zoneinfo/posix/Etc/GMT0
+#usr/share/zoneinfo/posix/Etc/Greenwich
+#usr/share/zoneinfo/posix/Etc/UCT
+#usr/share/zoneinfo/posix/Etc/UTC
+#usr/share/zoneinfo/posix/Etc/Universal
+#usr/share/zoneinfo/posix/Etc/Zulu
+#usr/share/zoneinfo/posix/Europe
+#usr/share/zoneinfo/posix/Europe/Amsterdam
+#usr/share/zoneinfo/posix/Europe/Andorra
+#usr/share/zoneinfo/posix/Europe/Athens
+#usr/share/zoneinfo/posix/Europe/Belfast
+#usr/share/zoneinfo/posix/Europe/Belgrade
+#usr/share/zoneinfo/posix/Europe/Berlin
+#usr/share/zoneinfo/posix/Europe/Bratislava
+#usr/share/zoneinfo/posix/Europe/Brussels
+#usr/share/zoneinfo/posix/Europe/Bucharest
+#usr/share/zoneinfo/posix/Europe/Budapest
+#usr/share/zoneinfo/posix/Europe/Chisinau
+#usr/share/zoneinfo/posix/Europe/Copenhagen
+#usr/share/zoneinfo/posix/Europe/Dublin
+#usr/share/zoneinfo/posix/Europe/Gibraltar
+#usr/share/zoneinfo/posix/Europe/Guernsey
+#usr/share/zoneinfo/posix/Europe/Helsinki
+#usr/share/zoneinfo/posix/Europe/Isle_of_Man
+#usr/share/zoneinfo/posix/Europe/Istanbul
+#usr/share/zoneinfo/posix/Europe/Jersey
+#usr/share/zoneinfo/posix/Europe/Kaliningrad
+#usr/share/zoneinfo/posix/Europe/Kiev
+#usr/share/zoneinfo/posix/Europe/Lisbon
+#usr/share/zoneinfo/posix/Europe/Ljubljana
+#usr/share/zoneinfo/posix/Europe/London
+#usr/share/zoneinfo/posix/Europe/Luxembourg
+#usr/share/zoneinfo/posix/Europe/Madrid
+#usr/share/zoneinfo/posix/Europe/Malta
+#usr/share/zoneinfo/posix/Europe/Mariehamn
+#usr/share/zoneinfo/posix/Europe/Minsk
+#usr/share/zoneinfo/posix/Europe/Monaco
+#usr/share/zoneinfo/posix/Europe/Moscow
+#usr/share/zoneinfo/posix/Europe/Nicosia
+#usr/share/zoneinfo/posix/Europe/Oslo
+#usr/share/zoneinfo/posix/Europe/Paris
+#usr/share/zoneinfo/posix/Europe/Podgorica
+#usr/share/zoneinfo/posix/Europe/Prague
+#usr/share/zoneinfo/posix/Europe/Riga
+#usr/share/zoneinfo/posix/Europe/Rome
+#usr/share/zoneinfo/posix/Europe/Samara
+#usr/share/zoneinfo/posix/Europe/San_Marino
+#usr/share/zoneinfo/posix/Europe/Sarajevo
+#usr/share/zoneinfo/posix/Europe/Simferopol
+#usr/share/zoneinfo/posix/Europe/Skopje
+#usr/share/zoneinfo/posix/Europe/Sofia
+#usr/share/zoneinfo/posix/Europe/Stockholm
+#usr/share/zoneinfo/posix/Europe/Tallinn
+#usr/share/zoneinfo/posix/Europe/Tirane
+#usr/share/zoneinfo/posix/Europe/Tiraspol
+#usr/share/zoneinfo/posix/Europe/Uzhgorod
+#usr/share/zoneinfo/posix/Europe/Vaduz
+#usr/share/zoneinfo/posix/Europe/Vatican
+#usr/share/zoneinfo/posix/Europe/Vienna
+#usr/share/zoneinfo/posix/Europe/Vilnius
+#usr/share/zoneinfo/posix/Europe/Volgograd
+#usr/share/zoneinfo/posix/Europe/Warsaw
+#usr/share/zoneinfo/posix/Europe/Zagreb
+#usr/share/zoneinfo/posix/Europe/Zaporozhye
+#usr/share/zoneinfo/posix/Europe/Zurich
+#usr/share/zoneinfo/posix/Factory
+#usr/share/zoneinfo/posix/GB
+#usr/share/zoneinfo/posix/GB-Eire
+#usr/share/zoneinfo/posix/GMT
+#usr/share/zoneinfo/posix/GMT+0
+#usr/share/zoneinfo/posix/GMT-0
+#usr/share/zoneinfo/posix/GMT0
+#usr/share/zoneinfo/posix/Greenwich
+#usr/share/zoneinfo/posix/HST
+#usr/share/zoneinfo/posix/Hongkong
+#usr/share/zoneinfo/posix/Iceland
+#usr/share/zoneinfo/posix/Indian
+#usr/share/zoneinfo/posix/Indian/Antananarivo
+#usr/share/zoneinfo/posix/Indian/Chagos
+#usr/share/zoneinfo/posix/Indian/Christmas
+#usr/share/zoneinfo/posix/Indian/Cocos
+#usr/share/zoneinfo/posix/Indian/Comoro
+#usr/share/zoneinfo/posix/Indian/Kerguelen
+#usr/share/zoneinfo/posix/Indian/Mahe
+#usr/share/zoneinfo/posix/Indian/Maldives
+#usr/share/zoneinfo/posix/Indian/Mauritius
+#usr/share/zoneinfo/posix/Indian/Mayotte
+#usr/share/zoneinfo/posix/Indian/Reunion
+#usr/share/zoneinfo/posix/Iran
+#usr/share/zoneinfo/posix/Israel
+#usr/share/zoneinfo/posix/Jamaica
+#usr/share/zoneinfo/posix/Japan
+#usr/share/zoneinfo/posix/Kwajalein
+#usr/share/zoneinfo/posix/Libya
+#usr/share/zoneinfo/posix/MET
+#usr/share/zoneinfo/posix/MST
+#usr/share/zoneinfo/posix/MST7MDT
+#usr/share/zoneinfo/posix/Mexico
+#usr/share/zoneinfo/posix/Mexico/BajaNorte
+#usr/share/zoneinfo/posix/Mexico/BajaSur
+#usr/share/zoneinfo/posix/Mexico/General
+#usr/share/zoneinfo/posix/Mideast
+#usr/share/zoneinfo/posix/Mideast/Riyadh87
+#usr/share/zoneinfo/posix/Mideast/Riyadh88
+#usr/share/zoneinfo/posix/Mideast/Riyadh89
+#usr/share/zoneinfo/posix/NZ
+#usr/share/zoneinfo/posix/NZ-CHAT
+#usr/share/zoneinfo/posix/Navajo
+#usr/share/zoneinfo/posix/PRC
+#usr/share/zoneinfo/posix/PST8PDT
+#usr/share/zoneinfo/posix/Pacific
+#usr/share/zoneinfo/posix/Pacific/Apia
+#usr/share/zoneinfo/posix/Pacific/Auckland
+#usr/share/zoneinfo/posix/Pacific/Chatham
+#usr/share/zoneinfo/posix/Pacific/Easter
+#usr/share/zoneinfo/posix/Pacific/Efate
+#usr/share/zoneinfo/posix/Pacific/Enderbury
+#usr/share/zoneinfo/posix/Pacific/Fakaofo
+#usr/share/zoneinfo/posix/Pacific/Fiji
+#usr/share/zoneinfo/posix/Pacific/Funafuti
+#usr/share/zoneinfo/posix/Pacific/Galapagos
+#usr/share/zoneinfo/posix/Pacific/Gambier
+#usr/share/zoneinfo/posix/Pacific/Guadalcanal
+#usr/share/zoneinfo/posix/Pacific/Guam
+#usr/share/zoneinfo/posix/Pacific/Honolulu
+#usr/share/zoneinfo/posix/Pacific/Johnston
+#usr/share/zoneinfo/posix/Pacific/Kiritimati
+#usr/share/zoneinfo/posix/Pacific/Kosrae
+#usr/share/zoneinfo/posix/Pacific/Kwajalein
+#usr/share/zoneinfo/posix/Pacific/Majuro
+#usr/share/zoneinfo/posix/Pacific/Marquesas
+#usr/share/zoneinfo/posix/Pacific/Midway
+#usr/share/zoneinfo/posix/Pacific/Nauru
+#usr/share/zoneinfo/posix/Pacific/Niue
+#usr/share/zoneinfo/posix/Pacific/Norfolk
+#usr/share/zoneinfo/posix/Pacific/Noumea
+#usr/share/zoneinfo/posix/Pacific/Pago_Pago
+#usr/share/zoneinfo/posix/Pacific/Palau
+#usr/share/zoneinfo/posix/Pacific/Pitcairn
+#usr/share/zoneinfo/posix/Pacific/Ponape
+#usr/share/zoneinfo/posix/Pacific/Port_Moresby
+#usr/share/zoneinfo/posix/Pacific/Rarotonga
+#usr/share/zoneinfo/posix/Pacific/Saipan
+#usr/share/zoneinfo/posix/Pacific/Samoa
+#usr/share/zoneinfo/posix/Pacific/Tahiti
+#usr/share/zoneinfo/posix/Pacific/Tarawa
+#usr/share/zoneinfo/posix/Pacific/Tongatapu
+#usr/share/zoneinfo/posix/Pacific/Truk
+#usr/share/zoneinfo/posix/Pacific/Wake
+#usr/share/zoneinfo/posix/Pacific/Wallis
+#usr/share/zoneinfo/posix/Pacific/Yap
+#usr/share/zoneinfo/posix/Poland
+#usr/share/zoneinfo/posix/Portugal
+#usr/share/zoneinfo/posix/ROC
+#usr/share/zoneinfo/posix/ROK
+#usr/share/zoneinfo/posix/Singapore
+#usr/share/zoneinfo/posix/Turkey
+#usr/share/zoneinfo/posix/UCT
+#usr/share/zoneinfo/posix/US
+#usr/share/zoneinfo/posix/US/Alaska
+#usr/share/zoneinfo/posix/US/Aleutian
+#usr/share/zoneinfo/posix/US/Arizona
+#usr/share/zoneinfo/posix/US/Central
+#usr/share/zoneinfo/posix/US/East-Indiana
+#usr/share/zoneinfo/posix/US/Eastern
+#usr/share/zoneinfo/posix/US/Hawaii
+#usr/share/zoneinfo/posix/US/Indiana-Starke
+#usr/share/zoneinfo/posix/US/Michigan
+#usr/share/zoneinfo/posix/US/Mountain
+#usr/share/zoneinfo/posix/US/Pacific
+#usr/share/zoneinfo/posix/US/Samoa
+#usr/share/zoneinfo/posix/UTC
+#usr/share/zoneinfo/posix/Universal
+#usr/share/zoneinfo/posix/W-SU
+#usr/share/zoneinfo/posix/WET
+#usr/share/zoneinfo/posix/Zulu
+#usr/share/zoneinfo/posixrules
+#usr/share/zoneinfo/right
+#usr/share/zoneinfo/right/Africa
+#usr/share/zoneinfo/right/Africa/Abidjan
+#usr/share/zoneinfo/right/Africa/Accra
+#usr/share/zoneinfo/right/Africa/Addis_Ababa
+#usr/share/zoneinfo/right/Africa/Algiers
+#usr/share/zoneinfo/right/Africa/Asmara
+#usr/share/zoneinfo/right/Africa/Asmera
+#usr/share/zoneinfo/right/Africa/Bamako
+#usr/share/zoneinfo/right/Africa/Bangui
+#usr/share/zoneinfo/right/Africa/Banjul
+#usr/share/zoneinfo/right/Africa/Bissau
+#usr/share/zoneinfo/right/Africa/Blantyre
+#usr/share/zoneinfo/right/Africa/Brazzaville
+#usr/share/zoneinfo/right/Africa/Bujumbura
+#usr/share/zoneinfo/right/Africa/Cairo
+#usr/share/zoneinfo/right/Africa/Casablanca
+#usr/share/zoneinfo/right/Africa/Ceuta
+#usr/share/zoneinfo/right/Africa/Conakry
+#usr/share/zoneinfo/right/Africa/Dakar
+#usr/share/zoneinfo/right/Africa/Dar_es_Salaam
+#usr/share/zoneinfo/right/Africa/Djibouti
+#usr/share/zoneinfo/right/Africa/Douala
+#usr/share/zoneinfo/right/Africa/El_Aaiun
+#usr/share/zoneinfo/right/Africa/Freetown
+#usr/share/zoneinfo/right/Africa/Gaborone
+#usr/share/zoneinfo/right/Africa/Harare
+#usr/share/zoneinfo/right/Africa/Johannesburg
+#usr/share/zoneinfo/right/Africa/Kampala
+#usr/share/zoneinfo/right/Africa/Khartoum
+#usr/share/zoneinfo/right/Africa/Kigali
+#usr/share/zoneinfo/right/Africa/Kinshasa
+#usr/share/zoneinfo/right/Africa/Lagos
+#usr/share/zoneinfo/right/Africa/Libreville
+#usr/share/zoneinfo/right/Africa/Lome
+#usr/share/zoneinfo/right/Africa/Luanda
+#usr/share/zoneinfo/right/Africa/Lubumbashi
+#usr/share/zoneinfo/right/Africa/Lusaka
+#usr/share/zoneinfo/right/Africa/Malabo
+#usr/share/zoneinfo/right/Africa/Maputo
+#usr/share/zoneinfo/right/Africa/Maseru
+#usr/share/zoneinfo/right/Africa/Mbabane
+#usr/share/zoneinfo/right/Africa/Mogadishu
+#usr/share/zoneinfo/right/Africa/Monrovia
+#usr/share/zoneinfo/right/Africa/Nairobi
+#usr/share/zoneinfo/right/Africa/Ndjamena
+#usr/share/zoneinfo/right/Africa/Niamey
+#usr/share/zoneinfo/right/Africa/Nouakchott
+#usr/share/zoneinfo/right/Africa/Ouagadougou
+#usr/share/zoneinfo/right/Africa/Porto-Novo
+#usr/share/zoneinfo/right/Africa/Sao_Tome
+#usr/share/zoneinfo/right/Africa/Timbuktu
+#usr/share/zoneinfo/right/Africa/Tripoli
+#usr/share/zoneinfo/right/Africa/Tunis
+#usr/share/zoneinfo/right/Africa/Windhoek
+#usr/share/zoneinfo/right/America
+#usr/share/zoneinfo/right/America/Adak
+#usr/share/zoneinfo/right/America/Anchorage
+#usr/share/zoneinfo/right/America/Anguilla
+#usr/share/zoneinfo/right/America/Antigua
+#usr/share/zoneinfo/right/America/Araguaina
+#usr/share/zoneinfo/right/America/Argentina
+#usr/share/zoneinfo/right/America/Argentina/Buenos_Aires
+#usr/share/zoneinfo/right/America/Argentina/Catamarca
+#usr/share/zoneinfo/right/America/Argentina/ComodRivadavia
+#usr/share/zoneinfo/right/America/Argentina/Cordoba
+#usr/share/zoneinfo/right/America/Argentina/Jujuy
+#usr/share/zoneinfo/right/America/Argentina/La_Rioja
+#usr/share/zoneinfo/right/America/Argentina/Mendoza
+#usr/share/zoneinfo/right/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/right/America/Argentina/Salta
+#usr/share/zoneinfo/right/America/Argentina/San_Juan
+#usr/share/zoneinfo/right/America/Argentina/San_Luis
+#usr/share/zoneinfo/right/America/Argentina/Tucuman
+#usr/share/zoneinfo/right/America/Argentina/Ushuaia
+#usr/share/zoneinfo/right/America/Aruba
+#usr/share/zoneinfo/right/America/Asuncion
+#usr/share/zoneinfo/right/America/Atikokan
+#usr/share/zoneinfo/right/America/Atka
+#usr/share/zoneinfo/right/America/Bahia
+#usr/share/zoneinfo/right/America/Barbados
+#usr/share/zoneinfo/right/America/Belem
+#usr/share/zoneinfo/right/America/Belize
+#usr/share/zoneinfo/right/America/Blanc-Sablon
+#usr/share/zoneinfo/right/America/Boa_Vista
+#usr/share/zoneinfo/right/America/Bogota
+#usr/share/zoneinfo/right/America/Boise
+#usr/share/zoneinfo/right/America/Buenos_Aires
+#usr/share/zoneinfo/right/America/Cambridge_Bay
+#usr/share/zoneinfo/right/America/Campo_Grande
+#usr/share/zoneinfo/right/America/Cancun
+#usr/share/zoneinfo/right/America/Caracas
+#usr/share/zoneinfo/right/America/Catamarca
+#usr/share/zoneinfo/right/America/Cayenne
+#usr/share/zoneinfo/right/America/Cayman
+#usr/share/zoneinfo/right/America/Chicago
+#usr/share/zoneinfo/right/America/Chihuahua
+#usr/share/zoneinfo/right/America/Coral_Harbour
+#usr/share/zoneinfo/right/America/Cordoba
+#usr/share/zoneinfo/right/America/Costa_Rica
+#usr/share/zoneinfo/right/America/Cuiaba
+#usr/share/zoneinfo/right/America/Curacao
+#usr/share/zoneinfo/right/America/Danmarkshavn
+#usr/share/zoneinfo/right/America/Dawson
+#usr/share/zoneinfo/right/America/Dawson_Creek
+#usr/share/zoneinfo/right/America/Denver
+#usr/share/zoneinfo/right/America/Detroit
+#usr/share/zoneinfo/right/America/Dominica
+#usr/share/zoneinfo/right/America/Edmonton
+#usr/share/zoneinfo/right/America/Eirunepe
+#usr/share/zoneinfo/right/America/El_Salvador
+#usr/share/zoneinfo/right/America/Ensenada
+#usr/share/zoneinfo/right/America/Fort_Wayne
+#usr/share/zoneinfo/right/America/Fortaleza
+#usr/share/zoneinfo/right/America/Glace_Bay
+#usr/share/zoneinfo/right/America/Godthab
+#usr/share/zoneinfo/right/America/Goose_Bay
+#usr/share/zoneinfo/right/America/Grand_Turk
+#usr/share/zoneinfo/right/America/Grenada
+#usr/share/zoneinfo/right/America/Guadeloupe
+#usr/share/zoneinfo/right/America/Guatemala
+#usr/share/zoneinfo/right/America/Guayaquil
+#usr/share/zoneinfo/right/America/Guyana
+#usr/share/zoneinfo/right/America/Halifax
+#usr/share/zoneinfo/right/America/Havana
+#usr/share/zoneinfo/right/America/Hermosillo
+#usr/share/zoneinfo/right/America/Indiana
+#usr/share/zoneinfo/right/America/Indiana/Indianapolis
+#usr/share/zoneinfo/right/America/Indiana/Knox
+#usr/share/zoneinfo/right/America/Indiana/Marengo
+#usr/share/zoneinfo/right/America/Indiana/Petersburg
+#usr/share/zoneinfo/right/America/Indiana/Tell_City
+#usr/share/zoneinfo/right/America/Indiana/Vevay
+#usr/share/zoneinfo/right/America/Indiana/Vincennes
+#usr/share/zoneinfo/right/America/Indiana/Winamac
+#usr/share/zoneinfo/right/America/Indianapolis
+#usr/share/zoneinfo/right/America/Inuvik
+#usr/share/zoneinfo/right/America/Iqaluit
+#usr/share/zoneinfo/right/America/Jamaica
+#usr/share/zoneinfo/right/America/Jujuy
+#usr/share/zoneinfo/right/America/Juneau
+#usr/share/zoneinfo/right/America/Kentucky
+#usr/share/zoneinfo/right/America/Kentucky/Louisville
+#usr/share/zoneinfo/right/America/Kentucky/Monticello
+#usr/share/zoneinfo/right/America/Knox_IN
+#usr/share/zoneinfo/right/America/La_Paz
+#usr/share/zoneinfo/right/America/Lima
+#usr/share/zoneinfo/right/America/Los_Angeles
+#usr/share/zoneinfo/right/America/Louisville
+#usr/share/zoneinfo/right/America/Maceio
+#usr/share/zoneinfo/right/America/Managua
+#usr/share/zoneinfo/right/America/Manaus
+#usr/share/zoneinfo/right/America/Marigot
+#usr/share/zoneinfo/right/America/Martinique
+#usr/share/zoneinfo/right/America/Mazatlan
+#usr/share/zoneinfo/right/America/Mendoza
+#usr/share/zoneinfo/right/America/Menominee
+#usr/share/zoneinfo/right/America/Merida
+#usr/share/zoneinfo/right/America/Mexico_City
+#usr/share/zoneinfo/right/America/Miquelon
+#usr/share/zoneinfo/right/America/Moncton
+#usr/share/zoneinfo/right/America/Monterrey
+#usr/share/zoneinfo/right/America/Montevideo
+#usr/share/zoneinfo/right/America/Montreal
+#usr/share/zoneinfo/right/America/Montserrat
+#usr/share/zoneinfo/right/America/Nassau
+#usr/share/zoneinfo/right/America/New_York
+#usr/share/zoneinfo/right/America/Nipigon
+#usr/share/zoneinfo/right/America/Nome
+#usr/share/zoneinfo/right/America/Noronha
+#usr/share/zoneinfo/right/America/North_Dakota
+#usr/share/zoneinfo/right/America/North_Dakota/Center
+#usr/share/zoneinfo/right/America/North_Dakota/New_Salem
+#usr/share/zoneinfo/right/America/Panama
+#usr/share/zoneinfo/right/America/Pangnirtung
+#usr/share/zoneinfo/right/America/Paramaribo
+#usr/share/zoneinfo/right/America/Phoenix
+#usr/share/zoneinfo/right/America/Port-au-Prince
+#usr/share/zoneinfo/right/America/Port_of_Spain
+#usr/share/zoneinfo/right/America/Porto_Acre
+#usr/share/zoneinfo/right/America/Porto_Velho
+#usr/share/zoneinfo/right/America/Puerto_Rico
+#usr/share/zoneinfo/right/America/Rainy_River
+#usr/share/zoneinfo/right/America/Rankin_Inlet
+#usr/share/zoneinfo/right/America/Recife
+#usr/share/zoneinfo/right/America/Regina
+#usr/share/zoneinfo/right/America/Resolute
+#usr/share/zoneinfo/right/America/Rio_Branco
+#usr/share/zoneinfo/right/America/Rosario
+#usr/share/zoneinfo/right/America/Santarem
+#usr/share/zoneinfo/right/America/Santiago
+#usr/share/zoneinfo/right/America/Santo_Domingo
+#usr/share/zoneinfo/right/America/Sao_Paulo
+#usr/share/zoneinfo/right/America/Scoresbysund
+#usr/share/zoneinfo/right/America/Shiprock
+#usr/share/zoneinfo/right/America/St_Barthelemy
+#usr/share/zoneinfo/right/America/St_Johns
+#usr/share/zoneinfo/right/America/St_Kitts
+#usr/share/zoneinfo/right/America/St_Lucia
+#usr/share/zoneinfo/right/America/St_Thomas
+#usr/share/zoneinfo/right/America/St_Vincent
+#usr/share/zoneinfo/right/America/Swift_Current
+#usr/share/zoneinfo/right/America/Tegucigalpa
+#usr/share/zoneinfo/right/America/Thule
+#usr/share/zoneinfo/right/America/Thunder_Bay
+#usr/share/zoneinfo/right/America/Tijuana
+#usr/share/zoneinfo/right/America/Toronto
+#usr/share/zoneinfo/right/America/Tortola
+#usr/share/zoneinfo/right/America/Vancouver
+#usr/share/zoneinfo/right/America/Virgin
+#usr/share/zoneinfo/right/America/Whitehorse
+#usr/share/zoneinfo/right/America/Winnipeg
+#usr/share/zoneinfo/right/America/Yakutat
+#usr/share/zoneinfo/right/America/Yellowknife
+#usr/share/zoneinfo/right/Antarctica
+#usr/share/zoneinfo/right/Antarctica/Casey
+#usr/share/zoneinfo/right/Antarctica/Davis
+#usr/share/zoneinfo/right/Antarctica/DumontDUrville
+#usr/share/zoneinfo/right/Antarctica/Mawson
+#usr/share/zoneinfo/right/Antarctica/McMurdo
+#usr/share/zoneinfo/right/Antarctica/Palmer
+#usr/share/zoneinfo/right/Antarctica/Rothera
+#usr/share/zoneinfo/right/Antarctica/South_Pole
+#usr/share/zoneinfo/right/Antarctica/Syowa
+#usr/share/zoneinfo/right/Antarctica/Vostok
+#usr/share/zoneinfo/right/Arctic
+#usr/share/zoneinfo/right/Arctic/Longyearbyen
+#usr/share/zoneinfo/right/Asia
+#usr/share/zoneinfo/right/Asia/Aden
+#usr/share/zoneinfo/right/Asia/Almaty
+#usr/share/zoneinfo/right/Asia/Amman
+#usr/share/zoneinfo/right/Asia/Anadyr
+#usr/share/zoneinfo/right/Asia/Aqtau
+#usr/share/zoneinfo/right/Asia/Aqtobe
+#usr/share/zoneinfo/right/Asia/Ashgabat
+#usr/share/zoneinfo/right/Asia/Ashkhabad
+#usr/share/zoneinfo/right/Asia/Baghdad
+#usr/share/zoneinfo/right/Asia/Bahrain
+#usr/share/zoneinfo/right/Asia/Baku
+#usr/share/zoneinfo/right/Asia/Bangkok
+#usr/share/zoneinfo/right/Asia/Beirut
+#usr/share/zoneinfo/right/Asia/Bishkek
+#usr/share/zoneinfo/right/Asia/Brunei
+#usr/share/zoneinfo/right/Asia/Calcutta
+#usr/share/zoneinfo/right/Asia/Choibalsan
+#usr/share/zoneinfo/right/Asia/Chongqing
+#usr/share/zoneinfo/right/Asia/Chungking
+#usr/share/zoneinfo/right/Asia/Colombo
+#usr/share/zoneinfo/right/Asia/Dacca
+#usr/share/zoneinfo/right/Asia/Damascus
+#usr/share/zoneinfo/right/Asia/Dhaka
+#usr/share/zoneinfo/right/Asia/Dili
+#usr/share/zoneinfo/right/Asia/Dubai
+#usr/share/zoneinfo/right/Asia/Dushanbe
+#usr/share/zoneinfo/right/Asia/Gaza
+#usr/share/zoneinfo/right/Asia/Harbin
+#usr/share/zoneinfo/right/Asia/Ho_Chi_Minh
+#usr/share/zoneinfo/right/Asia/Hong_Kong
+#usr/share/zoneinfo/right/Asia/Hovd
+#usr/share/zoneinfo/right/Asia/Irkutsk
+#usr/share/zoneinfo/right/Asia/Istanbul
+#usr/share/zoneinfo/right/Asia/Jakarta
+#usr/share/zoneinfo/right/Asia/Jayapura
+#usr/share/zoneinfo/right/Asia/Jerusalem
+#usr/share/zoneinfo/right/Asia/Kabul
+#usr/share/zoneinfo/right/Asia/Kamchatka
+#usr/share/zoneinfo/right/Asia/Karachi
+#usr/share/zoneinfo/right/Asia/Kashgar
+#usr/share/zoneinfo/right/Asia/Kathmandu
+#usr/share/zoneinfo/right/Asia/Katmandu
+#usr/share/zoneinfo/right/Asia/Kolkata
+#usr/share/zoneinfo/right/Asia/Krasnoyarsk
+#usr/share/zoneinfo/right/Asia/Kuala_Lumpur
+#usr/share/zoneinfo/right/Asia/Kuching
+#usr/share/zoneinfo/right/Asia/Kuwait
+#usr/share/zoneinfo/right/Asia/Macao
+#usr/share/zoneinfo/right/Asia/Macau
+#usr/share/zoneinfo/right/Asia/Magadan
+#usr/share/zoneinfo/right/Asia/Makassar
+#usr/share/zoneinfo/right/Asia/Manila
+#usr/share/zoneinfo/right/Asia/Muscat
+#usr/share/zoneinfo/right/Asia/Nicosia
+#usr/share/zoneinfo/right/Asia/Novosibirsk
+#usr/share/zoneinfo/right/Asia/Omsk
+#usr/share/zoneinfo/right/Asia/Oral
+#usr/share/zoneinfo/right/Asia/Phnom_Penh
+#usr/share/zoneinfo/right/Asia/Pontianak
+#usr/share/zoneinfo/right/Asia/Pyongyang
+#usr/share/zoneinfo/right/Asia/Qatar
+#usr/share/zoneinfo/right/Asia/Qyzylorda
+#usr/share/zoneinfo/right/Asia/Rangoon
+#usr/share/zoneinfo/right/Asia/Riyadh
+#usr/share/zoneinfo/right/Asia/Riyadh87
+#usr/share/zoneinfo/right/Asia/Riyadh88
+#usr/share/zoneinfo/right/Asia/Riyadh89
+#usr/share/zoneinfo/right/Asia/Saigon
+#usr/share/zoneinfo/right/Asia/Sakhalin
+#usr/share/zoneinfo/right/Asia/Samarkand
+#usr/share/zoneinfo/right/Asia/Seoul
+#usr/share/zoneinfo/right/Asia/Shanghai
+#usr/share/zoneinfo/right/Asia/Singapore
+#usr/share/zoneinfo/right/Asia/Taipei
+#usr/share/zoneinfo/right/Asia/Tashkent
+#usr/share/zoneinfo/right/Asia/Tbilisi
+#usr/share/zoneinfo/right/Asia/Tehran
+#usr/share/zoneinfo/right/Asia/Tel_Aviv
+#usr/share/zoneinfo/right/Asia/Thimbu
+#usr/share/zoneinfo/right/Asia/Thimphu
+#usr/share/zoneinfo/right/Asia/Tokyo
+#usr/share/zoneinfo/right/Asia/Ujung_Pandang
+#usr/share/zoneinfo/right/Asia/Ulaanbaatar
+#usr/share/zoneinfo/right/Asia/Ulan_Bator
+#usr/share/zoneinfo/right/Asia/Urumqi
+#usr/share/zoneinfo/right/Asia/Vientiane
+#usr/share/zoneinfo/right/Asia/Vladivostok
+#usr/share/zoneinfo/right/Asia/Yakutsk
+#usr/share/zoneinfo/right/Asia/Yekaterinburg
+#usr/share/zoneinfo/right/Asia/Yerevan
+#usr/share/zoneinfo/right/Atlantic
+#usr/share/zoneinfo/right/Atlantic/Azores
+#usr/share/zoneinfo/right/Atlantic/Bermuda
+#usr/share/zoneinfo/right/Atlantic/Canary
+#usr/share/zoneinfo/right/Atlantic/Cape_Verde
+#usr/share/zoneinfo/right/Atlantic/Faeroe
+#usr/share/zoneinfo/right/Atlantic/Faroe
+#usr/share/zoneinfo/right/Atlantic/Jan_Mayen
+#usr/share/zoneinfo/right/Atlantic/Madeira
+#usr/share/zoneinfo/right/Atlantic/Reykjavik
+#usr/share/zoneinfo/right/Atlantic/South_Georgia
+#usr/share/zoneinfo/right/Atlantic/St_Helena
+#usr/share/zoneinfo/right/Atlantic/Stanley
+#usr/share/zoneinfo/right/Australia
+#usr/share/zoneinfo/right/Australia/ACT
+#usr/share/zoneinfo/right/Australia/Adelaide
+#usr/share/zoneinfo/right/Australia/Brisbane
+#usr/share/zoneinfo/right/Australia/Broken_Hill
+#usr/share/zoneinfo/right/Australia/Canberra
+#usr/share/zoneinfo/right/Australia/Currie
+#usr/share/zoneinfo/right/Australia/Darwin
+#usr/share/zoneinfo/right/Australia/Eucla
+#usr/share/zoneinfo/right/Australia/Hobart
+#usr/share/zoneinfo/right/Australia/LHI
+#usr/share/zoneinfo/right/Australia/Lindeman
+#usr/share/zoneinfo/right/Australia/Lord_Howe
+#usr/share/zoneinfo/right/Australia/Melbourne
+#usr/share/zoneinfo/right/Australia/NSW
+#usr/share/zoneinfo/right/Australia/North
+#usr/share/zoneinfo/right/Australia/Perth
+#usr/share/zoneinfo/right/Australia/Queensland
+#usr/share/zoneinfo/right/Australia/South
+#usr/share/zoneinfo/right/Australia/Sydney
+#usr/share/zoneinfo/right/Australia/Tasmania
+#usr/share/zoneinfo/right/Australia/Victoria
+#usr/share/zoneinfo/right/Australia/West
+#usr/share/zoneinfo/right/Australia/Yancowinna
+#usr/share/zoneinfo/right/Brazil
+#usr/share/zoneinfo/right/Brazil/Acre
+#usr/share/zoneinfo/right/Brazil/DeNoronha
+#usr/share/zoneinfo/right/Brazil/East
+#usr/share/zoneinfo/right/Brazil/West
+#usr/share/zoneinfo/right/CET
+#usr/share/zoneinfo/right/CST6CDT
+#usr/share/zoneinfo/right/Canada
+#usr/share/zoneinfo/right/Canada/Atlantic
+#usr/share/zoneinfo/right/Canada/Central
+#usr/share/zoneinfo/right/Canada/East-Saskatchewan
+#usr/share/zoneinfo/right/Canada/Eastern
+#usr/share/zoneinfo/right/Canada/Mountain
+#usr/share/zoneinfo/right/Canada/Newfoundland
+#usr/share/zoneinfo/right/Canada/Pacific
+#usr/share/zoneinfo/right/Canada/Saskatchewan
+#usr/share/zoneinfo/right/Canada/Yukon
+#usr/share/zoneinfo/right/Chile
+#usr/share/zoneinfo/right/Chile/Continental
+#usr/share/zoneinfo/right/Chile/EasterIsland
+#usr/share/zoneinfo/right/Cuba
+#usr/share/zoneinfo/right/EET
+#usr/share/zoneinfo/right/EST
+#usr/share/zoneinfo/right/EST5EDT
+#usr/share/zoneinfo/right/Egypt
+#usr/share/zoneinfo/right/Eire
+#usr/share/zoneinfo/right/Etc
+#usr/share/zoneinfo/right/Etc/GMT
+#usr/share/zoneinfo/right/Etc/GMT+0
+#usr/share/zoneinfo/right/Etc/GMT+1
+#usr/share/zoneinfo/right/Etc/GMT+10
+#usr/share/zoneinfo/right/Etc/GMT+11
+#usr/share/zoneinfo/right/Etc/GMT+12
+#usr/share/zoneinfo/right/Etc/GMT+2
+#usr/share/zoneinfo/right/Etc/GMT+3
+#usr/share/zoneinfo/right/Etc/GMT+4
+#usr/share/zoneinfo/right/Etc/GMT+5
+#usr/share/zoneinfo/right/Etc/GMT+6
+#usr/share/zoneinfo/right/Etc/GMT+7
+#usr/share/zoneinfo/right/Etc/GMT+8
+#usr/share/zoneinfo/right/Etc/GMT+9
+#usr/share/zoneinfo/right/Etc/GMT-0
+#usr/share/zoneinfo/right/Etc/GMT-1
+#usr/share/zoneinfo/right/Etc/GMT-10
+#usr/share/zoneinfo/right/Etc/GMT-11
+#usr/share/zoneinfo/right/Etc/GMT-12
+#usr/share/zoneinfo/right/Etc/GMT-13
+#usr/share/zoneinfo/right/Etc/GMT-14
+#usr/share/zoneinfo/right/Etc/GMT-2
+#usr/share/zoneinfo/right/Etc/GMT-3
+#usr/share/zoneinfo/right/Etc/GMT-4
+#usr/share/zoneinfo/right/Etc/GMT-5
+#usr/share/zoneinfo/right/Etc/GMT-6
+#usr/share/zoneinfo/right/Etc/GMT-7
+#usr/share/zoneinfo/right/Etc/GMT-8
+#usr/share/zoneinfo/right/Etc/GMT-9
+#usr/share/zoneinfo/right/Etc/GMT0
+#usr/share/zoneinfo/right/Etc/Greenwich
+#usr/share/zoneinfo/right/Etc/UCT
+#usr/share/zoneinfo/right/Etc/UTC
+#usr/share/zoneinfo/right/Etc/Universal
+#usr/share/zoneinfo/right/Etc/Zulu
+#usr/share/zoneinfo/right/Europe
+#usr/share/zoneinfo/right/Europe/Amsterdam
+#usr/share/zoneinfo/right/Europe/Andorra
+#usr/share/zoneinfo/right/Europe/Athens
+#usr/share/zoneinfo/right/Europe/Belfast
+#usr/share/zoneinfo/right/Europe/Belgrade
+#usr/share/zoneinfo/right/Europe/Berlin
+#usr/share/zoneinfo/right/Europe/Bratislava
+#usr/share/zoneinfo/right/Europe/Brussels
+#usr/share/zoneinfo/right/Europe/Bucharest
+#usr/share/zoneinfo/right/Europe/Budapest
+#usr/share/zoneinfo/right/Europe/Chisinau
+#usr/share/zoneinfo/right/Europe/Copenhagen
+#usr/share/zoneinfo/right/Europe/Dublin
+#usr/share/zoneinfo/right/Europe/Gibraltar
+#usr/share/zoneinfo/right/Europe/Guernsey
+#usr/share/zoneinfo/right/Europe/Helsinki
+#usr/share/zoneinfo/right/Europe/Isle_of_Man
+#usr/share/zoneinfo/right/Europe/Istanbul
+#usr/share/zoneinfo/right/Europe/Jersey
+#usr/share/zoneinfo/right/Europe/Kaliningrad
+#usr/share/zoneinfo/right/Europe/Kiev
+#usr/share/zoneinfo/right/Europe/Lisbon
+#usr/share/zoneinfo/right/Europe/Ljubljana
+#usr/share/zoneinfo/right/Europe/London
+#usr/share/zoneinfo/right/Europe/Luxembourg
+#usr/share/zoneinfo/right/Europe/Madrid
+#usr/share/zoneinfo/right/Europe/Malta
+#usr/share/zoneinfo/right/Europe/Mariehamn
+#usr/share/zoneinfo/right/Europe/Minsk
+#usr/share/zoneinfo/right/Europe/Monaco
+#usr/share/zoneinfo/right/Europe/Moscow
+#usr/share/zoneinfo/right/Europe/Nicosia
+#usr/share/zoneinfo/right/Europe/Oslo
+#usr/share/zoneinfo/right/Europe/Paris
+#usr/share/zoneinfo/right/Europe/Podgorica
+#usr/share/zoneinfo/right/Europe/Prague
+#usr/share/zoneinfo/right/Europe/Riga
+#usr/share/zoneinfo/right/Europe/Rome
+#usr/share/zoneinfo/right/Europe/Samara
+#usr/share/zoneinfo/right/Europe/San_Marino
+#usr/share/zoneinfo/right/Europe/Sarajevo
+#usr/share/zoneinfo/right/Europe/Simferopol
+#usr/share/zoneinfo/right/Europe/Skopje
+#usr/share/zoneinfo/right/Europe/Sofia
+#usr/share/zoneinfo/right/Europe/Stockholm
+#usr/share/zoneinfo/right/Europe/Tallinn
+#usr/share/zoneinfo/right/Europe/Tirane
+#usr/share/zoneinfo/right/Europe/Tiraspol
+#usr/share/zoneinfo/right/Europe/Uzhgorod
+#usr/share/zoneinfo/right/Europe/Vaduz
+#usr/share/zoneinfo/right/Europe/Vatican
+#usr/share/zoneinfo/right/Europe/Vienna
+#usr/share/zoneinfo/right/Europe/Vilnius
+#usr/share/zoneinfo/right/Europe/Volgograd
+#usr/share/zoneinfo/right/Europe/Warsaw
+#usr/share/zoneinfo/right/Europe/Zagreb
+#usr/share/zoneinfo/right/Europe/Zaporozhye
+#usr/share/zoneinfo/right/Europe/Zurich
+#usr/share/zoneinfo/right/Factory
+#usr/share/zoneinfo/right/GB
+#usr/share/zoneinfo/right/GB-Eire
+#usr/share/zoneinfo/right/GMT
+#usr/share/zoneinfo/right/GMT+0
+#usr/share/zoneinfo/right/GMT-0
+#usr/share/zoneinfo/right/GMT0
+#usr/share/zoneinfo/right/Greenwich
+#usr/share/zoneinfo/right/HST
+#usr/share/zoneinfo/right/Hongkong
+#usr/share/zoneinfo/right/Iceland
+#usr/share/zoneinfo/right/Indian
+#usr/share/zoneinfo/right/Indian/Antananarivo
+#usr/share/zoneinfo/right/Indian/Chagos
+#usr/share/zoneinfo/right/Indian/Christmas
+#usr/share/zoneinfo/right/Indian/Cocos
+#usr/share/zoneinfo/right/Indian/Comoro
+#usr/share/zoneinfo/right/Indian/Kerguelen
+#usr/share/zoneinfo/right/Indian/Mahe
+#usr/share/zoneinfo/right/Indian/Maldives
+#usr/share/zoneinfo/right/Indian/Mauritius
+#usr/share/zoneinfo/right/Indian/Mayotte
+#usr/share/zoneinfo/right/Indian/Reunion
+#usr/share/zoneinfo/right/Iran
+#usr/share/zoneinfo/right/Israel
+#usr/share/zoneinfo/right/Jamaica
+#usr/share/zoneinfo/right/Japan
+#usr/share/zoneinfo/right/Kwajalein
+#usr/share/zoneinfo/right/Libya
+#usr/share/zoneinfo/right/MET
+#usr/share/zoneinfo/right/MST
+#usr/share/zoneinfo/right/MST7MDT
+#usr/share/zoneinfo/right/Mexico
+#usr/share/zoneinfo/right/Mexico/BajaNorte
+#usr/share/zoneinfo/right/Mexico/BajaSur
+#usr/share/zoneinfo/right/Mexico/General
+#usr/share/zoneinfo/right/Mideast
+#usr/share/zoneinfo/right/Mideast/Riyadh87
+#usr/share/zoneinfo/right/Mideast/Riyadh88
+#usr/share/zoneinfo/right/Mideast/Riyadh89
+#usr/share/zoneinfo/right/NZ
+#usr/share/zoneinfo/right/NZ-CHAT
+#usr/share/zoneinfo/right/Navajo
+#usr/share/zoneinfo/right/PRC
+#usr/share/zoneinfo/right/PST8PDT
+#usr/share/zoneinfo/right/Pacific
+#usr/share/zoneinfo/right/Pacific/Apia
+#usr/share/zoneinfo/right/Pacific/Auckland
+#usr/share/zoneinfo/right/Pacific/Chatham
+#usr/share/zoneinfo/right/Pacific/Easter
+#usr/share/zoneinfo/right/Pacific/Efate
+#usr/share/zoneinfo/right/Pacific/Enderbury
+#usr/share/zoneinfo/right/Pacific/Fakaofo
+#usr/share/zoneinfo/right/Pacific/Fiji
+#usr/share/zoneinfo/right/Pacific/Funafuti
+#usr/share/zoneinfo/right/Pacific/Galapagos
+#usr/share/zoneinfo/right/Pacific/Gambier
+#usr/share/zoneinfo/right/Pacific/Guadalcanal
+#usr/share/zoneinfo/right/Pacific/Guam
+#usr/share/zoneinfo/right/Pacific/Honolulu
+#usr/share/zoneinfo/right/Pacific/Johnston
+#usr/share/zoneinfo/right/Pacific/Kiritimati
+#usr/share/zoneinfo/right/Pacific/Kosrae
+#usr/share/zoneinfo/right/Pacific/Kwajalein
+#usr/share/zoneinfo/right/Pacific/Majuro
+#usr/share/zoneinfo/right/Pacific/Marquesas
+#usr/share/zoneinfo/right/Pacific/Midway
+#usr/share/zoneinfo/right/Pacific/Nauru
+#usr/share/zoneinfo/right/Pacific/Niue
+#usr/share/zoneinfo/right/Pacific/Norfolk
+#usr/share/zoneinfo/right/Pacific/Noumea
+#usr/share/zoneinfo/right/Pacific/Pago_Pago
+#usr/share/zoneinfo/right/Pacific/Palau
+#usr/share/zoneinfo/right/Pacific/Pitcairn
+#usr/share/zoneinfo/right/Pacific/Ponape
+#usr/share/zoneinfo/right/Pacific/Port_Moresby
+#usr/share/zoneinfo/right/Pacific/Rarotonga
+#usr/share/zoneinfo/right/Pacific/Saipan
+#usr/share/zoneinfo/right/Pacific/Samoa
+#usr/share/zoneinfo/right/Pacific/Tahiti
+#usr/share/zoneinfo/right/Pacific/Tarawa
+#usr/share/zoneinfo/right/Pacific/Tongatapu
+#usr/share/zoneinfo/right/Pacific/Truk
+#usr/share/zoneinfo/right/Pacific/Wake
+#usr/share/zoneinfo/right/Pacific/Wallis
+#usr/share/zoneinfo/right/Pacific/Yap
+#usr/share/zoneinfo/right/Poland
+#usr/share/zoneinfo/right/Portugal
+#usr/share/zoneinfo/right/ROC
+#usr/share/zoneinfo/right/ROK
+#usr/share/zoneinfo/right/Singapore
+#usr/share/zoneinfo/right/Turkey
+#usr/share/zoneinfo/right/UCT
+#usr/share/zoneinfo/right/US
+#usr/share/zoneinfo/right/US/Alaska
+#usr/share/zoneinfo/right/US/Aleutian
+#usr/share/zoneinfo/right/US/Arizona
+#usr/share/zoneinfo/right/US/Central
+#usr/share/zoneinfo/right/US/East-Indiana
+#usr/share/zoneinfo/right/US/Eastern
+#usr/share/zoneinfo/right/US/Hawaii
+#usr/share/zoneinfo/right/US/Indiana-Starke
+#usr/share/zoneinfo/right/US/Michigan
+#usr/share/zoneinfo/right/US/Mountain
+#usr/share/zoneinfo/right/US/Pacific
+#usr/share/zoneinfo/right/US/Samoa
+#usr/share/zoneinfo/right/UTC
+#usr/share/zoneinfo/right/Universal
+#usr/share/zoneinfo/right/W-SU
+#usr/share/zoneinfo/right/WET
+#usr/share/zoneinfo/right/Zulu
 #usr/share/zoneinfo/zone.tab
+#var/cache/ldconfig
+#var/cache/ldconfig/aux-cache
diff --git a/config/rootfiles/common/armv5tel/linux-omap b/config/rootfiles/common/armv5tel/linux-omap
new file mode 100644 (file)
index 0000000..9e127b6
--- /dev/null
@@ -0,0 +1,5 @@
+boot/uInit-ipfire-omap
+boot/uImage-ipfire-omap
+boot/System.map-KVER-ipfire-omap
+boot/config-KVER-ipfire-omap
+lib/modules/KVER-ipfire-omap
diff --git a/config/rootfiles/common/armv5tel/linux-rpi b/config/rootfiles/common/armv5tel/linux-rpi
new file mode 100644 (file)
index 0000000..cbc2af5
--- /dev/null
@@ -0,0 +1,4 @@
+boot/kernel.img
+boot/System.map-KVER-ipfire-rpi
+boot/config-KVER-ipfire-rpi
+lib/modules/KVER-ipfire-rpi
diff --git a/config/rootfiles/common/armv5tel/linux-versatile b/config/rootfiles/common/armv5tel/linux-versatile
deleted file mode 100644 (file)
index 8562f2e..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-boot/System.map-KVER-ipfire-versatile
-boot/config-KVER-ipfire-versatile
-boot/vmlinuz-KVER-ipfire-versatile
-boot/ipfirerd-KVER-versatile.img
-lib/modules/KVER-ipfire-versatile
diff --git a/config/rootfiles/common/armv5tel/rpi-firmware b/config/rootfiles/common/armv5tel/rpi-firmware
new file mode 100644 (file)
index 0000000..4b6d128
--- /dev/null
@@ -0,0 +1,11 @@
+#boot/LICENCE.broadcom
+boot/arm128_start.elf
+boot/arm192_start.elf
+boot/arm224_start.elf
+boot/arm240_start.elf
+boot/bootcode.bin
+boot/cmdline.txt
+boot/config.txt
+#boot/first32k.bin
+boot/loader.bin
+boot/start.elf
diff --git a/config/rootfiles/common/armv5tel/u-boot b/config/rootfiles/common/armv5tel/u-boot
new file mode 100644 (file)
index 0000000..759d41d
--- /dev/null
@@ -0,0 +1,6 @@
+#boot/MLO
+#boot/u-boot.bin
+usr/bin/mkimage
+boot/boot.scr
+boot/boot.script
+boot/convert_bootscript
diff --git a/config/rootfiles/common/armv5tel/uboot b/config/rootfiles/common/armv5tel/uboot
deleted file mode 100644 (file)
index 80864b7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-usr/bin/mkimage
diff --git a/config/rootfiles/common/cairo b/config/rootfiles/common/cairo
new file mode 100644 (file)
index 0000000..ca09099
--- /dev/null
@@ -0,0 +1,99 @@
+#usr/bin/cairo-trace
+#usr/include/cairo
+#usr/include/cairo/cairo-deprecated.h
+#usr/include/cairo/cairo-features.h
+#usr/include/cairo/cairo-ft.h
+#usr/include/cairo/cairo-gobject.h
+#usr/include/cairo/cairo-pdf.h
+#usr/include/cairo/cairo-ps.h
+#usr/include/cairo/cairo-script-interpreter.h
+#usr/include/cairo/cairo-svg.h
+#usr/include/cairo/cairo-version.h
+#usr/include/cairo/cairo.h
+#usr/lib/cairo
+#usr/lib/cairo/libcairo-trace.a
+#usr/lib/cairo/libcairo-trace.la
+usr/lib/cairo/libcairo-trace.so
+usr/lib/cairo/libcairo-trace.so.0
+usr/lib/cairo/libcairo-trace.so.0.0.0
+#usr/lib/libcairo-gobject.a
+#usr/lib/libcairo-gobject.la
+usr/lib/libcairo-gobject.so
+usr/lib/libcairo-gobject.so.2
+usr/lib/libcairo-gobject.so.2.11000.2
+#usr/lib/libcairo-script-interpreter.a
+#usr/lib/libcairo-script-interpreter.la
+usr/lib/libcairo-script-interpreter.so
+usr/lib/libcairo-script-interpreter.so.2
+usr/lib/libcairo-script-interpreter.so.2.11000.2
+#usr/lib/libcairo.a
+#usr/lib/libcairo.la
+#usr/lib/libcairo.so
+usr/lib/libcairo.so.2
+usr/lib/libcairo.so.2.11000.2
+#usr/lib/pkgconfig/cairo-fc.pc
+#usr/lib/pkgconfig/cairo-ft.pc
+#usr/lib/pkgconfig/cairo-gobject.pc
+#usr/lib/pkgconfig/cairo-pdf.pc
+#usr/lib/pkgconfig/cairo-png.pc
+#usr/lib/pkgconfig/cairo-ps.pc
+#usr/lib/pkgconfig/cairo-svg.pc
+#usr/lib/pkgconfig/cairo.pc
+#usr/share/gtk-doc/html/cairo
+#usr/share/gtk-doc/html/cairo/bindings-errors.html
+#usr/share/gtk-doc/html/cairo/bindings-fonts.html
+#usr/share/gtk-doc/html/cairo/bindings-memory.html
+#usr/share/gtk-doc/html/cairo/bindings-overloading.html
+#usr/share/gtk-doc/html/cairo/bindings-path.html
+#usr/share/gtk-doc/html/cairo/bindings-patterns.html
+#usr/share/gtk-doc/html/cairo/bindings-return-values.html
+#usr/share/gtk-doc/html/cairo/bindings-streams.html
+#usr/share/gtk-doc/html/cairo/bindings-surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Error-handling.html
+#usr/share/gtk-doc/html/cairo/cairo-FreeType-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Image-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-PDF-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-PNG-Support.html
+#usr/share/gtk-doc/html/cairo/cairo-Paths.html
+#usr/share/gtk-doc/html/cairo/cairo-PostScript-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Quartz-(CGFont)-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Quartz-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Recording-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Regions.html
+#usr/share/gtk-doc/html/cairo/cairo-SVG-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-Transformations.html
+#usr/share/gtk-doc/html/cairo/cairo-Types.html
+#usr/share/gtk-doc/html/cairo/cairo-User-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Version-Information.html
+#usr/share/gtk-doc/html/cairo/cairo-Win32-Fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-Win32-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-XLib-Surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-device-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-font-face-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-font-options-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-matrix-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-pattern-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-scaled-font-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-surface-t.html
+#usr/share/gtk-doc/html/cairo/cairo-cairo-t.html
+#usr/share/gtk-doc/html/cairo/cairo-drawing.html
+#usr/share/gtk-doc/html/cairo/cairo-fonts.html
+#usr/share/gtk-doc/html/cairo/cairo-support.html
+#usr/share/gtk-doc/html/cairo/cairo-surfaces.html
+#usr/share/gtk-doc/html/cairo/cairo-text.html
+#usr/share/gtk-doc/html/cairo/cairo.devhelp
+#usr/share/gtk-doc/html/cairo/cairo.devhelp2
+#usr/share/gtk-doc/html/cairo/home.png
+#usr/share/gtk-doc/html/cairo/index-1.10.html
+#usr/share/gtk-doc/html/cairo/index-1.2.html
+#usr/share/gtk-doc/html/cairo/index-1.4.html
+#usr/share/gtk-doc/html/cairo/index-1.6.html
+#usr/share/gtk-doc/html/cairo/index-1.8.html
+#usr/share/gtk-doc/html/cairo/index-all.html
+#usr/share/gtk-doc/html/cairo/index.html
+#usr/share/gtk-doc/html/cairo/index.sgml
+#usr/share/gtk-doc/html/cairo/language-bindings.html
+#usr/share/gtk-doc/html/cairo/left.png
+#usr/share/gtk-doc/html/cairo/right.png
+#usr/share/gtk-doc/html/cairo/style.css
+#usr/share/gtk-doc/html/cairo/up.png
index 4a1d702c095f375d148241c2512cd46988296d69..81a953958aaea2980823ae55852f0f0ebe9f21a1 100644 (file)
-#usr/local/bin/ccmake
-#usr/local/bin/cmake
-#usr/local/bin/cpack
-#usr/local/bin/ctest
-#usr/local/doc
-#usr/local/doc/cmake-2.6
-#usr/local/doc/cmake-2.6/ccmake.docbook
-#usr/local/doc/cmake-2.6/ccmake.html
-#usr/local/doc/cmake-2.6/ccmake.txt
-#usr/local/doc/cmake-2.6/cmake-commands.html
-#usr/local/doc/cmake-2.6/cmake-commands.txt
-#usr/local/doc/cmake-2.6/cmake-compatcommands.html
-#usr/local/doc/cmake-2.6/cmake-compatcommands.txt
-#usr/local/doc/cmake-2.6/cmake-modules.html
-#usr/local/doc/cmake-2.6/cmake-modules.txt
-#usr/local/doc/cmake-2.6/cmake-policies.html
-#usr/local/doc/cmake-2.6/cmake-policies.txt
-#usr/local/doc/cmake-2.6/cmake-properties.html
-#usr/local/doc/cmake-2.6/cmake-properties.txt
-#usr/local/doc/cmake-2.6/cmake-variables.html
-#usr/local/doc/cmake-2.6/cmake-variables.txt
-#usr/local/doc/cmake-2.6/cmake.docbook
-#usr/local/doc/cmake-2.6/cmake.html
-#usr/local/doc/cmake-2.6/cmake.txt
-#usr/local/doc/cmake-2.6/cpack.docbook
-#usr/local/doc/cmake-2.6/cpack.html
-#usr/local/doc/cmake-2.6/cpack.txt
-#usr/local/doc/cmake-2.6/ctest.docbook
-#usr/local/doc/cmake-2.6/ctest.html
-#usr/local/doc/cmake-2.6/ctest.txt
-#usr/local/man
-#usr/local/man/man1
-#usr/local/man/man1/ccmake.1
-#usr/local/man/man1/cmake.1
-#usr/local/man/man1/cmakecommands.1
-#usr/local/man/man1/cmakecompat.1
-#usr/local/man/man1/cmakemodules.1
-#usr/local/man/man1/cmakepolicies.1
-#usr/local/man/man1/cmakeprops.1
-#usr/local/man/man1/cmakevars.1
-#usr/local/man/man1/cpack.1
-#usr/local/man/man1/ctest.1
-#usr/local/share/cmake-2.6
-#usr/local/share/cmake-2.6/Modules
-#usr/local/share/cmake-2.6/Modules/AddFileDependencies.cmake
-#usr/local/share/cmake-2.6/Modules/BundleUtilities.cmake
-#usr/local/share/cmake-2.6/Modules/CMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeASMInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCCompilerABI.c
-#usr/local/share/cmake-2.6/Modules/CMakeCCompilerId.c.in
-#usr/local/share/cmake-2.6/Modules/CMakeCInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp
-#usr/local/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in
-#usr/local/share/cmake-2.6/Modules/CMakeCXXInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeCompilerABI.h
-#usr/local/share/cmake-2.6/Modules/CMakeConfigurableFile.in
-#usr/local/share/cmake-2.6/Modules/CMakeDependentOption.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindWMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFindXCode.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeForceCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in
-#usr/local/share/cmake-2.6/Modules/CMakeFortranInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeGenericSystem.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeJavaInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakePlatformId.h.in
-#usr/local/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeRCInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeSystem.cmake.in
-#usr/local/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx
-#usr/local/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestGNU.c
-#usr/local/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c
-#usr/local/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake
-#usr/local/share/cmake-2.6/Modules/CPack.DS_Store.in
-#usr/local/share/cmake-2.6/Modules/CPack.Description.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.Info.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in
-#usr/local/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in
-#usr/local/share/cmake-2.6/Modules/CPack.RuntimeScript.in
-#usr/local/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in
-#usr/local/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in
-#usr/local/share/cmake-2.6/Modules/CPack.background.png.in
-#usr/local/share/cmake-2.6/Modules/CPack.cmake
-#usr/local/share/cmake-2.6/Modules/CPack.distribution.dist.in
-#usr/local/share/cmake-2.6/Modules/CPackDeb.cmake
-#usr/local/share/cmake-2.6/Modules/CPackRPM.cmake
-#usr/local/share/cmake-2.6/Modules/CPackZIP.cmake
-#usr/local/share/cmake-2.6/Modules/CTest.cmake
-#usr/local/share/cmake-2.6/Modules/CTestTargets.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCSourceRuns.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake
-#usr/local/share/cmake-2.6/Modules/CheckForPthreads.c
-#usr/local/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.c
-#usr/local/share/cmake-2.6/Modules/CheckFunctionExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.c.in
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake
-#usr/local/share/cmake-2.6/Modules/CheckIncludeFiles.cmake
-#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckLibraryExists.lists.in
-#usr/local/share/cmake-2.6/Modules/CheckSizeOf.cmake
-#usr/local/share/cmake-2.6/Modules/CheckStructHasMember.cmake
-#usr/local/share/cmake-2.6/Modules/CheckSymbolExists.cmake
-#usr/local/share/cmake-2.6/Modules/CheckTypeSize.cmake
-#usr/local/share/cmake-2.6/Modules/CheckTypeSizeC.c.in
-#usr/local/share/cmake-2.6/Modules/CheckVariableExists.c
-#usr/local/share/cmake-2.6/Modules/CheckVariableExists.cmake
-#usr/local/share/cmake-2.6/Modules/Dart.cmake
-#usr/local/share/cmake-2.6/Modules/DartConfiguration.tcl.in
-#usr/local/share/cmake-2.6/Modules/Documentation.cmake
-#usr/local/share/cmake-2.6/Modules/DummyCXXFile.cxx
-#usr/local/share/cmake-2.6/Modules/FLTKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/FeatureSummary.cmake
-#usr/local/share/cmake-2.6/Modules/FindASPELL.cmake
-#usr/local/share/cmake-2.6/Modules/FindAVIFile.cmake
-#usr/local/share/cmake-2.6/Modules/FindBLAS.cmake
-#usr/local/share/cmake-2.6/Modules/FindBZip2.cmake
-#usr/local/share/cmake-2.6/Modules/FindBoost.cmake
-#usr/local/share/cmake-2.6/Modules/FindCABLE.cmake
-#usr/local/share/cmake-2.6/Modules/FindCURL.cmake
-#usr/local/share/cmake-2.6/Modules/FindCVS.cmake
-#usr/local/share/cmake-2.6/Modules/FindCoin3D.cmake
-#usr/local/share/cmake-2.6/Modules/FindCups.cmake
-#usr/local/share/cmake-2.6/Modules/FindCurses.cmake
-#usr/local/share/cmake-2.6/Modules/FindCxxTest.cmake
-#usr/local/share/cmake-2.6/Modules/FindCygwin.cmake
-#usr/local/share/cmake-2.6/Modules/FindDCMTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindDart.cmake
-#usr/local/share/cmake-2.6/Modules/FindDevIL.cmake
-#usr/local/share/cmake-2.6/Modules/FindDoxygen.cmake
-#usr/local/share/cmake-2.6/Modules/FindEXPAT.cmake
-#usr/local/share/cmake-2.6/Modules/FindFLTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindFLTK2.cmake
-#usr/local/share/cmake-2.6/Modules/FindFreetype.cmake
-#usr/local/share/cmake-2.6/Modules/FindGCCXML.cmake
-#usr/local/share/cmake-2.6/Modules/FindGDAL.cmake
-#usr/local/share/cmake-2.6/Modules/FindGIF.cmake
-#usr/local/share/cmake-2.6/Modules/FindGLU.cmake
-#usr/local/share/cmake-2.6/Modules/FindGLUT.cmake
-#usr/local/share/cmake-2.6/Modules/FindGTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindGettext.cmake
-#usr/local/share/cmake-2.6/Modules/FindGnuplot.cmake
-#usr/local/share/cmake-2.6/Modules/FindHSPELL.cmake
-#usr/local/share/cmake-2.6/Modules/FindHTMLHelp.cmake
-#usr/local/share/cmake-2.6/Modules/FindITK.cmake
-#usr/local/share/cmake-2.6/Modules/FindImageMagick.cmake
-#usr/local/share/cmake-2.6/Modules/FindJNI.cmake
-#usr/local/share/cmake-2.6/Modules/FindJPEG.cmake
-#usr/local/share/cmake-2.6/Modules/FindJasper.cmake
-#usr/local/share/cmake-2.6/Modules/FindJava.cmake
-#usr/local/share/cmake-2.6/Modules/FindKDE3.cmake
-#usr/local/share/cmake-2.6/Modules/FindKDE4.cmake
-#usr/local/share/cmake-2.6/Modules/FindLAPACK.cmake
-#usr/local/share/cmake-2.6/Modules/FindLATEX.cmake
-#usr/local/share/cmake-2.6/Modules/FindLibXml2.cmake
-#usr/local/share/cmake-2.6/Modules/FindLibXslt.cmake
-#usr/local/share/cmake-2.6/Modules/FindLua50.cmake
-#usr/local/share/cmake-2.6/Modules/FindLua51.cmake
-#usr/local/share/cmake-2.6/Modules/FindMFC.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPEG.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPEG2.cmake
-#usr/local/share/cmake-2.6/Modules/FindMPI.cmake
-#usr/local/share/cmake-2.6/Modules/FindMatlab.cmake
-#usr/local/share/cmake-2.6/Modules/FindMotif.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenAL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenGL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenMP.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenSSL.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake
-#usr/local/share/cmake-2.6/Modules/FindOpenThreads.cmake
-#usr/local/share/cmake-2.6/Modules/FindPHP4.cmake
-#usr/local/share/cmake-2.6/Modules/FindPNG.cmake
-#usr/local/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake
-#usr/local/share/cmake-2.6/Modules/FindPackageMessage.cmake
-#usr/local/share/cmake-2.6/Modules/FindPerl.cmake
-#usr/local/share/cmake-2.6/Modules/FindPerlLibs.cmake
-#usr/local/share/cmake-2.6/Modules/FindPhysFS.cmake
-#usr/local/share/cmake-2.6/Modules/FindPike.cmake
-#usr/local/share/cmake-2.6/Modules/FindPkgConfig.cmake
-#usr/local/share/cmake-2.6/Modules/FindProducer.cmake
-#usr/local/share/cmake-2.6/Modules/FindPythonInterp.cmake
-#usr/local/share/cmake-2.6/Modules/FindPythonLibs.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt3.cmake
-#usr/local/share/cmake-2.6/Modules/FindQt4.cmake
-#usr/local/share/cmake-2.6/Modules/FindQuickTime.cmake
-#usr/local/share/cmake-2.6/Modules/FindRTI.cmake
-#usr/local/share/cmake-2.6/Modules/FindRuby.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_image.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_mixer.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_net.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_sound.cmake
-#usr/local/share/cmake-2.6/Modules/FindSDL_ttf.cmake
-#usr/local/share/cmake-2.6/Modules/FindSWIG.cmake
-#usr/local/share/cmake-2.6/Modules/FindSelfPackers.cmake
-#usr/local/share/cmake-2.6/Modules/FindSquish.cmake
-#usr/local/share/cmake-2.6/Modules/FindSubversion.cmake
-#usr/local/share/cmake-2.6/Modules/FindTCL.cmake
-#usr/local/share/cmake-2.6/Modules/FindTIFF.cmake
-#usr/local/share/cmake-2.6/Modules/FindTclStub.cmake
-#usr/local/share/cmake-2.6/Modules/FindTclsh.cmake
-#usr/local/share/cmake-2.6/Modules/FindThreads.cmake
-#usr/local/share/cmake-2.6/Modules/FindUnixCommands.cmake
-#usr/local/share/cmake-2.6/Modules/FindVTK.cmake
-#usr/local/share/cmake-2.6/Modules/FindWget.cmake
-#usr/local/share/cmake-2.6/Modules/FindWish.cmake
-#usr/local/share/cmake-2.6/Modules/FindX11.cmake
-#usr/local/share/cmake-2.6/Modules/FindXMLRPC.cmake
-#usr/local/share/cmake-2.6/Modules/FindZLIB.cmake
-#usr/local/share/cmake-2.6/Modules/Findosg.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgAnimation.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgDB.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgFX.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgGA.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgIntrospection.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgManipulator.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgParticle.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgProducer.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgShadow.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgSim.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgTerrain.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgText.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgUtil.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgViewer.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgVolume.cmake
-#usr/local/share/cmake-2.6/Modules/FindosgWidget.cmake
-#usr/local/share/cmake-2.6/Modules/Findosg_functions.cmake
-#usr/local/share/cmake-2.6/Modules/FindwxWidgets.cmake
-#usr/local/share/cmake-2.6/Modules/FindwxWindows.cmake
-#usr/local/share/cmake-2.6/Modules/FortranCInterface.cmake
-#usr/local/share/cmake-2.6/Modules/FortranCInterface.h.in
-#usr/local/share/cmake-2.6/Modules/GetPrerequisites.cmake
-#usr/local/share/cmake-2.6/Modules/ITKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake
-#usr/local/share/cmake-2.6/Modules/KDE3Macros.cmake
-#usr/local/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in
-#usr/local/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in
-#usr/local/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake
-#usr/local/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in
-#usr/local/share/cmake-2.6/Modules/NSIS.template.in
-#usr/local/share/cmake-2.6/Modules/Platform
-#usr/local/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/AIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BSDOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BeOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/CYGWIN.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Catamount.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Darwin.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/DragonFly.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/FreeBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/GNU.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Generic.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/HP-UX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Haiku.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/IRIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/IRIX64.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-como.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Linux.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/MP-RAS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/NetBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/OSF1.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/OpenBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/QNX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/RISCos.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SCO_SV.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SINIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/SunOS.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Tru64.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/ULTRIX.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UnixPaths.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/UnixWare.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-df.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-g++.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-icl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Windows.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/Xenix.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/cl.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/eCos.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/g77.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/gas.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/gcc.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/syllable.cmake
-#usr/local/share/cmake-2.6/Modules/Platform/xlf.cmake
-#usr/local/share/cmake-2.6/Modules/SquishTestScript.cmake
-#usr/local/share/cmake-2.6/Modules/SystemInformation.cmake
-#usr/local/share/cmake-2.6/Modules/SystemInformation.in
-#usr/local/share/cmake-2.6/Modules/TestBigEndian.cmake
-#usr/local/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake
-#usr/local/share/cmake-2.6/Modules/TestEndianess.c.in
-#usr/local/share/cmake-2.6/Modules/TestForANSIForScope.cmake
-#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake
-#usr/local/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx
-#usr/local/share/cmake-2.6/Modules/TestForAnsiForScope.cxx
-#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cmake
-#usr/local/share/cmake-2.6/Modules/TestForSSTREAM.cxx
-#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cmake
-#usr/local/share/cmake-2.6/Modules/TestForSTDNamespace.cxx
-#usr/local/share/cmake-2.6/Modules/UseEcos.cmake
-#usr/local/share/cmake-2.6/Modules/UsePkgConfig.cmake
-#usr/local/share/cmake-2.6/Modules/UseQt4.cmake
-#usr/local/share/cmake-2.6/Modules/UseSWIG.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTK40.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake
-#usr/local/share/cmake-2.6/Modules/UseVTKConfig40.cmake
-#usr/local/share/cmake-2.6/Modules/Use_wxWindows.cmake
-#usr/local/share/cmake-2.6/Modules/UsewxWidgets.cmake
-#usr/local/share/cmake-2.6/Modules/VTKCompatibility.cmake
-#usr/local/share/cmake-2.6/Modules/ecos_clean.cmake
-#usr/local/share/cmake-2.6/Modules/kde3init_dummy.cpp.in
-#usr/local/share/cmake-2.6/Modules/kde3uic.cmake
-#usr/local/share/cmake-2.6/Modules/readme.txt
-#usr/local/share/cmake-2.6/Templates
-#usr/local/share/cmake-2.6/Templates/CMakeLists.txt
-#usr/local/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros
-#usr/local/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros
-#usr/local/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake
-#usr/local/share/cmake-2.6/Templates/CPack.GenericDescription.txt
-#usr/local/share/cmake-2.6/Templates/CPack.GenericLicense.txt
-#usr/local/share/cmake-2.6/Templates/CPack.GenericWelcome.txt
-#usr/local/share/cmake-2.6/Templates/CPackConfig.cmake.in
-#usr/local/share/cmake-2.6/Templates/CTestScript.cmake.in
-#usr/local/share/cmake-2.6/Templates/DLLFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/DLLHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/TestDriver.cxx.in
-#usr/local/share/cmake-2.6/Templates/UtilityFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/UtilityHeader.dsptemplate
-#usr/local/share/cmake-2.6/Templates/cygwin-package.sh.in
-#usr/local/share/cmake-2.6/Templates/staticLibFooter.dsptemplate
-#usr/local/share/cmake-2.6/Templates/staticLibHeader.dsptemplate
-#usr/local/share/cmake-2.6/include
-#usr/local/share/cmake-2.6/include/cmCPluginAPI.h
+#usr/bin/ccmake
+#usr/bin/cmake
+#usr/bin/cpack
+#usr/bin/ctest
+#usr/doc/cmake-2.6
+#usr/doc/cmake-2.6/ccmake.docbook
+#usr/doc/cmake-2.6/ccmake.html
+#usr/doc/cmake-2.6/ccmake.txt
+#usr/doc/cmake-2.6/cmake-commands.html
+#usr/doc/cmake-2.6/cmake-commands.txt
+#usr/doc/cmake-2.6/cmake-compatcommands.html
+#usr/doc/cmake-2.6/cmake-compatcommands.txt
+#usr/doc/cmake-2.6/cmake-modules.html
+#usr/doc/cmake-2.6/cmake-modules.txt
+#usr/doc/cmake-2.6/cmake-policies.html
+#usr/doc/cmake-2.6/cmake-policies.txt
+#usr/doc/cmake-2.6/cmake-properties.html
+#usr/doc/cmake-2.6/cmake-properties.txt
+#usr/doc/cmake-2.6/cmake-variables.html
+#usr/doc/cmake-2.6/cmake-variables.txt
+#usr/doc/cmake-2.6/cmake.docbook
+#usr/doc/cmake-2.6/cmake.html
+#usr/doc/cmake-2.6/cmake.txt
+#usr/doc/cmake-2.6/cpack.docbook
+#usr/doc/cmake-2.6/cpack.html
+#usr/doc/cmake-2.6/cpack.txt
+#usr/doc/cmake-2.6/ctest.docbook
+#usr/doc/cmake-2.6/ctest.html
+#usr/doc/cmake-2.6/ctest.txt
+#usr/man/man1/ccmake.1
+#usr/man/man1/cmake.1
+#usr/man/man1/cmakecommands.1
+#usr/man/man1/cmakecompat.1
+#usr/man/man1/cmakemodules.1
+#usr/man/man1/cmakepolicies.1
+#usr/man/man1/cmakeprops.1
+#usr/man/man1/cmakevars.1
+#usr/man/man1/cpack.1
+#usr/man/man1/ctest.1
+#usr/share/cmake-2.6
+#usr/share/cmake-2.6/Modules
+#usr/share/cmake-2.6/Modules/AddFileDependencies.cmake
+#usr/share/cmake-2.6/Modules/BundleUtilities.cmake
+#usr/share/cmake-2.6/Modules/CMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeASM-ATTInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeASMCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeASMInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeASM_MASMInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityC.cmake
+#usr/share/cmake-2.6/Modules/CMakeBackwardCompatibilityCXX.cmake
+#usr/share/cmake-2.6/Modules/CMakeBorlandFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeBuildSettings.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCCompilerABI.c
+#usr/share/cmake-2.6/Modules/CMakeCCompilerId.c.in
+#usr/share/cmake-2.6/Modules/CMakeCInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeCXXCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeCXXCompilerABI.cpp
+#usr/share/cmake-2.6/Modules/CMakeCXXCompilerId.cpp.in
+#usr/share/cmake-2.6/Modules/CMakeCXXInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeCommonLanguageInclude.cmake
+#usr/share/cmake-2.6/Modules/CMakeCompilerABI.h
+#usr/share/cmake-2.6/Modules/CMakeConfigurableFile.in
+#usr/share/cmake-2.6/Modules/CMakeDependentOption.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASM-ATTCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineASM_MASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCXXCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerABI.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineCompilerId.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineFortranCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineJavaCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineRCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeDetermineSystem.cmake
+#usr/share/cmake-2.6/Modules/CMakeExportBuildSettings.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindBinUtils.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindFrameworks.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindWMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeFindXCode.cmake
+#usr/share/cmake-2.6/Modules/CMakeForceCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeFortranCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeFortranCompilerId.F90.in
+#usr/share/cmake-2.6/Modules/CMakeFortranInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeGenericSystem.cmake
+#usr/share/cmake-2.6/Modules/CMakeImportBuildSettings.cmake
+#usr/share/cmake-2.6/Modules/CMakeJavaCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeJavaInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeMSYSFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeMinGWFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeNMakeFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakePlatformId.h.in
+#usr/share/cmake-2.6/Modules/CMakePrintSystemInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeRCCompiler.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeRCInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeSystem.cmake.in
+#usr/share/cmake-2.6/Modules/CMakeSystemSpecificInformation.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASM-ATTCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestASM_MASMCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestCXXCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestForFreeVC.cxx
+#usr/share/cmake-2.6/Modules/CMakeTestFortranCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestGNU.c
+#usr/share/cmake-2.6/Modules/CMakeTestJavaCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeTestNMakeCLVersion.c
+#usr/share/cmake-2.6/Modules/CMakeTestRCCompiler.cmake
+#usr/share/cmake-2.6/Modules/CMakeUnixFindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS6BackwardCompatibility.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS6FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS71FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS7BackwardCompatibility.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS7FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS8FindMake.cmake
+#usr/share/cmake-2.6/Modules/CMakeVS9FindMake.cmake
+#usr/share/cmake-2.6/Modules/CPack.DS_Store.in
+#usr/share/cmake-2.6/Modules/CPack.Description.plist.in
+#usr/share/cmake-2.6/Modules/CPack.Info.plist.in
+#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.in
+#usr/share/cmake-2.6/Modules/CPack.OSXScriptLauncher.rsrc.in
+#usr/share/cmake-2.6/Modules/CPack.OSXX11.Info.plist.in
+#usr/share/cmake-2.6/Modules/CPack.OSXX11.main.scpt.in
+#usr/share/cmake-2.6/Modules/CPack.RuntimeScript.in
+#usr/share/cmake-2.6/Modules/CPack.STGZ_Header.sh.in
+#usr/share/cmake-2.6/Modules/CPack.VolumeIcon.icns.in
+#usr/share/cmake-2.6/Modules/CPack.background.png.in
+#usr/share/cmake-2.6/Modules/CPack.cmake
+#usr/share/cmake-2.6/Modules/CPack.distribution.dist.in
+#usr/share/cmake-2.6/Modules/CPackDeb.cmake
+#usr/share/cmake-2.6/Modules/CPackRPM.cmake
+#usr/share/cmake-2.6/Modules/CPackZIP.cmake
+#usr/share/cmake-2.6/Modules/CTest.cmake
+#usr/share/cmake-2.6/Modules/CTestTargets.cmake
+#usr/share/cmake-2.6/Modules/CheckCCompilerFlag.cmake
+#usr/share/cmake-2.6/Modules/CheckCSourceCompiles.cmake
+#usr/share/cmake-2.6/Modules/CheckCSourceRuns.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXCompilerFlag.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXSourceCompiles.cmake
+#usr/share/cmake-2.6/Modules/CheckCXXSourceRuns.cmake
+#usr/share/cmake-2.6/Modules/CheckForPthreads.c
+#usr/share/cmake-2.6/Modules/CheckFortranFunctionExists.cmake
+#usr/share/cmake-2.6/Modules/CheckFunctionExists.c
+#usr/share/cmake-2.6/Modules/CheckFunctionExists.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.c.in
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFile.cxx.in
+#usr/share/cmake-2.6/Modules/CheckIncludeFileCXX.cmake
+#usr/share/cmake-2.6/Modules/CheckIncludeFiles.cmake
+#usr/share/cmake-2.6/Modules/CheckLibraryExists.cmake
+#usr/share/cmake-2.6/Modules/CheckLibraryExists.lists.in
+#usr/share/cmake-2.6/Modules/CheckSizeOf.cmake
+#usr/share/cmake-2.6/Modules/CheckStructHasMember.cmake
+#usr/share/cmake-2.6/Modules/CheckSymbolExists.cmake
+#usr/share/cmake-2.6/Modules/CheckTypeSize.cmake
+#usr/share/cmake-2.6/Modules/CheckTypeSizeC.c.in
+#usr/share/cmake-2.6/Modules/CheckVariableExists.c
+#usr/share/cmake-2.6/Modules/CheckVariableExists.cmake
+#usr/share/cmake-2.6/Modules/Dart.cmake
+#usr/share/cmake-2.6/Modules/DartConfiguration.tcl.in
+#usr/share/cmake-2.6/Modules/Documentation.cmake
+#usr/share/cmake-2.6/Modules/DummyCXXFile.cxx
+#usr/share/cmake-2.6/Modules/FLTKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/FeatureSummary.cmake
+#usr/share/cmake-2.6/Modules/FindASPELL.cmake
+#usr/share/cmake-2.6/Modules/FindAVIFile.cmake
+#usr/share/cmake-2.6/Modules/FindBLAS.cmake
+#usr/share/cmake-2.6/Modules/FindBZip2.cmake
+#usr/share/cmake-2.6/Modules/FindBoost.cmake
+#usr/share/cmake-2.6/Modules/FindCABLE.cmake
+#usr/share/cmake-2.6/Modules/FindCURL.cmake
+#usr/share/cmake-2.6/Modules/FindCVS.cmake
+#usr/share/cmake-2.6/Modules/FindCoin3D.cmake
+#usr/share/cmake-2.6/Modules/FindCups.cmake
+#usr/share/cmake-2.6/Modules/FindCurses.cmake
+#usr/share/cmake-2.6/Modules/FindCxxTest.cmake
+#usr/share/cmake-2.6/Modules/FindCygwin.cmake
+#usr/share/cmake-2.6/Modules/FindDCMTK.cmake
+#usr/share/cmake-2.6/Modules/FindDart.cmake
+#usr/share/cmake-2.6/Modules/FindDevIL.cmake
+#usr/share/cmake-2.6/Modules/FindDoxygen.cmake
+#usr/share/cmake-2.6/Modules/FindEXPAT.cmake
+#usr/share/cmake-2.6/Modules/FindFLTK.cmake
+#usr/share/cmake-2.6/Modules/FindFLTK2.cmake
+#usr/share/cmake-2.6/Modules/FindFreetype.cmake
+#usr/share/cmake-2.6/Modules/FindGCCXML.cmake
+#usr/share/cmake-2.6/Modules/FindGDAL.cmake
+#usr/share/cmake-2.6/Modules/FindGIF.cmake
+#usr/share/cmake-2.6/Modules/FindGLU.cmake
+#usr/share/cmake-2.6/Modules/FindGLUT.cmake
+#usr/share/cmake-2.6/Modules/FindGTK.cmake
+#usr/share/cmake-2.6/Modules/FindGettext.cmake
+#usr/share/cmake-2.6/Modules/FindGnuplot.cmake
+#usr/share/cmake-2.6/Modules/FindHSPELL.cmake
+#usr/share/cmake-2.6/Modules/FindHTMLHelp.cmake
+#usr/share/cmake-2.6/Modules/FindITK.cmake
+#usr/share/cmake-2.6/Modules/FindImageMagick.cmake
+#usr/share/cmake-2.6/Modules/FindJNI.cmake
+#usr/share/cmake-2.6/Modules/FindJPEG.cmake
+#usr/share/cmake-2.6/Modules/FindJasper.cmake
+#usr/share/cmake-2.6/Modules/FindJava.cmake
+#usr/share/cmake-2.6/Modules/FindKDE3.cmake
+#usr/share/cmake-2.6/Modules/FindKDE4.cmake
+#usr/share/cmake-2.6/Modules/FindLAPACK.cmake
+#usr/share/cmake-2.6/Modules/FindLATEX.cmake
+#usr/share/cmake-2.6/Modules/FindLibXml2.cmake
+#usr/share/cmake-2.6/Modules/FindLibXslt.cmake
+#usr/share/cmake-2.6/Modules/FindLua50.cmake
+#usr/share/cmake-2.6/Modules/FindLua51.cmake
+#usr/share/cmake-2.6/Modules/FindMFC.cmake
+#usr/share/cmake-2.6/Modules/FindMPEG.cmake
+#usr/share/cmake-2.6/Modules/FindMPEG2.cmake
+#usr/share/cmake-2.6/Modules/FindMPI.cmake
+#usr/share/cmake-2.6/Modules/FindMatlab.cmake
+#usr/share/cmake-2.6/Modules/FindMotif.cmake
+#usr/share/cmake-2.6/Modules/FindOpenAL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenGL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenMP.cmake
+#usr/share/cmake-2.6/Modules/FindOpenSSL.cmake
+#usr/share/cmake-2.6/Modules/FindOpenSceneGraph.cmake
+#usr/share/cmake-2.6/Modules/FindOpenThreads.cmake
+#usr/share/cmake-2.6/Modules/FindPHP4.cmake
+#usr/share/cmake-2.6/Modules/FindPNG.cmake
+#usr/share/cmake-2.6/Modules/FindPackageHandleStandardArgs.cmake
+#usr/share/cmake-2.6/Modules/FindPackageMessage.cmake
+#usr/share/cmake-2.6/Modules/FindPerl.cmake
+#usr/share/cmake-2.6/Modules/FindPerlLibs.cmake
+#usr/share/cmake-2.6/Modules/FindPhysFS.cmake
+#usr/share/cmake-2.6/Modules/FindPike.cmake
+#usr/share/cmake-2.6/Modules/FindPkgConfig.cmake
+#usr/share/cmake-2.6/Modules/FindProducer.cmake
+#usr/share/cmake-2.6/Modules/FindPythonInterp.cmake
+#usr/share/cmake-2.6/Modules/FindPythonLibs.cmake
+#usr/share/cmake-2.6/Modules/FindQt.cmake
+#usr/share/cmake-2.6/Modules/FindQt3.cmake
+#usr/share/cmake-2.6/Modules/FindQt4.cmake
+#usr/share/cmake-2.6/Modules/FindQuickTime.cmake
+#usr/share/cmake-2.6/Modules/FindRTI.cmake
+#usr/share/cmake-2.6/Modules/FindRuby.cmake
+#usr/share/cmake-2.6/Modules/FindSDL.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_image.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_mixer.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_net.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_sound.cmake
+#usr/share/cmake-2.6/Modules/FindSDL_ttf.cmake
+#usr/share/cmake-2.6/Modules/FindSWIG.cmake
+#usr/share/cmake-2.6/Modules/FindSelfPackers.cmake
+#usr/share/cmake-2.6/Modules/FindSquish.cmake
+#usr/share/cmake-2.6/Modules/FindSubversion.cmake
+#usr/share/cmake-2.6/Modules/FindTCL.cmake
+#usr/share/cmake-2.6/Modules/FindTIFF.cmake
+#usr/share/cmake-2.6/Modules/FindTclStub.cmake
+#usr/share/cmake-2.6/Modules/FindTclsh.cmake
+#usr/share/cmake-2.6/Modules/FindThreads.cmake
+#usr/share/cmake-2.6/Modules/FindUnixCommands.cmake
+#usr/share/cmake-2.6/Modules/FindVTK.cmake
+#usr/share/cmake-2.6/Modules/FindWget.cmake
+#usr/share/cmake-2.6/Modules/FindWish.cmake
+#usr/share/cmake-2.6/Modules/FindX11.cmake
+#usr/share/cmake-2.6/Modules/FindXMLRPC.cmake
+#usr/share/cmake-2.6/Modules/FindZLIB.cmake
+#usr/share/cmake-2.6/Modules/Findosg.cmake
+#usr/share/cmake-2.6/Modules/FindosgAnimation.cmake
+#usr/share/cmake-2.6/Modules/FindosgDB.cmake
+#usr/share/cmake-2.6/Modules/FindosgFX.cmake
+#usr/share/cmake-2.6/Modules/FindosgGA.cmake
+#usr/share/cmake-2.6/Modules/FindosgIntrospection.cmake
+#usr/share/cmake-2.6/Modules/FindosgManipulator.cmake
+#usr/share/cmake-2.6/Modules/FindosgParticle.cmake
+#usr/share/cmake-2.6/Modules/FindosgProducer.cmake
+#usr/share/cmake-2.6/Modules/FindosgShadow.cmake
+#usr/share/cmake-2.6/Modules/FindosgSim.cmake
+#usr/share/cmake-2.6/Modules/FindosgTerrain.cmake
+#usr/share/cmake-2.6/Modules/FindosgText.cmake
+#usr/share/cmake-2.6/Modules/FindosgUtil.cmake
+#usr/share/cmake-2.6/Modules/FindosgViewer.cmake
+#usr/share/cmake-2.6/Modules/FindosgVolume.cmake
+#usr/share/cmake-2.6/Modules/FindosgWidget.cmake
+#usr/share/cmake-2.6/Modules/Findosg_functions.cmake
+#usr/share/cmake-2.6/Modules/FindwxWidgets.cmake
+#usr/share/cmake-2.6/Modules/FindwxWindows.cmake
+#usr/share/cmake-2.6/Modules/FortranCInterface.cmake
+#usr/share/cmake-2.6/Modules/FortranCInterface.h.in
+#usr/share/cmake-2.6/Modules/GetPrerequisites.cmake
+#usr/share/cmake-2.6/Modules/ITKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/InstallRequiredSystemLibraries.cmake
+#usr/share/cmake-2.6/Modules/KDE3Macros.cmake
+#usr/share/cmake-2.6/Modules/MacOSXBundleInfo.plist.in
+#usr/share/cmake-2.6/Modules/MacOSXFrameworkInfo.plist.in
+#usr/share/cmake-2.6/Modules/MacroAddFileDependencies.cmake
+#usr/share/cmake-2.6/Modules/NSIS.InstallOptions.ini.in
+#usr/share/cmake-2.6/Modules/NSIS.template.in
+#usr/share/cmake-2.6/Modules/Platform
+#usr/share/cmake-2.6/Modules/Platform/AIX-VisualAge-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/AIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/BSDOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/BeOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/BlueGeneL.cmake
+#usr/share/cmake-2.6/Modules/Platform/CYGWIN-g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/CYGWIN.cmake
+#usr/share/cmake-2.6/Modules/Platform/Catamount.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-icc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-icpc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin-xlc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Darwin.cmake
+#usr/share/cmake-2.6/Modules/Platform/DragonFly.cmake
+#usr/share/cmake-2.6/Modules/Platform/FreeBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/GNU.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-ASM.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-ADSP-Common.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic-SDCC-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Generic.cmake
+#usr/share/cmake-2.6/Modules/Platform/HP-UX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Haiku.cmake
+#usr/share/cmake-2.6/Modules/Platform/IRIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/IRIX64.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-GNU-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-Intel-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-PGI-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-CXX.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-SunPro-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-C.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-VisualAge-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-como.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-icpc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux-ifort.cmake
+#usr/share/cmake-2.6/Modules/Platform/Linux.cmake
+#usr/share/cmake-2.6/Modules/Platform/MP-RAS.cmake
+#usr/share/cmake-2.6/Modules/Platform/NetBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/OSF1.cmake
+#usr/share/cmake-2.6/Modules/Platform/OpenBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/QNX.cmake
+#usr/share/cmake-2.6/Modules/Platform/RISCos.cmake
+#usr/share/cmake-2.6/Modules/Platform/SCO_SV.cmake
+#usr/share/cmake-2.6/Modules/Platform/SINIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/SunOS-SunPro-Fortran.cmake
+#usr/share/cmake-2.6/Modules/Platform/SunOS.cmake
+#usr/share/cmake-2.6/Modules/Platform/Tru64.cmake
+#usr/share/cmake-2.6/Modules/Platform/ULTRIX.cmake
+#usr/share/cmake-2.6/Modules/Platform/UNIX_SV.cmake
+#usr/share/cmake-2.6/Modules/Platform/UnixPaths.cmake
+#usr/share/cmake-2.6/Modules/Platform/UnixWare.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-bcc32.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-cl.cmake.in
+#usr/share/cmake-2.6/Modules/Platform/Windows-df.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-g++.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-gcc.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-icl.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-ifort.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows-wcl386.cmake
+#usr/share/cmake-2.6/Modules/Platform/Windows.cmake
+#usr/share/cmake-2.6/Modules/Platform/WindowsPaths.cmake
+#usr/share/cmake-2.6/Modules/Platform/Xenix.cmake
+#usr/share/cmake-2.6/Modules/Platform/cl.cmake
+#usr/share/cmake-2.6/Modules/Platform/eCos.cmake
+#usr/share/cmake-2.6/Modules/Platform/g77.cmake
+#usr/share/cmake-2.6/Modules/Platform/gas.cmake
+#usr/share/cmake-2.6/Modules/Platform/gcc.cmake
+#usr/share/cmake-2.6/Modules/Platform/kFreeBSD.cmake
+#usr/share/cmake-2.6/Modules/Platform/syllable.cmake
+#usr/share/cmake-2.6/Modules/Platform/xlf.cmake
+#usr/share/cmake-2.6/Modules/SquishTestScript.cmake
+#usr/share/cmake-2.6/Modules/SystemInformation.cmake
+#usr/share/cmake-2.6/Modules/SystemInformation.in
+#usr/share/cmake-2.6/Modules/TestBigEndian.cmake
+#usr/share/cmake-2.6/Modules/TestCXXAcceptsFlag.cmake
+#usr/share/cmake-2.6/Modules/TestEndianess.c.in
+#usr/share/cmake-2.6/Modules/TestForANSIForScope.cmake
+#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cmake
+#usr/share/cmake-2.6/Modules/TestForANSIStreamHeaders.cxx
+#usr/share/cmake-2.6/Modules/TestForAnsiForScope.cxx
+#usr/share/cmake-2.6/Modules/TestForSSTREAM.cmake
+#usr/share/cmake-2.6/Modules/TestForSSTREAM.cxx
+#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cmake
+#usr/share/cmake-2.6/Modules/TestForSTDNamespace.cxx
+#usr/share/cmake-2.6/Modules/UseEcos.cmake
+#usr/share/cmake-2.6/Modules/UsePkgConfig.cmake
+#usr/share/cmake-2.6/Modules/UseQt4.cmake
+#usr/share/cmake-2.6/Modules/UseSWIG.cmake
+#usr/share/cmake-2.6/Modules/UseVTK40.cmake
+#usr/share/cmake-2.6/Modules/UseVTKBuildSettings40.cmake
+#usr/share/cmake-2.6/Modules/UseVTKConfig40.cmake
+#usr/share/cmake-2.6/Modules/Use_wxWindows.cmake
+#usr/share/cmake-2.6/Modules/UsewxWidgets.cmake
+#usr/share/cmake-2.6/Modules/VTKCompatibility.cmake
+#usr/share/cmake-2.6/Modules/ecos_clean.cmake
+#usr/share/cmake-2.6/Modules/kde3init_dummy.cpp.in
+#usr/share/cmake-2.6/Modules/kde3uic.cmake
+#usr/share/cmake-2.6/Modules/readme.txt
+#usr/share/cmake-2.6/Templates
+#usr/share/cmake-2.6/Templates/CMakeLists.txt
+#usr/share/cmake-2.6/Templates/CMakeVSMacros1.vsmacros
+#usr/share/cmake-2.6/Templates/CMakeVSMacros2.vsmacros
+#usr/share/cmake-2.6/Templates/CMakeVisualStudio6Configurations.cmake
+#usr/share/cmake-2.6/Templates/CPack.GenericDescription.txt
+#usr/share/cmake-2.6/Templates/CPack.GenericLicense.txt
+#usr/share/cmake-2.6/Templates/CPack.GenericWelcome.txt
+#usr/share/cmake-2.6/Templates/CPackConfig.cmake.in
+#usr/share/cmake-2.6/Templates/CTestScript.cmake.in
+#usr/share/cmake-2.6/Templates/DLLFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/DLLHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/EXEWinHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/TestDriver.cxx.in
+#usr/share/cmake-2.6/Templates/UtilityFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/UtilityHeader.dsptemplate
+#usr/share/cmake-2.6/Templates/cygwin-package.sh.in
+#usr/share/cmake-2.6/Templates/staticLibFooter.dsptemplate
+#usr/share/cmake-2.6/Templates/staticLibHeader.dsptemplate
+#usr/share/cmake-2.6/include
+#usr/share/cmake-2.6/include/cmCPluginAPI.h
index 3901b697eb5d90ca81ea04cb3155be89c997bb7b..61e9106af776a97790f9beacc3f17f45dd0778cf 100644 (file)
@@ -1,4 +1,4 @@
-#bin/[
+bin/[
 bin/chgrp
 bin/chmod
 bin/chown
@@ -6,7 +6,6 @@ bin/cp
 bin/date
 bin/dd
 bin/df
-bin/echo
 bin/false
 bin/head
 bin/ln
@@ -59,7 +58,7 @@ usr/bin/printf
 #usr/bin/ptx
 usr/bin/readlink
 usr/bin/seq
-#usr/bin/sha1sum
+usr/bin/sha1sum
 usr/bin/shred
 usr/bin/sort
 usr/bin/split
@@ -84,7 +83,6 @@ usr/bin/whoami
 usr/bin/yes
 usr/sbin/chroot
 #usr/share/info/coreutils.info
-#usr/share/info/dir
 #usr/share/man/man1/basename.1
 #usr/share/man/man1/cat.1
 #usr/share/man/man1/chroot.1
diff --git a/config/rootfiles/common/dejavu-fonts-ttf b/config/rootfiles/common/dejavu-fonts-ttf
new file mode 100644 (file)
index 0000000..a130284
--- /dev/null
@@ -0,0 +1,21 @@
+usr/share/fonts/DejaVuSans-Bold.ttf
+usr/share/fonts/DejaVuSans-BoldOblique.ttf
+usr/share/fonts/DejaVuSans-ExtraLight.ttf
+usr/share/fonts/DejaVuSans-Oblique.ttf
+usr/share/fonts/DejaVuSans.ttf
+#usr/share/fonts/DejaVuSansCondensed-Bold.ttf
+#usr/share/fonts/DejaVuSansCondensed-BoldOblique.ttf
+#usr/share/fonts/DejaVuSansCondensed-Oblique.ttf
+#usr/share/fonts/DejaVuSansCondensed.ttf
+#usr/share/fonts/DejaVuSansMono-Bold.ttf
+#usr/share/fonts/DejaVuSansMono-BoldOblique.ttf
+#usr/share/fonts/DejaVuSansMono-Oblique.ttf
+#usr/share/fonts/DejaVuSansMono.ttf
+#usr/share/fonts/DejaVuSerif-Bold.ttf
+#usr/share/fonts/DejaVuSerif-BoldItalic.ttf
+#usr/share/fonts/DejaVuSerif-Italic.ttf
+#usr/share/fonts/DejaVuSerif.ttf
+#usr/share/fonts/DejaVuSerifCondensed-Bold.ttf
+#usr/share/fonts/DejaVuSerifCondensed-BoldItalic.ttf
+#usr/share/fonts/DejaVuSerifCondensed-Italic.ttf
+#usr/share/fonts/DejaVuSerifCondensed.ttf
index 0fe0c6d7f6185887b423fa300ba7b0f83b178ae0..c48045abe1aab14365e2ad0d79f6c7f00a0dd497 100644 (file)
@@ -2,15 +2,10 @@ usr/bin/file
 #usr/include/magic.h
 #usr/lib/libmagic.a
 #usr/lib/libmagic.la
-usr/lib/libmagic.so
+#usr/lib/libmagic.so
 usr/lib/libmagic.so.1
 usr/lib/libmagic.so.1.0.0
-#usr/man/man1/file.1
-#usr/man/man3/libmagic.3
-#usr/man/man4
-#usr/man/man4/magic.4
-#usr/share/file
-usr/share/file/magic
-usr/share/file/magic.mgc
-usr/share/file/magic.mime
-usr/share/file/magic.mime.mgc
+#usr/share/man/man1/file.1
+#usr/share/man/man3/libmagic.3
+#usr/share/man/man4/magic.4
+usr/share/misc/magic.mgc
similarity index 99%
rename from config/rootfiles/packages/fontconfig
rename to config/rootfiles/common/fontconfig
index 6f3726fb4ba9169138fc4422bc09f6c371f0dc5e..ade611e11d65fdc1c6afdaf16d5207bff7c9246b 100644 (file)
@@ -1,7 +1,3 @@
-usr/bin/fc-cache
-usr/bin/fc-cat
-usr/bin/fc-list
-usr/bin/fc-match
 #etc/fonts
 #etc/fonts/conf.avail
 etc/fonts/conf.avail/10-autohint.conf
@@ -49,6 +45,10 @@ etc/fonts/conf.d/90-synthetic.conf
 #etc/fonts/conf.d/README
 etc/fonts/fonts.conf
 etc/fonts/fonts.dtd
+usr/bin/fc-cache
+usr/bin/fc-cat
+usr/bin/fc-list
+usr/bin/fc-match
 #usr/include/fontconfig
 #usr/include/fontconfig/fcfreetype.h
 #usr/include/fontconfig/fcprivate.h
@@ -59,7 +59,6 @@ usr/lib/libfontconfig.so
 usr/lib/libfontconfig.so.1
 usr/lib/libfontconfig.so.1.3.0
 usr/lib/pkgconfig/fontconfig.pc
-usr/var/cache/fontconfig
 #usr/share/doc/fontconfig
 #usr/share/doc/fontconfig/fontconfig-devel
 #usr/share/doc/fontconfig/fontconfig-devel.pdf
@@ -420,4 +419,6 @@ usr/var/cache/fontconfig
 #usr/share/man/man3/FcValuePrint.3
 #usr/share/man/man3/FcValueSave.3
 #usr/share/man/man5/fonts-conf.5
+#usr/var
 #usr/var/cache
+usr/var/cache/fontconfig
index 915985b5aef150b18902741c9d04efa95e328e38..e7404416f7bda4819a776195b32f7ac5d4a248c3 100644 (file)
@@ -1,28 +1,27 @@
-usr/bin/autopoint
-usr/bin/envsubst
-usr/bin/gettext
-usr/bin/gettext.sh
-usr/bin/gettextize
-usr/bin/msgattrib
-usr/bin/msgcat
-usr/bin/msgcmp
-usr/bin/msgcomm
-usr/bin/msgconv
-usr/bin/msgen
-usr/bin/msgexec
-usr/bin/msgfilter
-usr/bin/msgfmt
-usr/bin/msggrep
-usr/bin/msginit
-usr/bin/msgmerge
-usr/bin/msgunfmt
-usr/bin/msguniq
-usr/bin/ngettext
-usr/bin/xgettext
+#usr/bin/autopoint
+#usr/bin/envsubst
+#usr/bin/gettext
+#usr/bin/gettext.sh
+#usr/bin/gettextize
+#usr/bin/msgattrib
+#usr/bin/msgcat
+#usr/bin/msgcmp
+#usr/bin/msgcomm
+#usr/bin/msgconv
+#usr/bin/msgen
+#usr/bin/msgexec
+#usr/bin/msgfilter
+#usr/bin/msgfmt
+#usr/bin/msggrep
+#usr/bin/msginit
+#usr/bin/msgmerge
+#usr/bin/msgunfmt
+#usr/bin/msguniq
+#usr/bin/ngettext
+#usr/bin/recode-sr-latin
+#usr/bin/xgettext
 #usr/include/autosprintf.h
 #usr/include/gettext-po.h
-#usr/info/autosprintf.info
-#usr/info/gettext.info
 #usr/lib/gettext
 #usr/lib/gettext/hostname
 #usr/lib/gettext/project-id
@@ -30,47 +29,49 @@ usr/bin/xgettext
 #usr/lib/gettext/user-email
 #usr/lib/libasprintf.a
 #usr/lib/libasprintf.la
-usr/lib/libasprintf.so
+#usr/lib/libasprintf.so
 usr/lib/libasprintf.so.0
 usr/lib/libasprintf.so.0.0.0
-usr/lib/libgettextlib-0.14.5.so
+usr/lib/libgettextlib-0.18.1.so
 #usr/lib/libgettextlib.la
-usr/lib/libgettextlib.so
+#usr/lib/libgettextlib.so
 #usr/lib/libgettextpo.a
 #usr/lib/libgettextpo.la
-usr/lib/libgettextpo.so
+#usr/lib/libgettextpo.so
 usr/lib/libgettextpo.so.0
-usr/lib/libgettextpo.so.0.1.0
-usr/lib/libgettextsrc-0.14.5.so
+usr/lib/libgettextpo.so.0.5.1
+usr/lib/libgettextsrc-0.18.1.so
 #usr/lib/libgettextsrc.la
 usr/lib/libgettextsrc.so
 usr/lib/preloadable_libintl.so
 #usr/share/aclocal/codeset.m4
+#usr/share/aclocal/fcntl-o.m4
 #usr/share/aclocal/gettext.m4
 #usr/share/aclocal/glibc2.m4
 #usr/share/aclocal/glibc21.m4
 #usr/share/aclocal/iconv.m4
 #usr/share/aclocal/intdiv0.m4
+#usr/share/aclocal/intl.m4
+#usr/share/aclocal/intldir.m4
+#usr/share/aclocal/intlmacosx.m4
 #usr/share/aclocal/intmax.m4
 #usr/share/aclocal/inttypes-pri.m4
-#usr/share/aclocal/inttypes.m4
 #usr/share/aclocal/inttypes_h.m4
-#usr/share/aclocal/isc-posix.m4
 #usr/share/aclocal/lcmessage.m4
 #usr/share/aclocal/lib-ld.m4
 #usr/share/aclocal/lib-link.m4
 #usr/share/aclocal/lib-prefix.m4
-#usr/share/aclocal/longdouble.m4
+#usr/share/aclocal/lock.m4
 #usr/share/aclocal/longlong.m4
 #usr/share/aclocal/nls.m4
 #usr/share/aclocal/po.m4
 #usr/share/aclocal/printf-posix.m4
 #usr/share/aclocal/progtest.m4
-#usr/share/aclocal/signed.m4
 #usr/share/aclocal/size_max.m4
 #usr/share/aclocal/stdint_h.m4
+#usr/share/aclocal/threadlib.m4
 #usr/share/aclocal/uintmax_t.m4
-#usr/share/aclocal/ulonglong.m4
+#usr/share/aclocal/visibility.m4
 #usr/share/aclocal/wchar_t.m4
 #usr/share/aclocal/wint_t.m4
 #usr/share/aclocal/xsize.m4
@@ -92,6 +93,7 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/build-aux
 #usr/share/doc/gettext/examples/build-aux/csharpcomp.m4
 #usr/share/doc/gettext/examples/build-aux/csharpcomp.sh.in
+#usr/share/doc/gettext/examples/build-aux/csharpexec-test.exe
 #usr/share/doc/gettext/examples/build-aux/csharpexec.m4
 #usr/share/doc/gettext/examples/build-aux/csharpexec.sh.in
 #usr/share/doc/gettext/examples/build-aux/gcj.m4
@@ -120,25 +122,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++-kde
 #usr/share/doc/gettext/examples/hello-c++-kde/BUGS
@@ -182,25 +197,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-kde/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++-kde/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++-kde/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-kde/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-kde/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++-qt
 #usr/share/doc/gettext/examples/hello-c++-qt/BUGS
@@ -217,26 +245,86 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++-qt/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-c++-qt/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-c++-qt/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/de.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/id.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/it.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-qt/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++-qt/po/zh_TW.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/INSTALL
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autoclean.sh
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/autogen.sh
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/configure.ac
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/hello.cc
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/m4/wxwidgets.m4
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/LINGUAS
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/Makefile.am
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/af.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/bg.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ca.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/de.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/el.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/eo.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/es.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fi.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/fr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/id.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/it.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/mt.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/nl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/pt.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ro.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/ru.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sl.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/sv.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/tr.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/uk.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/vi.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_HK.po
+#usr/share/doc/gettext/examples/hello-c++-wxwidgets/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c++/INSTALL
 #usr/share/doc/gettext/examples/hello-c++/Makefile.am
 #usr/share/doc/gettext/examples/hello-c++/autoclean.sh
@@ -250,25 +338,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c++/po/Makevars
 #usr/share/doc/gettext/examples/hello-c++/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c++/po/af.po
+#usr/share/doc/gettext/examples/hello-c++/po/ast.po
+#usr/share/doc/gettext/examples/hello-c++/po/bg.po
 #usr/share/doc/gettext/examples/hello-c++/po/ca.po
 #usr/share/doc/gettext/examples/hello-c++/po/de.po
 #usr/share/doc/gettext/examples/hello-c++/po/el.po
+#usr/share/doc/gettext/examples/hello-c++/po/eo.po
 #usr/share/doc/gettext/examples/hello-c++/po/es.po
+#usr/share/doc/gettext/examples/hello-c++/po/fi.po
 #usr/share/doc/gettext/examples/hello-c++/po/fr.po
 #usr/share/doc/gettext/examples/hello-c++/po/ga.po
+#usr/share/doc/gettext/examples/hello-c++/po/hu.po
+#usr/share/doc/gettext/examples/hello-c++/po/id.po
 #usr/share/doc/gettext/examples/hello-c++/po/it.po
 #usr/share/doc/gettext/examples/hello-c++/po/ja.po
+#usr/share/doc/gettext/examples/hello-c++/po/ky.po
+#usr/share/doc/gettext/examples/hello-c++/po/lv.po
+#usr/share/doc/gettext/examples/hello-c++/po/ms.po
+#usr/share/doc/gettext/examples/hello-c++/po/mt.po
 #usr/share/doc/gettext/examples/hello-c++/po/nl.po
 #usr/share/doc/gettext/examples/hello-c++/po/pl.po
+#usr/share/doc/gettext/examples/hello-c++/po/pt.po
 #usr/share/doc/gettext/examples/hello-c++/po/ro.po
 #usr/share/doc/gettext/examples/hello-c++/po/ru.po
 #usr/share/doc/gettext/examples/hello-c++/po/sk.po
+#usr/share/doc/gettext/examples/hello-c++/po/sl.po
 #usr/share/doc/gettext/examples/hello-c++/po/sr.po
 #usr/share/doc/gettext/examples/hello-c++/po/sv.po
 #usr/share/doc/gettext/examples/hello-c++/po/tr.po
 #usr/share/doc/gettext/examples/hello-c++/po/uk.po
 #usr/share/doc/gettext/examples/hello-c++/po/vi.po
 #usr/share/doc/gettext/examples/hello-c++/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c++/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c++/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c-gnome
 #usr/share/doc/gettext/examples/hello-c-gnome/INSTALL
@@ -287,25 +388,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-c-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-c/INSTALL
 #usr/share/doc/gettext/examples/hello-c/Makefile.am
@@ -320,25 +434,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-c/po/Makevars
 #usr/share/doc/gettext/examples/hello-c/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-c/po/af.po
+#usr/share/doc/gettext/examples/hello-c/po/ast.po
+#usr/share/doc/gettext/examples/hello-c/po/bg.po
 #usr/share/doc/gettext/examples/hello-c/po/ca.po
 #usr/share/doc/gettext/examples/hello-c/po/de.po
 #usr/share/doc/gettext/examples/hello-c/po/el.po
+#usr/share/doc/gettext/examples/hello-c/po/eo.po
 #usr/share/doc/gettext/examples/hello-c/po/es.po
+#usr/share/doc/gettext/examples/hello-c/po/fi.po
 #usr/share/doc/gettext/examples/hello-c/po/fr.po
 #usr/share/doc/gettext/examples/hello-c/po/ga.po
+#usr/share/doc/gettext/examples/hello-c/po/hu.po
+#usr/share/doc/gettext/examples/hello-c/po/id.po
 #usr/share/doc/gettext/examples/hello-c/po/it.po
 #usr/share/doc/gettext/examples/hello-c/po/ja.po
+#usr/share/doc/gettext/examples/hello-c/po/ky.po
+#usr/share/doc/gettext/examples/hello-c/po/lv.po
+#usr/share/doc/gettext/examples/hello-c/po/ms.po
+#usr/share/doc/gettext/examples/hello-c/po/mt.po
 #usr/share/doc/gettext/examples/hello-c/po/nl.po
 #usr/share/doc/gettext/examples/hello-c/po/pl.po
+#usr/share/doc/gettext/examples/hello-c/po/pt.po
 #usr/share/doc/gettext/examples/hello-c/po/ro.po
 #usr/share/doc/gettext/examples/hello-c/po/ru.po
 #usr/share/doc/gettext/examples/hello-c/po/sk.po
+#usr/share/doc/gettext/examples/hello-c/po/sl.po
 #usr/share/doc/gettext/examples/hello-c/po/sr.po
 #usr/share/doc/gettext/examples/hello-c/po/sv.po
 #usr/share/doc/gettext/examples/hello-c/po/tr.po
 #usr/share/doc/gettext/examples/hello-c/po/uk.po
 #usr/share/doc/gettext/examples/hello-c/po/vi.po
 #usr/share/doc/gettext/examples/hello-c/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-c/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-c/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-clisp
 #usr/share/doc/gettext/examples/hello-clisp/INSTALL
@@ -353,31 +480,45 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-clisp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-clisp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-clisp/po/af.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ast.po
+#usr/share/doc/gettext/examples/hello-clisp/po/bg.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ca.po
 #usr/share/doc/gettext/examples/hello-clisp/po/de.po
 #usr/share/doc/gettext/examples/hello-clisp/po/el.po
+#usr/share/doc/gettext/examples/hello-clisp/po/eo.po
 #usr/share/doc/gettext/examples/hello-clisp/po/es.po
+#usr/share/doc/gettext/examples/hello-clisp/po/fi.po
 #usr/share/doc/gettext/examples/hello-clisp/po/fr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ga.po
+#usr/share/doc/gettext/examples/hello-clisp/po/hu.po
+#usr/share/doc/gettext/examples/hello-clisp/po/id.po
 #usr/share/doc/gettext/examples/hello-clisp/po/it.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ja.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ky.po
+#usr/share/doc/gettext/examples/hello-clisp/po/lv.po
+#usr/share/doc/gettext/examples/hello-clisp/po/ms.po
+#usr/share/doc/gettext/examples/hello-clisp/po/mt.po
 #usr/share/doc/gettext/examples/hello-clisp/po/nl.po
 #usr/share/doc/gettext/examples/hello-clisp/po/pl.po
+#usr/share/doc/gettext/examples/hello-clisp/po/pt.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ro.po
 #usr/share/doc/gettext/examples/hello-clisp/po/ru.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sk.po
+#usr/share/doc/gettext/examples/hello-clisp/po/sl.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/sv.po
 #usr/share/doc/gettext/examples/hello-clisp/po/tr.po
 #usr/share/doc/gettext/examples/hello-clisp/po/uk.po
 #usr/share/doc/gettext/examples/hello-clisp/po/vi.po
 #usr/share/doc/gettext/examples/hello-clisp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-clisp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-clisp/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-csharp
 #usr/share/doc/gettext/examples/hello-csharp-forms
 #usr/share/doc/gettext/examples/hello-csharp-forms/BUGS
 #usr/share/doc/gettext/examples/hello-csharp-forms/INSTALL
 #usr/share/doc/gettext/examples/hello-csharp-forms/Makefile.am
+#usr/share/doc/gettext/examples/hello-csharp-forms/README
 #usr/share/doc/gettext/examples/hello-csharp-forms/autoclean.sh
 #usr/share/doc/gettext/examples/hello-csharp-forms/autogen.sh
 #usr/share/doc/gettext/examples/hello-csharp-forms/configure.ac
@@ -388,25 +529,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/af.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ast.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/bg.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ca.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/de.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/el.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/eo.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/es.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/fi.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/fr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ga.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/hu.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/id.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/it.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ja.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ky.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/lv.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/ms.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/mt.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/nl.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/pl.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/pt.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ro.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/ru.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sk.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/sl.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/sv.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/tr.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/uk.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/vi.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-csharp-forms/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-csharp/INSTALL
 #usr/share/doc/gettext/examples/hello-csharp/Makefile.am
@@ -420,25 +574,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-csharp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-csharp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-csharp/po/af.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ast.po
+#usr/share/doc/gettext/examples/hello-csharp/po/bg.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ca.po
 #usr/share/doc/gettext/examples/hello-csharp/po/de.po
 #usr/share/doc/gettext/examples/hello-csharp/po/el.po
+#usr/share/doc/gettext/examples/hello-csharp/po/eo.po
 #usr/share/doc/gettext/examples/hello-csharp/po/es.po
+#usr/share/doc/gettext/examples/hello-csharp/po/fi.po
 #usr/share/doc/gettext/examples/hello-csharp/po/fr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ga.po
+#usr/share/doc/gettext/examples/hello-csharp/po/hu.po
+#usr/share/doc/gettext/examples/hello-csharp/po/id.po
 #usr/share/doc/gettext/examples/hello-csharp/po/it.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ja.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ky.po
+#usr/share/doc/gettext/examples/hello-csharp/po/lv.po
+#usr/share/doc/gettext/examples/hello-csharp/po/ms.po
+#usr/share/doc/gettext/examples/hello-csharp/po/mt.po
 #usr/share/doc/gettext/examples/hello-csharp/po/nl.po
 #usr/share/doc/gettext/examples/hello-csharp/po/pl.po
+#usr/share/doc/gettext/examples/hello-csharp/po/pt.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ro.po
 #usr/share/doc/gettext/examples/hello-csharp/po/ru.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sk.po
+#usr/share/doc/gettext/examples/hello-csharp/po/sl.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/sv.po
 #usr/share/doc/gettext/examples/hello-csharp/po/tr.po
 #usr/share/doc/gettext/examples/hello-csharp/po/uk.po
 #usr/share/doc/gettext/examples/hello-csharp/po/vi.po
 #usr/share/doc/gettext/examples/hello-csharp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-csharp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-csharp/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-gawk
 #usr/share/doc/gettext/examples/hello-gawk/INSTALL
@@ -453,25 +620,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-gawk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-gawk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-gawk/po/af.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ast.po
+#usr/share/doc/gettext/examples/hello-gawk/po/bg.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ca.po
 #usr/share/doc/gettext/examples/hello-gawk/po/de.po
 #usr/share/doc/gettext/examples/hello-gawk/po/el.po
+#usr/share/doc/gettext/examples/hello-gawk/po/eo.po
 #usr/share/doc/gettext/examples/hello-gawk/po/es.po
+#usr/share/doc/gettext/examples/hello-gawk/po/fi.po
 #usr/share/doc/gettext/examples/hello-gawk/po/fr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ga.po
+#usr/share/doc/gettext/examples/hello-gawk/po/hu.po
+#usr/share/doc/gettext/examples/hello-gawk/po/id.po
 #usr/share/doc/gettext/examples/hello-gawk/po/it.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ja.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ky.po
+#usr/share/doc/gettext/examples/hello-gawk/po/lv.po
+#usr/share/doc/gettext/examples/hello-gawk/po/ms.po
+#usr/share/doc/gettext/examples/hello-gawk/po/mt.po
 #usr/share/doc/gettext/examples/hello-gawk/po/nl.po
 #usr/share/doc/gettext/examples/hello-gawk/po/pl.po
+#usr/share/doc/gettext/examples/hello-gawk/po/pt.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ro.po
 #usr/share/doc/gettext/examples/hello-gawk/po/ru.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sk.po
+#usr/share/doc/gettext/examples/hello-gawk/po/sl.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/sv.po
 #usr/share/doc/gettext/examples/hello-gawk/po/tr.po
 #usr/share/doc/gettext/examples/hello-gawk/po/uk.po
 #usr/share/doc/gettext/examples/hello-gawk/po/vi.po
 #usr/share/doc/gettext/examples/hello-gawk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-gawk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-gawk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-guile
 #usr/share/doc/gettext/examples/hello-guile/INSTALL
@@ -486,25 +666,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-guile/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-guile/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-guile/po/af.po
+#usr/share/doc/gettext/examples/hello-guile/po/ast.po
+#usr/share/doc/gettext/examples/hello-guile/po/bg.po
 #usr/share/doc/gettext/examples/hello-guile/po/ca.po
 #usr/share/doc/gettext/examples/hello-guile/po/de.po
 #usr/share/doc/gettext/examples/hello-guile/po/el.po
+#usr/share/doc/gettext/examples/hello-guile/po/eo.po
 #usr/share/doc/gettext/examples/hello-guile/po/es.po
+#usr/share/doc/gettext/examples/hello-guile/po/fi.po
 #usr/share/doc/gettext/examples/hello-guile/po/fr.po
 #usr/share/doc/gettext/examples/hello-guile/po/ga.po
+#usr/share/doc/gettext/examples/hello-guile/po/hu.po
+#usr/share/doc/gettext/examples/hello-guile/po/id.po
 #usr/share/doc/gettext/examples/hello-guile/po/it.po
 #usr/share/doc/gettext/examples/hello-guile/po/ja.po
+#usr/share/doc/gettext/examples/hello-guile/po/ky.po
+#usr/share/doc/gettext/examples/hello-guile/po/lv.po
+#usr/share/doc/gettext/examples/hello-guile/po/ms.po
+#usr/share/doc/gettext/examples/hello-guile/po/mt.po
 #usr/share/doc/gettext/examples/hello-guile/po/nl.po
 #usr/share/doc/gettext/examples/hello-guile/po/pl.po
+#usr/share/doc/gettext/examples/hello-guile/po/pt.po
 #usr/share/doc/gettext/examples/hello-guile/po/ro.po
 #usr/share/doc/gettext/examples/hello-guile/po/ru.po
 #usr/share/doc/gettext/examples/hello-guile/po/sk.po
+#usr/share/doc/gettext/examples/hello-guile/po/sl.po
 #usr/share/doc/gettext/examples/hello-guile/po/sr.po
 #usr/share/doc/gettext/examples/hello-guile/po/sv.po
 #usr/share/doc/gettext/examples/hello-guile/po/tr.po
 #usr/share/doc/gettext/examples/hello-guile/po/uk.po
 #usr/share/doc/gettext/examples/hello-guile/po/vi.po
 #usr/share/doc/gettext/examples/hello-guile/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-guile/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-guile/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java
 #usr/share/doc/gettext/examples/hello-java-awt
@@ -523,26 +716,88 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java-awt/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java-awt/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java-awt/po/af.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/bg.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ca.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/de.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/el.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/eo.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/es.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/fi.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/fr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/id.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/it.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/mt.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/nl.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/pt.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ro.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/ru.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/sl.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/sv.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/tr.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/uk.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/vi.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-awt/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java-awt/po/zh_TW.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi
+#usr/share/doc/gettext/examples/hello-java-qtjambi/BUGS
+#usr/share/doc/gettext/examples/hello-java-qtjambi/Hello.java
+#usr/share/doc/gettext/examples/hello-java-qtjambi/INSTALL
+#usr/share/doc/gettext/examples/hello-java-qtjambi/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/autoclean.sh
+#usr/share/doc/gettext/examples/hello-java-qtjambi/autogen.sh
+#usr/share/doc/gettext/examples/hello-java-qtjambi/configure.ac
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.class
+#usr/share/doc/gettext/examples/hello-java-qtjambi/m4/Test15.java
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/LINGUAS
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/Makefile.am
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/af.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/bg.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ca.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/de.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/el.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/eo.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/es.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fi.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/fr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/id.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/it.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/mt.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/nl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/pt.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ro.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/ru.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sl.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/sv.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/tr.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/uk.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/vi.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_HK.po
+#usr/share/doc/gettext/examples/hello-java-qtjambi/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java-swing
 #usr/share/doc/gettext/examples/hello-java-swing/BUGS
 #usr/share/doc/gettext/examples/hello-java-swing/Hello.java
@@ -559,25 +814,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java-swing/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java-swing/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java-swing/po/af.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ast.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/bg.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ca.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/de.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/el.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/eo.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/es.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/fi.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/fr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ga.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/hu.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/id.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/it.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ja.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ky.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/lv.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/ms.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/mt.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/nl.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/pl.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/pt.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ro.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/ru.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sk.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/sl.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/sv.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/tr.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/uk.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/vi.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java-swing/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java-swing/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-java/Hello.java
 #usr/share/doc/gettext/examples/hello-java/INSTALL
@@ -591,25 +859,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-java/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-java/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-java/po/af.po
+#usr/share/doc/gettext/examples/hello-java/po/ast.po
+#usr/share/doc/gettext/examples/hello-java/po/bg.po
 #usr/share/doc/gettext/examples/hello-java/po/ca.po
 #usr/share/doc/gettext/examples/hello-java/po/de.po
 #usr/share/doc/gettext/examples/hello-java/po/el.po
+#usr/share/doc/gettext/examples/hello-java/po/eo.po
 #usr/share/doc/gettext/examples/hello-java/po/es.po
+#usr/share/doc/gettext/examples/hello-java/po/fi.po
 #usr/share/doc/gettext/examples/hello-java/po/fr.po
 #usr/share/doc/gettext/examples/hello-java/po/ga.po
+#usr/share/doc/gettext/examples/hello-java/po/hu.po
+#usr/share/doc/gettext/examples/hello-java/po/id.po
 #usr/share/doc/gettext/examples/hello-java/po/it.po
 #usr/share/doc/gettext/examples/hello-java/po/ja.po
+#usr/share/doc/gettext/examples/hello-java/po/ky.po
+#usr/share/doc/gettext/examples/hello-java/po/lv.po
+#usr/share/doc/gettext/examples/hello-java/po/ms.po
+#usr/share/doc/gettext/examples/hello-java/po/mt.po
 #usr/share/doc/gettext/examples/hello-java/po/nl.po
 #usr/share/doc/gettext/examples/hello-java/po/pl.po
+#usr/share/doc/gettext/examples/hello-java/po/pt.po
 #usr/share/doc/gettext/examples/hello-java/po/ro.po
 #usr/share/doc/gettext/examples/hello-java/po/ru.po
 #usr/share/doc/gettext/examples/hello-java/po/sk.po
+#usr/share/doc/gettext/examples/hello-java/po/sl.po
 #usr/share/doc/gettext/examples/hello-java/po/sr.po
 #usr/share/doc/gettext/examples/hello-java/po/sv.po
 #usr/share/doc/gettext/examples/hello-java/po/tr.po
 #usr/share/doc/gettext/examples/hello-java/po/uk.po
 #usr/share/doc/gettext/examples/hello-java/po/vi.po
 #usr/share/doc/gettext/examples/hello-java/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-java/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-java/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-librep
 #usr/share/doc/gettext/examples/hello-librep/INSTALL
@@ -624,25 +905,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-librep/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-librep/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-librep/po/af.po
+#usr/share/doc/gettext/examples/hello-librep/po/ast.po
+#usr/share/doc/gettext/examples/hello-librep/po/bg.po
 #usr/share/doc/gettext/examples/hello-librep/po/ca.po
 #usr/share/doc/gettext/examples/hello-librep/po/de.po
 #usr/share/doc/gettext/examples/hello-librep/po/el.po
+#usr/share/doc/gettext/examples/hello-librep/po/eo.po
 #usr/share/doc/gettext/examples/hello-librep/po/es.po
+#usr/share/doc/gettext/examples/hello-librep/po/fi.po
 #usr/share/doc/gettext/examples/hello-librep/po/fr.po
 #usr/share/doc/gettext/examples/hello-librep/po/ga.po
+#usr/share/doc/gettext/examples/hello-librep/po/hu.po
+#usr/share/doc/gettext/examples/hello-librep/po/id.po
 #usr/share/doc/gettext/examples/hello-librep/po/it.po
 #usr/share/doc/gettext/examples/hello-librep/po/ja.po
+#usr/share/doc/gettext/examples/hello-librep/po/ky.po
+#usr/share/doc/gettext/examples/hello-librep/po/lv.po
+#usr/share/doc/gettext/examples/hello-librep/po/ms.po
+#usr/share/doc/gettext/examples/hello-librep/po/mt.po
 #usr/share/doc/gettext/examples/hello-librep/po/nl.po
 #usr/share/doc/gettext/examples/hello-librep/po/pl.po
+#usr/share/doc/gettext/examples/hello-librep/po/pt.po
 #usr/share/doc/gettext/examples/hello-librep/po/ro.po
 #usr/share/doc/gettext/examples/hello-librep/po/ru.po
 #usr/share/doc/gettext/examples/hello-librep/po/sk.po
+#usr/share/doc/gettext/examples/hello-librep/po/sl.po
 #usr/share/doc/gettext/examples/hello-librep/po/sr.po
 #usr/share/doc/gettext/examples/hello-librep/po/sv.po
 #usr/share/doc/gettext/examples/hello-librep/po/tr.po
 #usr/share/doc/gettext/examples/hello-librep/po/uk.po
 #usr/share/doc/gettext/examples/hello-librep/po/vi.po
 #usr/share/doc/gettext/examples/hello-librep/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-librep/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-librep/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc
 #usr/share/doc/gettext/examples/hello-objc-gnome
@@ -662,25 +956,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/Makevars
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/af.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/de.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/el.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/es.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/id.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/it.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc-gnome/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep
 #usr/share/doc/gettext/examples/hello-objc-gnustep/AppController.h
@@ -698,25 +1005,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/LocaleAliases
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/af.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/de.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/el.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/es.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/id.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/it.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc-gnustep/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-objc/INSTALL
 #usr/share/doc/gettext/examples/hello-objc/Makefile.am
@@ -731,25 +1051,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-objc/po/Makevars
 #usr/share/doc/gettext/examples/hello-objc/po/POTFILES.in
 #usr/share/doc/gettext/examples/hello-objc/po/af.po
+#usr/share/doc/gettext/examples/hello-objc/po/ast.po
+#usr/share/doc/gettext/examples/hello-objc/po/bg.po
 #usr/share/doc/gettext/examples/hello-objc/po/ca.po
 #usr/share/doc/gettext/examples/hello-objc/po/de.po
 #usr/share/doc/gettext/examples/hello-objc/po/el.po
+#usr/share/doc/gettext/examples/hello-objc/po/eo.po
 #usr/share/doc/gettext/examples/hello-objc/po/es.po
+#usr/share/doc/gettext/examples/hello-objc/po/fi.po
 #usr/share/doc/gettext/examples/hello-objc/po/fr.po
 #usr/share/doc/gettext/examples/hello-objc/po/ga.po
+#usr/share/doc/gettext/examples/hello-objc/po/hu.po
+#usr/share/doc/gettext/examples/hello-objc/po/id.po
 #usr/share/doc/gettext/examples/hello-objc/po/it.po
 #usr/share/doc/gettext/examples/hello-objc/po/ja.po
+#usr/share/doc/gettext/examples/hello-objc/po/ky.po
+#usr/share/doc/gettext/examples/hello-objc/po/lv.po
+#usr/share/doc/gettext/examples/hello-objc/po/ms.po
+#usr/share/doc/gettext/examples/hello-objc/po/mt.po
 #usr/share/doc/gettext/examples/hello-objc/po/nl.po
 #usr/share/doc/gettext/examples/hello-objc/po/pl.po
+#usr/share/doc/gettext/examples/hello-objc/po/pt.po
 #usr/share/doc/gettext/examples/hello-objc/po/ro.po
 #usr/share/doc/gettext/examples/hello-objc/po/ru.po
 #usr/share/doc/gettext/examples/hello-objc/po/sk.po
+#usr/share/doc/gettext/examples/hello-objc/po/sl.po
 #usr/share/doc/gettext/examples/hello-objc/po/sr.po
 #usr/share/doc/gettext/examples/hello-objc/po/sv.po
 #usr/share/doc/gettext/examples/hello-objc/po/tr.po
 #usr/share/doc/gettext/examples/hello-objc/po/uk.po
 #usr/share/doc/gettext/examples/hello-objc/po/vi.po
 #usr/share/doc/gettext/examples/hello-objc/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-objc/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-objc/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-pascal
 #usr/share/doc/gettext/examples/hello-pascal/INSTALL
@@ -765,25 +1098,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-pascal/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-pascal/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-pascal/po/af.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ast.po
+#usr/share/doc/gettext/examples/hello-pascal/po/bg.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ca.po
 #usr/share/doc/gettext/examples/hello-pascal/po/de.po
 #usr/share/doc/gettext/examples/hello-pascal/po/el.po
+#usr/share/doc/gettext/examples/hello-pascal/po/eo.po
 #usr/share/doc/gettext/examples/hello-pascal/po/es.po
+#usr/share/doc/gettext/examples/hello-pascal/po/fi.po
 #usr/share/doc/gettext/examples/hello-pascal/po/fr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ga.po
+#usr/share/doc/gettext/examples/hello-pascal/po/hu.po
+#usr/share/doc/gettext/examples/hello-pascal/po/id.po
 #usr/share/doc/gettext/examples/hello-pascal/po/it.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ja.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ky.po
+#usr/share/doc/gettext/examples/hello-pascal/po/lv.po
+#usr/share/doc/gettext/examples/hello-pascal/po/ms.po
+#usr/share/doc/gettext/examples/hello-pascal/po/mt.po
 #usr/share/doc/gettext/examples/hello-pascal/po/nl.po
 #usr/share/doc/gettext/examples/hello-pascal/po/pl.po
+#usr/share/doc/gettext/examples/hello-pascal/po/pt.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ro.po
 #usr/share/doc/gettext/examples/hello-pascal/po/ru.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sk.po
+#usr/share/doc/gettext/examples/hello-pascal/po/sl.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/sv.po
 #usr/share/doc/gettext/examples/hello-pascal/po/tr.po
 #usr/share/doc/gettext/examples/hello-pascal/po/uk.po
 #usr/share/doc/gettext/examples/hello-pascal/po/vi.po
 #usr/share/doc/gettext/examples/hello-pascal/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-pascal/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-pascal/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-perl
 #usr/share/doc/gettext/examples/hello-perl/INSTALL
@@ -799,25 +1145,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-perl/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-perl/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-perl/po/af.po
+#usr/share/doc/gettext/examples/hello-perl/po/ast.po
+#usr/share/doc/gettext/examples/hello-perl/po/bg.po
 #usr/share/doc/gettext/examples/hello-perl/po/ca.po
 #usr/share/doc/gettext/examples/hello-perl/po/de.po
 #usr/share/doc/gettext/examples/hello-perl/po/el.po
+#usr/share/doc/gettext/examples/hello-perl/po/eo.po
 #usr/share/doc/gettext/examples/hello-perl/po/es.po
+#usr/share/doc/gettext/examples/hello-perl/po/fi.po
 #usr/share/doc/gettext/examples/hello-perl/po/fr.po
 #usr/share/doc/gettext/examples/hello-perl/po/ga.po
+#usr/share/doc/gettext/examples/hello-perl/po/hu.po
+#usr/share/doc/gettext/examples/hello-perl/po/id.po
 #usr/share/doc/gettext/examples/hello-perl/po/it.po
 #usr/share/doc/gettext/examples/hello-perl/po/ja.po
+#usr/share/doc/gettext/examples/hello-perl/po/ky.po
+#usr/share/doc/gettext/examples/hello-perl/po/lv.po
+#usr/share/doc/gettext/examples/hello-perl/po/ms.po
+#usr/share/doc/gettext/examples/hello-perl/po/mt.po
 #usr/share/doc/gettext/examples/hello-perl/po/nl.po
 #usr/share/doc/gettext/examples/hello-perl/po/pl.po
+#usr/share/doc/gettext/examples/hello-perl/po/pt.po
 #usr/share/doc/gettext/examples/hello-perl/po/ro.po
 #usr/share/doc/gettext/examples/hello-perl/po/ru.po
 #usr/share/doc/gettext/examples/hello-perl/po/sk.po
+#usr/share/doc/gettext/examples/hello-perl/po/sl.po
 #usr/share/doc/gettext/examples/hello-perl/po/sr.po
 #usr/share/doc/gettext/examples/hello-perl/po/sv.po
 #usr/share/doc/gettext/examples/hello-perl/po/tr.po
 #usr/share/doc/gettext/examples/hello-perl/po/uk.po
 #usr/share/doc/gettext/examples/hello-perl/po/vi.po
 #usr/share/doc/gettext/examples/hello-perl/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-perl/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-perl/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-php
 #usr/share/doc/gettext/examples/hello-php/INSTALL
@@ -833,25 +1192,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-php/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-php/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-php/po/af.po
+#usr/share/doc/gettext/examples/hello-php/po/ast.po
+#usr/share/doc/gettext/examples/hello-php/po/bg.po
 #usr/share/doc/gettext/examples/hello-php/po/ca.po
 #usr/share/doc/gettext/examples/hello-php/po/de.po
 #usr/share/doc/gettext/examples/hello-php/po/el.po
+#usr/share/doc/gettext/examples/hello-php/po/eo.po
 #usr/share/doc/gettext/examples/hello-php/po/es.po
+#usr/share/doc/gettext/examples/hello-php/po/fi.po
 #usr/share/doc/gettext/examples/hello-php/po/fr.po
 #usr/share/doc/gettext/examples/hello-php/po/ga.po
+#usr/share/doc/gettext/examples/hello-php/po/hu.po
+#usr/share/doc/gettext/examples/hello-php/po/id.po
 #usr/share/doc/gettext/examples/hello-php/po/it.po
 #usr/share/doc/gettext/examples/hello-php/po/ja.po
+#usr/share/doc/gettext/examples/hello-php/po/ky.po
+#usr/share/doc/gettext/examples/hello-php/po/lv.po
+#usr/share/doc/gettext/examples/hello-php/po/ms.po
+#usr/share/doc/gettext/examples/hello-php/po/mt.po
 #usr/share/doc/gettext/examples/hello-php/po/nl.po
 #usr/share/doc/gettext/examples/hello-php/po/pl.po
+#usr/share/doc/gettext/examples/hello-php/po/pt.po
 #usr/share/doc/gettext/examples/hello-php/po/ro.po
 #usr/share/doc/gettext/examples/hello-php/po/ru.po
 #usr/share/doc/gettext/examples/hello-php/po/sk.po
+#usr/share/doc/gettext/examples/hello-php/po/sl.po
 #usr/share/doc/gettext/examples/hello-php/po/sr.po
 #usr/share/doc/gettext/examples/hello-php/po/sv.po
 #usr/share/doc/gettext/examples/hello-php/po/tr.po
 #usr/share/doc/gettext/examples/hello-php/po/uk.po
 #usr/share/doc/gettext/examples/hello-php/po/vi.po
 #usr/share/doc/gettext/examples/hello-php/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-php/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-php/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-python
 #usr/share/doc/gettext/examples/hello-python/INSTALL
@@ -866,25 +1238,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-python/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-python/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-python/po/af.po
+#usr/share/doc/gettext/examples/hello-python/po/ast.po
+#usr/share/doc/gettext/examples/hello-python/po/bg.po
 #usr/share/doc/gettext/examples/hello-python/po/ca.po
 #usr/share/doc/gettext/examples/hello-python/po/de.po
 #usr/share/doc/gettext/examples/hello-python/po/el.po
+#usr/share/doc/gettext/examples/hello-python/po/eo.po
 #usr/share/doc/gettext/examples/hello-python/po/es.po
+#usr/share/doc/gettext/examples/hello-python/po/fi.po
 #usr/share/doc/gettext/examples/hello-python/po/fr.po
 #usr/share/doc/gettext/examples/hello-python/po/ga.po
+#usr/share/doc/gettext/examples/hello-python/po/hu.po
+#usr/share/doc/gettext/examples/hello-python/po/id.po
 #usr/share/doc/gettext/examples/hello-python/po/it.po
 #usr/share/doc/gettext/examples/hello-python/po/ja.po
+#usr/share/doc/gettext/examples/hello-python/po/ky.po
+#usr/share/doc/gettext/examples/hello-python/po/lv.po
+#usr/share/doc/gettext/examples/hello-python/po/ms.po
+#usr/share/doc/gettext/examples/hello-python/po/mt.po
 #usr/share/doc/gettext/examples/hello-python/po/nl.po
 #usr/share/doc/gettext/examples/hello-python/po/pl.po
+#usr/share/doc/gettext/examples/hello-python/po/pt.po
 #usr/share/doc/gettext/examples/hello-python/po/ro.po
 #usr/share/doc/gettext/examples/hello-python/po/ru.po
 #usr/share/doc/gettext/examples/hello-python/po/sk.po
+#usr/share/doc/gettext/examples/hello-python/po/sl.po
 #usr/share/doc/gettext/examples/hello-python/po/sr.po
 #usr/share/doc/gettext/examples/hello-python/po/sv.po
 #usr/share/doc/gettext/examples/hello-python/po/tr.po
 #usr/share/doc/gettext/examples/hello-python/po/uk.po
 #usr/share/doc/gettext/examples/hello-python/po/vi.po
 #usr/share/doc/gettext/examples/hello-python/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-python/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-python/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-sh
 #usr/share/doc/gettext/examples/hello-sh/INSTALL
@@ -899,25 +1284,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-sh/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-sh/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-sh/po/af.po
+#usr/share/doc/gettext/examples/hello-sh/po/ast.po
+#usr/share/doc/gettext/examples/hello-sh/po/bg.po
 #usr/share/doc/gettext/examples/hello-sh/po/ca.po
 #usr/share/doc/gettext/examples/hello-sh/po/de.po
 #usr/share/doc/gettext/examples/hello-sh/po/el.po
+#usr/share/doc/gettext/examples/hello-sh/po/eo.po
 #usr/share/doc/gettext/examples/hello-sh/po/es.po
+#usr/share/doc/gettext/examples/hello-sh/po/fi.po
 #usr/share/doc/gettext/examples/hello-sh/po/fr.po
 #usr/share/doc/gettext/examples/hello-sh/po/ga.po
+#usr/share/doc/gettext/examples/hello-sh/po/hu.po
+#usr/share/doc/gettext/examples/hello-sh/po/id.po
 #usr/share/doc/gettext/examples/hello-sh/po/it.po
 #usr/share/doc/gettext/examples/hello-sh/po/ja.po
+#usr/share/doc/gettext/examples/hello-sh/po/ky.po
+#usr/share/doc/gettext/examples/hello-sh/po/lv.po
+#usr/share/doc/gettext/examples/hello-sh/po/ms.po
+#usr/share/doc/gettext/examples/hello-sh/po/mt.po
 #usr/share/doc/gettext/examples/hello-sh/po/nl.po
 #usr/share/doc/gettext/examples/hello-sh/po/pl.po
+#usr/share/doc/gettext/examples/hello-sh/po/pt.po
 #usr/share/doc/gettext/examples/hello-sh/po/ro.po
 #usr/share/doc/gettext/examples/hello-sh/po/ru.po
 #usr/share/doc/gettext/examples/hello-sh/po/sk.po
+#usr/share/doc/gettext/examples/hello-sh/po/sl.po
 #usr/share/doc/gettext/examples/hello-sh/po/sr.po
 #usr/share/doc/gettext/examples/hello-sh/po/sv.po
 #usr/share/doc/gettext/examples/hello-sh/po/tr.po
 #usr/share/doc/gettext/examples/hello-sh/po/uk.po
 #usr/share/doc/gettext/examples/hello-sh/po/vi.po
 #usr/share/doc/gettext/examples/hello-sh/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-sh/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-sh/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-smalltalk
 #usr/share/doc/gettext/examples/hello-smalltalk/INSTALL
@@ -932,25 +1330,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-smalltalk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-smalltalk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-smalltalk/po/af.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ast.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/bg.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ca.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/de.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/el.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/eo.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/es.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/fi.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/fr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ga.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/hu.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/id.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/it.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ja.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ky.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/lv.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/ms.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/mt.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/nl.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/pl.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/pt.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ro.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/ru.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sk.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/sl.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/sv.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/tr.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/uk.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/vi.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-smalltalk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-smalltalk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-tcl
 #usr/share/doc/gettext/examples/hello-tcl-tk
@@ -966,25 +1377,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/af.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ast.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/bg.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ca.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/de.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/el.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/eo.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/es.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/fi.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/fr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ga.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/hu.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/id.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/it.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ja.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ky.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/lv.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/ms.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/mt.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/nl.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/pl.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/pt.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ro.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/ru.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sk.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/sl.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/sv.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/tr.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/uk.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/vi.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-tcl-tk/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-tcl/INSTALL
 #usr/share/doc/gettext/examples/hello-tcl/Makefile.am
@@ -998,25 +1422,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-tcl/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-tcl/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-tcl/po/af.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ast.po
+#usr/share/doc/gettext/examples/hello-tcl/po/bg.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ca.po
 #usr/share/doc/gettext/examples/hello-tcl/po/de.po
 #usr/share/doc/gettext/examples/hello-tcl/po/el.po
+#usr/share/doc/gettext/examples/hello-tcl/po/eo.po
 #usr/share/doc/gettext/examples/hello-tcl/po/es.po
+#usr/share/doc/gettext/examples/hello-tcl/po/fi.po
 #usr/share/doc/gettext/examples/hello-tcl/po/fr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ga.po
+#usr/share/doc/gettext/examples/hello-tcl/po/hu.po
+#usr/share/doc/gettext/examples/hello-tcl/po/id.po
 #usr/share/doc/gettext/examples/hello-tcl/po/it.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ja.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ky.po
+#usr/share/doc/gettext/examples/hello-tcl/po/lv.po
+#usr/share/doc/gettext/examples/hello-tcl/po/ms.po
+#usr/share/doc/gettext/examples/hello-tcl/po/mt.po
 #usr/share/doc/gettext/examples/hello-tcl/po/nl.po
 #usr/share/doc/gettext/examples/hello-tcl/po/pl.po
+#usr/share/doc/gettext/examples/hello-tcl/po/pt.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ro.po
 #usr/share/doc/gettext/examples/hello-tcl/po/ru.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sk.po
+#usr/share/doc/gettext/examples/hello-tcl/po/sl.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/sv.po
 #usr/share/doc/gettext/examples/hello-tcl/po/tr.po
 #usr/share/doc/gettext/examples/hello-tcl/po/uk.po
 #usr/share/doc/gettext/examples/hello-tcl/po/vi.po
 #usr/share/doc/gettext/examples/hello-tcl/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-tcl/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-tcl/po/zh_TW.po
 #usr/share/doc/gettext/examples/hello-ycp
 #usr/share/doc/gettext/examples/hello-ycp/INSTALL
@@ -1031,25 +1468,38 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/examples/hello-ycp/po/LINGUAS
 #usr/share/doc/gettext/examples/hello-ycp/po/Makefile.am
 #usr/share/doc/gettext/examples/hello-ycp/po/af.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ast.po
+#usr/share/doc/gettext/examples/hello-ycp/po/bg.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ca.po
 #usr/share/doc/gettext/examples/hello-ycp/po/de.po
 #usr/share/doc/gettext/examples/hello-ycp/po/el.po
+#usr/share/doc/gettext/examples/hello-ycp/po/eo.po
 #usr/share/doc/gettext/examples/hello-ycp/po/es.po
+#usr/share/doc/gettext/examples/hello-ycp/po/fi.po
 #usr/share/doc/gettext/examples/hello-ycp/po/fr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ga.po
+#usr/share/doc/gettext/examples/hello-ycp/po/hu.po
+#usr/share/doc/gettext/examples/hello-ycp/po/id.po
 #usr/share/doc/gettext/examples/hello-ycp/po/it.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ja.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ky.po
+#usr/share/doc/gettext/examples/hello-ycp/po/lv.po
+#usr/share/doc/gettext/examples/hello-ycp/po/ms.po
+#usr/share/doc/gettext/examples/hello-ycp/po/mt.po
 #usr/share/doc/gettext/examples/hello-ycp/po/nl.po
 #usr/share/doc/gettext/examples/hello-ycp/po/pl.po
+#usr/share/doc/gettext/examples/hello-ycp/po/pt.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ro.po
 #usr/share/doc/gettext/examples/hello-ycp/po/ru.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sk.po
+#usr/share/doc/gettext/examples/hello-ycp/po/sl.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/sv.po
 #usr/share/doc/gettext/examples/hello-ycp/po/tr.po
 #usr/share/doc/gettext/examples/hello-ycp/po/uk.po
 #usr/share/doc/gettext/examples/hello-ycp/po/vi.po
 #usr/share/doc/gettext/examples/hello-ycp/po/zh_CN.po
+#usr/share/doc/gettext/examples/hello-ycp/po/zh_HK.po
 #usr/share/doc/gettext/examples/hello-ycp/po/zh_TW.po
 #usr/share/doc/gettext/examples/installpaths
 #usr/share/doc/gettext/gettext.1.html
@@ -1069,6 +1519,9 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/gettext_20.html
 #usr/share/doc/gettext/gettext_21.html
 #usr/share/doc/gettext/gettext_22.html
+#usr/share/doc/gettext/gettext_23.html
+#usr/share/doc/gettext/gettext_24.html
+#usr/share/doc/gettext/gettext_25.html
 #usr/share/doc/gettext/gettext_3.html
 #usr/share/doc/gettext/gettext_4.html
 #usr/share/doc/gettext/gettext_5.html
@@ -1079,35 +1532,6 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/gettext_foot.html
 #usr/share/doc/gettext/gettext_toc.html
 #usr/share/doc/gettext/gettextize.1.html
-#usr/share/doc/gettext/javadoc1
-#usr/share/doc/gettext/javadoc1/AllNames.html
-#usr/share/doc/gettext/javadoc1/gnu.gettext.GettextResource.html
-#usr/share/doc/gettext/javadoc1/images
-#usr/share/doc/gettext/javadoc1/images/blue-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/blue-ball.gif
-#usr/share/doc/gettext/javadoc1/images/class-index.gif
-#usr/share/doc/gettext/javadoc1/images/constructor-index.gif
-#usr/share/doc/gettext/javadoc1/images/constructors.gif
-#usr/share/doc/gettext/javadoc1/images/cyan-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/cyan-ball.gif
-#usr/share/doc/gettext/javadoc1/images/error-index.gif
-#usr/share/doc/gettext/javadoc1/images/exception-index.gif
-#usr/share/doc/gettext/javadoc1/images/green-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/green-ball.gif
-#usr/share/doc/gettext/javadoc1/images/interface-index.gif
-#usr/share/doc/gettext/javadoc1/images/magenta-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/magenta-ball.gif
-#usr/share/doc/gettext/javadoc1/images/method-index.gif
-#usr/share/doc/gettext/javadoc1/images/methods.gif
-#usr/share/doc/gettext/javadoc1/images/package-index.gif
-#usr/share/doc/gettext/javadoc1/images/red-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/red-ball.gif
-#usr/share/doc/gettext/javadoc1/images/variable-index.gif
-#usr/share/doc/gettext/javadoc1/images/variables.gif
-#usr/share/doc/gettext/javadoc1/images/yellow-ball-small.gif
-#usr/share/doc/gettext/javadoc1/images/yellow-ball.gif
-#usr/share/doc/gettext/javadoc1/packages.html
-#usr/share/doc/gettext/javadoc1/tree.html
 #usr/share/doc/gettext/javadoc2
 #usr/share/doc/gettext/javadoc2/allclasses-frame.html
 #usr/share/doc/gettext/javadoc2/deprecated-list.html
@@ -1141,14 +1565,15 @@ usr/lib/preloadable_libintl.so
 #usr/share/doc/gettext/msguniq.1.html
 #usr/share/doc/gettext/ngettext.1.html
 #usr/share/doc/gettext/ngettext.3.html
+#usr/share/doc/gettext/recode-sr-latin.1.html
 #usr/share/doc/gettext/textdomain.3.html
 #usr/share/doc/gettext/tutorial.html
 #usr/share/doc/gettext/xgettext.1.html
 #usr/share/doc/libasprintf
-#usr/share/doc/libasprintf/autosprintf.html
+#usr/share/doc/libasprintf/autosprintf_all.html
 #usr/share/gettext
 #usr/share/gettext/ABOUT-NLS
-#usr/share/gettext/archive.tar.gz
+#usr/share/gettext/archive.dir.tar.gz
 #usr/share/gettext/config.rpath
 #usr/share/gettext/gettext.h
 #usr/share/gettext/intl
@@ -1166,15 +1591,19 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/dngettext.c
 #usr/share/gettext/intl/eval-plural.h
 #usr/share/gettext/intl/explodename.c
+#usr/share/gettext/intl/export.h
 #usr/share/gettext/intl/finddomain.c
 #usr/share/gettext/intl/gettext.c
 #usr/share/gettext/intl/gettextP.h
 #usr/share/gettext/intl/gmo.h
+#usr/share/gettext/intl/hash-string.c
 #usr/share/gettext/intl/hash-string.h
 #usr/share/gettext/intl/intl-compat.c
+#usr/share/gettext/intl/intl-exports.c
 #usr/share/gettext/intl/l10nflist.c
 #usr/share/gettext/intl/langprefs.c
 #usr/share/gettext/intl/libgnuintl.h.in
+#usr/share/gettext/intl/libintl.rc
 #usr/share/gettext/intl/loadinfo.h
 #usr/share/gettext/intl/loadmsgcat.c
 #usr/share/gettext/intl/localcharset.c
@@ -1182,6 +1611,8 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/locale.alias
 #usr/share/gettext/intl/localealias.c
 #usr/share/gettext/intl/localename.c
+#usr/share/gettext/intl/lock.c
+#usr/share/gettext/intl/lock.h
 #usr/share/gettext/intl/log.c
 #usr/share/gettext/intl/ngettext.c
 #usr/share/gettext/intl/os2compat.c
@@ -1200,13 +1631,18 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/intl/ref-del.sin
 #usr/share/gettext/intl/relocatable.c
 #usr/share/gettext/intl/relocatable.h
+#usr/share/gettext/intl/setlocale.c
 #usr/share/gettext/intl/textdomain.c
+#usr/share/gettext/intl/threadlib.c
+#usr/share/gettext/intl/tsearch.c
+#usr/share/gettext/intl/tsearch.h
 #usr/share/gettext/intl/vasnprintf.c
 #usr/share/gettext/intl/vasnprintf.h
 #usr/share/gettext/intl/vasnwprintf.h
+#usr/share/gettext/intl/version.c
 #usr/share/gettext/intl/wprintf-parse.h
 #usr/share/gettext/intl/xsize.h
-#usr/share/gettext/mkinstalldirs
+#usr/share/gettext/javaversion.class
 #usr/share/gettext/msgunfmt.tcl
 #usr/share/gettext/po
 #usr/share/gettext/po/Makefile.in.in
@@ -1236,6 +1672,15 @@ usr/lib/preloadable_libintl.so
 #usr/share/gettext/projects/TP/trigger
 #usr/share/gettext/projects/index
 #usr/share/gettext/projects/team-address
+#usr/share/gettext/styles
+#usr/share/gettext/styles/po-default.css
+#usr/share/gettext/styles/po-emacs-x.css
+#usr/share/gettext/styles/po-emacs-xterm.css
+#usr/share/gettext/styles/po-emacs-xterm16.css
+#usr/share/gettext/styles/po-emacs-xterm256.css
+#usr/share/gettext/styles/po-vim.css
+#usr/share/info/autosprintf.info
+#usr/share/info/gettext.info
 #usr/share/man/man1/autopoint.1
 #usr/share/man/man1/envsubst.1
 #usr/share/man/man1/gettext.1
@@ -1255,6 +1700,7 @@ usr/lib/preloadable_libintl.so
 #usr/share/man/man1/msgunfmt.1
 #usr/share/man/man1/msguniq.1
 #usr/share/man/man1/ngettext.1
+#usr/share/man/man1/recode-sr-latin.1
 #usr/share/man/man1/xgettext.1
 #usr/share/man/man3/bind_textdomain_codeset.3
 #usr/share/man/man3/bindtextdomain.3
similarity index 62%
rename from config/rootfiles/packages/glib
rename to config/rootfiles/common/glib
index d4913a261a783b0baefc9c978e2a36bb58dd385b..825b9323333a6fcf3f428f4a33943db4e7c81886 100644 (file)
@@ -1,13 +1,27 @@
+#etc/bash_completion.d
+#etc/bash_completion.d/gdbus-bash-completion.sh
+#etc/bash_completion.d/gresource-bash-completion.sh
+#etc/bash_completion.d/gsettings-bash-completion.sh
+#usr/bin/gdbus
+#usr/bin/gdbus-codegen
+#usr/bin/gio-querymodules
+#usr/bin/glib-compile-resources
+#usr/bin/glib-compile-schemas
 #usr/bin/glib-genmarshal
 #usr/bin/glib-gettextize
 #usr/bin/glib-mkenums
 #usr/bin/gobject-query
+#usr/bin/gresource
+#usr/bin/gsettings
 #usr/bin/gtester
 #usr/bin/gtester-report
 #usr/include/gio-unix-2.0
 #usr/include/gio-unix-2.0/gio
 #usr/include/gio-unix-2.0/gio/gdesktopappinfo.h
+#usr/include/gio-unix-2.0/gio/gfiledescriptorbased.h
 #usr/include/gio-unix-2.0/gio/gunixconnection.h
+#usr/include/gio-unix-2.0/gio/gunixcredentialsmessage.h
+#usr/include/gio-unix-2.0/gio/gunixfdlist.h
 #usr/include/gio-unix-2.0/gio/gunixfdmessage.h
 #usr/include/gio-unix-2.0/gio/gunixinputstream.h
 #usr/include/gio-unix-2.0/gio/gunixmounts.h
 #usr/include/gio-unix-2.0/gio/gunixsocketaddress.h
 #usr/include/glib-2.0
 #usr/include/glib-2.0/gio
+#usr/include/glib-2.0/gio/gaction.h
+#usr/include/glib-2.0/gio/gactiongroup.h
+#usr/include/glib-2.0/gio/gactiongroupexporter.h
+#usr/include/glib-2.0/gio/gactionmap.h
 #usr/include/glib-2.0/gio/gappinfo.h
+#usr/include/glib-2.0/gio/gapplication.h
+#usr/include/glib-2.0/gio/gapplicationcommandline.h
 #usr/include/glib-2.0/gio/gasyncinitable.h
 #usr/include/glib-2.0/gio/gasyncresult.h
 #usr/include/glib-2.0/gio/gbufferedinputstream.h
 #usr/include/glib-2.0/gio/gbufferedoutputstream.h
 #usr/include/glib-2.0/gio/gcancellable.h
+#usr/include/glib-2.0/gio/gcharsetconverter.h
 #usr/include/glib-2.0/gio/gcontenttype.h
+#usr/include/glib-2.0/gio/gconverter.h
+#usr/include/glib-2.0/gio/gconverterinputstream.h
+#usr/include/glib-2.0/gio/gconverteroutputstream.h
+#usr/include/glib-2.0/gio/gcredentials.h
 #usr/include/glib-2.0/gio/gdatainputstream.h
 #usr/include/glib-2.0/gio/gdataoutputstream.h
+#usr/include/glib-2.0/gio/gdbusactiongroup.h
+#usr/include/glib-2.0/gio/gdbusaddress.h
+#usr/include/glib-2.0/gio/gdbusauthobserver.h
+#usr/include/glib-2.0/gio/gdbusconnection.h
+#usr/include/glib-2.0/gio/gdbuserror.h
+#usr/include/glib-2.0/gio/gdbusinterface.h
+#usr/include/glib-2.0/gio/gdbusinterfaceskeleton.h
+#usr/include/glib-2.0/gio/gdbusintrospection.h
+#usr/include/glib-2.0/gio/gdbusmenumodel.h
+#usr/include/glib-2.0/gio/gdbusmessage.h
+#usr/include/glib-2.0/gio/gdbusmethodinvocation.h
+#usr/include/glib-2.0/gio/gdbusnameowning.h
+#usr/include/glib-2.0/gio/gdbusnamewatching.h
+#usr/include/glib-2.0/gio/gdbusobject.h
+#usr/include/glib-2.0/gio/gdbusobjectmanager.h
+#usr/include/glib-2.0/gio/gdbusobjectmanagerclient.h
+#usr/include/glib-2.0/gio/gdbusobjectmanagerserver.h
+#usr/include/glib-2.0/gio/gdbusobjectproxy.h
+#usr/include/glib-2.0/gio/gdbusobjectskeleton.h
+#usr/include/glib-2.0/gio/gdbusproxy.h
+#usr/include/glib-2.0/gio/gdbusserver.h
+#usr/include/glib-2.0/gio/gdbusutils.h
 #usr/include/glib-2.0/gio/gdrive.h
 #usr/include/glib-2.0/gio/gemblem.h
 #usr/include/glib-2.0/gio/gemblemedicon.h
@@ -41,6 +88,7 @@
 #usr/include/glib-2.0/gio/gfilteroutputstream.h
 #usr/include/glib-2.0/gio/gicon.h
 #usr/include/glib-2.0/gio/ginetaddress.h
+#usr/include/glib-2.0/gio/ginetaddressmask.h
 #usr/include/glib-2.0/gio/ginetsocketaddress.h
 #usr/include/glib-2.0/gio/ginitable.h
 #usr/include/glib-2.0/gio/ginputstream.h
 #usr/include/glib-2.0/gio/gloadableicon.h
 #usr/include/glib-2.0/gio/gmemoryinputstream.h
 #usr/include/glib-2.0/gio/gmemoryoutputstream.h
+#usr/include/glib-2.0/gio/gmenu.h
+#usr/include/glib-2.0/gio/gmenuexporter.h
+#usr/include/glib-2.0/gio/gmenumodel.h
 #usr/include/glib-2.0/gio/gmount.h
 #usr/include/glib-2.0/gio/gmountoperation.h
 #usr/include/glib-2.0/gio/gnativevolumemonitor.h
 #usr/include/glib-2.0/gio/gnetworkaddress.h
+#usr/include/glib-2.0/gio/gnetworkmonitor.h
 #usr/include/glib-2.0/gio/gnetworkservice.h
 #usr/include/glib-2.0/gio/goutputstream.h
+#usr/include/glib-2.0/gio/gpermission.h
+#usr/include/glib-2.0/gio/gpollableinputstream.h
+#usr/include/glib-2.0/gio/gpollableoutputstream.h
+#usr/include/glib-2.0/gio/gproxy.h
+#usr/include/glib-2.0/gio/gproxyaddress.h
+#usr/include/glib-2.0/gio/gproxyaddressenumerator.h
+#usr/include/glib-2.0/gio/gproxyresolver.h
+#usr/include/glib-2.0/gio/gremoteactiongroup.h
 #usr/include/glib-2.0/gio/gresolver.h
+#usr/include/glib-2.0/gio/gresource.h
 #usr/include/glib-2.0/gio/gseekable.h
+#usr/include/glib-2.0/gio/gsettings.h
+#usr/include/glib-2.0/gio/gsettingsbackend.h
+#usr/include/glib-2.0/gio/gsettingsschema.h
+#usr/include/glib-2.0/gio/gsimpleaction.h
+#usr/include/glib-2.0/gio/gsimpleactiongroup.h
 #usr/include/glib-2.0/gio/gsimpleasyncresult.h
+#usr/include/glib-2.0/gio/gsimplepermission.h
 #usr/include/glib-2.0/gio/gsocket.h
 #usr/include/glib-2.0/gio/gsocketaddress.h
 #usr/include/glib-2.0/gio/gsocketaddressenumerator.h
 #usr/include/glib-2.0/gio/gsocketservice.h
 #usr/include/glib-2.0/gio/gsrvtarget.h
 #usr/include/glib-2.0/gio/gtcpconnection.h
+#usr/include/glib-2.0/gio/gtcpwrapperconnection.h
 #usr/include/glib-2.0/gio/gthemedicon.h
 #usr/include/glib-2.0/gio/gthreadedsocketservice.h
+#usr/include/glib-2.0/gio/gtlsbackend.h
+#usr/include/glib-2.0/gio/gtlscertificate.h
+#usr/include/glib-2.0/gio/gtlsclientconnection.h
+#usr/include/glib-2.0/gio/gtlsconnection.h
+#usr/include/glib-2.0/gio/gtlsdatabase.h
+#usr/include/glib-2.0/gio/gtlsfiledatabase.h
+#usr/include/glib-2.0/gio/gtlsinteraction.h
+#usr/include/glib-2.0/gio/gtlspassword.h
+#usr/include/glib-2.0/gio/gtlsserverconnection.h
 #usr/include/glib-2.0/gio/gvfs.h
 #usr/include/glib-2.0/gio/gvolume.h
 #usr/include/glib-2.0/gio/gvolumemonitor.h
+#usr/include/glib-2.0/gio/gzlibcompressor.h
+#usr/include/glib-2.0/gio/gzlibdecompressor.h
 #usr/include/glib-2.0/glib
 #usr/include/glib-2.0/glib-object.h
+#usr/include/glib-2.0/glib-unix.h
 #usr/include/glib-2.0/glib.h
+#usr/include/glib-2.0/glib/deprecated
+#usr/include/glib-2.0/glib/deprecated/gallocator.h
+#usr/include/glib-2.0/glib/deprecated/gcache.h
+#usr/include/glib-2.0/glib/deprecated/gcompletion.h
+#usr/include/glib-2.0/glib/deprecated/gmain.h
+#usr/include/glib-2.0/glib/deprecated/grel.h
+#usr/include/glib-2.0/glib/deprecated/gthread.h
 #usr/include/glib-2.0/glib/galloca.h
 #usr/include/glib-2.0/glib/garray.h
 #usr/include/glib-2.0/glib/gasyncqueue.h
 #usr/include/glib-2.0/glib/gatomic.h
 #usr/include/glib-2.0/glib/gbacktrace.h
 #usr/include/glib-2.0/glib/gbase64.h
+#usr/include/glib-2.0/glib/gbitlock.h
 #usr/include/glib-2.0/glib/gbookmarkfile.h
-#usr/include/glib-2.0/glib/gcache.h
+#usr/include/glib-2.0/glib/gbytes.h
+#usr/include/glib-2.0/glib/gcharset.h
 #usr/include/glib-2.0/glib/gchecksum.h
-#usr/include/glib-2.0/glib/gcompletion.h
 #usr/include/glib-2.0/glib/gconvert.h
 #usr/include/glib-2.0/glib/gdataset.h
 #usr/include/glib-2.0/glib/gdate.h
+#usr/include/glib-2.0/glib/gdatetime.h
 #usr/include/glib-2.0/glib/gdir.h
+#usr/include/glib-2.0/glib/genviron.h
 #usr/include/glib-2.0/glib/gerror.h
 #usr/include/glib-2.0/glib/gfileutils.h
+#usr/include/glib-2.0/glib/ggettext.h
 #usr/include/glib-2.0/glib/ghash.h
+#usr/include/glib-2.0/glib/ghmac.h
 #usr/include/glib-2.0/glib/ghook.h
 #usr/include/glib-2.0/glib/ghostutils.h
 #usr/include/glib-2.0/glib/gi18n-lib.h
 #usr/include/glib-2.0/glib/gqueue.h
 #usr/include/glib-2.0/glib/grand.h
 #usr/include/glib-2.0/glib/gregex.h
-#usr/include/glib-2.0/glib/grel.h
 #usr/include/glib-2.0/glib/gscanner.h
 #usr/include/glib-2.0/glib/gsequence.h
 #usr/include/glib-2.0/glib/gshell.h
 #usr/include/glib-2.0/glib/gstdio.h
 #usr/include/glib-2.0/glib/gstrfuncs.h
 #usr/include/glib-2.0/glib/gstring.h
+#usr/include/glib-2.0/glib/gstringchunk.h
 #usr/include/glib-2.0/glib/gtestutils.h
 #usr/include/glib-2.0/glib/gthread.h
 #usr/include/glib-2.0/glib/gthreadpool.h
 #usr/include/glib-2.0/glib/gtimer.h
+#usr/include/glib-2.0/glib/gtimezone.h
+#usr/include/glib-2.0/glib/gtrashstack.h
 #usr/include/glib-2.0/glib/gtree.h
 #usr/include/glib-2.0/glib/gtypes.h
 #usr/include/glib-2.0/glib/gunicode.h
 #usr/include/glib-2.0/glib/gurifuncs.h
 #usr/include/glib-2.0/glib/gutils.h
+#usr/include/glib-2.0/glib/gvariant.h
+#usr/include/glib-2.0/glib/gvarianttype.h
+#usr/include/glib-2.0/glib/gversion.h
+#usr/include/glib-2.0/glib/gversionmacros.h
 #usr/include/glib-2.0/glib/gwin32.h
 #usr/include/glib-2.0/gmodule.h
 #usr/include/glib-2.0/gobject
+#usr/include/glib-2.0/gobject/gbinding.h
 #usr/include/glib-2.0/gobject/gboxed.h
 #usr/include/glib-2.0/gobject/gclosure.h
 #usr/include/glib-2.0/gobject/genums.h
+#usr/include/glib-2.0/gobject/glib-types.h
 #usr/include/glib-2.0/gobject/gmarshal.h
 #usr/include/glib-2.0/gobject/gobject.h
 #usr/include/glib-2.0/gobject/gobjectnotifyqueue.c
 #usr/include/glib-2.0/gobject/gvaluearray.h
 #usr/include/glib-2.0/gobject/gvaluecollector.h
 #usr/include/glib-2.0/gobject/gvaluetypes.h
+#usr/lib/gdbus-2.0
+#usr/lib/gdbus-2.0/codegen
+#usr/lib/gdbus-2.0/codegen/__init__.py
+#usr/lib/gdbus-2.0/codegen/__init__.pyc
+#usr/lib/gdbus-2.0/codegen/__init__.pyo
+#usr/lib/gdbus-2.0/codegen/codegen.py
+#usr/lib/gdbus-2.0/codegen/codegen.pyc
+#usr/lib/gdbus-2.0/codegen/codegen.pyo
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.py
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyc
+#usr/lib/gdbus-2.0/codegen/codegen_docbook.pyo
+#usr/lib/gdbus-2.0/codegen/codegen_main.py
+#usr/lib/gdbus-2.0/codegen/codegen_main.pyc
+#usr/lib/gdbus-2.0/codegen/codegen_main.pyo
+#usr/lib/gdbus-2.0/codegen/config.py
+#usr/lib/gdbus-2.0/codegen/config.pyc
+#usr/lib/gdbus-2.0/codegen/config.pyo
+#usr/lib/gdbus-2.0/codegen/dbustypes.py
+#usr/lib/gdbus-2.0/codegen/dbustypes.pyc
+#usr/lib/gdbus-2.0/codegen/dbustypes.pyo
+#usr/lib/gdbus-2.0/codegen/parser.py
+#usr/lib/gdbus-2.0/codegen/parser.pyc
+#usr/lib/gdbus-2.0/codegen/parser.pyo
+#usr/lib/gdbus-2.0/codegen/utils.py
+#usr/lib/gdbus-2.0/codegen/utils.pyc
+#usr/lib/gdbus-2.0/codegen/utils.pyo
 #usr/lib/gio
 #usr/lib/gio/modules
 #usr/lib/glib-2.0
 #usr/lib/glib-2.0/include
 #usr/lib/glib-2.0/include/glibconfig.h
 #usr/lib/libgio-2.0.la
-usr/lib/libgio-2.0.so
+#usr/lib/libgio-2.0.so
 usr/lib/libgio-2.0.so.0
-usr/lib/libgio-2.0.so.0.2200.2
+usr/lib/libgio-2.0.so.0.3200.3
 #usr/lib/libglib-2.0.la
-usr/lib/libglib-2.0.so
+#usr/lib/libglib-2.0.so
 usr/lib/libglib-2.0.so.0
-usr/lib/libglib-2.0.so.0.2200.2
+usr/lib/libglib-2.0.so.0.3200.3
 #usr/lib/libgmodule-2.0.la
-usr/lib/libgmodule-2.0.so
+#usr/lib/libgmodule-2.0.so
 usr/lib/libgmodule-2.0.so.0
-usr/lib/libgmodule-2.0.so.0.2200.2
+usr/lib/libgmodule-2.0.so.0.3200.3
 #usr/lib/libgobject-2.0.la
-usr/lib/libgobject-2.0.so
+#usr/lib/libgobject-2.0.so
 usr/lib/libgobject-2.0.so.0
-usr/lib/libgobject-2.0.so.0.2200.2
+usr/lib/libgobject-2.0.so.0.3200.3
 #usr/lib/libgthread-2.0.la
-usr/lib/libgthread-2.0.so
+#usr/lib/libgthread-2.0.so
 usr/lib/libgthread-2.0.so.0
-usr/lib/libgthread-2.0.so.0.2200.2
+usr/lib/libgthread-2.0.so.0.3200.3
 #usr/lib/pkgconfig/gio-2.0.pc
 #usr/lib/pkgconfig/gio-unix-2.0.pc
 #usr/lib/pkgconfig/glib-2.0.pc
@@ -198,31 +324,63 @@ usr/lib/libgthread-2.0.so.0.2200.2
 #usr/lib/pkgconfig/gthread-2.0.pc
 #usr/share/aclocal/glib-2.0.m4
 #usr/share/aclocal/glib-gettext.m4
+#usr/share/aclocal/gsettings.m4
 #usr/share/gdb
 #usr/share/gdb/auto-load
-usr/share/gdb/auto-load/libglib-2.0.so.0.2200.2-gdb.py
-usr/share/gdb/auto-load/libgobject-2.0.so.0.2200.2-gdb.py
+#usr/share/gdb/auto-load/libglib-2.0.so.0.3200.3-gdb.py
+#usr/share/gdb/auto-load/libgobject-2.0.so.0.3200.3-gdb.py
 #usr/share/glib-2.0
 #usr/share/glib-2.0/gdb
-usr/share/glib-2.0/gdb/glib.py
-usr/share/glib-2.0/gdb/gobject.py
+#usr/share/glib-2.0/gdb/glib.py
+#usr/share/glib-2.0/gdb/gobject.py
 #usr/share/glib-2.0/gettext
 #usr/share/glib-2.0/gettext/mkinstalldirs
 #usr/share/glib-2.0/gettext/po
 #usr/share/glib-2.0/gettext/po/Makefile.in.in
+#usr/share/glib-2.0/schemas
+#usr/share/glib-2.0/schemas/gschema.dtd
 #usr/share/gtk-doc/html/gio
+#usr/share/gtk-doc/html/gio/ExampleAnimal.html
+#usr/share/gtk-doc/html/gio/ExampleCat.html
+#usr/share/gtk-doc/html/gio/ExampleObject.html
+#usr/share/gtk-doc/html/gio/ExampleObjectManagerClient.html
+#usr/share/gtk-doc/html/gio/GAction.html
+#usr/share/gtk-doc/html/gio/GActionGroup.html
+#usr/share/gtk-doc/html/gio/GActionMap.html
 #usr/share/gtk-doc/html/gio/GAppInfo.html
+#usr/share/gtk-doc/html/gio/GApplication.html
+#usr/share/gtk-doc/html/gio/GApplicationCommandLine.html
 #usr/share/gtk-doc/html/gio/GAsyncInitable.html
 #usr/share/gtk-doc/html/gio/GAsyncResult.html
 #usr/share/gtk-doc/html/gio/GBufferedInputStream.html
 #usr/share/gtk-doc/html/gio/GBufferedOutputStream.html
 #usr/share/gtk-doc/html/gio/GCancellable.html
+#usr/share/gtk-doc/html/gio/GCharsetConverter.html
+#usr/share/gtk-doc/html/gio/GConverter.html
+#usr/share/gtk-doc/html/gio/GCredentials.html
+#usr/share/gtk-doc/html/gio/GDBusActionGroup.html
+#usr/share/gtk-doc/html/gio/GDBusAuthObserver.html
+#usr/share/gtk-doc/html/gio/GDBusConnection.html
+#usr/share/gtk-doc/html/gio/GDBusInterface.html
+#usr/share/gtk-doc/html/gio/GDBusInterfaceSkeleton.html
+#usr/share/gtk-doc/html/gio/GDBusMenuModel.html
+#usr/share/gtk-doc/html/gio/GDBusMessage.html
+#usr/share/gtk-doc/html/gio/GDBusMethodInvocation.html
+#usr/share/gtk-doc/html/gio/GDBusObject.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManager.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManagerClient.html
+#usr/share/gtk-doc/html/gio/GDBusObjectManagerServer.html
+#usr/share/gtk-doc/html/gio/GDBusObjectProxy.html
+#usr/share/gtk-doc/html/gio/GDBusObjectSkeleton.html
+#usr/share/gtk-doc/html/gio/GDBusProxy.html
+#usr/share/gtk-doc/html/gio/GDBusServer.html
 #usr/share/gtk-doc/html/gio/GDataInputStream.html
 #usr/share/gtk-doc/html/gio/GDataOutputStream.html
 #usr/share/gtk-doc/html/gio/GDrive.html
 #usr/share/gtk-doc/html/gio/GEmblem.html
 #usr/share/gtk-doc/html/gio/GEmblemedIcon.html
 #usr/share/gtk-doc/html/gio/GFile.html
+#usr/share/gtk-doc/html/gio/GFileDescriptorBased.html
 #usr/share/gtk-doc/html/gio/GFileEnumerator.html
 #usr/share/gtk-doc/html/gio/GFileIOStream.html
 #usr/share/gtk-doc/html/gio/GFileIcon.html
@@ -243,14 +401,29 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GLoadableIcon.html
 #usr/share/gtk-doc/html/gio/GMemoryInputStream.html
 #usr/share/gtk-doc/html/gio/GMemoryOutputStream.html
+#usr/share/gtk-doc/html/gio/GMenu.html
+#usr/share/gtk-doc/html/gio/GMenuModel.html
 #usr/share/gtk-doc/html/gio/GMount.html
 #usr/share/gtk-doc/html/gio/GMountOperation.html
 #usr/share/gtk-doc/html/gio/GNetworkAddress.html
+#usr/share/gtk-doc/html/gio/GNetworkMonitor.html
 #usr/share/gtk-doc/html/gio/GNetworkService.html
 #usr/share/gtk-doc/html/gio/GOutputStream.html
+#usr/share/gtk-doc/html/gio/GPermission.html
+#usr/share/gtk-doc/html/gio/GPollableInputStream.html
+#usr/share/gtk-doc/html/gio/GPollableOutputStream.html
+#usr/share/gtk-doc/html/gio/GProxy.html
+#usr/share/gtk-doc/html/gio/GProxyAddress.html
+#usr/share/gtk-doc/html/gio/GProxyResolver.html
+#usr/share/gtk-doc/html/gio/GRemoteActionGroup.html
 #usr/share/gtk-doc/html/gio/GResolver.html
 #usr/share/gtk-doc/html/gio/GSeekable.html
+#usr/share/gtk-doc/html/gio/GSettings.html
+#usr/share/gtk-doc/html/gio/GSettingsBackend.html
+#usr/share/gtk-doc/html/gio/GSimpleAction.html
+#usr/share/gtk-doc/html/gio/GSimpleActionGroup.html
 #usr/share/gtk-doc/html/gio/GSimpleAsyncResult.html
+#usr/share/gtk-doc/html/gio/GSimplePermission.html
 #usr/share/gtk-doc/html/gio/GSocket.html
 #usr/share/gtk-doc/html/gio/GSocketAddress.html
 #usr/share/gtk-doc/html/gio/GSocketClient.html
@@ -259,8 +432,23 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GSocketControlMessage.html
 #usr/share/gtk-doc/html/gio/GSocketListener.html
 #usr/share/gtk-doc/html/gio/GSocketService.html
+#usr/share/gtk-doc/html/gio/GSrvTarget.html
+#usr/share/gtk-doc/html/gio/GTcpConnection.html
+#usr/share/gtk-doc/html/gio/GTcpWrapperConnection.html
 #usr/share/gtk-doc/html/gio/GThemedIcon.html
 #usr/share/gtk-doc/html/gio/GThreadedSocketService.html
+#usr/share/gtk-doc/html/gio/GTlsBackend.html
+#usr/share/gtk-doc/html/gio/GTlsCertificate.html
+#usr/share/gtk-doc/html/gio/GTlsClientConnection.html
+#usr/share/gtk-doc/html/gio/GTlsConnection.html
+#usr/share/gtk-doc/html/gio/GTlsDatabase.html
+#usr/share/gtk-doc/html/gio/GTlsFileDatabase.html
+#usr/share/gtk-doc/html/gio/GTlsInteraction.html
+#usr/share/gtk-doc/html/gio/GTlsPassword.html
+#usr/share/gtk-doc/html/gio/GTlsServerConnection.html
+#usr/share/gtk-doc/html/gio/GUnixConnection.html
+#usr/share/gtk-doc/html/gio/GUnixCredentialsMessage.html
+#usr/share/gtk-doc/html/gio/GUnixFDList.html
 #usr/share/gtk-doc/html/gio/GUnixFDMessage.html
 #usr/share/gtk-doc/html/gio/GUnixInputStream.html
 #usr/share/gtk-doc/html/gio/GUnixOutputStream.html
@@ -268,55 +456,129 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gio/GVfs.html
 #usr/share/gtk-doc/html/gio/GVolume.html
 #usr/share/gtk-doc/html/gio/GVolumeMonitor.html
+#usr/share/gtk-doc/html/gio/GZlibCompressor.html
+#usr/share/gtk-doc/html/gio/GZlibDecompressor.html
+#usr/share/gtk-doc/html/gio/annotation-glossary.html
+#usr/share/gtk-doc/html/gio/api-index-2-18.html
+#usr/share/gtk-doc/html/gio/api-index-2-20.html
+#usr/share/gtk-doc/html/gio/api-index-2-22.html
+#usr/share/gtk-doc/html/gio/api-index-2-24.html
+#usr/share/gtk-doc/html/gio/api-index-2-26.html
+#usr/share/gtk-doc/html/gio/api-index-2-28.html
+#usr/share/gtk-doc/html/gio/api-index-2-30.html
+#usr/share/gtk-doc/html/gio/api-index-2-32.html
+#usr/share/gtk-doc/html/gio/api-index-deprecated.html
+#usr/share/gtk-doc/html/gio/api-index-full.html
+#usr/share/gtk-doc/html/gio/application.html
 #usr/share/gtk-doc/html/gio/async.html
 #usr/share/gtk-doc/html/gio/ch01.html
 #usr/share/gtk-doc/html/gio/ch02.html
 #usr/share/gtk-doc/html/gio/ch03.html
-#usr/share/gtk-doc/html/gio/ch18.html
-#usr/share/gtk-doc/html/gio/ch19.html
-#usr/share/gtk-doc/html/gio/ch19s02.html
-#usr/share/gtk-doc/html/gio/ch19s03.html
+#usr/share/gtk-doc/html/gio/ch27.html
+#usr/share/gtk-doc/html/gio/ch28.html
+#usr/share/gtk-doc/html/gio/ch28s02.html
+#usr/share/gtk-doc/html/gio/ch28s03.html
+#usr/share/gtk-doc/html/gio/ch29.html
+#usr/share/gtk-doc/html/gio/ch29s02.html
+#usr/share/gtk-doc/html/gio/ch29s03.html
+#usr/share/gtk-doc/html/gio/ch29s04.html
+#usr/share/gtk-doc/html/gio/ch29s05.html
+#usr/share/gtk-doc/html/gio/ch29s06.html
+#usr/share/gtk-doc/html/gio/ch29s07.html
+#usr/share/gtk-doc/html/gio/ch30.html
+#usr/share/gtk-doc/html/gio/ch30s02.html
+#usr/share/gtk-doc/html/gio/ch30s03.html
+#usr/share/gtk-doc/html/gio/ch30s04.html
+#usr/share/gtk-doc/html/gio/ch30s05.html
+#usr/share/gtk-doc/html/gio/conversion.html
 #usr/share/gtk-doc/html/gio/extending-gio.html
 #usr/share/gtk-doc/html/gio/extending.html
 #usr/share/gtk-doc/html/gio/failable_initialization.html
 #usr/share/gtk-doc/html/gio/file_mon.html
 #usr/share/gtk-doc/html/gio/file_ops.html
+#usr/share/gtk-doc/html/gio/gdbus-codegen.html
+#usr/share/gtk-doc/html/gio/gdbus-convenience.html
+#usr/share/gtk-doc/html/gio/gdbus-lowlevel.html
+#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Animal.html
+#usr/share/gtk-doc/html/gio/gdbus-org.gtk.GDBus.Example.ObjectManager.Cat.html
+#usr/share/gtk-doc/html/gio/gdbus.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Addresses.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Introspection-Data.html
+#usr/share/gtk-doc/html/gio/gio-D-Bus-Utilities.html
 #usr/share/gtk-doc/html/gio/gio-Desktop-file-based-GAppInfo.html
 #usr/share/gtk-doc/html/gio/gio-Extension-Points.html
+#usr/share/gtk-doc/html/gio/gio-GActionGroup-exporter.html
 #usr/share/gtk-doc/html/gio/gio-GContentType.html
+#usr/share/gtk-doc/html/gio/gio-GConverterInputstream.html
+#usr/share/gtk-doc/html/gio/gio-GConverterOutputstream.html
+#usr/share/gtk-doc/html/gio/gio-GDBusError.html
 #usr/share/gtk-doc/html/gio/gio-GFileAttribute.html
 #usr/share/gtk-doc/html/gio/gio-GIOError.html
 #usr/share/gtk-doc/html/gio/gio-GIOScheduler.html
-#usr/share/gtk-doc/html/gio/gio-GSrvTarget.html
+#usr/share/gtk-doc/html/gio/gio-GInetAddressMask.html
+#usr/share/gtk-doc/html/gio/gio-GMenuModel-exporter.html
+#usr/share/gtk-doc/html/gio/gio-GResource.html
+#usr/share/gtk-doc/html/gio/gio-GSettingsSchema-GSettingsSchemaSource.html
+#usr/share/gtk-doc/html/gio/gio-GWin32InputStream.html
+#usr/share/gtk-doc/html/gio/gio-GWin32OutputStream.html
+#usr/share/gtk-doc/html/gio/gio-Owning-Bus-Names.html
+#usr/share/gtk-doc/html/gio/gio-TLS-Overview.html
 #usr/share/gtk-doc/html/gio/gio-Unix-Mounts.html
+#usr/share/gtk-doc/html/gio/gio-Watching-Bus-Names.html
 #usr/share/gtk-doc/html/gio/gio-hierarchy.html
-#usr/share/gtk-doc/html/gio/gio.devhelp
+#usr/share/gtk-doc/html/gio/gio-querymodules.html
 #usr/share/gtk-doc/html/gio/gio.devhelp2
+#usr/share/gtk-doc/html/gio/glib-compile-resources.html
+#usr/share/gtk-doc/html/gio/glib-compile-schemas.html
+#usr/share/gtk-doc/html/gio/gresource-tool.html
+#usr/share/gtk-doc/html/gio/gsettings-tool.html
 #usr/share/gtk-doc/html/gio/gvfs-overview.png
 #usr/share/gtk-doc/html/gio/highlevel-socket.html
 #usr/share/gtk-doc/html/gio/home.png
 #usr/share/gtk-doc/html/gio/icons.html
 #usr/share/gtk-doc/html/gio/index.html
 #usr/share/gtk-doc/html/gio/index.sgml
-#usr/share/gtk-doc/html/gio/ix01.html
-#usr/share/gtk-doc/html/gio/ix02.html
-#usr/share/gtk-doc/html/gio/ix03.html
-#usr/share/gtk-doc/html/gio/ix04.html
-#usr/share/gtk-doc/html/gio/ix05.html
 #usr/share/gtk-doc/html/gio/left.png
+#usr/share/gtk-doc/html/gio/menu-example.png
+#usr/share/gtk-doc/html/gio/menu-model.png
 #usr/share/gtk-doc/html/gio/migrating.html
 #usr/share/gtk-doc/html/gio/networking.html
+#usr/share/gtk-doc/html/gio/permissions.html
 #usr/share/gtk-doc/html/gio/pt01.html
 #usr/share/gtk-doc/html/gio/pt02.html
 #usr/share/gtk-doc/html/gio/resolver.html
+#usr/share/gtk-doc/html/gio/resources.html
 #usr/share/gtk-doc/html/gio/right.png
+#usr/share/gtk-doc/html/gio/settings.html
 #usr/share/gtk-doc/html/gio/streaming.html
 #usr/share/gtk-doc/html/gio/style.css
+#usr/share/gtk-doc/html/gio/tls.html
+#usr/share/gtk-doc/html/gio/tools.html
 #usr/share/gtk-doc/html/gio/types.html
 #usr/share/gtk-doc/html/gio/up.png
 #usr/share/gtk-doc/html/gio/utils.html
 #usr/share/gtk-doc/html/gio/volume_mon.html
 #usr/share/gtk-doc/html/glib
+#usr/share/gtk-doc/html/glib/annotation-glossary.html
+#usr/share/gtk-doc/html/glib/api-index-2-10.html
+#usr/share/gtk-doc/html/glib/api-index-2-12.html
+#usr/share/gtk-doc/html/glib/api-index-2-14.html
+#usr/share/gtk-doc/html/glib/api-index-2-16.html
+#usr/share/gtk-doc/html/glib/api-index-2-18.html
+#usr/share/gtk-doc/html/glib/api-index-2-2.html
+#usr/share/gtk-doc/html/glib/api-index-2-20.html
+#usr/share/gtk-doc/html/glib/api-index-2-22.html
+#usr/share/gtk-doc/html/glib/api-index-2-24.html
+#usr/share/gtk-doc/html/glib/api-index-2-26.html
+#usr/share/gtk-doc/html/glib/api-index-2-28.html
+#usr/share/gtk-doc/html/glib/api-index-2-30.html
+#usr/share/gtk-doc/html/glib/api-index-2-32.html
+#usr/share/gtk-doc/html/glib/api-index-2-4.html
+#usr/share/gtk-doc/html/glib/api-index-2-6.html
+#usr/share/gtk-doc/html/glib/api-index-2-8.html
+#usr/share/gtk-doc/html/glib/api-index-deprecated.html
+#usr/share/gtk-doc/html/glib/api-index-full.html
+#usr/share/gtk-doc/html/glib/deprecated.html
 #usr/share/gtk-doc/html/glib/file-name-encodings.png
 #usr/share/gtk-doc/html/glib/glib-Arrays.html
 #usr/share/gtk-doc/html/glib/glib-Asynchronous-Queues.html
@@ -332,13 +594,19 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Character-Set-Conversion.html
 #usr/share/gtk-doc/html/glib/glib-Commandline-option-parser.html
 #usr/share/gtk-doc/html/glib/glib-Data-Checksums.html
+#usr/share/gtk-doc/html/glib/glib-Data-HMACs.html
 #usr/share/gtk-doc/html/glib/glib-Datasets.html
 #usr/share/gtk-doc/html/glib/glib-Date-and-Time-Functions.html
+#usr/share/gtk-doc/html/glib/glib-Deprecated-Thread-APIs.html
 #usr/share/gtk-doc/html/glib/glib-Double-ended-Queues.html
 #usr/share/gtk-doc/html/glib/glib-Doubly-Linked-Lists.html
 #usr/share/gtk-doc/html/glib/glib-Dynamic-Loading-of-Modules.html
 #usr/share/gtk-doc/html/glib/glib-Error-Reporting.html
 #usr/share/gtk-doc/html/glib/glib-File-Utilities.html
+#usr/share/gtk-doc/html/glib/glib-GDateTime.html
+#usr/share/gtk-doc/html/glib/glib-GTimeZone.html
+#usr/share/gtk-doc/html/glib/glib-GVariant.html
+#usr/share/gtk-doc/html/glib/glib-GVariantType.html
 #usr/share/gtk-doc/html/glib/glib-Glob-style-pattern-matching.html
 #usr/share/gtk-doc/html/glib/glib-Hash-Tables.html
 #usr/share/gtk-doc/html/glib/glib-Hook-Functions.html
@@ -348,10 +616,7 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Key-value-file-parser.html
 #usr/share/gtk-doc/html/glib/glib-Keyed-Data-Lists.html
 #usr/share/gtk-doc/html/glib/glib-Lexical-Scanner.html
-#usr/share/gtk-doc/html/glib/glib-Limits-of-Basic-Types.html
 #usr/share/gtk-doc/html/glib/glib-Memory-Allocation.html
-#usr/share/gtk-doc/html/glib/glib-Memory-Allocators.html
-#usr/share/gtk-doc/html/glib/glib-Memory-Chunks.html
 #usr/share/gtk-doc/html/glib/glib-Memory-Slices.html
 #usr/share/gtk-doc/html/glib/glib-Message-Logging.html
 #usr/share/gtk-doc/html/glib/glib-Miscellaneous-Macros.html
@@ -379,6 +644,7 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-Timers.html
 #usr/share/gtk-doc/html/glib/glib-Trash-Stacks.html
 #usr/share/gtk-doc/html/glib/glib-Type-Conversion-Macros.html
+#usr/share/gtk-doc/html/glib/glib-UNIX-specific-utilities-and-integration.html
 #usr/share/gtk-doc/html/glib/glib-URI-Functions.html
 #usr/share/gtk-doc/html/glib/glib-Unicode-Manipulation.html
 #usr/share/gtk-doc/html/glib/glib-Version-Information.html
@@ -396,27 +662,15 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/glib-resources.html
 #usr/share/gtk-doc/html/glib/glib-running.html
 #usr/share/gtk-doc/html/glib/glib-utilities.html
-#usr/share/gtk-doc/html/glib/glib.devhelp
 #usr/share/gtk-doc/html/glib/glib.devhelp2
 #usr/share/gtk-doc/html/glib/glib.html
 #usr/share/gtk-doc/html/glib/gtester-report.html
 #usr/share/gtk-doc/html/glib/gtester.html
+#usr/share/gtk-doc/html/glib/gvariant-format-strings.html
+#usr/share/gtk-doc/html/glib/gvariant-text.html
 #usr/share/gtk-doc/html/glib/home.png
 #usr/share/gtk-doc/html/glib/index.html
 #usr/share/gtk-doc/html/glib/index.sgml
-#usr/share/gtk-doc/html/glib/ix01.html
-#usr/share/gtk-doc/html/glib/ix02.html
-#usr/share/gtk-doc/html/glib/ix03.html
-#usr/share/gtk-doc/html/glib/ix04.html
-#usr/share/gtk-doc/html/glib/ix05.html
-#usr/share/gtk-doc/html/glib/ix06.html
-#usr/share/gtk-doc/html/glib/ix07.html
-#usr/share/gtk-doc/html/glib/ix08.html
-#usr/share/gtk-doc/html/glib/ix09.html
-#usr/share/gtk-doc/html/glib/ix10.html
-#usr/share/gtk-doc/html/glib/ix11.html
-#usr/share/gtk-doc/html/glib/ix12.html
-#usr/share/gtk-doc/html/glib/ix13.html
 #usr/share/gtk-doc/html/glib/left.png
 #usr/share/gtk-doc/html/glib/mainloop-states.gif
 #usr/share/gtk-doc/html/glib/right.png
@@ -424,8 +678,26 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/glib/tools.html
 #usr/share/gtk-doc/html/glib/up.png
 #usr/share/gtk-doc/html/gobject
+#usr/share/gtk-doc/html/gobject/GBinding.html
 #usr/share/gtk-doc/html/gobject/GTypeModule.html
 #usr/share/gtk-doc/html/gobject/GTypePlugin.html
+#usr/share/gtk-doc/html/gobject/annotation-glossary.html
+#usr/share/gtk-doc/html/gobject/api-index-2-10.html
+#usr/share/gtk-doc/html/gobject/api-index-2-12.html
+#usr/share/gtk-doc/html/gobject/api-index-2-14.html
+#usr/share/gtk-doc/html/gobject/api-index-2-18.html
+#usr/share/gtk-doc/html/gobject/api-index-2-2.html
+#usr/share/gtk-doc/html/gobject/api-index-2-22.html
+#usr/share/gtk-doc/html/gobject/api-index-2-24.html
+#usr/share/gtk-doc/html/gobject/api-index-2-26.html
+#usr/share/gtk-doc/html/gobject/api-index-2-28.html
+#usr/share/gtk-doc/html/gobject/api-index-2-30.html
+#usr/share/gtk-doc/html/gobject/api-index-2-32.html
+#usr/share/gtk-doc/html/gobject/api-index-2-4.html
+#usr/share/gtk-doc/html/gobject/api-index-2-6.html
+#usr/share/gtk-doc/html/gobject/api-index-2-8.html
+#usr/share/gtk-doc/html/gobject/api-index-deprecated.html
+#usr/share/gtk-doc/html/gobject/api-index-full.html
 #usr/share/gtk-doc/html/gobject/ch01s02.html
 #usr/share/gtk-doc/html/gobject/ch06s03.html
 #usr/share/gtk-doc/html/gobject/chapter-gobject.html
@@ -449,7 +721,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/gobject-memory.html
 #usr/share/gtk-doc/html/gobject/gobject-properties.html
 #usr/share/gtk-doc/html/gobject/gobject-query.html
-#usr/share/gtk-doc/html/gobject/gobject.devhelp
 #usr/share/gtk-doc/html/gobject/gobject.devhelp2
 #usr/share/gtk-doc/html/gobject/gtype-conventions.html
 #usr/share/gtk-doc/html/gobject/gtype-instantiable-classed.html
@@ -468,17 +739,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/howto-signals.html
 #usr/share/gtk-doc/html/gobject/index.html
 #usr/share/gtk-doc/html/gobject/index.sgml
-#usr/share/gtk-doc/html/gobject/ix01.html
-#usr/share/gtk-doc/html/gobject/ix02.html
-#usr/share/gtk-doc/html/gobject/ix03.html
-#usr/share/gtk-doc/html/gobject/ix04.html
-#usr/share/gtk-doc/html/gobject/ix05.html
-#usr/share/gtk-doc/html/gobject/ix06.html
-#usr/share/gtk-doc/html/gobject/ix07.html
-#usr/share/gtk-doc/html/gobject/ix08.html
-#usr/share/gtk-doc/html/gobject/ix09.html
-#usr/share/gtk-doc/html/gobject/ix10.html
-#usr/share/gtk-doc/html/gobject/ix11.html
 #usr/share/gtk-doc/html/gobject/left.png
 #usr/share/gtk-doc/html/gobject/pr01.html
 #usr/share/gtk-doc/html/gobject/pt01.html
@@ -495,11 +755,17 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/gtk-doc/html/gobject/tools-refdb.html
 #usr/share/gtk-doc/html/gobject/tools-vala.html
 #usr/share/gtk-doc/html/gobject/up.png
+#usr/share/locale/af
+#usr/share/locale/af/LC_MESSAGES
+#usr/share/locale/af/LC_MESSAGES/glib20.mo
 #usr/share/locale/am
 #usr/share/locale/am/LC_MESSAGES
 #usr/share/locale/am/LC_MESSAGES/glib20.mo
 #usr/share/locale/ar/LC_MESSAGES/glib20.mo
 #usr/share/locale/as/LC_MESSAGES/glib20.mo
+#usr/share/locale/ast
+#usr/share/locale/ast/LC_MESSAGES
+#usr/share/locale/ast/LC_MESSAGES/glib20.mo
 #usr/share/locale/az
 #usr/share/locale/az/LC_MESSAGES
 #usr/share/locale/az/LC_MESSAGES/glib20.mo
@@ -523,8 +789,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/dz/LC_MESSAGES
 #usr/share/locale/dz/LC_MESSAGES/glib20.mo
 #usr/share/locale/el/LC_MESSAGES/glib20.mo
-#usr/share/locale/en_CA
-#usr/share/locale/en_CA/LC_MESSAGES
+#usr/share/locale/en@shaw
+#usr/share/locale/en@shaw/LC_MESSAGES
+#usr/share/locale/en@shaw/LC_MESSAGES/glib20.mo
 #usr/share/locale/en_CA/LC_MESSAGES/glib20.mo
 #usr/share/locale/en_GB/LC_MESSAGES/glib20.mo
 #usr/share/locale/eo
@@ -540,8 +807,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/fa/LC_MESSAGES/glib20.mo
 #usr/share/locale/fi/LC_MESSAGES/glib20.mo
 #usr/share/locale/fr/LC_MESSAGES/glib20.mo
-#usr/share/locale/ga
-#usr/share/locale/ga/LC_MESSAGES
 #usr/share/locale/ga/LC_MESSAGES/glib20.mo
 #usr/share/locale/gl/LC_MESSAGES/glib20.mo
 #usr/share/locale/gu/LC_MESSAGES/glib20.mo
@@ -555,6 +820,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/it/LC_MESSAGES/glib20.mo
 #usr/share/locale/ja/LC_MESSAGES/glib20.mo
 #usr/share/locale/ka/LC_MESSAGES/glib20.mo
+#usr/share/locale/kk
+#usr/share/locale/kk/LC_MESSAGES
+#usr/share/locale/kk/LC_MESSAGES/glib20.mo
 #usr/share/locale/kn/LC_MESSAGES/glib20.mo
 #usr/share/locale/ko/LC_MESSAGES/glib20.mo
 #usr/share/locale/ku/LC_MESSAGES/glib20.mo
@@ -574,6 +842,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/mr/LC_MESSAGES/glib20.mo
 #usr/share/locale/ms/LC_MESSAGES/glib20.mo
 #usr/share/locale/nb/LC_MESSAGES/glib20.mo
+#usr/share/locale/nds
+#usr/share/locale/nds/LC_MESSAGES
+#usr/share/locale/nds/LC_MESSAGES/glib20.mo
 #usr/share/locale/ne
 #usr/share/locale/ne/LC_MESSAGES
 #usr/share/locale/ne/LC_MESSAGES/glib20.mo
@@ -592,8 +863,6 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/pt_BR/LC_MESSAGES/glib20.mo
 #usr/share/locale/ro/LC_MESSAGES/glib20.mo
 #usr/share/locale/ru/LC_MESSAGES/glib20.mo
-#usr/share/locale/rw
-#usr/share/locale/rw/LC_MESSAGES
 #usr/share/locale/rw/LC_MESSAGES/glib20.mo
 #usr/share/locale/si/LC_MESSAGES/glib20.mo
 #usr/share/locale/sk/LC_MESSAGES/glib20.mo
@@ -619,6 +888,9 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/tt
 #usr/share/locale/tt/LC_MESSAGES
 #usr/share/locale/tt/LC_MESSAGES/glib20.mo
+#usr/share/locale/ug
+#usr/share/locale/ug/LC_MESSAGES
+#usr/share/locale/ug/LC_MESSAGES/glib20.mo
 #usr/share/locale/uk/LC_MESSAGES/glib20.mo
 #usr/share/locale/vi/LC_MESSAGES/glib20.mo
 #usr/share/locale/wa/LC_MESSAGES/glib20.mo
@@ -633,9 +905,16 @@ usr/share/glib-2.0/gdb/gobject.py
 #usr/share/locale/zh_HK/LC_MESSAGES
 #usr/share/locale/zh_HK/LC_MESSAGES/glib20.mo
 #usr/share/locale/zh_TW/LC_MESSAGES/glib20.mo
+#usr/share/man/man1/gdbus-codegen.1
+#usr/share/man/man1/gdbus.1
+#usr/share/man/man1/gio-querymodules.1
+#usr/share/man/man1/glib-compile-resources.1
+#usr/share/man/man1/glib-compile-schemas.1
 #usr/share/man/man1/glib-genmarshal.1
 #usr/share/man/man1/glib-gettextize.1
 #usr/share/man/man1/glib-mkenums.1
 #usr/share/man/man1/gobject-query.1
+#usr/share/man/man1/gresource.1
+#usr/share/man/man1/gsettings.1
 #usr/share/man/man1/gtester-report.1
 #usr/share/man/man1/gtester.1
index 669d1913333406597061f7cdaef41614eed9e4d1..67f557fbb5888fbbcb61262d10da936b15505618 100644 (file)
@@ -1,21 +1,21 @@
 #usr/include/gmp.h
 #usr/include/gmpxx.h
 #usr/include/mp.h
-#usr/info/gmp.info
-#usr/info/gmp.info-1
-#usr/info/gmp.info-2
 #usr/lib/libgmp.a
 #usr/lib/libgmp.la
-usr/lib/libgmp.so
-usr/lib/libgmp.so.3
-usr/lib/libgmp.so.3.4.4
+#usr/lib/libgmp.so
+usr/lib/libgmp.so.10
+usr/lib/libgmp.so.10.0.5
 #usr/lib/libgmpxx.a
 #usr/lib/libgmpxx.la
 #usr/lib/libgmpxx.so
-#usr/lib/libgmpxx.so.4
-#usr/lib/libgmpxx.so.4.0.4
+usr/lib/libgmpxx.so.4
+usr/lib/libgmpxx.so.4.2.5
 #usr/lib/libmp.a
 #usr/lib/libmp.la
 #usr/lib/libmp.so
-#usr/lib/libmp.so.3
-#usr/lib/libmp.so.3.1.13
+usr/lib/libmp.so.3
+usr/lib/libmp.so.3.1.25
+#usr/share/info/gmp.info
+#usr/share/info/gmp.info-1
+#usr/share/info/gmp.info-2
diff --git a/config/rootfiles/common/gmp-compat b/config/rootfiles/common/gmp-compat
new file mode 100644 (file)
index 0000000..a4b82f2
--- /dev/null
@@ -0,0 +1,2 @@
+usr/lib/libgmp.so.3
+usr/lib/libgmp.so.3.5.2
index 616ed05c0bf3ad37604b78ed80a817862d9fe4eb..9aecc418a3294ec51a8ecff932b9e3a4e9d17dd3 100644 (file)
@@ -2,18 +2,17 @@ usr/bin/gpg
 #usr/bin/gpg-zip
 #usr/bin/gpgsplit
 #usr/bin/gpgv
-#usr/info/gpg.info
-#usr/info/gpgv.info
 #usr/lib/gnupg
 usr/lib/gnupg/gpgkeys_curl
 usr/lib/gnupg/gpgkeys_finger
 usr/lib/gnupg/gpgkeys_hkp
 usr/lib/gnupg/gpgkeys_ldap
-#usr/man/man1/gpg.1
-#usr/man/man1/gpg.ru.1
-#usr/man/man1/gpgv.1
-#usr/man/man7/gnupg.7
 #usr/share/gnupg
 #usr/share/gnupg/FAQ
-#usr/share/gnupg/faq.html
 #usr/share/gnupg/options.skel
+#usr/share/info/gnupg1.info
+#usr/share/man/man1/gpg-zip.1
+#usr/share/man/man1/gpg.1
+#usr/share/man/man1/gpg.ru.1
+#usr/share/man/man1/gpgv.1
+#usr/share/man/man7/gnupg.7
index 5d5db68a121a174592cc91fa6e2ae9d7d04854a0..a00737d4da1175ebb2ed8fd3d8afb1c1979dc258 100644 (file)
@@ -1,7 +1,7 @@
 bin/egrep
 bin/fgrep
 bin/grep
-#usr/info/grep.info
-#usr/man/man1/egrep.1
-#usr/man/man1/fgrep.1
-#usr/man/man1/grep.1
+#usr/share/info/grep.info
+#usr/share/man/man1/egrep.1
+#usr/share/man/man1/fgrep.1
+#usr/share/man/man1/grep.1
diff --git a/config/rootfiles/common/hddtemp b/config/rootfiles/common/hddtemp
deleted file mode 100644 (file)
index bc4c8d7..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#usr/man/man8/hddtemp.8
-usr/sbin/hddtemp
-#usr/share/locale/fr/LC_MESSAGES/hddtemp.mo
-#usr/share/locale/ru/LC_MESSAGES/hddtemp.mo
diff --git a/config/rootfiles/common/i586/acpid b/config/rootfiles/common/i586/acpid
new file mode 100644 (file)
index 0000000..535e2bd
--- /dev/null
@@ -0,0 +1,17 @@
+etc/acpi
+etc/acpi/actions
+etc/acpi/actions/power.sh
+etc/acpi/events
+etc/acpi/events/power
+usr/bin/acpi_listen
+usr/sbin/acpid
+#usr/sbin/kacpimon
+#usr/share/doc/acpid
+#usr/share/doc/acpid/COPYING
+#usr/share/doc/acpid/Changelog
+#usr/share/doc/acpid/README
+#usr/share/doc/acpid/TESTPLAN
+#usr/share/doc/acpid/TODO
+#usr/share/man/man8/acpi_listen.8
+#usr/share/man/man8/acpid.8
+#usr/share/man/man8/kacpimon.8
index 0cd5af9150be3dd10c06207bccebb507ee98ad3d..48f20e91974439cfa12c8aca49ece27a19e5471d 100644 (file)
@@ -2,8 +2,10 @@
 #usr/bin/ar
 #usr/bin/as
 #usr/bin/c++filt
+#usr/bin/elfedit
 #usr/bin/gprof
 #usr/bin/ld
+#usr/bin/ld.bfd
 #usr/bin/nm
 #usr/bin/objcopy
 #usr/bin/objdump
 #usr/include/dis-asm.h
 #usr/include/libiberty.h
 #usr/include/symcat.h
-#usr/info/as.info
-#usr/info/bfd.info
-#usr/info/binutils.info
-#usr/info/configure.info
-#usr/info/gprof.info
-#usr/info/ld.info
-#usr/info/standards.info
 #usr/lib/ldscripts
+#usr/lib/ldscripts/elf32_x86_64.x
+#usr/lib/ldscripts/elf32_x86_64.xbn
+#usr/lib/ldscripts/elf32_x86_64.xc
+#usr/lib/ldscripts/elf32_x86_64.xd
+#usr/lib/ldscripts/elf32_x86_64.xdc
+#usr/lib/ldscripts/elf32_x86_64.xdw
+#usr/lib/ldscripts/elf32_x86_64.xn
+#usr/lib/ldscripts/elf32_x86_64.xr
+#usr/lib/ldscripts/elf32_x86_64.xs
+#usr/lib/ldscripts/elf32_x86_64.xsc
+#usr/lib/ldscripts/elf32_x86_64.xsw
+#usr/lib/ldscripts/elf32_x86_64.xu
+#usr/lib/ldscripts/elf32_x86_64.xw
 #usr/lib/ldscripts/elf_i386.x
 #usr/lib/ldscripts/elf_i386.xbn
 #usr/lib/ldscripts/elf_i386.xc
 #usr/lib/ldscripts/i386linux.xn
 #usr/lib/ldscripts/i386linux.xr
 #usr/lib/ldscripts/i386linux.xu
-#usr/lib/libbfd-2.18.so
+usr/lib/libbfd-2.22.so
 #usr/lib/libbfd.a
 #usr/lib/libbfd.la
 #usr/lib/libbfd.so
 #usr/lib/libiberty.a
-#usr/lib/libopcodes-2.18.so
+usr/lib/libopcodes-2.22.so
 #usr/lib/libopcodes.a
 #usr/lib/libopcodes.la
 #usr/lib/libopcodes.so
-#usr/man
-#usr/man/man1
-#usr/man/man1/addr2line.1
-#usr/man/man1/ar.1
-#usr/man/man1/as.1
-#usr/man/man1/c++filt.1
-#usr/man/man1/dlltool.1
-#usr/man/man1/gprof.1
-#usr/man/man1/ld.1
-#usr/man/man1/nlmconv.1
-#usr/man/man1/nm.1
-#usr/man/man1/objcopy.1
-#usr/man/man1/objdump.1
-#usr/man/man1/ranlib.1
-#usr/man/man1/readelf.1
-#usr/man/man1/size.1
-#usr/man/man1/strings.1
-#usr/man/man1/strip.1
-#usr/man/man1/windmc.1
-#usr/man/man1/windres.1
+#usr/share/info/as.info
+#usr/share/info/bfd.info
+#usr/share/info/binutils.info
+#usr/share/info/configure.info
+#usr/share/info/gprof.info
+#usr/share/info/ld.info
+#usr/share/info/standards.info
+#usr/share/man/man1/addr2line.1
+#usr/share/man/man1/ar.1
+#usr/share/man/man1/as.1
+#usr/share/man/man1/c++filt.1
+#usr/share/man/man1/dlltool.1
+#usr/share/man/man1/elfedit.1
+#usr/share/man/man1/gprof.1
+#usr/share/man/man1/ld.1
+#usr/share/man/man1/nlmconv.1
+#usr/share/man/man1/nm.1
+#usr/share/man/man1/objcopy.1
+#usr/share/man/man1/objdump.1
+#usr/share/man/man1/ranlib.1
+#usr/share/man/man1/readelf.1
+#usr/share/man/man1/size.1
+#usr/share/man/man1/strings.1
+#usr/share/man/man1/strip.1
+#usr/share/man/man1/windmc.1
+#usr/share/man/man1/windres.1
index cde9e4f424244dc4fb9b61a493064316b9cd300c..622d5cd8ccdd2f958cb11a718e21af7f91b461ef 100644 (file)
 #usr/bin/i586-pc-linux-gnu-c++
 #usr/bin/i586-pc-linux-gnu-g++
 #usr/bin/i586-pc-linux-gnu-gcc
-#usr/bin/i586-pc-linux-gnu-gcc-4.1.2
+#usr/bin/i586-pc-linux-gnu-gcc-4.4.7
 #usr/include/c++
-#usr/include/c++/4.1.2
-#usr/include/c++/4.1.2/algorithm
-#usr/include/c++/4.1.2/backward
-#usr/include/c++/4.1.2/backward/algo.h
-#usr/include/c++/4.1.2/backward/algobase.h
-#usr/include/c++/4.1.2/backward/alloc.h
-#usr/include/c++/4.1.2/backward/backward_warning.h
-#usr/include/c++/4.1.2/backward/bvector.h
-#usr/include/c++/4.1.2/backward/complex.h
-#usr/include/c++/4.1.2/backward/defalloc.h
-#usr/include/c++/4.1.2/backward/deque.h
-#usr/include/c++/4.1.2/backward/fstream.h
-#usr/include/c++/4.1.2/backward/function.h
-#usr/include/c++/4.1.2/backward/hash_map.h
-#usr/include/c++/4.1.2/backward/hash_set.h
-#usr/include/c++/4.1.2/backward/hashtable.h
-#usr/include/c++/4.1.2/backward/heap.h
-#usr/include/c++/4.1.2/backward/iomanip.h
-#usr/include/c++/4.1.2/backward/iostream.h
-#usr/include/c++/4.1.2/backward/istream.h
-#usr/include/c++/4.1.2/backward/iterator.h
-#usr/include/c++/4.1.2/backward/list.h
-#usr/include/c++/4.1.2/backward/map.h
-#usr/include/c++/4.1.2/backward/multimap.h
-#usr/include/c++/4.1.2/backward/multiset.h
-#usr/include/c++/4.1.2/backward/new.h
-#usr/include/c++/4.1.2/backward/ostream.h
-#usr/include/c++/4.1.2/backward/pair.h
-#usr/include/c++/4.1.2/backward/queue.h
-#usr/include/c++/4.1.2/backward/rope.h
-#usr/include/c++/4.1.2/backward/set.h
-#usr/include/c++/4.1.2/backward/slist.h
-#usr/include/c++/4.1.2/backward/stack.h
-#usr/include/c++/4.1.2/backward/stream.h
-#usr/include/c++/4.1.2/backward/streambuf.h
-#usr/include/c++/4.1.2/backward/strstream
-#usr/include/c++/4.1.2/backward/tempbuf.h
-#usr/include/c++/4.1.2/backward/tree.h
-#usr/include/c++/4.1.2/backward/vector.h
-#usr/include/c++/4.1.2/bits
-#usr/include/c++/4.1.2/bits/allocator.h
-#usr/include/c++/4.1.2/bits/atomicity.h
-#usr/include/c++/4.1.2/bits/basic_ios.h
-#usr/include/c++/4.1.2/bits/basic_ios.tcc
-#usr/include/c++/4.1.2/bits/basic_string.h
-#usr/include/c++/4.1.2/bits/basic_string.tcc
-#usr/include/c++/4.1.2/bits/boost_concept_check.h
-#usr/include/c++/4.1.2/bits/char_traits.h
-#usr/include/c++/4.1.2/bits/cmath.tcc
-#usr/include/c++/4.1.2/bits/codecvt.h
-#usr/include/c++/4.1.2/bits/concept_check.h
-#usr/include/c++/4.1.2/bits/concurrence.h
-#usr/include/c++/4.1.2/bits/cpp_type_traits.h
-#usr/include/c++/4.1.2/bits/deque.tcc
-#usr/include/c++/4.1.2/bits/fstream.tcc
-#usr/include/c++/4.1.2/bits/functexcept.h
-#usr/include/c++/4.1.2/bits/gslice.h
-#usr/include/c++/4.1.2/bits/gslice_array.h
-#usr/include/c++/4.1.2/bits/indirect_array.h
-#usr/include/c++/4.1.2/bits/ios_base.h
-#usr/include/c++/4.1.2/bits/istream.tcc
-#usr/include/c++/4.1.2/bits/list.tcc
-#usr/include/c++/4.1.2/bits/locale_classes.h
-#usr/include/c++/4.1.2/bits/locale_facets.h
-#usr/include/c++/4.1.2/bits/locale_facets.tcc
-#usr/include/c++/4.1.2/bits/localefwd.h
-#usr/include/c++/4.1.2/bits/mask_array.h
-#usr/include/c++/4.1.2/bits/ostream.tcc
-#usr/include/c++/4.1.2/bits/postypes.h
-#usr/include/c++/4.1.2/bits/slice_array.h
-#usr/include/c++/4.1.2/bits/sstream.tcc
-#usr/include/c++/4.1.2/bits/stl_algo.h
-#usr/include/c++/4.1.2/bits/stl_algobase.h
-#usr/include/c++/4.1.2/bits/stl_bvector.h
-#usr/include/c++/4.1.2/bits/stl_construct.h
-#usr/include/c++/4.1.2/bits/stl_deque.h
-#usr/include/c++/4.1.2/bits/stl_function.h
-#usr/include/c++/4.1.2/bits/stl_heap.h
-#usr/include/c++/4.1.2/bits/stl_iterator.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_funcs.h
-#usr/include/c++/4.1.2/bits/stl_iterator_base_types.h
-#usr/include/c++/4.1.2/bits/stl_list.h
-#usr/include/c++/4.1.2/bits/stl_map.h
-#usr/include/c++/4.1.2/bits/stl_multimap.h
-#usr/include/c++/4.1.2/bits/stl_multiset.h
-#usr/include/c++/4.1.2/bits/stl_numeric.h
-#usr/include/c++/4.1.2/bits/stl_pair.h
-#usr/include/c++/4.1.2/bits/stl_queue.h
-#usr/include/c++/4.1.2/bits/stl_raw_storage_iter.h
-#usr/include/c++/4.1.2/bits/stl_relops.h
-#usr/include/c++/4.1.2/bits/stl_set.h
-#usr/include/c++/4.1.2/bits/stl_stack.h
-#usr/include/c++/4.1.2/bits/stl_tempbuf.h
-#usr/include/c++/4.1.2/bits/stl_tree.h
-#usr/include/c++/4.1.2/bits/stl_uninitialized.h
-#usr/include/c++/4.1.2/bits/stl_vector.h
-#usr/include/c++/4.1.2/bits/stream_iterator.h
-#usr/include/c++/4.1.2/bits/streambuf.tcc
-#usr/include/c++/4.1.2/bits/streambuf_iterator.h
-#usr/include/c++/4.1.2/bits/stringfwd.h
-#usr/include/c++/4.1.2/bits/valarray_after.h
-#usr/include/c++/4.1.2/bits/valarray_array.h
-#usr/include/c++/4.1.2/bits/valarray_array.tcc
-#usr/include/c++/4.1.2/bits/valarray_before.h
-#usr/include/c++/4.1.2/bits/vector.tcc
-#usr/include/c++/4.1.2/bitset
-#usr/include/c++/4.1.2/cassert
-#usr/include/c++/4.1.2/cctype
-#usr/include/c++/4.1.2/cerrno
-#usr/include/c++/4.1.2/cfloat
-#usr/include/c++/4.1.2/ciso646
-#usr/include/c++/4.1.2/climits
-#usr/include/c++/4.1.2/clocale
-#usr/include/c++/4.1.2/cmath
-#usr/include/c++/4.1.2/complex
-#usr/include/c++/4.1.2/csetjmp
-#usr/include/c++/4.1.2/csignal
-#usr/include/c++/4.1.2/cstdarg
-#usr/include/c++/4.1.2/cstddef
-#usr/include/c++/4.1.2/cstdio
-#usr/include/c++/4.1.2/cstdlib
-#usr/include/c++/4.1.2/cstring
-#usr/include/c++/4.1.2/ctime
-#usr/include/c++/4.1.2/cwchar
-#usr/include/c++/4.1.2/cwctype
-#usr/include/c++/4.1.2/cxxabi.h
-#usr/include/c++/4.1.2/debug
-#usr/include/c++/4.1.2/debug/bitset
-#usr/include/c++/4.1.2/debug/debug.h
-#usr/include/c++/4.1.2/debug/deque
-#usr/include/c++/4.1.2/debug/formatter.h
-#usr/include/c++/4.1.2/debug/functions.h
-#usr/include/c++/4.1.2/debug/hash_map
-#usr/include/c++/4.1.2/debug/hash_map.h
-#usr/include/c++/4.1.2/debug/hash_multimap.h
-#usr/include/c++/4.1.2/debug/hash_multiset.h
-#usr/include/c++/4.1.2/debug/hash_set
-#usr/include/c++/4.1.2/debug/hash_set.h
-#usr/include/c++/4.1.2/debug/list
-#usr/include/c++/4.1.2/debug/macros.h
-#usr/include/c++/4.1.2/debug/map
-#usr/include/c++/4.1.2/debug/map.h
-#usr/include/c++/4.1.2/debug/multimap.h
-#usr/include/c++/4.1.2/debug/multiset.h
-#usr/include/c++/4.1.2/debug/safe_base.h
-#usr/include/c++/4.1.2/debug/safe_iterator.h
-#usr/include/c++/4.1.2/debug/safe_iterator.tcc
-#usr/include/c++/4.1.2/debug/safe_sequence.h
-#usr/include/c++/4.1.2/debug/set
-#usr/include/c++/4.1.2/debug/set.h
-#usr/include/c++/4.1.2/debug/string
-#usr/include/c++/4.1.2/debug/vector
-#usr/include/c++/4.1.2/deque
-#usr/include/c++/4.1.2/exception
-#usr/include/c++/4.1.2/exception_defines.h
-#usr/include/c++/4.1.2/ext
-#usr/include/c++/4.1.2/ext/algorithm
-#usr/include/c++/4.1.2/ext/array_allocator.h
-#usr/include/c++/4.1.2/ext/bitmap_allocator.h
-#usr/include/c++/4.1.2/ext/codecvt_specializations.h
-#usr/include/c++/4.1.2/ext/debug_allocator.h
-#usr/include/c++/4.1.2/ext/functional
-#usr/include/c++/4.1.2/ext/hash_fun.h
-#usr/include/c++/4.1.2/ext/hash_map
-#usr/include/c++/4.1.2/ext/hash_set
-#usr/include/c++/4.1.2/ext/hashtable.h
-#usr/include/c++/4.1.2/ext/iterator
-#usr/include/c++/4.1.2/ext/malloc_allocator.h
-#usr/include/c++/4.1.2/ext/memory
-#usr/include/c++/4.1.2/ext/mt_allocator.h
-#usr/include/c++/4.1.2/ext/new_allocator.h
-#usr/include/c++/4.1.2/ext/numeric
-#usr/include/c++/4.1.2/ext/pb_assoc
-#usr/include/c++/4.1.2/ext/pb_assoc/assoc_cntnr.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/data_type.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/assoc_cntnr_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/d_insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/extract_key.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_assoc_cntnr/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_hash_assoc_cntnr/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/node_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/r_range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/range_iteration_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/basic_tree_assoc_cntnr/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/bin_search_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/find_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/r_erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/rotate_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/bin_search_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cc_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cmp_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/cond_key_dtor_entry_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/entry_list_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/size_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cc_ht_map_/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/cond_dealtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ds_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/eq_by_less.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/eq_fn/hash_eq_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_hash_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/constructor_destructor_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/debug_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/erase_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/find_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/gp_ht_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/insert_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_no_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/gp_ht_map_/resize_store_hash_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mask_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/direct_mod_range_hashing_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/linear_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mask_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/mod_based_range_hashing.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/probe_fn_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/quadratic_probe_fn_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_hash_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_fn/ranged_probe_fn.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/hash_types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_assoc_cntnr/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/lu_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_map_/policy_access_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_metadata_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/counter_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/lu_policy/mtf_lu_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/map_debug_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/mapping_level_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_category_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ms_trait_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/cond_dtor.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/iterators_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/node_iterators.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/ov_tree_map_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/ov_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/rb_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/rb_tree_map_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/cc_hash_max_collision_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_exponential_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/hash_standard_resize_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/ht_prime_size_policy_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/resize_policy/size_base.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/constructors_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/debug_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/node.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/splay_tree_.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/splay_tree_/split_join_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_policies.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/standard_sizes.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_assoc_cntnr/constructor_destructor_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/null_node_updator_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/tree_policy/order_statistics_imp.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/type_utils.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_apply.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_at_index.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_contains.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_filter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_transform.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/typelist/typelist_typelist_append.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/types_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/const_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/find_iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/unordered_iterator/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/constructor_destructor_and_related.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/erase_if_pred.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/find_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/info_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/insert_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/invalidation_guarantee_selector.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/it_value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/iterator_fn_imps.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/ref_pair.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_adapter.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/detail/value_type_adapter/value_type_traits.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ds_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/exception.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/hash_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/lu_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/ms_trait.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/tree_policy.hpp
-#usr/include/c++/4.1.2/ext/pb_assoc/trivial_iterator_def.hpp
-#usr/include/c++/4.1.2/ext/pod_char_traits.h
-#usr/include/c++/4.1.2/ext/pool_allocator.h
-#usr/include/c++/4.1.2/ext/rb_tree
-#usr/include/c++/4.1.2/ext/rc_string_base.h
-#usr/include/c++/4.1.2/ext/rope
-#usr/include/c++/4.1.2/ext/ropeimpl.h
-#usr/include/c++/4.1.2/ext/slist
-#usr/include/c++/4.1.2/ext/sso_string_base.h
-#usr/include/c++/4.1.2/ext/stdio_filebuf.h
-#usr/include/c++/4.1.2/ext/stdio_sync_filebuf.h
-#usr/include/c++/4.1.2/ext/typelist.h
-#usr/include/c++/4.1.2/ext/vstring.h
-#usr/include/c++/4.1.2/ext/vstring.tcc
-#usr/include/c++/4.1.2/ext/vstring_fwd.h
-#usr/include/c++/4.1.2/ext/vstring_util.h
-#usr/include/c++/4.1.2/fstream
-#usr/include/c++/4.1.2/functional
-#usr/include/c++/4.1.2/i586-pc-linux-gnu
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/atomic_word.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/basic_file.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++allocator.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++config.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++io.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/c++locale.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cpu_defines.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_base.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_inline.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/ctype_noninline.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-default.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-posix.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-single.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr-tpf.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/gthr.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/messages_members.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/os_defines.h
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O0g.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/stdc++.h.gch/O2g.gch
-#usr/include/c++/4.1.2/i586-pc-linux-gnu/bits/time_members.h
-#usr/include/c++/4.1.2/iomanip
-#usr/include/c++/4.1.2/ios
-#usr/include/c++/4.1.2/iosfwd
-#usr/include/c++/4.1.2/iostream
-#usr/include/c++/4.1.2/istream
-#usr/include/c++/4.1.2/iterator
-#usr/include/c++/4.1.2/limits
-#usr/include/c++/4.1.2/list
-#usr/include/c++/4.1.2/locale
-#usr/include/c++/4.1.2/map
-#usr/include/c++/4.1.2/memory
-#usr/include/c++/4.1.2/new
-#usr/include/c++/4.1.2/numeric
-#usr/include/c++/4.1.2/ostream
-#usr/include/c++/4.1.2/queue
-#usr/include/c++/4.1.2/set
-#usr/include/c++/4.1.2/sstream
-#usr/include/c++/4.1.2/stack
-#usr/include/c++/4.1.2/stdexcept
-#usr/include/c++/4.1.2/streambuf
-#usr/include/c++/4.1.2/string
-#usr/include/c++/4.1.2/tr1
-#usr/include/c++/4.1.2/tr1/array
-#usr/include/c++/4.1.2/tr1/bind_iterate.h
-#usr/include/c++/4.1.2/tr1/bind_repeat.h
-#usr/include/c++/4.1.2/tr1/boost_shared_ptr.h
-#usr/include/c++/4.1.2/tr1/functional
-#usr/include/c++/4.1.2/tr1/functional_iterate.h
-#usr/include/c++/4.1.2/tr1/hashtable
-#usr/include/c++/4.1.2/tr1/memory
-#usr/include/c++/4.1.2/tr1/mu_iterate.h
-#usr/include/c++/4.1.2/tr1/ref_fwd.h
-#usr/include/c++/4.1.2/tr1/ref_wrap_iterate.h
-#usr/include/c++/4.1.2/tr1/repeat.h
-#usr/include/c++/4.1.2/tr1/tuple
-#usr/include/c++/4.1.2/tr1/tuple_iterate.h
-#usr/include/c++/4.1.2/tr1/type_traits
-#usr/include/c++/4.1.2/tr1/type_traits_fwd.h
-#usr/include/c++/4.1.2/tr1/unordered_map
-#usr/include/c++/4.1.2/tr1/unordered_set
-#usr/include/c++/4.1.2/tr1/utility
-#usr/include/c++/4.1.2/typeinfo
-#usr/include/c++/4.1.2/utility
-#usr/include/c++/4.1.2/valarray
-#usr/include/c++/4.1.2/vector
-#usr/include/mf-runtime.h
+#usr/include/c++/4.4.7
+#usr/include/c++/4.4.7/algorithm
+#usr/include/c++/4.4.7/array
+#usr/include/c++/4.4.7/backward
+#usr/include/c++/4.4.7/backward/auto_ptr.h
+#usr/include/c++/4.4.7/backward/backward_warning.h
+#usr/include/c++/4.4.7/backward/binders.h
+#usr/include/c++/4.4.7/backward/hash_fun.h
+#usr/include/c++/4.4.7/backward/hash_map
+#usr/include/c++/4.4.7/backward/hash_set
+#usr/include/c++/4.4.7/backward/hashtable.h
+#usr/include/c++/4.4.7/backward/strstream
+#usr/include/c++/4.4.7/bits
+#usr/include/c++/4.4.7/bits/algorithmfwd.h
+#usr/include/c++/4.4.7/bits/allocator.h
+#usr/include/c++/4.4.7/bits/atomic_0.h
+#usr/include/c++/4.4.7/bits/atomic_2.h
+#usr/include/c++/4.4.7/bits/atomicfwd_c.h
+#usr/include/c++/4.4.7/bits/atomicfwd_cxx.h
+#usr/include/c++/4.4.7/bits/basic_ios.h
+#usr/include/c++/4.4.7/bits/basic_ios.tcc
+#usr/include/c++/4.4.7/bits/basic_string.h
+#usr/include/c++/4.4.7/bits/basic_string.tcc
+#usr/include/c++/4.4.7/bits/boost_concept_check.h
+#usr/include/c++/4.4.7/bits/char_traits.h
+#usr/include/c++/4.4.7/bits/cmath.tcc
+#usr/include/c++/4.4.7/bits/codecvt.h
+#usr/include/c++/4.4.7/bits/concept_check.h
+#usr/include/c++/4.4.7/bits/cpp_type_traits.h
+#usr/include/c++/4.4.7/bits/deque.tcc
+#usr/include/c++/4.4.7/bits/forward_list.h
+#usr/include/c++/4.4.7/bits/forward_list.tcc
+#usr/include/c++/4.4.7/bits/fstream.tcc
+#usr/include/c++/4.4.7/bits/functexcept.h
+#usr/include/c++/4.4.7/bits/functional_hash.h
+#usr/include/c++/4.4.7/bits/gslice.h
+#usr/include/c++/4.4.7/bits/gslice_array.h
+#usr/include/c++/4.4.7/bits/hashtable.h
+#usr/include/c++/4.4.7/bits/indirect_array.h
+#usr/include/c++/4.4.7/bits/ios_base.h
+#usr/include/c++/4.4.7/bits/istream.tcc
+#usr/include/c++/4.4.7/bits/list.tcc
+#usr/include/c++/4.4.7/bits/locale_classes.h
+#usr/include/c++/4.4.7/bits/locale_classes.tcc
+#usr/include/c++/4.4.7/bits/locale_facets.h
+#usr/include/c++/4.4.7/bits/locale_facets.tcc
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.h
+#usr/include/c++/4.4.7/bits/locale_facets_nonio.tcc
+#usr/include/c++/4.4.7/bits/localefwd.h
+#usr/include/c++/4.4.7/bits/mask_array.h
+#usr/include/c++/4.4.7/bits/move.h
+#usr/include/c++/4.4.7/bits/ostream.tcc
+#usr/include/c++/4.4.7/bits/ostream_insert.h
+#usr/include/c++/4.4.7/bits/postypes.h
+#usr/include/c++/4.4.7/bits/shared_ptr.h
+#usr/include/c++/4.4.7/bits/slice_array.h
+#usr/include/c++/4.4.7/bits/sstream.tcc
+#usr/include/c++/4.4.7/bits/stl_algo.h
+#usr/include/c++/4.4.7/bits/stl_algobase.h
+#usr/include/c++/4.4.7/bits/stl_bvector.h
+#usr/include/c++/4.4.7/bits/stl_construct.h
+#usr/include/c++/4.4.7/bits/stl_deque.h
+#usr/include/c++/4.4.7/bits/stl_function.h
+#usr/include/c++/4.4.7/bits/stl_heap.h
+#usr/include/c++/4.4.7/bits/stl_iterator.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_funcs.h
+#usr/include/c++/4.4.7/bits/stl_iterator_base_types.h
+#usr/include/c++/4.4.7/bits/stl_list.h
+#usr/include/c++/4.4.7/bits/stl_map.h
+#usr/include/c++/4.4.7/bits/stl_multimap.h
+#usr/include/c++/4.4.7/bits/stl_multiset.h
+#usr/include/c++/4.4.7/bits/stl_numeric.h
+#usr/include/c++/4.4.7/bits/stl_pair.h
+#usr/include/c++/4.4.7/bits/stl_queue.h
+#usr/include/c++/4.4.7/bits/stl_raw_storage_iter.h
+#usr/include/c++/4.4.7/bits/stl_relops.h
+#usr/include/c++/4.4.7/bits/stl_set.h
+#usr/include/c++/4.4.7/bits/stl_stack.h
+#usr/include/c++/4.4.7/bits/stl_tempbuf.h
+#usr/include/c++/4.4.7/bits/stl_tree.h
+#usr/include/c++/4.4.7/bits/stl_uninitialized.h
+#usr/include/c++/4.4.7/bits/stl_vector.h
+#usr/include/c++/4.4.7/bits/stream_iterator.h
+#usr/include/c++/4.4.7/bits/streambuf.tcc
+#usr/include/c++/4.4.7/bits/streambuf_iterator.h
+#usr/include/c++/4.4.7/bits/stringfwd.h
+#usr/include/c++/4.4.7/bits/unique_ptr.h
+#usr/include/c++/4.4.7/bits/valarray_after.h
+#usr/include/c++/4.4.7/bits/valarray_array.h
+#usr/include/c++/4.4.7/bits/valarray_array.tcc
+#usr/include/c++/4.4.7/bits/valarray_before.h
+#usr/include/c++/4.4.7/bits/vector.tcc
+#usr/include/c++/4.4.7/bitset
+#usr/include/c++/4.4.7/c++0x_warning.h
+#usr/include/c++/4.4.7/cassert
+#usr/include/c++/4.4.7/ccomplex
+#usr/include/c++/4.4.7/cctype
+#usr/include/c++/4.4.7/cerrno
+#usr/include/c++/4.4.7/cfenv
+#usr/include/c++/4.4.7/cfloat
+#usr/include/c++/4.4.7/chrono
+#usr/include/c++/4.4.7/cinttypes
+#usr/include/c++/4.4.7/ciso646
+#usr/include/c++/4.4.7/climits
+#usr/include/c++/4.4.7/clocale
+#usr/include/c++/4.4.7/cmath
+#usr/include/c++/4.4.7/complex
+#usr/include/c++/4.4.7/complex.h
+#usr/include/c++/4.4.7/condition_variable
+#usr/include/c++/4.4.7/csetjmp
+#usr/include/c++/4.4.7/csignal
+#usr/include/c++/4.4.7/cstdarg
+#usr/include/c++/4.4.7/cstdatomic
+#usr/include/c++/4.4.7/cstdbool
+#usr/include/c++/4.4.7/cstddef
+#usr/include/c++/4.4.7/cstdint
+#usr/include/c++/4.4.7/cstdio
+#usr/include/c++/4.4.7/cstdlib
+#usr/include/c++/4.4.7/cstring
+#usr/include/c++/4.4.7/ctgmath
+#usr/include/c++/4.4.7/ctime
+#usr/include/c++/4.4.7/cwchar
+#usr/include/c++/4.4.7/cwctype
+#usr/include/c++/4.4.7/cxxabi-forced.h
+#usr/include/c++/4.4.7/cxxabi.h
+#usr/include/c++/4.4.7/debug
+#usr/include/c++/4.4.7/debug/bitset
+#usr/include/c++/4.4.7/debug/debug.h
+#usr/include/c++/4.4.7/debug/deque
+#usr/include/c++/4.4.7/debug/formatter.h
+#usr/include/c++/4.4.7/debug/functions.h
+#usr/include/c++/4.4.7/debug/list
+#usr/include/c++/4.4.7/debug/macros.h
+#usr/include/c++/4.4.7/debug/map
+#usr/include/c++/4.4.7/debug/map.h
+#usr/include/c++/4.4.7/debug/multimap.h
+#usr/include/c++/4.4.7/debug/multiset.h
+#usr/include/c++/4.4.7/debug/safe_base.h
+#usr/include/c++/4.4.7/debug/safe_iterator.h
+#usr/include/c++/4.4.7/debug/safe_iterator.tcc
+#usr/include/c++/4.4.7/debug/safe_sequence.h
+#usr/include/c++/4.4.7/debug/set
+#usr/include/c++/4.4.7/debug/set.h
+#usr/include/c++/4.4.7/debug/string
+#usr/include/c++/4.4.7/debug/unordered_map
+#usr/include/c++/4.4.7/debug/unordered_set
+#usr/include/c++/4.4.7/debug/vector
+#usr/include/c++/4.4.7/deque
+#usr/include/c++/4.4.7/exception
+#usr/include/c++/4.4.7/exception_defines.h
+#usr/include/c++/4.4.7/exception_ptr.h
+#usr/include/c++/4.4.7/ext
+#usr/include/c++/4.4.7/ext/algorithm
+#usr/include/c++/4.4.7/ext/array_allocator.h
+#usr/include/c++/4.4.7/ext/atomicity.h
+#usr/include/c++/4.4.7/ext/bitmap_allocator.h
+#usr/include/c++/4.4.7/ext/cast.h
+#usr/include/c++/4.4.7/ext/codecvt_specializations.h
+#usr/include/c++/4.4.7/ext/concurrence.h
+#usr/include/c++/4.4.7/ext/debug_allocator.h
+#usr/include/c++/4.4.7/ext/enc_filebuf.h
+#usr/include/c++/4.4.7/ext/extptr_allocator.h
+#usr/include/c++/4.4.7/ext/functional
+#usr/include/c++/4.4.7/ext/hash_map
+#usr/include/c++/4.4.7/ext/hash_set
+#usr/include/c++/4.4.7/ext/iterator
+#usr/include/c++/4.4.7/ext/malloc_allocator.h
+#usr/include/c++/4.4.7/ext/memory
+#usr/include/c++/4.4.7/ext/mt_allocator.h
+#usr/include/c++/4.4.7/ext/new_allocator.h
+#usr/include/c++/4.4.7/ext/numeric
+#usr/include/c++/4.4.7/ext/numeric_traits.h
+#usr/include/c++/4.4.7/ext/pb_ds
+#usr/include/c++/4.4.7/ext/pb_ds/assoc_container.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/basic_tree_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/null_node_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_tree_policy/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/basic_types.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/bin_search_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/bin_search_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/binary_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_cmp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/entry_pred.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binary_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/binomial_heap_base_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/binomial_heap_base_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cc_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cmp_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/cond_key_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/entry_list_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/size_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cc_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/cond_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/container_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/debug_map_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/eq_by_less.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/eq_fn/hash_eq_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/constructor_destructor_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/debug_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/erase_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/find_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/gp_ht_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/insert_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/iterator_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/resize_store_hash_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/gp_hash_table_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mask_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/direct_mod_range_hashing_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/linear_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mask_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/mod_based_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/probe_fn_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/quadratic_probe_fn_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_range_hashing.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_hash_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/hash_fn/sample_ranged_probe_fn.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/left_child_next_sibling_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/null_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/left_child_next_sibling_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/constructor_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/entry_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/lu_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_map_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_metadata.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/counter_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/mtf_lu_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/list_update_policy/sample_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/cond_dtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/ov_tree_map_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/ov_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/pairing_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pairing_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/cond_dtor_entry_dealtor.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/const_child_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/head.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/insert_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/internal_node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/iterators_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/leaf.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/node_metadata_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/pat_trie_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/point_iterators.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/policy_access_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/r_erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/rotate_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/split_join_branch_bag.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/synth_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/pat_trie_/update_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/priority_queue_base_dispatch.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rb_tree_map_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/rc_binomial_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/rc_binomial_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/cc_hash_max_collision_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_exponential_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_load_check_resize_trigger_size_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_prime_size_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/hash_standard_resize_policy_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_resize_trigger.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/resize_policy/sample_size_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/info_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/node.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/splay_tree_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/splay_tree_/traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/standard_policies.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/constructors_destructor_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/debug_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/find_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/insert_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/split_join_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/thin_heap_.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/thin_heap_/trace_fn_imps.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_policy/sample_tree_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/tree_trace_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/node_metadata_selector.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/null_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/order_statistics_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/prefix_search_node_update_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_e_access_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/sample_trie_node_update.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/string_trie_e_access_traits_imp.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/trie_policy/trie_policy_base.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/type_utils.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/types_traits.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/const_point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/detail/unordered_iterator/point_iterator.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/exception.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/hash_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/list_update_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/priority_queue.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tag_and_trait.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/tree_policy.hpp
+#usr/include/c++/4.4.7/ext/pb_ds/trie_policy.hpp
+#usr/include/c++/4.4.7/ext/pod_char_traits.h
+#usr/include/c++/4.4.7/ext/pointer.h
+#usr/include/c++/4.4.7/ext/pool_allocator.h
+#usr/include/c++/4.4.7/ext/rb_tree
+#usr/include/c++/4.4.7/ext/rc_string_base.h
+#usr/include/c++/4.4.7/ext/rope
+#usr/include/c++/4.4.7/ext/ropeimpl.h
+#usr/include/c++/4.4.7/ext/slist
+#usr/include/c++/4.4.7/ext/sso_string_base.h
+#usr/include/c++/4.4.7/ext/stdio_filebuf.h
+#usr/include/c++/4.4.7/ext/stdio_sync_filebuf.h
+#usr/include/c++/4.4.7/ext/string_conversions.h
+#usr/include/c++/4.4.7/ext/throw_allocator.h
+#usr/include/c++/4.4.7/ext/type_traits.h
+#usr/include/c++/4.4.7/ext/typelist.h
+#usr/include/c++/4.4.7/ext/vstring.h
+#usr/include/c++/4.4.7/ext/vstring.tcc
+#usr/include/c++/4.4.7/ext/vstring_fwd.h
+#usr/include/c++/4.4.7/ext/vstring_util.h
+#usr/include/c++/4.4.7/fenv.h
+#usr/include/c++/4.4.7/forward_list
+#usr/include/c++/4.4.7/fstream
+#usr/include/c++/4.4.7/functional
+#usr/include/c++/4.4.7/i586-pc-linux-gnu
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/atomic_word.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/basic_file.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++allocator.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++config.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++io.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/c++locale.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cpu_defines.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_base.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_inline.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/ctype_noninline.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/cxxabi_tweaks.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/error_constants.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/extc++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-default.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-posix.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-single.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr-tpf.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/gthr.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/messages_members.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/os_defines.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdc++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/stdtr1c++.h
+#usr/include/c++/4.4.7/i586-pc-linux-gnu/bits/time_members.h
+#usr/include/c++/4.4.7/initializer_list
+#usr/include/c++/4.4.7/iomanip
+#usr/include/c++/4.4.7/ios
+#usr/include/c++/4.4.7/iosfwd
+#usr/include/c++/4.4.7/iostream
+#usr/include/c++/4.4.7/istream
+#usr/include/c++/4.4.7/iterator
+#usr/include/c++/4.4.7/limits
+#usr/include/c++/4.4.7/list
+#usr/include/c++/4.4.7/locale
+#usr/include/c++/4.4.7/map
+#usr/include/c++/4.4.7/memory
+#usr/include/c++/4.4.7/mutex
+#usr/include/c++/4.4.7/new
+#usr/include/c++/4.4.7/numeric
+#usr/include/c++/4.4.7/ostream
+#usr/include/c++/4.4.7/parallel
+#usr/include/c++/4.4.7/parallel/algo.h
+#usr/include/c++/4.4.7/parallel/algobase.h
+#usr/include/c++/4.4.7/parallel/algorithm
+#usr/include/c++/4.4.7/parallel/algorithmfwd.h
+#usr/include/c++/4.4.7/parallel/balanced_quicksort.h
+#usr/include/c++/4.4.7/parallel/base.h
+#usr/include/c++/4.4.7/parallel/basic_iterator.h
+#usr/include/c++/4.4.7/parallel/checkers.h
+#usr/include/c++/4.4.7/parallel/compatibility.h
+#usr/include/c++/4.4.7/parallel/compiletime_settings.h
+#usr/include/c++/4.4.7/parallel/equally_split.h
+#usr/include/c++/4.4.7/parallel/features.h
+#usr/include/c++/4.4.7/parallel/find.h
+#usr/include/c++/4.4.7/parallel/find_selectors.h
+#usr/include/c++/4.4.7/parallel/for_each.h
+#usr/include/c++/4.4.7/parallel/for_each_selectors.h
+#usr/include/c++/4.4.7/parallel/iterator.h
+#usr/include/c++/4.4.7/parallel/list_partition.h
+#usr/include/c++/4.4.7/parallel/losertree.h
+#usr/include/c++/4.4.7/parallel/merge.h
+#usr/include/c++/4.4.7/parallel/multiseq_selection.h
+#usr/include/c++/4.4.7/parallel/multiway_merge.h
+#usr/include/c++/4.4.7/parallel/multiway_mergesort.h
+#usr/include/c++/4.4.7/parallel/numeric
+#usr/include/c++/4.4.7/parallel/numericfwd.h
+#usr/include/c++/4.4.7/parallel/omp_loop.h
+#usr/include/c++/4.4.7/parallel/omp_loop_static.h
+#usr/include/c++/4.4.7/parallel/par_loop.h
+#usr/include/c++/4.4.7/parallel/parallel.h
+#usr/include/c++/4.4.7/parallel/partial_sum.h
+#usr/include/c++/4.4.7/parallel/partition.h
+#usr/include/c++/4.4.7/parallel/queue.h
+#usr/include/c++/4.4.7/parallel/quicksort.h
+#usr/include/c++/4.4.7/parallel/random_number.h
+#usr/include/c++/4.4.7/parallel/random_shuffle.h
+#usr/include/c++/4.4.7/parallel/search.h
+#usr/include/c++/4.4.7/parallel/set_operations.h
+#usr/include/c++/4.4.7/parallel/settings.h
+#usr/include/c++/4.4.7/parallel/sort.h
+#usr/include/c++/4.4.7/parallel/tags.h
+#usr/include/c++/4.4.7/parallel/types.h
+#usr/include/c++/4.4.7/parallel/unique_copy.h
+#usr/include/c++/4.4.7/parallel/workstealing.h
+#usr/include/c++/4.4.7/queue
+#usr/include/c++/4.4.7/random
+#usr/include/c++/4.4.7/ratio
+#usr/include/c++/4.4.7/regex
+#usr/include/c++/4.4.7/set
+#usr/include/c++/4.4.7/sstream
+#usr/include/c++/4.4.7/stack
+#usr/include/c++/4.4.7/stdatomic.h
+#usr/include/c++/4.4.7/stdexcept
+#usr/include/c++/4.4.7/streambuf
+#usr/include/c++/4.4.7/string
+#usr/include/c++/4.4.7/system_error
+#usr/include/c++/4.4.7/tgmath.h
+#usr/include/c++/4.4.7/thread
+#usr/include/c++/4.4.7/tr1
+#usr/include/c++/4.4.7/tr1/array
+#usr/include/c++/4.4.7/tr1/bessel_function.tcc
+#usr/include/c++/4.4.7/tr1/beta_function.tcc
+#usr/include/c++/4.4.7/tr1/ccomplex
+#usr/include/c++/4.4.7/tr1/cctype
+#usr/include/c++/4.4.7/tr1/cfenv
+#usr/include/c++/4.4.7/tr1/cfloat
+#usr/include/c++/4.4.7/tr1/cinttypes
+#usr/include/c++/4.4.7/tr1/climits
+#usr/include/c++/4.4.7/tr1/cmath
+#usr/include/c++/4.4.7/tr1/complex
+#usr/include/c++/4.4.7/tr1/complex.h
+#usr/include/c++/4.4.7/tr1/cstdarg
+#usr/include/c++/4.4.7/tr1/cstdbool
+#usr/include/c++/4.4.7/tr1/cstdint
+#usr/include/c++/4.4.7/tr1/cstdio
+#usr/include/c++/4.4.7/tr1/cstdlib
+#usr/include/c++/4.4.7/tr1/ctgmath
+#usr/include/c++/4.4.7/tr1/ctime
+#usr/include/c++/4.4.7/tr1/ctype.h
+#usr/include/c++/4.4.7/tr1/cwchar
+#usr/include/c++/4.4.7/tr1/cwctype
+#usr/include/c++/4.4.7/tr1/ell_integral.tcc
+#usr/include/c++/4.4.7/tr1/exp_integral.tcc
+#usr/include/c++/4.4.7/tr1/fenv.h
+#usr/include/c++/4.4.7/tr1/float.h
+#usr/include/c++/4.4.7/tr1/functional
+#usr/include/c++/4.4.7/tr1/functional_hash.h
+#usr/include/c++/4.4.7/tr1/gamma.tcc
+#usr/include/c++/4.4.7/tr1/hashtable.h
+#usr/include/c++/4.4.7/tr1/hypergeometric.tcc
+#usr/include/c++/4.4.7/tr1/inttypes.h
+#usr/include/c++/4.4.7/tr1/legendre_function.tcc
+#usr/include/c++/4.4.7/tr1/limits.h
+#usr/include/c++/4.4.7/tr1/math.h
+#usr/include/c++/4.4.7/tr1/memory
+#usr/include/c++/4.4.7/tr1/modified_bessel_func.tcc
+#usr/include/c++/4.4.7/tr1/poly_hermite.tcc
+#usr/include/c++/4.4.7/tr1/poly_laguerre.tcc
+#usr/include/c++/4.4.7/tr1/random
+#usr/include/c++/4.4.7/tr1/regex
+#usr/include/c++/4.4.7/tr1/riemann_zeta.tcc
+#usr/include/c++/4.4.7/tr1/shared_ptr.h
+#usr/include/c++/4.4.7/tr1/special_function_util.h
+#usr/include/c++/4.4.7/tr1/stdarg.h
+#usr/include/c++/4.4.7/tr1/stdbool.h
+#usr/include/c++/4.4.7/tr1/stdint.h
+#usr/include/c++/4.4.7/tr1/stdio.h
+#usr/include/c++/4.4.7/tr1/stdlib.h
+#usr/include/c++/4.4.7/tr1/tgmath.h
+#usr/include/c++/4.4.7/tr1/tuple
+#usr/include/c++/4.4.7/tr1/type_traits
+#usr/include/c++/4.4.7/tr1/unordered_map
+#usr/include/c++/4.4.7/tr1/unordered_set
+#usr/include/c++/4.4.7/tr1/utility
+#usr/include/c++/4.4.7/tr1/wchar.h
+#usr/include/c++/4.4.7/tr1/wctype.h
+#usr/include/c++/4.4.7/tr1_impl
+#usr/include/c++/4.4.7/tr1_impl/array
+#usr/include/c++/4.4.7/tr1_impl/boost_sp_counted_base.h
+#usr/include/c++/4.4.7/tr1_impl/cctype
+#usr/include/c++/4.4.7/tr1_impl/cfenv
+#usr/include/c++/4.4.7/tr1_impl/cinttypes
+#usr/include/c++/4.4.7/tr1_impl/cmath
+#usr/include/c++/4.4.7/tr1_impl/complex
+#usr/include/c++/4.4.7/tr1_impl/cstdint
+#usr/include/c++/4.4.7/tr1_impl/cstdio
+#usr/include/c++/4.4.7/tr1_impl/cstdlib
+#usr/include/c++/4.4.7/tr1_impl/cwchar
+#usr/include/c++/4.4.7/tr1_impl/cwctype
+#usr/include/c++/4.4.7/tr1_impl/functional
+#usr/include/c++/4.4.7/tr1_impl/functional_hash.h
+#usr/include/c++/4.4.7/tr1_impl/hashtable
+#usr/include/c++/4.4.7/tr1_impl/hashtable_policy.h
+#usr/include/c++/4.4.7/tr1_impl/random
+#usr/include/c++/4.4.7/tr1_impl/random.tcc
+#usr/include/c++/4.4.7/tr1_impl/regex
+#usr/include/c++/4.4.7/tr1_impl/type_traits
+#usr/include/c++/4.4.7/tr1_impl/unordered_map
+#usr/include/c++/4.4.7/tr1_impl/unordered_set
+#usr/include/c++/4.4.7/tr1_impl/utility
+#usr/include/c++/4.4.7/tuple
+#usr/include/c++/4.4.7/type_traits
+#usr/include/c++/4.4.7/typeinfo
+#usr/include/c++/4.4.7/unordered_map
+#usr/include/c++/4.4.7/unordered_set
+#usr/include/c++/4.4.7/utility
+#usr/include/c++/4.4.7/valarray
+#usr/include/c++/4.4.7/vector
+#usr/info
 #usr/info/cpp.info
 #usr/info/cppinternals.info
+#usr/info/dir
 #usr/info/gcc.info
 #usr/info/gccinstall.info
 #usr/info/gccint.info
+#usr/info/libgomp.info
 #usr/lib/gcc
 #usr/lib/gcc/i586-pc-linux-gnu
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/cc1plus
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/collect2
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbegin.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtbeginT.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtend.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtendS.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/crtfastmath.o
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/emmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/float.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/iso646.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm3dnow.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mm_malloc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/mmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/pmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/ssp.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/stdio.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/string.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/ssp/unistd.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stdbool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/stddef.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/syslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/unwind.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/varargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/include/xmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixinc.sh
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/fixincl
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/gsyslimits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/README
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/emmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/float.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/iso646.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/limits.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm3dnow.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mm_malloc.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/mmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/pmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdarg.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stdbool.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/stddef.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/unwind.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/varargs.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/include/xmmintrin.h
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/macro_list
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/install-tools/mkheaders.conf
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcc_eh.a
-#usr/lib/gcc/i586-pc-linux-gnu/4.1.2/libgcov.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/cc1plus
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/collect2
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbegin.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginS.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtbeginT.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtend.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtendS.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtfastmath.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec32.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec64.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/crtprec80.o
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/finclude
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/README
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include-fixed/syslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ammintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/avxintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/bmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cpuid.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/cross-stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/emmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/float.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/immintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/iso646.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mf-runtime.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm3dnow.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mm_malloc.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin-common.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/mmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/nmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/omp.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/pmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/smmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/ssp.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/stdio.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/string.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/ssp/unistd.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdarg.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdbool.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stddef.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/stdfix.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/tmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/unwind.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/varargs.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/wmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/x86intrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/include/xmmintrin.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc.sh
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixinc_list
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/fixincl
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/gsyslimits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/README
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/include/limits.h
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/macro_list
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkheaders.conf
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/install-tools/mkinstalldirs
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcc_eh.a
+#usr/lib/gcc/i586-pc-linux-gnu/4.4.7/libgcov.a
+#usr/lib/libgomp.a
+#usr/lib/libgomp.la
+#usr/lib/libgomp.so
+usr/lib/libgomp.so.1
+usr/lib/libgomp.so.1.0.0
+#usr/lib/libgomp.spec
 #usr/lib/libmudflap.a
 #usr/lib/libmudflap.la
-usr/lib/libmudflap.so
+#usr/lib/libmudflap.so
 usr/lib/libmudflap.so.0
 usr/lib/libmudflap.so.0.0.0
 #usr/lib/libmudflapth.a
 #usr/lib/libmudflapth.la
-usr/lib/libmudflapth.so
+#usr/lib/libmudflapth.so
 usr/lib/libmudflapth.so.0
 usr/lib/libmudflapth.so.0.0.0
 #usr/lib/libssp.a
 #usr/lib/libssp.la
-usr/lib/libssp.so
+#usr/lib/libssp.so
 usr/lib/libssp.so.0
 usr/lib/libssp.so.0.0.0
 #usr/lib/libssp_nonshared.a
 #usr/lib/libssp_nonshared.la
 #usr/lib/libstdc++.a
-#usr/lib/libstdc++.la
-usr/lib/libstdc++.so
-usr/lib/libstdc++.so.6
-usr/lib/libstdc++.so.6.0.8
+usr/lib/libstdc++.so.6.0.13
 #usr/lib/libsupc++.a
 #usr/lib/libsupc++.la
 #usr/man/man1/cpp.1
index 2b0d06e4d490d6870ea41b43e11af3de8454b591..fb36915ccafa0f69601bc0fbf6c43107949511fa 100644 (file)
@@ -1,46 +1,48 @@
-etc/ld.so.cache
+#etc/ld.so.cache
 etc/localtime
-#etc/rpc
-lib/ld-2.3.6.so
+etc/rpc
+lib/ld-2.12.so
 lib/ld-linux.so.2
-#lib/libBrokenLocale-2.3.6.so
-#lib/libBrokenLocale.so.1
+lib/libBrokenLocale-2.12.so
+lib/libBrokenLocale.so.1
 #lib/libSegFault.so
-#lib/libanl-2.3.6.so
-#lib/libanl.so.1
-lib/libc-2.3.6.so
+lib/libanl-2.12.so
+lib/libanl.so.1
+lib/libc-2.12.so
 lib/libc.so.6
-lib/libcrypt-2.3.6.so
+lib/libcidn-2.12.so
+lib/libcidn.so.1
+lib/libcrypt-2.12.so
 lib/libcrypt.so.1
-lib/libdl-2.3.6.so
+lib/libdl-2.12.so
 lib/libdl.so.2
-lib/libm-2.3.6.so
+lib/libm-2.12.so
 lib/libm.so.6
 #lib/libmemusage.so
-lib/libnsl-2.3.6.so
+lib/libnsl-2.12.so
 lib/libnsl.so.1
-lib/libnss_compat-2.3.6.so
+lib/libnss_compat-2.12.so
 lib/libnss_compat.so.2
-lib/libnss_dns-2.3.6.so
+lib/libnss_dns-2.12.so
 lib/libnss_dns.so.2
-lib/libnss_files-2.3.6.so
+lib/libnss_files-2.12.so
 lib/libnss_files.so.2
-#lib/libnss_hesiod-2.3.6.so
-#lib/libnss_hesiod.so.2
-#lib/libnss_nis-2.3.6.so
-#lib/libnss_nis.so.2
-#lib/libnss_nisplus-2.3.6.so
-#lib/libnss_nisplus.so.2
+lib/libnss_hesiod-2.12.so
+lib/libnss_hesiod.so.2
+lib/libnss_nis-2.12.so
+lib/libnss_nis.so.2
+lib/libnss_nisplus-2.12.so
+lib/libnss_nisplus.so.2
 #lib/libpcprofile.so
-lib/libpthread-2.3.6.so
+lib/libpthread-2.12.so
 lib/libpthread.so.0
-lib/libresolv-2.3.6.so
+lib/libresolv-2.12.so
 lib/libresolv.so.2
-lib/librt-2.3.6.so
+lib/librt-2.12.so
 lib/librt.so.1
-#lib/libthread_db-1.0.so
-#lib/libthread_db.so.1
-lib/libutil-2.3.6.so
+lib/libthread_db-1.0.so
+lib/libthread_db.so.1
+lib/libutil-2.12.so
 lib/libutil.so.1
 sbin/ldconfig
 #sbin/sln
@@ -86,7 +88,9 @@ usr/bin/ldd
 #usr/include/bits/endian.h
 #usr/include/bits/environments.h
 #usr/include/bits/errno.h
+#usr/include/bits/error.h
 #usr/include/bits/fcntl.h
+#usr/include/bits/fcntl2.h
 #usr/include/bits/fenv.h
 #usr/include/bits/fenvinline.h
 #usr/include/bits/huge_val.h
@@ -100,13 +104,17 @@ usr/bin/ldd
 #usr/include/bits/ipc.h
 #usr/include/bits/ipctypes.h
 #usr/include/bits/libc-lock.h
+#usr/include/bits/libio-ldbl.h
+#usr/include/bits/link.h
 #usr/include/bits/local_lim.h
 #usr/include/bits/locale.h
 #usr/include/bits/mathcalls.h
 #usr/include/bits/mathdef.h
 #usr/include/bits/mathinline.h
 #usr/include/bits/mman.h
+#usr/include/bits/monetary-ldbl.h
 #usr/include/bits/mqueue.h
+#usr/include/bits/mqueue2.h
 #usr/include/bits/msq.h
 #usr/include/bits/nan.h
 #usr/include/bits/netdb.h
@@ -114,6 +122,7 @@ usr/bin/ldd
 #usr/include/bits/posix1_lim.h
 #usr/include/bits/posix2_lim.h
 #usr/include/bits/posix_opt.h
+#usr/include/bits/printf-ldbl.h
 #usr/include/bits/pthreadtypes.h
 #usr/include/bits/resource.h
 #usr/include/bits/sched.h
@@ -121,6 +130,7 @@ usr/bin/ldd
 #usr/include/bits/sem.h
 #usr/include/bits/semaphore.h
 #usr/include/bits/setjmp.h
+#usr/include/bits/setjmp2.h
 #usr/include/bits/shm.h
 #usr/include/bits/sigaction.h
 #usr/include/bits/sigcontext.h
@@ -131,35 +141,43 @@ usr/bin/ldd
 #usr/include/bits/sigthread.h
 #usr/include/bits/sockaddr.h
 #usr/include/bits/socket.h
+#usr/include/bits/socket2.h
 #usr/include/bits/stab.def
 #usr/include/bits/stat.h
 #usr/include/bits/statfs.h
 #usr/include/bits/statvfs.h
+#usr/include/bits/stdio-ldbl.h
 #usr/include/bits/stdio-lock.h
 #usr/include/bits/stdio.h
 #usr/include/bits/stdio2.h
 #usr/include/bits/stdio_lim.h
+#usr/include/bits/stdlib-ldbl.h
+#usr/include/bits/stdlib.h
 #usr/include/bits/string.h
 #usr/include/bits/string2.h
 #usr/include/bits/string3.h
-#usr/include/bits/stropts.h
 #usr/include/bits/sys_errlist.h
 #usr/include/bits/syscall.h
+#usr/include/bits/syslog-ldbl.h
+#usr/include/bits/syslog-path.h
+#usr/include/bits/syslog.h
 #usr/include/bits/termios.h
 #usr/include/bits/time.h
 #usr/include/bits/types.h
 #usr/include/bits/typesizes.h
 #usr/include/bits/uio.h
+#usr/include/bits/unistd.h
 #usr/include/bits/ustat.h
 #usr/include/bits/utmp.h
 #usr/include/bits/utmpx.h
 #usr/include/bits/utsname.h
 #usr/include/bits/waitflags.h
 #usr/include/bits/waitstatus.h
+#usr/include/bits/wchar-ldbl.h
 #usr/include/bits/wchar.h
+#usr/include/bits/wchar2.h
 #usr/include/bits/wordsize.h
 #usr/include/bits/xopen_lim.h
-#usr/include/bits/xtitypes.h
 #usr/include/byteswap.h
 #usr/include/complex.h
 #usr/include/cpio.h
@@ -190,8 +208,10 @@ usr/bin/ldd
 #usr/include/gnu-versions.h
 #usr/include/gnu/lib-names.h
 #usr/include/gnu/libc-version.h
+#usr/include/gnu/stubs-32.h
 #usr/include/gnu/stubs.h
 #usr/include/grp.h
+#usr/include/gshadow.h
 #usr/include/iconv.h
 #usr/include/ieee754.h
 #usr/include/ifaddrs.h
@@ -247,6 +267,8 @@ usr/bin/ldd
 #usr/include/netinet/udp.h
 #usr/include/netipx
 #usr/include/netipx/ipx.h
+#usr/include/netiucv
+#usr/include/netiucv/iucv.h
 #usr/include/netpacket
 #usr/include/netpacket/packet.h
 #usr/include/netrom
@@ -332,8 +354,6 @@ usr/bin/ldd
 #usr/include/rpcsvc/yppasswd.x
 #usr/include/rpcsvc/ypupd.h
 #usr/include/sched.h
-#usr/include/scsi
-#usr/include/scsi/scsi.h
 #usr/include/scsi/scsi_ioctl.h
 #usr/include/scsi/sg.h
 #usr/include/search.h
@@ -350,7 +370,6 @@ usr/bin/ldd
 #usr/include/stdlib.h
 #usr/include/string.h
 #usr/include/strings.h
-#usr/include/stropts.h
 #usr/include/sys
 #usr/include/sys/acct.h
 #usr/include/sys/bitypes.h
@@ -360,6 +379,7 @@ usr/bin/ldd
 #usr/include/sys/elf.h
 #usr/include/sys/epoll.h
 #usr/include/sys/errno.h
+#usr/include/sys/eventfd.h
 #usr/include/sys/fcntl.h
 #usr/include/sys/file.h
 #usr/include/sys/fsuid.h
@@ -396,13 +416,13 @@ usr/bin/ldd
 #usr/include/sys/sendfile.h
 #usr/include/sys/shm.h
 #usr/include/sys/signal.h
+#usr/include/sys/signalfd.h
 #usr/include/sys/socket.h
 #usr/include/sys/socketvar.h
 #usr/include/sys/soundcard.h
 #usr/include/sys/stat.h
 #usr/include/sys/statfs.h
 #usr/include/sys/statvfs.h
-#usr/include/sys/stropts.h
 #usr/include/sys/swap.h
 #usr/include/sys/syscall.h
 #usr/include/sys/sysctl.h
@@ -412,6 +432,7 @@ usr/bin/ldd
 #usr/include/sys/termios.h
 #usr/include/sys/time.h
 #usr/include/sys/timeb.h
+#usr/include/sys/timerfd.h
 #usr/include/sys/times.h
 #usr/include/sys/timex.h
 #usr/include/sys/ttychars.h
@@ -455,20 +476,6 @@ usr/bin/ldd
 #usr/include/wctype.h
 #usr/include/wordexp.h
 #usr/include/xlocale.h
-#usr/info
-#usr/info/dir
-#usr/info/libc.info
-#usr/info/libc.info-1
-#usr/info/libc.info-10
-#usr/info/libc.info-11
-#usr/info/libc.info-2
-#usr/info/libc.info-3
-#usr/info/libc.info-4
-#usr/info/libc.info-5
-#usr/info/libc.info-6
-#usr/info/libc.info-7
-#usr/info/libc.info-8
-#usr/info/libc.info-9
 #usr/lib/Mcrt1.o
 #usr/lib/Scrt1.o
 #usr/lib/crt1.o
@@ -480,6 +487,7 @@ usr/lib/gconv
 #usr/lib/gconv/ASMO_449.so
 #usr/lib/gconv/BIG5.so
 #usr/lib/gconv/BIG5HKSCS.so
+#usr/lib/gconv/BRF.so
 #usr/lib/gconv/CP10007.so
 #usr/lib/gconv/CP1125.so
 #usr/lib/gconv/CP1250.so
@@ -530,22 +538,60 @@ usr/lib/gconv
 #usr/lib/gconv/GREEK-CCITT.so
 #usr/lib/gconv/GREEK7-OLD.so
 #usr/lib/gconv/GREEK7.so
+#usr/lib/gconv/HP-GREEK8.so
 #usr/lib/gconv/HP-ROMAN8.so
+#usr/lib/gconv/HP-ROMAN9.so
+#usr/lib/gconv/HP-THAI8.so
+#usr/lib/gconv/HP-TURKISH8.so
 #usr/lib/gconv/IBM037.so
 #usr/lib/gconv/IBM038.so
 #usr/lib/gconv/IBM1004.so
+#usr/lib/gconv/IBM1008.so
+#usr/lib/gconv/IBM1008_420.so
+#usr/lib/gconv/IBM1025.so
 #usr/lib/gconv/IBM1026.so
 #usr/lib/gconv/IBM1046.so
 #usr/lib/gconv/IBM1047.so
+#usr/lib/gconv/IBM1097.so
+#usr/lib/gconv/IBM1112.so
+#usr/lib/gconv/IBM1122.so
+#usr/lib/gconv/IBM1123.so
 #usr/lib/gconv/IBM1124.so
 #usr/lib/gconv/IBM1129.so
+#usr/lib/gconv/IBM1130.so
 #usr/lib/gconv/IBM1132.so
 #usr/lib/gconv/IBM1133.so
+#usr/lib/gconv/IBM1137.so
+#usr/lib/gconv/IBM1140.so
+#usr/lib/gconv/IBM1141.so
+#usr/lib/gconv/IBM1142.so
+#usr/lib/gconv/IBM1143.so
+#usr/lib/gconv/IBM1144.so
+#usr/lib/gconv/IBM1145.so
+#usr/lib/gconv/IBM1146.so
+#usr/lib/gconv/IBM1147.so
+#usr/lib/gconv/IBM1148.so
+#usr/lib/gconv/IBM1149.so
+#usr/lib/gconv/IBM1153.so
+#usr/lib/gconv/IBM1154.so
+#usr/lib/gconv/IBM1155.so
+#usr/lib/gconv/IBM1156.so
+#usr/lib/gconv/IBM1157.so
+#usr/lib/gconv/IBM1158.so
 #usr/lib/gconv/IBM1160.so
 #usr/lib/gconv/IBM1161.so
 #usr/lib/gconv/IBM1162.so
 #usr/lib/gconv/IBM1163.so
 #usr/lib/gconv/IBM1164.so
+#usr/lib/gconv/IBM1166.so
+#usr/lib/gconv/IBM1167.so
+#usr/lib/gconv/IBM12712.so
+#usr/lib/gconv/IBM1364.so
+#usr/lib/gconv/IBM1371.so
+#usr/lib/gconv/IBM1388.so
+#usr/lib/gconv/IBM1390.so
+#usr/lib/gconv/IBM1399.so
+#usr/lib/gconv/IBM16804.so
 #usr/lib/gconv/IBM256.so
 #usr/lib/gconv/IBM273.so
 #usr/lib/gconv/IBM274.so
@@ -562,7 +608,13 @@ usr/lib/gconv
 #usr/lib/gconv/IBM423.so
 #usr/lib/gconv/IBM424.so
 #usr/lib/gconv/IBM437.so
+#usr/lib/gconv/IBM4517.so
+#usr/lib/gconv/IBM4899.so
+#usr/lib/gconv/IBM4909.so
+#usr/lib/gconv/IBM4971.so
 #usr/lib/gconv/IBM500.so
+#usr/lib/gconv/IBM5347.so
+#usr/lib/gconv/IBM803.so
 #usr/lib/gconv/IBM850.so
 #usr/lib/gconv/IBM851.so
 #usr/lib/gconv/IBM852.so
@@ -585,10 +637,15 @@ usr/lib/gconv
 #usr/lib/gconv/IBM875.so
 #usr/lib/gconv/IBM880.so
 #usr/lib/gconv/IBM891.so
+#usr/lib/gconv/IBM901.so
+#usr/lib/gconv/IBM902.so
 #usr/lib/gconv/IBM903.so
+#usr/lib/gconv/IBM9030.so
 #usr/lib/gconv/IBM904.so
 #usr/lib/gconv/IBM905.so
+#usr/lib/gconv/IBM9066.so
 #usr/lib/gconv/IBM918.so
+#usr/lib/gconv/IBM921.so
 #usr/lib/gconv/IBM922.so
 #usr/lib/gconv/IBM930.so
 #usr/lib/gconv/IBM932.so
@@ -597,6 +654,7 @@ usr/lib/gconv
 #usr/lib/gconv/IBM937.so
 #usr/lib/gconv/IBM939.so
 #usr/lib/gconv/IBM943.so
+#usr/lib/gconv/IBM9448.so
 #usr/lib/gconv/IEC_P27-1.so
 #usr/lib/gconv/INIS-8.so
 #usr/lib/gconv/INIS-CYRILLIC.so
@@ -625,7 +683,9 @@ usr/lib/gconv
 #usr/lib/gconv/ISO8859-7.so
 #usr/lib/gconv/ISO8859-8.so
 #usr/lib/gconv/ISO8859-9.so
+#usr/lib/gconv/ISO8859-9E.so
 #usr/lib/gconv/ISO_10367-BOX.so
+#usr/lib/gconv/ISO_11548-1.so
 #usr/lib/gconv/ISO_2033.so
 #usr/lib/gconv/ISO_5427-EXT.so
 #usr/lib/gconv/ISO_5427.so
@@ -635,14 +695,17 @@ usr/lib/gconv
 #usr/lib/gconv/JOHAB.so
 #usr/lib/gconv/KOI-8.so
 #usr/lib/gconv/KOI8-R.so
+#usr/lib/gconv/KOI8-RU.so
 #usr/lib/gconv/KOI8-T.so
 #usr/lib/gconv/KOI8-U.so
 #usr/lib/gconv/LATIN-GREEK-1.so
 #usr/lib/gconv/LATIN-GREEK.so
+#usr/lib/gconv/MAC-CENTRALEUROPE.so
 #usr/lib/gconv/MAC-IS.so
 #usr/lib/gconv/MAC-SAMI.so
 #usr/lib/gconv/MAC-UK.so
 #usr/lib/gconv/MACINTOSH.so
+#usr/lib/gconv/MIK.so
 #usr/lib/gconv/NATS-DANO.so
 #usr/lib/gconv/NATS-SEFI.so
 #usr/lib/gconv/PT154.so
@@ -672,6 +735,8 @@ usr/lib/gconv
 #usr/lib/glibc/getconf
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFF32
 #usr/lib/glibc/getconf/POSIX_V6_ILP32_OFFBIG
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFF32
+#usr/lib/glibc/getconf/POSIX_V7_ILP32_OFFBIG
 #usr/lib/glibc/pt_chown
 #usr/lib/libBrokenLocale.a
 #usr/lib/libBrokenLocale.so
@@ -681,6 +746,7 @@ usr/lib/gconv
 #usr/lib/libc.a
 #usr/lib/libc.so
 #usr/lib/libc_nonshared.a
+#usr/lib/libcidn.so
 #usr/lib/libcrypt.a
 #usr/lib/libcrypt.so
 #usr/lib/libdl.a
@@ -713,7 +779,6 @@ usr/lib/gconv
 usr/lib/locale/locale-archive
 #usr/sbin/iconvconfig
 #usr/sbin/nscd
-#usr/sbin/nscd_nischeck
 #usr/sbin/rpcinfo
 #usr/sbin/zdump
 #usr/sbin/zic
@@ -725,6 +790,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ASMO_449.gz
 #usr/share/i18n/charmaps/BIG5-HKSCS.gz
 #usr/share/i18n/charmaps/BIG5.gz
+#usr/share/i18n/charmaps/BRF.gz
 #usr/share/i18n/charmaps/BS_4730.gz
 #usr/share/i18n/charmaps/BS_VIEWDATA.gz
 #usr/share/i18n/charmaps/CP10007.gz
@@ -783,7 +849,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/GREEK-CCITT.gz
 #usr/share/i18n/charmaps/GREEK7-OLD.gz
 #usr/share/i18n/charmaps/GREEK7.gz
+#usr/share/i18n/charmaps/HP-GREEK8.gz
 #usr/share/i18n/charmaps/HP-ROMAN8.gz
+#usr/share/i18n/charmaps/HP-ROMAN9.gz
+#usr/share/i18n/charmaps/HP-THAI8.gz
+#usr/share/i18n/charmaps/HP-TURKISH8.gz
 #usr/share/i18n/charmaps/IBM037.gz
 #usr/share/i18n/charmaps/IBM038.gz
 #usr/share/i18n/charmaps/IBM1004.gz
@@ -863,11 +933,13 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/ISO-8859-7.gz
 #usr/share/i18n/charmaps/ISO-8859-8.gz
 #usr/share/i18n/charmaps/ISO-8859-9.gz
+#usr/share/i18n/charmaps/ISO-8859-9E.gz
 #usr/share/i18n/charmaps/ISO-IR-197.gz
 #usr/share/i18n/charmaps/ISO-IR-209.gz
 #usr/share/i18n/charmaps/ISO-IR-90.gz
 #usr/share/i18n/charmaps/ISO_10367-BOX.gz
 #usr/share/i18n/charmaps/ISO_10646.gz
+#usr/share/i18n/charmaps/ISO_11548-1.gz
 #usr/share/i18n/charmaps/ISO_2033-1983.gz
 #usr/share/i18n/charmaps/ISO_5427-EXT.gz
 #usr/share/i18n/charmaps/ISO_5427.gz
@@ -895,16 +967,19 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/charmaps/JUS_I.B1.003-SERB.gz
 #usr/share/i18n/charmaps/KOI-8.gz
 #usr/share/i18n/charmaps/KOI8-R.gz
+#usr/share/i18n/charmaps/KOI8-RU.gz
 #usr/share/i18n/charmaps/KOI8-T.gz
 #usr/share/i18n/charmaps/KOI8-U.gz
 #usr/share/i18n/charmaps/KSC5636.gz
 #usr/share/i18n/charmaps/LATIN-GREEK-1.gz
 #usr/share/i18n/charmaps/LATIN-GREEK.gz
+#usr/share/i18n/charmaps/MAC-CENTRALEUROPE.gz
 #usr/share/i18n/charmaps/MAC-CYRILLIC.gz
 #usr/share/i18n/charmaps/MAC-IS.gz
 #usr/share/i18n/charmaps/MAC-SAMI.gz
 #usr/share/i18n/charmaps/MAC-UK.gz
 #usr/share/i18n/charmaps/MACINTOSH.gz
+#usr/share/i18n/charmaps/MIK.gz
 #usr/share/i18n/charmaps/MSZ_7795.3.gz
 #usr/share/i18n/charmaps/NATS-DANO-ADD.gz
 #usr/share/i18n/charmaps/NATS-DANO.gz
@@ -963,18 +1038,31 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ar_SY
 #usr/share/i18n/locales/ar_TN
 #usr/share/i18n/locales/ar_YE
+#usr/share/i18n/locales/as_IN
+#usr/share/i18n/locales/ast_ES
 #usr/share/i18n/locales/az_AZ
 #usr/share/i18n/locales/be_BY
+#usr/share/i18n/locales/be_BY@latin
+#usr/share/i18n/locales/ber_DZ
+#usr/share/i18n/locales/ber_MA
 #usr/share/i18n/locales/bg_BG
 #usr/share/i18n/locales/bn_BD
 #usr/share/i18n/locales/bn_IN
+#usr/share/i18n/locales/bo_CN
+#usr/share/i18n/locales/bo_IN
 #usr/share/i18n/locales/br_FR
 #usr/share/i18n/locales/br_FR@euro
 #usr/share/i18n/locales/bs_BA
 #usr/share/i18n/locales/byn_ER
+#usr/share/i18n/locales/ca_AD
 #usr/share/i18n/locales/ca_ES
 #usr/share/i18n/locales/ca_ES@euro
+#usr/share/i18n/locales/ca_FR
+#usr/share/i18n/locales/ca_IT
+#usr/share/i18n/locales/crh_UA
 #usr/share/i18n/locales/cs_CZ
+#usr/share/i18n/locales/csb_PL
+#usr/share/i18n/locales/cv_RU
 #usr/share/i18n/locales/cy_GB
 #usr/share/i18n/locales/da_DK
 #usr/share/i18n/locales/de_AT
@@ -986,8 +1074,12 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/de_DE@euro
 #usr/share/i18n/locales/de_LU
 #usr/share/i18n/locales/de_LU@euro
+#usr/share/i18n/locales/dv_MV
+#usr/share/i18n/locales/dz_BT
+#usr/share/i18n/locales/el_CY
 #usr/share/i18n/locales/el_GR
 #usr/share/i18n/locales/el_GR@euro
+#usr/share/i18n/locales/en_AG
 #usr/share/i18n/locales/en_AU
 #usr/share/i18n/locales/en_BW
 #usr/share/i18n/locales/en_CA
@@ -997,6 +1089,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/en_IE
 #usr/share/i18n/locales/en_IE@euro
 #usr/share/i18n/locales/en_IN
+#usr/share/i18n/locales/en_NG
 #usr/share/i18n/locales/en_NZ
 #usr/share/i18n/locales/en_PH
 #usr/share/i18n/locales/en_SG
@@ -1030,6 +1123,7 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fa_IR
 #usr/share/i18n/locales/fi_FI
 #usr/share/i18n/locales/fi_FI@euro
+#usr/share/i18n/locales/fil_PH
 #usr/share/i18n/locales/fo_FO
 #usr/share/i18n/locales/fr_BE
 #usr/share/i18n/locales/fr_BE@euro
@@ -1039,6 +1133,9 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/fr_FR@euro
 #usr/share/i18n/locales/fr_LU
 #usr/share/i18n/locales/fr_LU@euro
+#usr/share/i18n/locales/fur_IT
+#usr/share/i18n/locales/fy_DE
+#usr/share/i18n/locales/fy_NL
 #usr/share/i18n/locales/ga_IE
 #usr/share/i18n/locales/ga_IE@euro
 #usr/share/i18n/locales/gd_GB
@@ -1050,30 +1147,49 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/gl_ES@euro
 #usr/share/i18n/locales/gu_IN
 #usr/share/i18n/locales/gv_GB
+#usr/share/i18n/locales/ha_NG
 #usr/share/i18n/locales/he_IL
 #usr/share/i18n/locales/hi_IN
+#usr/share/i18n/locales/hne_IN
 #usr/share/i18n/locales/hr_HR
+#usr/share/i18n/locales/hsb_DE
+#usr/share/i18n/locales/ht_HT
 #usr/share/i18n/locales/hu_HU
 #usr/share/i18n/locales/hy_AM
 #usr/share/i18n/locales/i18n
 #usr/share/i18n/locales/id_ID
+#usr/share/i18n/locales/ig_NG
+#usr/share/i18n/locales/ik_CA
 #usr/share/i18n/locales/is_IS
 #usr/share/i18n/locales/iso14651_t1
+#usr/share/i18n/locales/iso14651_t1_common
+#usr/share/i18n/locales/iso14651_t1_pinyin
 #usr/share/i18n/locales/it_CH
 #usr/share/i18n/locales/it_IT
 #usr/share/i18n/locales/it_IT@euro
+#usr/share/i18n/locales/iu_CA
 #usr/share/i18n/locales/iw_IL
 #usr/share/i18n/locales/ja_JP
 #usr/share/i18n/locales/ka_GE
 #usr/share/i18n/locales/kk_KZ
 #usr/share/i18n/locales/kl_GL
+#usr/share/i18n/locales/km_KH
 #usr/share/i18n/locales/kn_IN
 #usr/share/i18n/locales/ko_KR
+#usr/share/i18n/locales/kok_IN
+#usr/share/i18n/locales/ks_IN
+#usr/share/i18n/locales/ks_IN@devanagari
+#usr/share/i18n/locales/ku_TR
 #usr/share/i18n/locales/kw_GB
+#usr/share/i18n/locales/ky_KG
 #usr/share/i18n/locales/lg_UG
+#usr/share/i18n/locales/li_BE
+#usr/share/i18n/locales/li_NL
 #usr/share/i18n/locales/lo_LA
 #usr/share/i18n/locales/lt_LT
 #usr/share/i18n/locales/lv_LV
+#usr/share/i18n/locales/mai_IN
+#usr/share/i18n/locales/mg_MG
 #usr/share/i18n/locales/mi_NZ
 #usr/share/i18n/locales/mk_MK
 #usr/share/i18n/locales/ml_IN
@@ -1081,25 +1197,44 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/mr_IN
 #usr/share/i18n/locales/ms_MY
 #usr/share/i18n/locales/mt_MT
+#usr/share/i18n/locales/my_MM
+#usr/share/i18n/locales/nan_TW@latin
 #usr/share/i18n/locales/nb_NO
+#usr/share/i18n/locales/nds_DE
+#usr/share/i18n/locales/nds_NL
 #usr/share/i18n/locales/ne_NP
+#usr/share/i18n/locales/nl_AW
 #usr/share/i18n/locales/nl_BE
 #usr/share/i18n/locales/nl_BE@euro
 #usr/share/i18n/locales/nl_NL
 #usr/share/i18n/locales/nl_NL@euro
 #usr/share/i18n/locales/nn_NO
+#usr/share/i18n/locales/no_NO
+#usr/share/i18n/locales/nr_ZA
+#usr/share/i18n/locales/nso_ZA
 #usr/share/i18n/locales/oc_FR
 #usr/share/i18n/locales/om_ET
 #usr/share/i18n/locales/om_KE
+#usr/share/i18n/locales/or_IN
 #usr/share/i18n/locales/pa_IN
+#usr/share/i18n/locales/pa_PK
+#usr/share/i18n/locales/pap_AN
 #usr/share/i18n/locales/pl_PL
+#usr/share/i18n/locales/ps_AF
 #usr/share/i18n/locales/pt_BR
 #usr/share/i18n/locales/pt_PT
 #usr/share/i18n/locales/pt_PT@euro
 #usr/share/i18n/locales/ro_RO
 #usr/share/i18n/locales/ru_RU
 #usr/share/i18n/locales/ru_UA
+#usr/share/i18n/locales/rw_RW
+#usr/share/i18n/locales/sa_IN
+#usr/share/i18n/locales/sc_IT
+#usr/share/i18n/locales/sd_IN
+#usr/share/i18n/locales/sd_IN@devanagari
 #usr/share/i18n/locales/se_NO
+#usr/share/i18n/locales/shs_CA
+#usr/share/i18n/locales/si_LK
 #usr/share/i18n/locales/sid_ET
 #usr/share/i18n/locales/sk_SK
 #usr/share/i18n/locales/sl_SI
@@ -1108,7 +1243,11 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/so_KE
 #usr/share/i18n/locales/so_SO
 #usr/share/i18n/locales/sq_AL
-#usr/share/i18n/locales/sr_CS
+#usr/share/i18n/locales/sq_MK
+#usr/share/i18n/locales/sr_ME
+#usr/share/i18n/locales/sr_RS
+#usr/share/i18n/locales/sr_RS@latin
+#usr/share/i18n/locales/ss_ZA
 #usr/share/i18n/locales/st_ZA
 #usr/share/i18n/locales/sv_FI
 #usr/share/i18n/locales/sv_FI@euro
@@ -1120,7 +1259,10 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/ti_ER
 #usr/share/i18n/locales/ti_ET
 #usr/share/i18n/locales/tig_ER
+#usr/share/i18n/locales/tk_TM
 #usr/share/i18n/locales/tl_PH
+#usr/share/i18n/locales/tn_ZA
+#usr/share/i18n/locales/tr_CY
 #usr/share/i18n/locales/tr_TR
 #usr/share/i18n/locales/translit_circle
 #usr/share/i18n/locales/translit_cjk_compat
@@ -1134,25 +1276,48 @@ usr/lib/locale/locale-archive
 #usr/share/i18n/locales/translit_neutral
 #usr/share/i18n/locales/translit_small
 #usr/share/i18n/locales/translit_wide
+#usr/share/i18n/locales/ts_ZA
 #usr/share/i18n/locales/tt_RU
+#usr/share/i18n/locales/tt_RU@iqtelif
+#usr/share/i18n/locales/ug_CN
 #usr/share/i18n/locales/uk_UA
+#usr/share/i18n/locales/ur_IN
 #usr/share/i18n/locales/ur_PK
 #usr/share/i18n/locales/uz_UZ
 #usr/share/i18n/locales/uz_UZ@cyrillic
+#usr/share/i18n/locales/ve_ZA
 #usr/share/i18n/locales/vi_VN
 #usr/share/i18n/locales/wa_BE
 #usr/share/i18n/locales/wa_BE@euro
 #usr/share/i18n/locales/wal_ET
+#usr/share/i18n/locales/wo_SN
 #usr/share/i18n/locales/xh_ZA
 #usr/share/i18n/locales/yi_US
+#usr/share/i18n/locales/yo_NG
 #usr/share/i18n/locales/zh_CN
 #usr/share/i18n/locales/zh_HK
 #usr/share/i18n/locales/zh_SG
 #usr/share/i18n/locales/zh_TW
 #usr/share/i18n/locales/zu_ZA
+#usr/share/info/dir
+#usr/share/info/libc.info
+#usr/share/info/libc.info-1
+#usr/share/info/libc.info-10
+#usr/share/info/libc.info-11
+#usr/share/info/libc.info-2
+#usr/share/info/libc.info-3
+#usr/share/info/libc.info-4
+#usr/share/info/libc.info-5
+#usr/share/info/libc.info-6
+#usr/share/info/libc.info-7
+#usr/share/info/libc.info-8
+#usr/share/info/libc.info-9
 #usr/share/locale/be
 #usr/share/locale/be/LC_MESSAGES
 #usr/share/locale/be/LC_MESSAGES/libc.mo
+#usr/share/locale/bg
+#usr/share/locale/bg/LC_MESSAGES
+#usr/share/locale/bg/LC_MESSAGES/libc.mo
 #usr/share/locale/ca
 #usr/share/locale/ca/LC_MESSAGES
 #usr/share/locale/ca/LC_MESSAGES/libc.mo
@@ -1189,6 +1354,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/hu
 #usr/share/locale/hu/LC_MESSAGES
 #usr/share/locale/hu/LC_MESSAGES/libc.mo
+#usr/share/locale/id
+#usr/share/locale/id/LC_MESSAGES
+#usr/share/locale/id/LC_MESSAGES/libc.mo
 #usr/share/locale/it
 #usr/share/locale/it/LC_MESSAGES
 #usr/share/locale/it/LC_MESSAGES/libc.mo
@@ -1199,6 +1367,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/ko/LC_MESSAGES
 #usr/share/locale/ko/LC_MESSAGES/libc.mo
 #usr/share/locale/locale.alias
+#usr/share/locale/lt
+#usr/share/locale/lt/LC_MESSAGES
+#usr/share/locale/lt/LC_MESSAGES/libc.mo
 #usr/share/locale/nb
 #usr/share/locale/nb/LC_MESSAGES
 #usr/share/locale/nb/LC_MESSAGES/libc.mo
@@ -1211,6 +1382,12 @@ usr/lib/locale/locale-archive
 #usr/share/locale/pt_BR
 #usr/share/locale/pt_BR/LC_MESSAGES
 #usr/share/locale/pt_BR/LC_MESSAGES/libc.mo
+#usr/share/locale/ru
+#usr/share/locale/ru/LC_MESSAGES
+#usr/share/locale/ru/LC_MESSAGES/libc.mo
+#usr/share/locale/rw
+#usr/share/locale/rw/LC_MESSAGES
+#usr/share/locale/rw/LC_MESSAGES/libc.mo
 #usr/share/locale/sk
 #usr/share/locale/sk/LC_MESSAGES
 #usr/share/locale/sk/LC_MESSAGES/libc.mo
@@ -1220,6 +1397,9 @@ usr/lib/locale/locale-archive
 #usr/share/locale/tr
 #usr/share/locale/tr/LC_MESSAGES
 #usr/share/locale/tr/LC_MESSAGES/libc.mo
+#usr/share/locale/vi
+#usr/share/locale/vi/LC_MESSAGES
+#usr/share/locale/vi/LC_MESSAGES/libc.mo
 #usr/share/locale/zh_CN
 #usr/share/locale/zh_CN/LC_MESSAGES
 #usr/share/locale/zh_CN/LC_MESSAGES/libc.mo
@@ -1231,6 +1411,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Africa/Accra
 #usr/share/zoneinfo/Africa/Addis_Ababa
 #usr/share/zoneinfo/Africa/Algiers
+#usr/share/zoneinfo/Africa/Asmara
 #usr/share/zoneinfo/Africa/Asmera
 #usr/share/zoneinfo/Africa/Bamako
 #usr/share/zoneinfo/Africa/Bangui
@@ -1294,16 +1475,20 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Argentina/La_Rioja
 #usr/share/zoneinfo/America/Argentina/Mendoza
 #usr/share/zoneinfo/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/America/Argentina/Salta
 #usr/share/zoneinfo/America/Argentina/San_Juan
+#usr/share/zoneinfo/America/Argentina/San_Luis
 #usr/share/zoneinfo/America/Argentina/Tucuman
 #usr/share/zoneinfo/America/Argentina/Ushuaia
 #usr/share/zoneinfo/America/Aruba
 #usr/share/zoneinfo/America/Asuncion
+#usr/share/zoneinfo/America/Atikokan
 #usr/share/zoneinfo/America/Atka
 #usr/share/zoneinfo/America/Bahia
 #usr/share/zoneinfo/America/Barbados
 #usr/share/zoneinfo/America/Belem
 #usr/share/zoneinfo/America/Belize
+#usr/share/zoneinfo/America/Blanc-Sablon
 #usr/share/zoneinfo/America/Boa_Vista
 #usr/share/zoneinfo/America/Bogota
 #usr/share/zoneinfo/America/Boise
@@ -1350,7 +1535,11 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Indiana/Indianapolis
 #usr/share/zoneinfo/America/Indiana/Knox
 #usr/share/zoneinfo/America/Indiana/Marengo
+#usr/share/zoneinfo/America/Indiana/Petersburg
+#usr/share/zoneinfo/America/Indiana/Tell_City
 #usr/share/zoneinfo/America/Indiana/Vevay
+#usr/share/zoneinfo/America/Indiana/Vincennes
+#usr/share/zoneinfo/America/Indiana/Winamac
 #usr/share/zoneinfo/America/Indianapolis
 #usr/share/zoneinfo/America/Inuvik
 #usr/share/zoneinfo/America/Iqaluit
@@ -1368,6 +1557,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Maceio
 #usr/share/zoneinfo/America/Managua
 #usr/share/zoneinfo/America/Manaus
+#usr/share/zoneinfo/America/Marigot
 #usr/share/zoneinfo/America/Martinique
 #usr/share/zoneinfo/America/Mazatlan
 #usr/share/zoneinfo/America/Mendoza
@@ -1375,6 +1565,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Merida
 #usr/share/zoneinfo/America/Mexico_City
 #usr/share/zoneinfo/America/Miquelon
+#usr/share/zoneinfo/America/Moncton
 #usr/share/zoneinfo/America/Monterrey
 #usr/share/zoneinfo/America/Montevideo
 #usr/share/zoneinfo/America/Montreal
@@ -1386,6 +1577,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Noronha
 #usr/share/zoneinfo/America/North_Dakota
 #usr/share/zoneinfo/America/North_Dakota/Center
+#usr/share/zoneinfo/America/North_Dakota/New_Salem
 #usr/share/zoneinfo/America/Panama
 #usr/share/zoneinfo/America/Pangnirtung
 #usr/share/zoneinfo/America/Paramaribo
@@ -1399,13 +1591,16 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/America/Rankin_Inlet
 #usr/share/zoneinfo/America/Recife
 #usr/share/zoneinfo/America/Regina
+#usr/share/zoneinfo/America/Resolute
 #usr/share/zoneinfo/America/Rio_Branco
 #usr/share/zoneinfo/America/Rosario
+#usr/share/zoneinfo/America/Santarem
 #usr/share/zoneinfo/America/Santiago
 #usr/share/zoneinfo/America/Santo_Domingo
 #usr/share/zoneinfo/America/Sao_Paulo
 #usr/share/zoneinfo/America/Scoresbysund
 #usr/share/zoneinfo/America/Shiprock
+#usr/share/zoneinfo/America/St_Barthelemy
 #usr/share/zoneinfo/America/St_Johns
 #usr/share/zoneinfo/America/St_Kitts
 #usr/share/zoneinfo/America/St_Lucia
@@ -1466,6 +1661,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Asia/Dushanbe
 #usr/share/zoneinfo/Asia/Gaza
 #usr/share/zoneinfo/Asia/Harbin
+#usr/share/zoneinfo/Asia/Ho_Chi_Minh
 #usr/share/zoneinfo/Asia/Hong_Kong
 #usr/share/zoneinfo/Asia/Hovd
 #usr/share/zoneinfo/Asia/Irkutsk
@@ -1477,7 +1673,9 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Asia/Kamchatka
 #usr/share/zoneinfo/Asia/Karachi
 #usr/share/zoneinfo/Asia/Kashgar
+#usr/share/zoneinfo/Asia/Kathmandu
 #usr/share/zoneinfo/Asia/Katmandu
+#usr/share/zoneinfo/Asia/Kolkata
 #usr/share/zoneinfo/Asia/Krasnoyarsk
 #usr/share/zoneinfo/Asia/Kuala_Lumpur
 #usr/share/zoneinfo/Asia/Kuching
@@ -1531,6 +1729,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Atlantic/Canary
 #usr/share/zoneinfo/Atlantic/Cape_Verde
 #usr/share/zoneinfo/Atlantic/Faeroe
+#usr/share/zoneinfo/Atlantic/Faroe
 #usr/share/zoneinfo/Atlantic/Jan_Mayen
 #usr/share/zoneinfo/Atlantic/Madeira
 #usr/share/zoneinfo/Atlantic/Reykjavik
@@ -1545,6 +1744,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Australia/Canberra
 #usr/share/zoneinfo/Australia/Currie
 #usr/share/zoneinfo/Australia/Darwin
+#usr/share/zoneinfo/Australia/Eucla
 #usr/share/zoneinfo/Australia/Hobart
 #usr/share/zoneinfo/Australia/LHI
 #usr/share/zoneinfo/Australia/Lindeman
@@ -1637,8 +1837,11 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Europe/Copenhagen
 #usr/share/zoneinfo/Europe/Dublin
 #usr/share/zoneinfo/Europe/Gibraltar
+#usr/share/zoneinfo/Europe/Guernsey
 #usr/share/zoneinfo/Europe/Helsinki
+#usr/share/zoneinfo/Europe/Isle_of_Man
 #usr/share/zoneinfo/Europe/Istanbul
+#usr/share/zoneinfo/Europe/Jersey
 #usr/share/zoneinfo/Europe/Kaliningrad
 #usr/share/zoneinfo/Europe/Kiev
 #usr/share/zoneinfo/Europe/Lisbon
@@ -1654,6 +1857,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Europe/Nicosia
 #usr/share/zoneinfo/Europe/Oslo
 #usr/share/zoneinfo/Europe/Paris
+#usr/share/zoneinfo/Europe/Podgorica
 #usr/share/zoneinfo/Europe/Prague
 #usr/share/zoneinfo/Europe/Riga
 #usr/share/zoneinfo/Europe/Rome
@@ -1672,6 +1876,7 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/Europe/Vatican
 #usr/share/zoneinfo/Europe/Vienna
 #usr/share/zoneinfo/Europe/Vilnius
+#usr/share/zoneinfo/Europe/Volgograd
 #usr/share/zoneinfo/Europe/Warsaw
 #usr/share/zoneinfo/Europe/Zagreb
 #usr/share/zoneinfo/Europe/Zaporozhye
@@ -1767,20 +1972,6 @@ usr/lib/locale/locale-archive
 #usr/share/zoneinfo/ROC
 #usr/share/zoneinfo/ROK
 #usr/share/zoneinfo/Singapore
-#usr/share/zoneinfo/SystemV
-#usr/share/zoneinfo/SystemV/AST4
-#usr/share/zoneinfo/SystemV/AST4ADT
-#usr/share/zoneinfo/SystemV/CST6
-#usr/share/zoneinfo/SystemV/CST6CDT
-#usr/share/zoneinfo/SystemV/EST5
-#usr/share/zoneinfo/SystemV/EST5EDT
-#usr/share/zoneinfo/SystemV/HST10
-#usr/share/zoneinfo/SystemV/MST7
-#usr/share/zoneinfo/SystemV/MST7MDT
-#usr/share/zoneinfo/SystemV/PST8
-#usr/share/zoneinfo/SystemV/PST8PDT
-#usr/share/zoneinfo/SystemV/YST9
-#usr/share/zoneinfo/SystemV/YST9YDT
 #usr/share/zoneinfo/Turkey
 #usr/share/zoneinfo/UCT
 #usr/share/zoneinfo/US
@@ -1808,6 +1999,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Africa/Accra
 #usr/share/zoneinfo/posix/Africa/Addis_Ababa
 #usr/share/zoneinfo/posix/Africa/Algiers
+#usr/share/zoneinfo/posix/Africa/Asmara
 #usr/share/zoneinfo/posix/Africa/Asmera
 #usr/share/zoneinfo/posix/Africa/Bamako
 #usr/share/zoneinfo/posix/Africa/Bangui
@@ -1871,16 +2063,20 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Argentina/La_Rioja
 #usr/share/zoneinfo/posix/America/Argentina/Mendoza
 #usr/share/zoneinfo/posix/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/posix/America/Argentina/Salta
 #usr/share/zoneinfo/posix/America/Argentina/San_Juan
+#usr/share/zoneinfo/posix/America/Argentina/San_Luis
 #usr/share/zoneinfo/posix/America/Argentina/Tucuman
 #usr/share/zoneinfo/posix/America/Argentina/Ushuaia
 #usr/share/zoneinfo/posix/America/Aruba
 #usr/share/zoneinfo/posix/America/Asuncion
+#usr/share/zoneinfo/posix/America/Atikokan
 #usr/share/zoneinfo/posix/America/Atka
 #usr/share/zoneinfo/posix/America/Bahia
 #usr/share/zoneinfo/posix/America/Barbados
 #usr/share/zoneinfo/posix/America/Belem
 #usr/share/zoneinfo/posix/America/Belize
+#usr/share/zoneinfo/posix/America/Blanc-Sablon
 #usr/share/zoneinfo/posix/America/Boa_Vista
 #usr/share/zoneinfo/posix/America/Bogota
 #usr/share/zoneinfo/posix/America/Boise
@@ -1927,7 +2123,11 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Indiana/Indianapolis
 #usr/share/zoneinfo/posix/America/Indiana/Knox
 #usr/share/zoneinfo/posix/America/Indiana/Marengo
+#usr/share/zoneinfo/posix/America/Indiana/Petersburg
+#usr/share/zoneinfo/posix/America/Indiana/Tell_City
 #usr/share/zoneinfo/posix/America/Indiana/Vevay
+#usr/share/zoneinfo/posix/America/Indiana/Vincennes
+#usr/share/zoneinfo/posix/America/Indiana/Winamac
 #usr/share/zoneinfo/posix/America/Indianapolis
 #usr/share/zoneinfo/posix/America/Inuvik
 #usr/share/zoneinfo/posix/America/Iqaluit
@@ -1945,6 +2145,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Maceio
 #usr/share/zoneinfo/posix/America/Managua
 #usr/share/zoneinfo/posix/America/Manaus
+#usr/share/zoneinfo/posix/America/Marigot
 #usr/share/zoneinfo/posix/America/Martinique
 #usr/share/zoneinfo/posix/America/Mazatlan
 #usr/share/zoneinfo/posix/America/Mendoza
@@ -1952,6 +2153,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Merida
 #usr/share/zoneinfo/posix/America/Mexico_City
 #usr/share/zoneinfo/posix/America/Miquelon
+#usr/share/zoneinfo/posix/America/Moncton
 #usr/share/zoneinfo/posix/America/Monterrey
 #usr/share/zoneinfo/posix/America/Montevideo
 #usr/share/zoneinfo/posix/America/Montreal
@@ -1963,6 +2165,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Noronha
 #usr/share/zoneinfo/posix/America/North_Dakota
 #usr/share/zoneinfo/posix/America/North_Dakota/Center
+#usr/share/zoneinfo/posix/America/North_Dakota/New_Salem
 #usr/share/zoneinfo/posix/America/Panama
 #usr/share/zoneinfo/posix/America/Pangnirtung
 #usr/share/zoneinfo/posix/America/Paramaribo
@@ -1976,13 +2179,16 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/America/Rankin_Inlet
 #usr/share/zoneinfo/posix/America/Recife
 #usr/share/zoneinfo/posix/America/Regina
+#usr/share/zoneinfo/posix/America/Resolute
 #usr/share/zoneinfo/posix/America/Rio_Branco
 #usr/share/zoneinfo/posix/America/Rosario
+#usr/share/zoneinfo/posix/America/Santarem
 #usr/share/zoneinfo/posix/America/Santiago
 #usr/share/zoneinfo/posix/America/Santo_Domingo
 #usr/share/zoneinfo/posix/America/Sao_Paulo
 #usr/share/zoneinfo/posix/America/Scoresbysund
 #usr/share/zoneinfo/posix/America/Shiprock
+#usr/share/zoneinfo/posix/America/St_Barthelemy
 #usr/share/zoneinfo/posix/America/St_Johns
 #usr/share/zoneinfo/posix/America/St_Kitts
 #usr/share/zoneinfo/posix/America/St_Lucia
@@ -2043,6 +2249,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Asia/Dushanbe
 #usr/share/zoneinfo/posix/Asia/Gaza
 #usr/share/zoneinfo/posix/Asia/Harbin
+#usr/share/zoneinfo/posix/Asia/Ho_Chi_Minh
 #usr/share/zoneinfo/posix/Asia/Hong_Kong
 #usr/share/zoneinfo/posix/Asia/Hovd
 #usr/share/zoneinfo/posix/Asia/Irkutsk
@@ -2054,7 +2261,9 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Asia/Kamchatka
 #usr/share/zoneinfo/posix/Asia/Karachi
 #usr/share/zoneinfo/posix/Asia/Kashgar
+#usr/share/zoneinfo/posix/Asia/Kathmandu
 #usr/share/zoneinfo/posix/Asia/Katmandu
+#usr/share/zoneinfo/posix/Asia/Kolkata
 #usr/share/zoneinfo/posix/Asia/Krasnoyarsk
 #usr/share/zoneinfo/posix/Asia/Kuala_Lumpur
 #usr/share/zoneinfo/posix/Asia/Kuching
@@ -2108,6 +2317,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Atlantic/Canary
 #usr/share/zoneinfo/posix/Atlantic/Cape_Verde
 #usr/share/zoneinfo/posix/Atlantic/Faeroe
+#usr/share/zoneinfo/posix/Atlantic/Faroe
 #usr/share/zoneinfo/posix/Atlantic/Jan_Mayen
 #usr/share/zoneinfo/posix/Atlantic/Madeira
 #usr/share/zoneinfo/posix/Atlantic/Reykjavik
@@ -2122,6 +2332,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Australia/Canberra
 #usr/share/zoneinfo/posix/Australia/Currie
 #usr/share/zoneinfo/posix/Australia/Darwin
+#usr/share/zoneinfo/posix/Australia/Eucla
 #usr/share/zoneinfo/posix/Australia/Hobart
 #usr/share/zoneinfo/posix/Australia/LHI
 #usr/share/zoneinfo/posix/Australia/Lindeman
@@ -2214,8 +2425,11 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Europe/Copenhagen
 #usr/share/zoneinfo/posix/Europe/Dublin
 #usr/share/zoneinfo/posix/Europe/Gibraltar
+#usr/share/zoneinfo/posix/Europe/Guernsey
 #usr/share/zoneinfo/posix/Europe/Helsinki
+#usr/share/zoneinfo/posix/Europe/Isle_of_Man
 #usr/share/zoneinfo/posix/Europe/Istanbul
+#usr/share/zoneinfo/posix/Europe/Jersey
 #usr/share/zoneinfo/posix/Europe/Kaliningrad
 #usr/share/zoneinfo/posix/Europe/Kiev
 #usr/share/zoneinfo/posix/Europe/Lisbon
@@ -2231,6 +2445,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Europe/Nicosia
 #usr/share/zoneinfo/posix/Europe/Oslo
 #usr/share/zoneinfo/posix/Europe/Paris
+#usr/share/zoneinfo/posix/Europe/Podgorica
 #usr/share/zoneinfo/posix/Europe/Prague
 #usr/share/zoneinfo/posix/Europe/Riga
 #usr/share/zoneinfo/posix/Europe/Rome
@@ -2249,6 +2464,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/Europe/Vatican
 #usr/share/zoneinfo/posix/Europe/Vienna
 #usr/share/zoneinfo/posix/Europe/Vilnius
+#usr/share/zoneinfo/posix/Europe/Volgograd
 #usr/share/zoneinfo/posix/Europe/Warsaw
 #usr/share/zoneinfo/posix/Europe/Zagreb
 #usr/share/zoneinfo/posix/Europe/Zaporozhye
@@ -2344,20 +2560,6 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/posix/ROC
 #usr/share/zoneinfo/posix/ROK
 #usr/share/zoneinfo/posix/Singapore
-#usr/share/zoneinfo/posix/SystemV
-#usr/share/zoneinfo/posix/SystemV/AST4
-#usr/share/zoneinfo/posix/SystemV/AST4ADT
-#usr/share/zoneinfo/posix/SystemV/CST6
-#usr/share/zoneinfo/posix/SystemV/CST6CDT
-#usr/share/zoneinfo/posix/SystemV/EST5
-#usr/share/zoneinfo/posix/SystemV/EST5EDT
-#usr/share/zoneinfo/posix/SystemV/HST10
-#usr/share/zoneinfo/posix/SystemV/MST7
-#usr/share/zoneinfo/posix/SystemV/MST7MDT
-#usr/share/zoneinfo/posix/SystemV/PST8
-#usr/share/zoneinfo/posix/SystemV/PST8PDT
-#usr/share/zoneinfo/posix/SystemV/YST9
-#usr/share/zoneinfo/posix/SystemV/YST9YDT
 #usr/share/zoneinfo/posix/Turkey
 #usr/share/zoneinfo/posix/UCT
 #usr/share/zoneinfo/posix/US
@@ -2385,6 +2587,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Africa/Accra
 #usr/share/zoneinfo/right/Africa/Addis_Ababa
 #usr/share/zoneinfo/right/Africa/Algiers
+#usr/share/zoneinfo/right/Africa/Asmara
 #usr/share/zoneinfo/right/Africa/Asmera
 #usr/share/zoneinfo/right/Africa/Bamako
 #usr/share/zoneinfo/right/Africa/Bangui
@@ -2448,16 +2651,20 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Argentina/La_Rioja
 #usr/share/zoneinfo/right/America/Argentina/Mendoza
 #usr/share/zoneinfo/right/America/Argentina/Rio_Gallegos
+#usr/share/zoneinfo/right/America/Argentina/Salta
 #usr/share/zoneinfo/right/America/Argentina/San_Juan
+#usr/share/zoneinfo/right/America/Argentina/San_Luis
 #usr/share/zoneinfo/right/America/Argentina/Tucuman
 #usr/share/zoneinfo/right/America/Argentina/Ushuaia
 #usr/share/zoneinfo/right/America/Aruba
 #usr/share/zoneinfo/right/America/Asuncion
+#usr/share/zoneinfo/right/America/Atikokan
 #usr/share/zoneinfo/right/America/Atka
 #usr/share/zoneinfo/right/America/Bahia
 #usr/share/zoneinfo/right/America/Barbados
 #usr/share/zoneinfo/right/America/Belem
 #usr/share/zoneinfo/right/America/Belize
+#usr/share/zoneinfo/right/America/Blanc-Sablon
 #usr/share/zoneinfo/right/America/Boa_Vista
 #usr/share/zoneinfo/right/America/Bogota
 #usr/share/zoneinfo/right/America/Boise
@@ -2504,7 +2711,11 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Indiana/Indianapolis
 #usr/share/zoneinfo/right/America/Indiana/Knox
 #usr/share/zoneinfo/right/America/Indiana/Marengo
+#usr/share/zoneinfo/right/America/Indiana/Petersburg
+#usr/share/zoneinfo/right/America/Indiana/Tell_City
 #usr/share/zoneinfo/right/America/Indiana/Vevay
+#usr/share/zoneinfo/right/America/Indiana/Vincennes
+#usr/share/zoneinfo/right/America/Indiana/Winamac
 #usr/share/zoneinfo/right/America/Indianapolis
 #usr/share/zoneinfo/right/America/Inuvik
 #usr/share/zoneinfo/right/America/Iqaluit
@@ -2522,6 +2733,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Maceio
 #usr/share/zoneinfo/right/America/Managua
 #usr/share/zoneinfo/right/America/Manaus
+#usr/share/zoneinfo/right/America/Marigot
 #usr/share/zoneinfo/right/America/Martinique
 #usr/share/zoneinfo/right/America/Mazatlan
 #usr/share/zoneinfo/right/America/Mendoza
@@ -2529,6 +2741,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Merida
 #usr/share/zoneinfo/right/America/Mexico_City
 #usr/share/zoneinfo/right/America/Miquelon
+#usr/share/zoneinfo/right/America/Moncton
 #usr/share/zoneinfo/right/America/Monterrey
 #usr/share/zoneinfo/right/America/Montevideo
 #usr/share/zoneinfo/right/America/Montreal
@@ -2540,6 +2753,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Noronha
 #usr/share/zoneinfo/right/America/North_Dakota
 #usr/share/zoneinfo/right/America/North_Dakota/Center
+#usr/share/zoneinfo/right/America/North_Dakota/New_Salem
 #usr/share/zoneinfo/right/America/Panama
 #usr/share/zoneinfo/right/America/Pangnirtung
 #usr/share/zoneinfo/right/America/Paramaribo
@@ -2553,13 +2767,16 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/America/Rankin_Inlet
 #usr/share/zoneinfo/right/America/Recife
 #usr/share/zoneinfo/right/America/Regina
+#usr/share/zoneinfo/right/America/Resolute
 #usr/share/zoneinfo/right/America/Rio_Branco
 #usr/share/zoneinfo/right/America/Rosario
+#usr/share/zoneinfo/right/America/Santarem
 #usr/share/zoneinfo/right/America/Santiago
 #usr/share/zoneinfo/right/America/Santo_Domingo
 #usr/share/zoneinfo/right/America/Sao_Paulo
 #usr/share/zoneinfo/right/America/Scoresbysund
 #usr/share/zoneinfo/right/America/Shiprock
+#usr/share/zoneinfo/right/America/St_Barthelemy
 #usr/share/zoneinfo/right/America/St_Johns
 #usr/share/zoneinfo/right/America/St_Kitts
 #usr/share/zoneinfo/right/America/St_Lucia
@@ -2620,6 +2837,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Asia/Dushanbe
 #usr/share/zoneinfo/right/Asia/Gaza
 #usr/share/zoneinfo/right/Asia/Harbin
+#usr/share/zoneinfo/right/Asia/Ho_Chi_Minh
 #usr/share/zoneinfo/right/Asia/Hong_Kong
 #usr/share/zoneinfo/right/Asia/Hovd
 #usr/share/zoneinfo/right/Asia/Irkutsk
@@ -2631,7 +2849,9 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Asia/Kamchatka
 #usr/share/zoneinfo/right/Asia/Karachi
 #usr/share/zoneinfo/right/Asia/Kashgar
+#usr/share/zoneinfo/right/Asia/Kathmandu
 #usr/share/zoneinfo/right/Asia/Katmandu
+#usr/share/zoneinfo/right/Asia/Kolkata
 #usr/share/zoneinfo/right/Asia/Krasnoyarsk
 #usr/share/zoneinfo/right/Asia/Kuala_Lumpur
 #usr/share/zoneinfo/right/Asia/Kuching
@@ -2685,6 +2905,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Atlantic/Canary
 #usr/share/zoneinfo/right/Atlantic/Cape_Verde
 #usr/share/zoneinfo/right/Atlantic/Faeroe
+#usr/share/zoneinfo/right/Atlantic/Faroe
 #usr/share/zoneinfo/right/Atlantic/Jan_Mayen
 #usr/share/zoneinfo/right/Atlantic/Madeira
 #usr/share/zoneinfo/right/Atlantic/Reykjavik
@@ -2699,6 +2920,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Australia/Canberra
 #usr/share/zoneinfo/right/Australia/Currie
 #usr/share/zoneinfo/right/Australia/Darwin
+#usr/share/zoneinfo/right/Australia/Eucla
 #usr/share/zoneinfo/right/Australia/Hobart
 #usr/share/zoneinfo/right/Australia/LHI
 #usr/share/zoneinfo/right/Australia/Lindeman
@@ -2791,8 +3013,11 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Europe/Copenhagen
 #usr/share/zoneinfo/right/Europe/Dublin
 #usr/share/zoneinfo/right/Europe/Gibraltar
+#usr/share/zoneinfo/right/Europe/Guernsey
 #usr/share/zoneinfo/right/Europe/Helsinki
+#usr/share/zoneinfo/right/Europe/Isle_of_Man
 #usr/share/zoneinfo/right/Europe/Istanbul
+#usr/share/zoneinfo/right/Europe/Jersey
 #usr/share/zoneinfo/right/Europe/Kaliningrad
 #usr/share/zoneinfo/right/Europe/Kiev
 #usr/share/zoneinfo/right/Europe/Lisbon
@@ -2808,6 +3033,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Europe/Nicosia
 #usr/share/zoneinfo/right/Europe/Oslo
 #usr/share/zoneinfo/right/Europe/Paris
+#usr/share/zoneinfo/right/Europe/Podgorica
 #usr/share/zoneinfo/right/Europe/Prague
 #usr/share/zoneinfo/right/Europe/Riga
 #usr/share/zoneinfo/right/Europe/Rome
@@ -2826,6 +3052,7 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/Europe/Vatican
 #usr/share/zoneinfo/right/Europe/Vienna
 #usr/share/zoneinfo/right/Europe/Vilnius
+#usr/share/zoneinfo/right/Europe/Volgograd
 #usr/share/zoneinfo/right/Europe/Warsaw
 #usr/share/zoneinfo/right/Europe/Zagreb
 #usr/share/zoneinfo/right/Europe/Zaporozhye
@@ -2921,20 +3148,6 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/ROC
 #usr/share/zoneinfo/right/ROK
 #usr/share/zoneinfo/right/Singapore
-#usr/share/zoneinfo/right/SystemV
-#usr/share/zoneinfo/right/SystemV/AST4
-#usr/share/zoneinfo/right/SystemV/AST4ADT
-#usr/share/zoneinfo/right/SystemV/CST6
-#usr/share/zoneinfo/right/SystemV/CST6CDT
-#usr/share/zoneinfo/right/SystemV/EST5
-#usr/share/zoneinfo/right/SystemV/EST5EDT
-#usr/share/zoneinfo/right/SystemV/HST10
-#usr/share/zoneinfo/right/SystemV/MST7
-#usr/share/zoneinfo/right/SystemV/MST7MDT
-#usr/share/zoneinfo/right/SystemV/PST8
-#usr/share/zoneinfo/right/SystemV/PST8PDT
-#usr/share/zoneinfo/right/SystemV/YST9
-#usr/share/zoneinfo/right/SystemV/YST9YDT
 #usr/share/zoneinfo/right/Turkey
 #usr/share/zoneinfo/right/UCT
 #usr/share/zoneinfo/right/US
@@ -2956,3 +3169,5 @@ usr/share/zoneinfo/posix
 #usr/share/zoneinfo/right/WET
 #usr/share/zoneinfo/right/Zulu
 #usr/share/zoneinfo/zone.tab
+#var/cache/ldconfig
+#var/cache/ldconfig/aux-cache
index e466ff0f57a73d364b0f57094b4925cdf3892493..3e1ec189fd3ce268a3c0394b14676876b7dac7d0 100644 (file)
@@ -7,11 +7,13 @@ boot/grub/stage2
 #usr/info/grub.info
 #usr/info/multiboot.info
 #usr/man/man1/mbchk.1
+#usr/man/man8/grub-crypt.8
 #usr/man/man8/grub-install.8
 #usr/man/man8/grub-md5-crypt.8
 #usr/man/man8/grub-terminfo.8
 #usr/man/man8/grub.8
 usr/sbin/grub
+usr/sbin/grub-crypt
 usr/sbin/grub-install
 usr/sbin/grub-md5-crypt
 usr/sbin/grub-terminfo
diff --git a/config/rootfiles/common/i586/kqemu b/config/rootfiles/common/i586/kqemu
deleted file mode 100644 (file)
index 88244ee..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-#lib/modules/KVER-ipfire/misc
-lib/modules/KVER-ipfire/misc/kqemu.ko
index 7b9fce4d383d5179d2f997e7800ad3490b77d73a..9d3c6b4da2a6b82ad52d2ece64ab1f3fb1a78540 100644 (file)
@@ -1555,6 +1555,8 @@ lib/modules/KVER-ipfire
 #lib/modules/KVER-ipfire/kernel/fs/smbfs/smbfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/udf
 #lib/modules/KVER-ipfire/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire/kernel/fs/ufs
+#lib/modules/KVER-ipfire/kernel/fs/ufs/xfs.ko
 #lib/modules/KVER-ipfire/kernel/fs/xfs
 #lib/modules/KVER-ipfire/kernel/fs/xfs/xfs.ko
 #lib/modules/KVER-ipfire/kernel/lib
diff --git a/config/rootfiles/common/i586/madwifi b/config/rootfiles/common/i586/madwifi
deleted file mode 100644 (file)
index e328252..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#etc/madwifi.conf
-etc/modprobe.d/madwifi
-usr/bin/80211debug
-usr/bin/80211stats
-usr/bin/ath_info
-usr/bin/athchans
-usr/bin/athctrl
-usr/bin/athdebug
-usr/bin/athkey
-usr/bin/athstats
-usr/bin/madwifi-unload
-usr/bin/wlanconfig
-usr/bin/wpakey
-#usr/man/man8
-#usr/man/man8/80211debug.8
-#usr/man/man8/80211stats.8
-#usr/man/man8/athchans.8
-#usr/man/man8/athctrl.8
-#usr/man/man8/athdebug.8
-#usr/man/man8/athkey.8
-#usr/man/man8/athstats.8
-#usr/man/man8/wlanconfig.8
diff --git a/config/rootfiles/common/i586/strongswan-padlock b/config/rootfiles/common/i586/strongswan-padlock
new file mode 100644 (file)
index 0000000..02aa457
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/ipsec/plugins/libstrongswan-padlock.so
index 8f179d7f540cb59acf54d3ef3d7e718278077efb..bb4c05b486e8bf168d9b216e1631421cf5a6c1ad 100644 (file)
@@ -1,11 +1,14 @@
 #etc/iproute2
 etc/iproute2/ematch_map
+etc/iproute2/group
 etc/iproute2/rt_dsfield
 etc/iproute2/rt_protos
 etc/iproute2/rt_realms
 etc/iproute2/rt_scopes
 etc/iproute2/rt_tables
+sbin/bridge
 sbin/ctstat
+sbin/genl
 sbin/ifcfg
 sbin/ifstat
 sbin/ip
@@ -24,7 +27,6 @@ sbin/tc
 #usr/lib/tc/normal.dist
 #usr/lib/tc/pareto.dist
 #usr/lib/tc/paretonormal.dist
-#usr/lib/tc/q_netem.so
 usr/sbin/arpd
 #usr/share/doc/iproute2
 #usr/share/doc/iproute2/SNAPSHOT.tex
@@ -50,6 +52,7 @@ usr/sbin/arpd
 #usr/share/doc/iproute2/examples/diffserv/ef-prio
 #usr/share/doc/iproute2/examples/diffserv/efcbq
 #usr/share/doc/iproute2/examples/diffserv/regression-testing
+#usr/share/doc/iproute2/examples/gaiconf
 #usr/share/doc/iproute2/ip-cref.tex
 #usr/share/doc/iproute2/ip-tunnels.tex
 #usr/share/doc/iproute2/nstat.sgml
@@ -57,16 +60,48 @@ usr/sbin/arpd
 #usr/share/doc/iproute2/rtstat.sgml
 #usr/share/doc/iproute2/ss.sgml
 #usr/share/man/man3/libnetlink.3
+#usr/share/man/man8/arpd.8
+#usr/share/man/man8/bridge.8
+#usr/share/man/man8/ctstat.8
+#usr/share/man/man8/ip-address.8
+#usr/share/man/man8/ip-addrlabel.8
+#usr/share/man/man8/ip-link.8
+#usr/share/man/man8/ip-maddress.8
+#usr/share/man/man8/ip-monitor.8
+#usr/share/man/man8/ip-mroute.8
+#usr/share/man/man8/ip-neighbour.8
+#usr/share/man/man8/ip-netns.8
+#usr/share/man/man8/ip-ntable.8
+#usr/share/man/man8/ip-route.8
+#usr/share/man/man8/ip-rule.8
+#usr/share/man/man8/ip-tunnel.8
+#usr/share/man/man8/ip-xfrm.8
 #usr/share/man/man8/ip.8
+#usr/share/man/man8/lnstat.8
+#usr/share/man/man8/nstat.8
+#usr/share/man/man8/routef.8
+#usr/share/man/man8/routel.8
+#usr/share/man/man8/rtacct.8
+#usr/share/man/man8/rtmon.8
+#usr/share/man/man8/rtstat.8
+#usr/share/man/man8/ss.8
 #usr/share/man/man8/tc-bfifo.8
 #usr/share/man/man8/tc-cbq-details.8
 #usr/share/man/man8/tc-cbq.8
+#usr/share/man/man8/tc-choke.8
+#usr/share/man/man8/tc-codel.8
+#usr/share/man/man8/tc-drr.8
+#usr/share/man/man8/tc-fq_codel.8
+#usr/share/man/man8/tc-hfsc.8
 #usr/share/man/man8/tc-htb.8
-#usr/share/man/man8/tc-pbfifo.8
+#usr/share/man/man8/tc-netem.8
 #usr/share/man/man8/tc-pfifo.8
 #usr/share/man/man8/tc-pfifo_fast.8
 #usr/share/man/man8/tc-prio.8
 #usr/share/man/man8/tc-red.8
+#usr/share/man/man8/tc-sfb.8
 #usr/share/man/man8/tc-sfq.8
+#usr/share/man/man8/tc-stab.8
 #usr/share/man/man8/tc-tbf.8
 #usr/share/man/man8/tc.8
+var/lib/arpd
index 8e1a6e46fbf503d5f10cd2013672c4dd64b114a5..27c67df4aa549deb03b48d890dde937fa22eefd2 100644 (file)
@@ -1,21 +1,27 @@
 #lib/libip4tc.la
 lib/libip4tc.so
 lib/libip4tc.so.0
-lib/libip4tc.so.0.0.0
+lib/libip4tc.so.0.1.0
 #lib/libip6tc.la
 lib/libip6tc.so
 lib/libip6tc.so.0
-lib/libip6tc.so.0.0.0
-#lib/libipq.a
+lib/libip6tc.so.0.1.0
+#lib/libipq.la
+lib/libipq.so
+lib/libipq.so.0
+lib/libipq.so.0.0.0
 #lib/libiptc.la
 lib/libiptc.so
 lib/libiptc.so.0
 lib/libiptc.so.0.0.0
 #lib/libxtables.la
 lib/libxtables.so
-lib/libxtables.so.4
-lib/libxtables.so.4.0.0
+lib/libxtables.so.7
+lib/libxtables.so.7.0.0
 #lib/pkgconfig
+#lib/pkgconfig/libip4tc.pc
+#lib/pkgconfig/libip6tc.pc
+#lib/pkgconfig/libipq.pc
 #lib/pkgconfig/libiptc.pc
 #lib/pkgconfig/xtables.pc
 lib/xtables
@@ -42,52 +48,62 @@ lib/xtables
 #lib/xtables/libipt_REDIRECT.so
 #lib/xtables/libipt_REJECT.so
 #lib/xtables/libipt_SAME.so
-#lib/xtables/libipt_SET.so
 #lib/xtables/libipt_SNAT.so
 #lib/xtables/libipt_TTL.so
 #lib/xtables/libipt_ULOG.so
-#lib/xtables/libipt_addrtype.so
 #lib/xtables/libipt_ah.so
-#lib/xtables/libipt_ecn.so
 #lib/xtables/libipt_icmp.so
 #lib/xtables/libipt_ipp2p.so
 #lib/xtables/libipt_realm.so
-#lib/xtables/libipt_set.so
 #lib/xtables/libipt_ttl.so
 #lib/xtables/libipt_unclean.so
+#lib/xtables/libxt_AUDIT.so
+#lib/xtables/libxt_CHECKSUM.so
 #lib/xtables/libxt_CLASSIFY.so
 #lib/xtables/libxt_CONNMARK.so
 #lib/xtables/libxt_CONNSECMARK.so
+#lib/xtables/libxt_CT.so
 #lib/xtables/libxt_DSCP.so
+#lib/xtables/libxt_IDLETIMER.so
 #lib/xtables/libxt_IMQ.so
+#lib/xtables/libxt_LED.so
 #lib/xtables/libxt_MARK.so
 #lib/xtables/libxt_NFLOG.so
 #lib/xtables/libxt_NFQUEUE.so
 #lib/xtables/libxt_NOTRACK.so
 #lib/xtables/libxt_RATEEST.so
 #lib/xtables/libxt_SECMARK.so
+#lib/xtables/libxt_SET.so
 #lib/xtables/libxt_TCPMSS.so
 #lib/xtables/libxt_TCPOPTSTRIP.so
+#lib/xtables/libxt_TEE.so
 #lib/xtables/libxt_TOS.so
 #lib/xtables/libxt_TPROXY.so
 #lib/xtables/libxt_TRACE.so
+#lib/xtables/libxt_addrtype.so
 #lib/xtables/libxt_cluster.so
 #lib/xtables/libxt_comment.so
 #lib/xtables/libxt_connbytes.so
 #lib/xtables/libxt_connlimit.so
 #lib/xtables/libxt_connmark.so
 #lib/xtables/libxt_conntrack.so
+#lib/xtables/libxt_cpu.so
+#lib/xtables/libxt_dccp.so
+#lib/xtables/libxt_devgroup.so
 #lib/xtables/libxt_dscp.so
+#lib/xtables/libxt_ecn.so
 #lib/xtables/libxt_esp.so
 #lib/xtables/libxt_hashlimit.so
 #lib/xtables/libxt_helper.so
 #lib/xtables/libxt_iprange.so
+#lib/xtables/libxt_ipvs.so
 #lib/xtables/libxt_layer7.so
 #lib/xtables/libxt_length.so
 #lib/xtables/libxt_limit.so
 #lib/xtables/libxt_mac.so
 #lib/xtables/libxt_mark.so
 #lib/xtables/libxt_multiport.so
+#lib/xtables/libxt_nfacct.so
 #lib/xtables/libxt_osf.so
 #lib/xtables/libxt_owner.so
 #lib/xtables/libxt_physdev.so
@@ -96,7 +112,9 @@ lib/xtables
 #lib/xtables/libxt_quota.so
 #lib/xtables/libxt_rateest.so
 #lib/xtables/libxt_recent.so
+#lib/xtables/libxt_rpfilter.so
 #lib/xtables/libxt_sctp.so
+#lib/xtables/libxt_set.so
 #lib/xtables/libxt_socket.so
 #lib/xtables/libxt_standard.so
 #lib/xtables/libxt_state.so
@@ -108,18 +126,14 @@ lib/xtables
 #lib/xtables/libxt_tos.so
 #lib/xtables/libxt_u32.so
 #lib/xtables/libxt_udp.so
-#sbin/ip6tables
-#sbin/ip6tables-multi
-#sbin/ip6tables-restore
-#sbin/ip6tables-save
+sbin/ip6tables
+sbin/ip6tables-restore
+sbin/ip6tables-save
 sbin/iptables
-sbin/iptables-multi
-#sbin/iptables-restore
-#sbin/iptables-save
-#sbin/iptables-xml
-#usr/include/asm-generic
-#usr/include/asm-generic/errno-base.h
-#usr/include/asm-generic/errno.h
+sbin/iptables-restore
+sbin/iptables-save
+sbin/iptables-xml
+sbin/xtables-multi
 #usr/include/iptables
 #usr/include/iptables.h
 #usr/include/iptables/internal.h
@@ -129,6 +143,7 @@ sbin/iptables-multi
 #usr/include/libiptc/libip6tc.h
 #usr/include/libiptc/libiptc.h
 #usr/include/libiptc/libxtc.h
+#usr/include/libiptc/xtcshared.h
 #usr/include/libipulog
 #usr/include/libipulog/libipulog.h
 #usr/include/libnetfilter_queue
@@ -139,12 +154,19 @@ sbin/iptables-multi
 #usr/include/libnfnetlink/libnfnetlink.h
 #usr/include/libnfnetlink/linux_nfnetlink.h
 #usr/include/libnfnetlink/linux_nfnetlink_compat.h
-#usr/include/linux/netfilter
 #usr/include/linux/netfilter/Kbuild
+#usr/include/linux/netfilter/ipset
+#usr/include/linux/netfilter/ipset/Kbuild
+#usr/include/linux/netfilter/ipset/ip_set.h
+#usr/include/linux/netfilter/ipset/ip_set_ahash.h
+#usr/include/linux/netfilter/ipset/ip_set_bitmap.h
+#usr/include/linux/netfilter/ipset/ip_set_getport.h
+#usr/include/linux/netfilter/ipset/ip_set_hash.h
+#usr/include/linux/netfilter/ipset/ip_set_list.h
+#usr/include/linux/netfilter/ipset/ip_set_timeout.h
+#usr/include/linux/netfilter/ipset/pfxlen.h
 #usr/include/linux/netfilter/nf_conntrack_amanda.h
-#usr/include/linux/netfilter/nf_conntrack_common.h
 #usr/include/linux/netfilter/nf_conntrack_dccp.h
-#usr/include/linux/netfilter/nf_conntrack_ftp.h
 #usr/include/linux/netfilter/nf_conntrack_h323.h
 #usr/include/linux/netfilter/nf_conntrack_h323_asn1.h
 #usr/include/linux/netfilter/nf_conntrack_h323_types.h
@@ -152,67 +174,22 @@ sbin/iptables-multi
 #usr/include/linux/netfilter/nf_conntrack_pptp.h
 #usr/include/linux/netfilter/nf_conntrack_proto_gre.h
 #usr/include/linux/netfilter/nf_conntrack_sane.h
-#usr/include/linux/netfilter/nf_conntrack_sctp.h
 #usr/include/linux/netfilter/nf_conntrack_sip.h
-#usr/include/linux/netfilter/nf_conntrack_tcp.h
+#usr/include/linux/netfilter/nf_conntrack_snmp.h
 #usr/include/linux/netfilter/nf_conntrack_tftp.h
-#usr/include/linux/netfilter/nf_conntrack_tuple_common.h
-#usr/include/linux/netfilter/nfnetlink.h
-#usr/include/linux/netfilter/nfnetlink_compat.h
-#usr/include/linux/netfilter/nfnetlink_conntrack.h
-#usr/include/linux/netfilter/nfnetlink_log.h
-#usr/include/linux/netfilter/nfnetlink_queue.h
-#usr/include/linux/netfilter/x_tables.h
-#usr/include/linux/netfilter/xt_CLASSIFY.h
-#usr/include/linux/netfilter/xt_CONNMARK.h
-#usr/include/linux/netfilter/xt_CONNSECMARK.h
-#usr/include/linux/netfilter/xt_DSCP.h
+#usr/include/linux/netfilter/xt_AUDIT.h
+#usr/include/linux/netfilter/xt_CHECKSUM.h
+#usr/include/linux/netfilter/xt_CT.h
+#usr/include/linux/netfilter/xt_IDLETIMER.h
 #usr/include/linux/netfilter/xt_IMQ.h
-#usr/include/linux/netfilter/xt_LED.h
-#usr/include/linux/netfilter/xt_MARK.h
-#usr/include/linux/netfilter/xt_NFLOG.h
-#usr/include/linux/netfilter/xt_NFQUEUE.h
-#usr/include/linux/netfilter/xt_RATEEST.h
-#usr/include/linux/netfilter/xt_SECMARK.h
-#usr/include/linux/netfilter/xt_TCPMSS.h
-#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
-#usr/include/linux/netfilter/xt_TPROXY.h
-#usr/include/linux/netfilter/xt_cluster.h
-#usr/include/linux/netfilter/xt_comment.h
-#usr/include/linux/netfilter/xt_connbytes.h
-#usr/include/linux/netfilter/xt_connlimit.h
-#usr/include/linux/netfilter/xt_connmark.h
-#usr/include/linux/netfilter/xt_conntrack.h
-#usr/include/linux/netfilter/xt_dccp.h
-#usr/include/linux/netfilter/xt_dscp.h
-#usr/include/linux/netfilter/xt_esp.h
-#usr/include/linux/netfilter/xt_hashlimit.h
-#usr/include/linux/netfilter/xt_helper.h
-#usr/include/linux/netfilter/xt_iprange.h
+#usr/include/linux/netfilter/xt_TEE.h
+#usr/include/linux/netfilter/xt_addrtype.h
+#usr/include/linux/netfilter/xt_cpu.h
+#usr/include/linux/netfilter/xt_devgroup.h
+#usr/include/linux/netfilter/xt_ipvs.h
 #usr/include/linux/netfilter/xt_layer7.h
-#usr/include/linux/netfilter/xt_length.h
-#usr/include/linux/netfilter/xt_limit.h
-#usr/include/linux/netfilter/xt_mac.h
-#usr/include/linux/netfilter/xt_mark.h
-#usr/include/linux/netfilter/xt_multiport.h
-#usr/include/linux/netfilter/xt_osf.h
-#usr/include/linux/netfilter/xt_owner.h
-#usr/include/linux/netfilter/xt_physdev.h
-#usr/include/linux/netfilter/xt_pkttype.h
-#usr/include/linux/netfilter/xt_policy.h
-#usr/include/linux/netfilter/xt_quota.h
-#usr/include/linux/netfilter/xt_rateest.h
-#usr/include/linux/netfilter/xt_realm.h
-#usr/include/linux/netfilter/xt_recent.h
-#usr/include/linux/netfilter/xt_sctp.h
+#usr/include/linux/netfilter/xt_set.h
 #usr/include/linux/netfilter/xt_socket.h
-#usr/include/linux/netfilter/xt_state.h
-#usr/include/linux/netfilter/xt_statistic.h
-#usr/include/linux/netfilter/xt_string.h
-#usr/include/linux/netfilter/xt_tcpmss.h
-#usr/include/linux/netfilter/xt_tcpudp.h
-#usr/include/linux/netfilter/xt_time.h
-#usr/include/linux/netfilter/xt_u32.h
 #usr/include/net/netfilter
 #usr/include/net/netfilter/nf_conntrack_tuple.h
 #usr/include/net/netfilter/nf_nat.h
@@ -234,6 +211,7 @@ usr/lib/libnfnetlink.so.0
 usr/lib/libnfnetlink.so.0.2.0
 #usr/lib/pkgconfig/libnetfilter_queue.pc
 #usr/lib/pkgconfig/libnfnetlink.pc
+#usr/share/man/man1/iptables-xml.1
 #usr/share/man/man3/ipq_create_handle.3
 #usr/share/man/man3/ipq_destroy_handle.3
 #usr/share/man/man3/ipq_errstr.3
@@ -250,5 +228,4 @@ usr/lib/libnfnetlink.so.0.2.0
 #usr/share/man/man8/ip6tables.8
 #usr/share/man/man8/iptables-restore.8
 #usr/share/man/man8/iptables-save.8
-#usr/share/man/man8/iptables-xml.8
 #usr/share/man/man8/iptables.8
diff --git a/config/rootfiles/common/iptstate b/config/rootfiles/common/iptstate
deleted file mode 100644 (file)
index 57b6d0f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/sbin/iptstate
-#usr/share/man/man8/iptstate.8
index bd8faf544ffbce2e4b9eb8ad9f370eb7e8b7ef4d..5b573c9ba170830e1899f560d5073efc14a1a2af 100644 (file)
@@ -1,6 +1,6 @@
 usr/bin/less
 #usr/bin/lessecho
 #usr/bin/lesskey
-#usr/man/man1/less.1
-#usr/man/man1/lessecho.1
-#usr/man/man1/lesskey.1
+#usr/share/man/man1/less.1
+#usr/share/man/man1/lessecho.1
+#usr/share/man/man1/lesskey.1
diff --git a/config/rootfiles/common/libaal b/config/rootfiles/common/libaal
deleted file mode 100644 (file)
index de785eb..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-#usr/include/aal
-#usr/include/aal/bitops.h
-#usr/include/aal/block.h
-#usr/include/aal/debug.h
-#usr/include/aal/device.h
-#usr/include/aal/endian.h
-#usr/include/aal/exception.h
-#usr/include/aal/file.h
-#usr/include/aal/gauge.h
-#usr/include/aal/hash.h
-#usr/include/aal/libaal.h
-#usr/include/aal/list.h
-#usr/include/aal/malloc.h
-#usr/include/aal/math.h
-#usr/include/aal/print.h
-#usr/include/aal/stream.h
-#usr/include/aal/string.h
-#usr/include/aal/types.h
-#usr/include/aal/ui.h
-#usr/include/aal/unaligned.h
-usr/lib/libaal-1.0.so.5
-usr/lib/libaal-1.0.so.5.0.0
-#usr/lib/libaal-minimal.a
-#usr/lib/libaal-minimal.la
-usr/lib/libaal-minimal.so
-usr/lib/libaal-minimal.so.0
-usr/lib/libaal-minimal.so.0.0.0
-#usr/lib/libaal.a
-#usr/lib/libaal.la
-usr/lib/libaal.so
-#usr/share/aclocal/libaal.m4
diff --git a/config/rootfiles/common/libffi b/config/rootfiles/common/libffi
new file mode 100644 (file)
index 0000000..2c887bd
--- /dev/null
@@ -0,0 +1,15 @@
+#usr/lib/libffi-3.0.11
+#usr/lib/libffi-3.0.11/include
+#usr/lib/libffi-3.0.11/include/ffi.h
+#usr/lib/libffi-3.0.11/include/ffitarget.h
+#usr/lib/libffi.a
+#usr/lib/libffi.la
+#usr/lib/libffi.so
+usr/lib/libffi.so.6
+usr/lib/libffi.so.6.0.0
+#usr/lib/pkgconfig/libffi.pc
+#usr/share/info/libffi.info
+#usr/share/man/man3/ffi.3
+#usr/share/man/man3/ffi_call.3
+#usr/share/man/man3/ffi_prep_cif.3
+#usr/share/man/man3/ffi_prep_cif_var.3
diff --git a/config/rootfiles/common/libsafe b/config/rootfiles/common/libsafe
deleted file mode 100644 (file)
index 8275e4a..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-etc/ld.so.preload
-lib/libsafe.so.2
-lib/libsafe.so.2.0.16
-#usr/man/man8/libsafe.8
index 39029d3e9e5f882eee978df955e7e4cc7e62460a..a05b64bed93ff277960134c25c456dc0203dc882 100644 (file)
@@ -78,7 +78,7 @@
 #usr/include/sigc++-2.0/sigc++/visit_each.h
 #usr/lib/libsigc-2.0.a
 #usr/lib/libsigc-2.0.la
-usr/lib/libsigc-2.0.so
+#usr/lib/libsigc-2.0.so
 usr/lib/libsigc-2.0.so.0
 usr/lib/libsigc-2.0.so.0.0.0
 #usr/lib/pkgconfig/sigc++-2.0.pc
@@ -157,6 +157,7 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/classes.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classinternal_1_1lambda__core__inherit__graph.png
+#usr/share/doc/libsigc-2.0/docs/reference/html/classnil.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument-members.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/classsigc_1_1bound__argument_3_01const__reference__wrapper_3_01T__wrapped_01_4_01_4-members.html
@@ -460,15 +461,6 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/connection_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/deduce__result__type_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/deprecated.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Fadaptors_2Flambda_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/dir__2Fhome_2Fmurrayc_2Fcvs_2Fgnome214_2Flibsigc_2B_2B2_2Fsigc_2B_2B_2Ffunctors_2F_dep.png
-#usr/share/doc/libsigc-2.0/docs/reference/html/dirs.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.css
 #usr/share/doc/libsigc-2.0/docs/reference/html/doxygen.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/exception__catch_8h.html
@@ -515,15 +507,40 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_func_0x7e.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_rela.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_type.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x69.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6c.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x74.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_type_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x61.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x62.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x69.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6c.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x74.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/functions_vars_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functor__trait_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functors_2slot_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/functors_8h.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/globals.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/globals_defs.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_func.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_type.html
-#usr/share/doc/libsigc-2.0/docs/reference/html/globals_vars.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.dot
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/graph_legend.png
@@ -740,6 +757,7 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__260.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__261.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__262.png
+#usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__263.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__27.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__28.png
 #usr/share/doc/libsigc-2.0/docs/reference/html/inherit__graph__29.png
@@ -828,7 +846,33 @@ usr/lib/libsigc-2.0.so.0.0.0
 #usr/share/doc/libsigc-2.0/docs/reference/html/modules.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespaceSigC.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x62.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x66.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x68.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6d.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x75.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x63.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x64.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x65.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x67.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x68.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6d.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x6f.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x70.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x72.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x73.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x75.html
+#usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_func_0x76.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_type.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespacemembers_vars.html
 #usr/share/doc/libsigc-2.0/docs/reference/html/namespaces.html
index 4fbe3e0f2a28c69c70cb46549bc2ae36578ca40b..dac70a6d2ba21d65ea480f516ceec9d60de8ea03 100644 (file)
 #usr/include/asm
-#usr/include/asm/8253pit.h
+#usr/include/asm-generic
+#usr/include/asm-generic/auxvec.h
+#usr/include/asm-generic/bitsperlong.h
+#usr/include/asm-generic/errno-base.h
+#usr/include/asm-generic/errno.h
+#usr/include/asm-generic/fcntl.h
+#usr/include/asm-generic/int-l64.h
+#usr/include/asm-generic/int-ll64.h
+#usr/include/asm-generic/ioctl.h
+#usr/include/asm-generic/ioctls.h
+#usr/include/asm-generic/ipcbuf.h
+#usr/include/asm-generic/mman-common.h
+#usr/include/asm-generic/mman.h
+#usr/include/asm-generic/msgbuf.h
+#usr/include/asm-generic/param.h
+#usr/include/asm-generic/poll.h
+#usr/include/asm-generic/posix_types.h
+#usr/include/asm-generic/resource.h
+#usr/include/asm-generic/sembuf.h
+#usr/include/asm-generic/setup.h
+#usr/include/asm-generic/shmbuf.h
+#usr/include/asm-generic/shmparam.h
+#usr/include/asm-generic/siginfo.h
+#usr/include/asm-generic/signal-defs.h
+#usr/include/asm-generic/signal.h
+#usr/include/asm-generic/socket.h
+#usr/include/asm-generic/sockios.h
+#usr/include/asm-generic/stat.h
+#usr/include/asm-generic/statfs.h
+#usr/include/asm-generic/swab.h
+#usr/include/asm-generic/termbits.h
+#usr/include/asm-generic/termios.h
+#usr/include/asm-generic/types.h
+#usr/include/asm-generic/ucontext.h
+#usr/include/asm-generic/unistd.h
 #usr/include/asm/a.out.h
-#usr/include/asm/agp.h
-#usr/include/asm/apic.h
-#usr/include/asm/apicdef.h
-#usr/include/asm/arch_hooks.h
-#usr/include/asm/atomic.h
-#usr/include/asm/bitops.h
+#usr/include/asm/auxvec.h
+#usr/include/asm/bitsperlong.h
 #usr/include/asm/boot.h
+#usr/include/asm/bootparam.h
 #usr/include/asm/byteorder.h
-#usr/include/asm/cache.h
-#usr/include/asm/cacheflush.h
-#usr/include/asm/checksum.h
-#usr/include/asm/cpu.h
-#usr/include/asm/cpufeature.h
 #usr/include/asm/debugreg.h
-#usr/include/asm/desc.h
-#usr/include/asm/dma.h
 #usr/include/asm/e820.h
-#usr/include/asm/elf.h
 #usr/include/asm/errno.h
 #usr/include/asm/fcntl.h
-#usr/include/asm/fixmap.h
-#usr/include/asm/floppy.h
-#usr/include/asm/genapic.h
-#usr/include/asm/hardirq.h
-#usr/include/asm/hdreg.h
-#usr/include/asm/hw_irq.h
-#usr/include/asm/i8259.h
-#usr/include/asm/init.h
-#usr/include/asm/io.h
-#usr/include/asm/io_apic.h
 #usr/include/asm/ioctl.h
 #usr/include/asm/ioctls.h
-#usr/include/asm/ipc.h
 #usr/include/asm/ipcbuf.h
-#usr/include/asm/irq.h
-#usr/include/asm/kdebug.h
-#usr/include/asm/kprobes.h
+#usr/include/asm/ist.h
+#usr/include/asm/kvm.h
+#usr/include/asm/kvm_para.h
 #usr/include/asm/ldt.h
-#usr/include/asm/linkage.h
-#usr/include/asm/mach-bigsmp
-#usr/include/asm/mach-bigsmp/mach_apic.h
-#usr/include/asm/mach-bigsmp/mach_apicdef.h
-#usr/include/asm/mach-bigsmp/mach_ipi.h
-#usr/include/asm/mach-bigsmp/mach_mpspec.h
-#usr/include/asm/mach-default
-#usr/include/asm/mach-default/apm.h
-#usr/include/asm/mach-default/bios_ebda.h
-#usr/include/asm/mach-default/do_timer.h
-#usr/include/asm/mach-default/entry_arch.h
-#usr/include/asm/mach-default/io_ports.h
-#usr/include/asm/mach-default/irq_vectors.h
-#usr/include/asm/mach-default/mach_apic.h
-#usr/include/asm/mach-default/mach_apicdef.h
-#usr/include/asm/mach-default/mach_ipi.h
-#usr/include/asm/mach-default/mach_mpparse.h
-#usr/include/asm/mach-default/mach_mpspec.h
-#usr/include/asm/mach-default/mach_reboot.h
-#usr/include/asm/mach-default/mach_time.h
-#usr/include/asm/mach-default/mach_timer.h
-#usr/include/asm/mach-default/mach_traps.h
-#usr/include/asm/mach-default/mach_wakecpu.h
-#usr/include/asm/mach-default/pci-functions.h
-#usr/include/asm/mach-default/setup_arch_post.h
-#usr/include/asm/mach-default/setup_arch_pre.h
-#usr/include/asm/mach-default/smpboot_hooks.h
-#usr/include/asm/mach-es7000
-#usr/include/asm/mach-es7000/mach_apic.h
-#usr/include/asm/mach-es7000/mach_apicdef.h
-#usr/include/asm/mach-es7000/mach_ipi.h
-#usr/include/asm/mach-es7000/mach_mpparse.h
-#usr/include/asm/mach-es7000/mach_mpspec.h
-#usr/include/asm/mach-es7000/mach_wakecpu.h
-#usr/include/asm/mach-generic
-#usr/include/asm/mach-generic/mach_apic.h
-#usr/include/asm/mach-generic/mach_apicdef.h
-#usr/include/asm/mach-generic/mach_ipi.h
-#usr/include/asm/mach-generic/mach_mpparse.h
-#usr/include/asm/mach-generic/mach_mpspec.h
-#usr/include/asm/mach-numaq
-#usr/include/asm/mach-numaq/mach_apic.h
-#usr/include/asm/mach-numaq/mach_apicdef.h
-#usr/include/asm/mach-numaq/mach_ipi.h
-#usr/include/asm/mach-numaq/mach_mpparse.h
-#usr/include/asm/mach-numaq/mach_mpspec.h
-#usr/include/asm/mach-numaq/mach_wakecpu.h
-#usr/include/asm/mach-summit
-#usr/include/asm/mach-summit/mach_apic.h
-#usr/include/asm/mach-summit/mach_apicdef.h
-#usr/include/asm/mach-summit/mach_ipi.h
-#usr/include/asm/mach-summit/mach_mpparse.h
-#usr/include/asm/mach-summit/mach_mpspec.h
-#usr/include/asm/mach-visws
-#usr/include/asm/mach-visws/cobalt.h
-#usr/include/asm/mach-visws/do_timer.h
-#usr/include/asm/mach-visws/entry_arch.h
-#usr/include/asm/mach-visws/irq_vectors.h
-#usr/include/asm/mach-visws/lithium.h
-#usr/include/asm/mach-visws/mach_apic.h
-#usr/include/asm/mach-visws/mach_apicdef.h
-#usr/include/asm/mach-visws/piix4.h
-#usr/include/asm/mach-visws/setup_arch_post.h
-#usr/include/asm/mach-visws/setup_arch_pre.h
-#usr/include/asm/mach-visws/smpboot_hooks.h
-#usr/include/asm/mach-voyager
-#usr/include/asm/mach-voyager/do_timer.h
-#usr/include/asm/mach-voyager/entry_arch.h
-#usr/include/asm/mach-voyager/irq_vectors.h
-#usr/include/asm/mach-voyager/setup_arch_post.h
-#usr/include/asm/mach-voyager/setup_arch_pre.h
-#usr/include/asm/math_emu.h
-#usr/include/asm/mca.h
-#usr/include/asm/mca_dma.h
+#usr/include/asm/mce.h
 #usr/include/asm/mman.h
-#usr/include/asm/mmu.h
-#usr/include/asm/mmu_context.h
-#usr/include/asm/mmx.h
-#usr/include/asm/module.h
-#usr/include/asm/mpspec.h
-#usr/include/asm/mpspec_def.h
 #usr/include/asm/msgbuf.h
+#usr/include/asm/msr-index.h
 #usr/include/asm/msr.h
 #usr/include/asm/mtrr.h
-#usr/include/asm/namei.h
-#usr/include/asm/nmi.h
-#usr/include/asm/node.h
-#usr/include/asm/numaq.h
-#usr/include/asm/numnodes.h
-#usr/include/asm/page.h
 #usr/include/asm/param.h
-#usr/include/asm/parport.h
-#usr/include/asm/pgalloc.h
 #usr/include/asm/poll.h
 #usr/include/asm/posix_types.h
-#usr/include/asm/processor.h
+#usr/include/asm/posix_types_32.h
+#usr/include/asm/posix_types_64.h
+#usr/include/asm/prctl.h
+#usr/include/asm/processor-flags.h
+#usr/include/asm/ptrace-abi.h
 #usr/include/asm/ptrace.h
-#usr/include/asm/rwlock.h
-#usr/include/asm/segment.h
-#usr/include/asm/semaphore.h
+#usr/include/asm/resource.h
 #usr/include/asm/sembuf.h
-#usr/include/asm/serial.h
+#usr/include/asm/setup.h
 #usr/include/asm/shmbuf.h
-#usr/include/asm/shmparam.h
 #usr/include/asm/sigcontext.h
+#usr/include/asm/sigcontext32.h
 #usr/include/asm/siginfo.h
+#usr/include/asm/signal.h
 #usr/include/asm/socket.h
 #usr/include/asm/sockios.h
-#usr/include/asm/spinlock.h
-#usr/include/asm/srat.h
 #usr/include/asm/stat.h
-#usr/include/asm/suspend.h
-#usr/include/asm/system.h
+#usr/include/asm/statfs.h
+#usr/include/asm/swab.h
 #usr/include/asm/termbits.h
 #usr/include/asm/termios.h
-#usr/include/asm/timer.h
-#usr/include/asm/timex.h
-#usr/include/asm/tlbflush.h
 #usr/include/asm/types.h
 #usr/include/asm/ucontext.h
-#usr/include/asm/unaligned.h
 #usr/include/asm/unistd.h
-#usr/include/asm/user.h
-#usr/include/asm/vga.h
-#usr/include/asm/vic.h
+#usr/include/asm/unistd_32.h
+#usr/include/asm/unistd_64.h
 #usr/include/asm/vm86.h
-#usr/include/asm/voyager.h
+#usr/include/asm/vsyscall.h
+#usr/include/drm
+#usr/include/drm/drm.h
+#usr/include/drm/drm_mode.h
+#usr/include/drm/drm_sarea.h
+#usr/include/drm/i810_drm.h
+#usr/include/drm/i830_drm.h
+#usr/include/drm/i915_drm.h
+#usr/include/drm/mga_drm.h
+#usr/include/drm/r128_drm.h
+#usr/include/drm/radeon_drm.h
+#usr/include/drm/savage_drm.h
+#usr/include/drm/sis_drm.h
+#usr/include/drm/via_drm.h
 #usr/include/linux
-#usr/include/linux/8250_pci.h
 #usr/include/linux/a.out.h
 #usr/include/linux/acct.h
-#usr/include/linux/acpi.h
 #usr/include/linux/adb.h
 #usr/include/linux/adfs_fs.h
-#usr/include/linux/adfs_fs_sb.h
-#usr/include/linux/affs_fs.h
 #usr/include/linux/affs_hardblocks.h
 #usr/include/linux/agpgart.h
-#usr/include/linux/aio.h
 #usr/include/linux/aio_abi.h
-#usr/include/linux/amifd.h
-#usr/include/linux/amifdreg.h
-#usr/include/linux/amigaffs.h
 #usr/include/linux/apm_bios.h
-#usr/include/linux/ata.h
+#usr/include/linux/arcfb.h
 #usr/include/linux/atalk.h
 #usr/include/linux/atm.h
 #usr/include/linux/atm_eni.h
 #usr/include/linux/atm_he.h
 #usr/include/linux/atm_idt77105.h
 #usr/include/linux/atm_nicstar.h
-#usr/include/linux/atm_suni.h
 #usr/include/linux/atm_tcp.h
 #usr/include/linux/atm_zatm.h
 #usr/include/linux/atmapi.h
 #usr/include/linux/audit.h
 #usr/include/linux/auto_fs.h
 #usr/include/linux/auto_fs4.h
-#usr/include/linux/autoconf.h
-#usr/include/linux/awe_voice.h
+#usr/include/linux/auxvec.h
 #usr/include/linux/ax25.h
 #usr/include/linux/b1lli.h
-#usr/include/linux/backing-dev.h
-#usr/include/linux/backlight.h
 #usr/include/linux/baycom.h
-#usr/include/linux/bcd.h
 #usr/include/linux/bfs_fs.h
 #usr/include/linux/binfmts.h
-#usr/include/linux/bitmap.h
-#usr/include/linux/bitops.h
 #usr/include/linux/blkpg.h
-#usr/include/linux/blockgroup_lock.h
-#usr/include/linux/bootmem.h
+#usr/include/linux/blktrace_api.h
 #usr/include/linux/bpqether.h
+#usr/include/linux/bsg.h
 #usr/include/linux/byteorder
 #usr/include/linux/byteorder/big_endian.h
-#usr/include/linux/byteorder/generic.h
 #usr/include/linux/byteorder/little_endian.h
-#usr/include/linux/byteorder/pdp_endian.h
-#usr/include/linux/byteorder/swab.h
-#usr/include/linux/byteorder/swabb.h
-#usr/include/linux/cache.h
+#usr/include/linux/can
+#usr/include/linux/can.h
+#usr/include/linux/can/bcm.h
+#usr/include/linux/can/error.h
+#usr/include/linux/can/netlink.h
+#usr/include/linux/can/raw.h
 #usr/include/linux/capability.h
 #usr/include/linux/capi.h
 #usr/include/linux/cciss_ioctl.h
-#usr/include/linux/cd1400.h
 #usr/include/linux/cdk.h
 #usr/include/linux/cdrom.h
-#usr/include/linux/circ_buf.h
-#usr/include/linux/cobalt-nvram.h
+#usr/include/linux/cgroupstats.h
+#usr/include/linux/chio.h
+#usr/include/linux/cm4000_cs.h
+#usr/include/linux/cn_proc.h
 #usr/include/linux/coda.h
-#usr/include/linux/coda_proc.h
 #usr/include/linux/coda_psdev.h
 #usr/include/linux/coff.h
-#usr/include/linux/com20020.h
-#usr/include/linux/compat.h
-#usr/include/linux/compat_ioctl.h
-#usr/include/linux/compiler.h
 #usr/include/linux/comstats.h
-#usr/include/linux/config.h
-#usr/include/linux/console.h
-#usr/include/linux/console_struct.h
-#usr/include/linux/consolemap.h
-#usr/include/linux/cpu.h
-#usr/include/linux/cpufreq.h
+#usr/include/linux/connector.h
+#usr/include/linux/const.h
 #usr/include/linux/cramfs_fs.h
-#usr/include/linux/cramfs_fs_sb.h
-#usr/include/linux/crc32.h
-#usr/include/linux/crypto.h
-#usr/include/linux/ctype.h
 #usr/include/linux/cuda.h
 #usr/include/linux/cyclades.h
 #usr/include/linux/cycx_cfm.h
-#usr/include/linux/cycx_drv.h
-#usr/include/linux/cycx_x25.h
-#usr/include/linux/devfs_fs.h
-#usr/include/linux/devfs_fs_kernel.h
-#usr/include/linux/device-mapper.h
-#usr/include/linux/device.h
-#usr/include/linux/devpts_fs.h
-#usr/include/linux/dirent.h
-#usr/include/linux/divert.h
+#usr/include/linux/dcbnl.h
+#usr/include/linux/dccp.h
+#usr/include/linux/dlm.h
+#usr/include/linux/dlm_device.h
+#usr/include/linux/dlm_netlink.h
+#usr/include/linux/dlm_plock.h
+#usr/include/linux/dlmconstants.h
 #usr/include/linux/dm-ioctl.h
+#usr/include/linux/dm-log-userspace.h
 #usr/include/linux/dn.h
-#usr/include/linux/dnotify.h
-#usr/include/linux/dqblk_v1.h
-#usr/include/linux/dqblk_v2.h
 #usr/include/linux/dqblk_xfs.h
-#usr/include/linux/dtlk.h
 #usr/include/linux/dvb
 #usr/include/linux/dvb/audio.h
 #usr/include/linux/dvb/ca.h
 #usr/include/linux/dvb/osd.h
 #usr/include/linux/dvb/version.h
 #usr/include/linux/dvb/video.h
-#usr/include/linux/eeprom.h
-#usr/include/linux/efi.h
-#usr/include/linux/efs_dir.h
-#usr/include/linux/efs_fs.h
-#usr/include/linux/efs_fs_i.h
+#usr/include/linux/edd.h
 #usr/include/linux/efs_fs_sb.h
-#usr/include/linux/efs_vh.h
-#usr/include/linux/eisa.h
-#usr/include/linux/elevator.h
+#usr/include/linux/elf-em.h
 #usr/include/linux/elf-fdpic.h
 #usr/include/linux/elf.h
 #usr/include/linux/elfcore.h
-#usr/include/linux/err.h
-#usr/include/linux/err_kernel_only.h
 #usr/include/linux/errno.h
 #usr/include/linux/errqueue.h
 #usr/include/linux/ethtool.h
 #usr/include/linux/eventpoll.h
 #usr/include/linux/ext2_fs.h
-#usr/include/linux/ext3_fs.h
-#usr/include/linux/ext3_jbd.h
 #usr/include/linux/fadvise.h
+#usr/include/linux/falloc.h
 #usr/include/linux/fb.h
 #usr/include/linux/fcntl.h
 #usr/include/linux/fd.h
-#usr/include/linux/fd1772.h
 #usr/include/linux/fdreg.h
-#usr/include/linux/file.h
+#usr/include/linux/fib_rules.h
+#usr/include/linux/fiemap.h
 #usr/include/linux/filter.h
-#usr/include/linux/firmware.h
+#usr/include/linux/firewire-cdev.h
+#usr/include/linux/firewire-constants.h
 #usr/include/linux/flat.h
-#usr/include/linux/font.h
 #usr/include/linux/fs.h
-#usr/include/linux/fs_struct.h
-#usr/include/linux/ftape-header-segment.h
-#usr/include/linux/ftape-vendors.h
-#usr/include/linux/ftape.h
+#usr/include/linux/fuse.h
 #usr/include/linux/futex.h
 #usr/include/linux/gameport.h
 #usr/include/linux/gen_stats.h
 #usr/include/linux/generic_serial.h
-#usr/include/linux/genhd.h
-#usr/include/linux/gfp.h
-#usr/include/linux/hash.h
+#usr/include/linux/genetlink.h
+#usr/include/linux/gfs2_ondisk.h
+#usr/include/linux/gigaset_dev.h
 #usr/include/linux/hayesesp.h
 #usr/include/linux/hdlc
 #usr/include/linux/hdlc.h
 #usr/include/linux/hdlc/ioctl.h
 #usr/include/linux/hdlcdrv.h
 #usr/include/linux/hdreg.h
-#usr/include/linux/hdsmart.h
+#usr/include/linux/hid.h
 #usr/include/linux/hiddev.h
-#usr/include/linux/highuid.h
-#usr/include/linux/hpfs_fs.h
+#usr/include/linux/hidraw.h
+#usr/include/linux/hpet.h
 #usr/include/linux/hysdn_if.h
-#usr/include/linux/i2c-algo-bit.h
-#usr/include/linux/i2c-algo-ite.h
-#usr/include/linux/i2c-algo-pcf.h
-#usr/include/linux/i2c-algo-sgi.h
-#usr/include/linux/i2c-algo-sibyte.h
 #usr/include/linux/i2c-dev.h
-#usr/include/linux/i2c-id.h
-#usr/include/linux/i2c-sensor.h
-#usr/include/linux/i2c-vid.h
 #usr/include/linux/i2c.h
 #usr/include/linux/i2o-dev.h
 #usr/include/linux/i8k.h
-#usr/include/linux/ibmtr.h
 #usr/include/linux/icmp.h
 #usr/include/linux/icmpv6.h
-#usr/include/linux/ide.h
-#usr/include/linux/idr.h
 #usr/include/linux/if.h
+#usr/include/linux/if_addr.h
+#usr/include/linux/if_addrlabel.h
 #usr/include/linux/if_arcnet.h
 #usr/include/linux/if_arp.h
 #usr/include/linux/if_bonding.h
 #usr/include/linux/if_frad.h
 #usr/include/linux/if_hippi.h
 #usr/include/linux/if_infiniband.h
+#usr/include/linux/if_link.h
 #usr/include/linux/if_ltalk.h
 #usr/include/linux/if_packet.h
+#usr/include/linux/if_phonet.h
 #usr/include/linux/if_plip.h
 #usr/include/linux/if_ppp.h
+#usr/include/linux/if_pppol2tp.h
 #usr/include/linux/if_pppox.h
-#usr/include/linux/if_shaper.h
 #usr/include/linux/if_slip.h
 #usr/include/linux/if_strip.h
 #usr/include/linux/if_tr.h
 #usr/include/linux/if_tun.h
 #usr/include/linux/if_tunnel.h
 #usr/include/linux/if_vlan.h
-#usr/include/linux/if_wanpipe.h
-#usr/include/linux/if_wanpipe_common.h
 #usr/include/linux/igmp.h
 #usr/include/linux/in.h
 #usr/include/linux/in6.h
 #usr/include/linux/in_route.h
-#usr/include/linux/inetdevice.h
-#usr/include/linux/init.h
-#usr/include/linux/init_task.h
-#usr/include/linux/initrd.h
+#usr/include/linux/inet_diag.h
 #usr/include/linux/inotify.h
 #usr/include/linux/input.h
-#usr/include/linux/interrupt.h
 #usr/include/linux/ioctl.h
-#usr/include/linux/ioctl32.h
-#usr/include/linux/ioport.h
 #usr/include/linux/ip.h
 #usr/include/linux/ip6_tunnel.h
-#usr/include/linux/ip_mp_alg.h
+#usr/include/linux/ip_vs.h
 #usr/include/linux/ipc.h
 #usr/include/linux/ipmi.h
 #usr/include/linux/ipmi_msgdefs.h
-#usr/include/linux/ipmi_smi.h
 #usr/include/linux/ipsec.h
 #usr/include/linux/ipv6.h
 #usr/include/linux/ipv6_route.h
 #usr/include/linux/ipx.h
 #usr/include/linux/irda.h
-#usr/include/linux/irq.h
-#usr/include/linux/irq_cpustat.h
-#usr/include/linux/isapnp.h
+#usr/include/linux/irqnr.h
 #usr/include/linux/isdn
 #usr/include/linux/isdn.h
 #usr/include/linux/isdn/capicmd.h
-#usr/include/linux/isdn/capilli.h
-#usr/include/linux/isdn/capiutil.h
-#usr/include/linux/isdn/tpam.h
 #usr/include/linux/isdn_divertif.h
 #usr/include/linux/isdn_ppp.h
 #usr/include/linux/isdnif.h
-#usr/include/linux/isicom.h
 #usr/include/linux/iso_fs.h
-#usr/include/linux/istallion.h
-#usr/include/linux/ite_gpio.h
+#usr/include/linux/ivtv.h
+#usr/include/linux/ivtvfb.h
 #usr/include/linux/ixjuser.h
-#usr/include/linux/jbd.h
-#usr/include/linux/jffs.h
 #usr/include/linux/jffs2.h
-#usr/include/linux/jffs2_fs_sb.h
-#usr/include/linux/jhash.h
-#usr/include/linux/jiffies.h
-#usr/include/linux/journal-head.h
 #usr/include/linux/joystick.h
-#usr/include/linux/kallsyms.h
-#usr/include/linux/kbd_diacr.h
-#usr/include/linux/kbd_kern.h
 #usr/include/linux/kd.h
 #usr/include/linux/kdev_t.h
 #usr/include/linux/kernel.h
-#usr/include/linux/kernel_stat.h
 #usr/include/linux/kernelcapi.h
 #usr/include/linux/keyboard.h
 #usr/include/linux/keyctl.h
-#usr/include/linux/kmalloc_sizes.h
-#usr/include/linux/kmod.h
-#usr/include/linux/kprobes.h
-#usr/include/linux/lapb.h
-#usr/include/linux/lcd.h
-#usr/include/linux/libata.h
-#usr/include/linux/libps2.h
+#usr/include/linux/kvm.h
+#usr/include/linux/kvm_para.h
 #usr/include/linux/limits.h
-#usr/include/linux/linkage.h
-#usr/include/linux/linux_logo.h
-#usr/include/linux/list.h
 #usr/include/linux/llc.h
-#usr/include/linux/lockd
-#usr/include/linux/lockd/bind.h
-#usr/include/linux/lockd/debug.h
-#usr/include/linux/lockd/nlm.h
-#usr/include/linux/lockd/share.h
-#usr/include/linux/lockd/sm_inter.h
-#usr/include/linux/lockd/xdr.h
-#usr/include/linux/lockd/xdr4.h
 #usr/include/linux/loop.h
 #usr/include/linux/lp.h
+#usr/include/linux/magic.h
 #usr/include/linux/major.h
+#usr/include/linux/map_to_7segment.h
 #usr/include/linux/matroxfb.h
-#usr/include/linux/mbcache.h
-#usr/include/linux/mc6821.h
-#usr/include/linux/mca-legacy.h
-#usr/include/linux/mca.h
-#usr/include/linux/mempool.h
+#usr/include/linux/mempolicy.h
 #usr/include/linux/meye.h
 #usr/include/linux/mii.h
 #usr/include/linux/minix_fs.h
-#usr/include/linux/miscdevice.h
-#usr/include/linux/mm.h
-#usr/include/linux/mm_inline.h
 #usr/include/linux/mman.h
-#usr/include/linux/mod_devicetable.h
-#usr/include/linux/module.h
-#usr/include/linux/moduleloader.h
-#usr/include/linux/moduleparam.h
-#usr/include/linux/mount.h
+#usr/include/linux/mmtimer.h
+#usr/include/linux/mqueue.h
 #usr/include/linux/mroute.h
+#usr/include/linux/mroute6.h
 #usr/include/linux/msdos_fs.h
 #usr/include/linux/msg.h
-#usr/include/linux/mtd
-#usr/include/linux/mtd/blktrans.h
-#usr/include/linux/mtd/cfi.h
-#usr/include/linux/mtd/cfi_endian.h
-#usr/include/linux/mtd/compatmac.h
-#usr/include/linux/mtd/concat.h
-#usr/include/linux/mtd/doc2000.h
-#usr/include/linux/mtd/flashchip.h
-#usr/include/linux/mtd/ftl.h
-#usr/include/linux/mtd/gen_probe.h
-#usr/include/linux/mtd/iflash.h
-#usr/include/linux/mtd/jedec.h
-#usr/include/linux/mtd/map.h
-#usr/include/linux/mtd/nand.h
-#usr/include/linux/mtd/nand_ecc.h
-#usr/include/linux/mtd/nftl.h
-#usr/include/linux/mtd/partitions.h
-#usr/include/linux/mtd/pmc551.h
 #usr/include/linux/mtio.h
 #usr/include/linux/n_r3964.h
-#usr/include/linux/namei.h
 #usr/include/linux/nbd.h
 #usr/include/linux/ncp.h
 #usr/include/linux/ncp_fs.h
 #usr/include/linux/ncp_mount.h
 #usr/include/linux/ncp_no.h
+#usr/include/linux/neighbour.h
 #usr/include/linux/net.h
+#usr/include/linux/net_dropmon.h
 #usr/include/linux/netdevice.h
+#usr/include/linux/netfilter
 #usr/include/linux/netfilter.h
+#usr/include/linux/netfilter/nf_conntrack_common.h
+#usr/include/linux/netfilter/nf_conntrack_ftp.h
+#usr/include/linux/netfilter/nf_conntrack_sctp.h
+#usr/include/linux/netfilter/nf_conntrack_tcp.h
+#usr/include/linux/netfilter/nf_conntrack_tuple_common.h
+#usr/include/linux/netfilter/nfnetlink.h
+#usr/include/linux/netfilter/nfnetlink_compat.h
+#usr/include/linux/netfilter/nfnetlink_conntrack.h
+#usr/include/linux/netfilter/nfnetlink_log.h
+#usr/include/linux/netfilter/nfnetlink_queue.h
+#usr/include/linux/netfilter/x_tables.h
+#usr/include/linux/netfilter/xt_CLASSIFY.h
+#usr/include/linux/netfilter/xt_CONNMARK.h
+#usr/include/linux/netfilter/xt_CONNSECMARK.h
+#usr/include/linux/netfilter/xt_DSCP.h
+#usr/include/linux/netfilter/xt_LED.h
+#usr/include/linux/netfilter/xt_MARK.h
+#usr/include/linux/netfilter/xt_NFLOG.h
+#usr/include/linux/netfilter/xt_NFQUEUE.h
+#usr/include/linux/netfilter/xt_RATEEST.h
+#usr/include/linux/netfilter/xt_SECMARK.h
+#usr/include/linux/netfilter/xt_TCPMSS.h
+#usr/include/linux/netfilter/xt_TCPOPTSTRIP.h
+#usr/include/linux/netfilter/xt_TPROXY.h
+#usr/include/linux/netfilter/xt_cluster.h
+#usr/include/linux/netfilter/xt_comment.h
+#usr/include/linux/netfilter/xt_connbytes.h
+#usr/include/linux/netfilter/xt_connlimit.h
+#usr/include/linux/netfilter/xt_connmark.h
+#usr/include/linux/netfilter/xt_conntrack.h
+#usr/include/linux/netfilter/xt_dccp.h
+#usr/include/linux/netfilter/xt_dscp.h
+#usr/include/linux/netfilter/xt_esp.h
+#usr/include/linux/netfilter/xt_hashlimit.h
+#usr/include/linux/netfilter/xt_helper.h
+#usr/include/linux/netfilter/xt_iprange.h
+#usr/include/linux/netfilter/xt_length.h
+#usr/include/linux/netfilter/xt_limit.h
+#usr/include/linux/netfilter/xt_mac.h
+#usr/include/linux/netfilter/xt_mark.h
+#usr/include/linux/netfilter/xt_multiport.h
+#usr/include/linux/netfilter/xt_osf.h
+#usr/include/linux/netfilter/xt_owner.h
+#usr/include/linux/netfilter/xt_physdev.h
+#usr/include/linux/netfilter/xt_pkttype.h
+#usr/include/linux/netfilter/xt_policy.h
+#usr/include/linux/netfilter/xt_quota.h
+#usr/include/linux/netfilter/xt_rateest.h
+#usr/include/linux/netfilter/xt_realm.h
+#usr/include/linux/netfilter/xt_recent.h
+#usr/include/linux/netfilter/xt_sctp.h
+#usr/include/linux/netfilter/xt_state.h
+#usr/include/linux/netfilter/xt_statistic.h
+#usr/include/linux/netfilter/xt_string.h
+#usr/include/linux/netfilter/xt_tcpmss.h
+#usr/include/linux/netfilter/xt_tcpudp.h
+#usr/include/linux/netfilter/xt_time.h
+#usr/include/linux/netfilter/xt_u32.h
 #usr/include/linux/netfilter_arp
 #usr/include/linux/netfilter_arp.h
 #usr/include/linux/netfilter_arp/arp_tables.h
 #usr/include/linux/netfilter_decnet.h
 #usr/include/linux/netfilter_ipv4
 #usr/include/linux/netfilter_ipv4.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#usr/include/linux/netfilter_ipv4/ip_nat.h
-#usr/include/linux/netfilter_ipv4/ip_nat_core.h
-#usr/include/linux/netfilter_ipv4/ip_nat_helper.h
-#usr/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#usr/include/linux/netfilter_ipv4/ip_nat_rule.h
 #usr/include/linux/netfilter_ipv4/ip_queue.h
 #usr/include/linux/netfilter_ipv4/ip_tables.h
-#usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
 #usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#usr/include/linux/netfilter_ipv4/ipt_DSCP.h
 #usr/include/linux/netfilter_ipv4/ipt_ECN.h
 #usr/include/linux/netfilter_ipv4/ipt_LOG.h
-#usr/include/linux/netfilter_ipv4/ipt_MARK.h
 #usr/include/linux/netfilter_ipv4/ipt_REJECT.h
 #usr/include/linux/netfilter_ipv4/ipt_SAME.h
-#usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#usr/include/linux/netfilter_ipv4/ipt_TOS.h
+#usr/include/linux/netfilter_ipv4/ipt_TTL.h
 #usr/include/linux/netfilter_ipv4/ipt_ULOG.h
 #usr/include/linux/netfilter_ipv4/ipt_addrtype.h
 #usr/include/linux/netfilter_ipv4/ipt_ah.h
-#usr/include/linux/netfilter_ipv4/ipt_comment.h
-#usr/include/linux/netfilter_ipv4/ipt_connmark.h
-#usr/include/linux/netfilter_ipv4/ipt_conntrack.h
-#usr/include/linux/netfilter_ipv4/ipt_dscp.h
 #usr/include/linux/netfilter_ipv4/ipt_ecn.h
-#usr/include/linux/netfilter_ipv4/ipt_esp.h
-#usr/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#usr/include/linux/netfilter_ipv4/ipt_helper.h
-#usr/include/linux/netfilter_ipv4/ipt_iprange.h
-#usr/include/linux/netfilter_ipv4/ipt_length.h
-#usr/include/linux/netfilter_ipv4/ipt_limit.h
-#usr/include/linux/netfilter_ipv4/ipt_mac.h
-#usr/include/linux/netfilter_ipv4/ipt_mark.h
-#usr/include/linux/netfilter_ipv4/ipt_multiport.h
-#usr/include/linux/netfilter_ipv4/ipt_owner.h
-#usr/include/linux/netfilter_ipv4/ipt_physdev.h
-#usr/include/linux/netfilter_ipv4/ipt_pkttype.h
 #usr/include/linux/netfilter_ipv4/ipt_realm.h
-#usr/include/linux/netfilter_ipv4/ipt_recent.h
-#usr/include/linux/netfilter_ipv4/ipt_sctp.h
-#usr/include/linux/netfilter_ipv4/ipt_state.h
-#usr/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#usr/include/linux/netfilter_ipv4/ipt_tos.h
 #usr/include/linux/netfilter_ipv4/ipt_ttl.h
-#usr/include/linux/netfilter_ipv4/listhelp.h
-#usr/include/linux/netfilter_ipv4/lockhelp.h
 #usr/include/linux/netfilter_ipv6
 #usr/include/linux/netfilter_ipv6.h
 #usr/include/linux/netfilter_ipv6/ip6_tables.h
+#usr/include/linux/netfilter_ipv6/ip6t_HL.h
 #usr/include/linux/netfilter_ipv6/ip6t_LOG.h
-#usr/include/linux/netfilter_ipv6/ip6t_MARK.h
+#usr/include/linux/netfilter_ipv6/ip6t_REJECT.h
 #usr/include/linux/netfilter_ipv6/ip6t_ah.h
-#usr/include/linux/netfilter_ipv6/ip6t_esp.h
 #usr/include/linux/netfilter_ipv6/ip6t_frag.h
 #usr/include/linux/netfilter_ipv6/ip6t_hl.h
 #usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#usr/include/linux/netfilter_ipv6/ip6t_length.h
-#usr/include/linux/netfilter_ipv6/ip6t_limit.h
-#usr/include/linux/netfilter_ipv6/ip6t_mac.h
-#usr/include/linux/netfilter_ipv6/ip6t_mark.h
-#usr/include/linux/netfilter_ipv6/ip6t_multiport.h
+#usr/include/linux/netfilter_ipv6/ip6t_mh.h
 #usr/include/linux/netfilter_ipv6/ip6t_opts.h
-#usr/include/linux/netfilter_ipv6/ip6t_owner.h
-#usr/include/linux/netfilter_ipv6/ip6t_physdev.h
 #usr/include/linux/netfilter_ipv6/ip6t_rt.h
 #usr/include/linux/netlink.h
 #usr/include/linux/netrom.h
 #usr/include/linux/nfs4.h
 #usr/include/linux/nfs4_mount.h
 #usr/include/linux/nfs_fs.h
-#usr/include/linux/nfs_fs_i.h
-#usr/include/linux/nfs_fs_sb.h
 #usr/include/linux/nfs_idmap.h
 #usr/include/linux/nfs_mount.h
-#usr/include/linux/nfs_xdr.h
+#usr/include/linux/nfsacl.h
 #usr/include/linux/nfsd
 #usr/include/linux/nfsd/const.h
 #usr/include/linux/nfsd/debug.h
 #usr/include/linux/nfsd/export.h
-#usr/include/linux/nfsd/interface.h
-#usr/include/linux/nfsd/nfsd.h
 #usr/include/linux/nfsd/nfsfh.h
-#usr/include/linux/nfsd/state.h
 #usr/include/linux/nfsd/stats.h
 #usr/include/linux/nfsd/syscall.h
-#usr/include/linux/nfsd/xdr.h
-#usr/include/linux/nfsd/xdr3.h
-#usr/include/linux/nfsd/xdr4.h
-#usr/include/linux/nls.h
-#usr/include/linux/nmi.h
-#usr/include/linux/node.h
-#usr/include/linux/notifier.h
+#usr/include/linux/nl80211.h
 #usr/include/linux/nubus.h
-#usr/include/linux/numa.h
 #usr/include/linux/nvram.h
-#usr/include/linux/openprom_fs.h
-#usr/include/linux/oprofile.h
-#usr/include/linux/pagemap.h
-#usr/include/linux/pagevec.h
+#usr/include/linux/oom.h
 #usr/include/linux/param.h
 #usr/include/linux/parport.h
-#usr/include/linux/parport_pc.h
-#usr/include/linux/parser.h
 #usr/include/linux/patchkey.h
-#usr/include/linux/pci-dynids.h
 #usr/include/linux/pci.h
-#usr/include/linux/pci_ids.h
-#usr/include/linux/pcieport_if.h
-#usr/include/linux/percpu.h
-#usr/include/linux/percpu_counter.h
+#usr/include/linux/pci_regs.h
+#usr/include/linux/perf_event.h
 #usr/include/linux/personality.h
 #usr/include/linux/pfkeyv2.h
 #usr/include/linux/pg.h
-#usr/include/linux/pipe_fs_i.h
+#usr/include/linux/phantom.h
+#usr/include/linux/phonet.h
 #usr/include/linux/pkt_cls.h
 #usr/include/linux/pkt_sched.h
 #usr/include/linux/pktcdvd.h
 #usr/include/linux/pmu.h
 #usr/include/linux/poll.h
-#usr/include/linux/posix-timers.h
-#usr/include/linux/posix_acl.h
-#usr/include/linux/posix_acl_xattr.h
 #usr/include/linux/posix_types.h
 #usr/include/linux/ppdev.h
 #usr/include/linux/ppp-comp.h
-#usr/include/linux/ppp_channel.h
 #usr/include/linux/ppp_defs.h
+#usr/include/linux/pps.h
 #usr/include/linux/prctl.h
-#usr/include/linux/preempt.h
-#usr/include/linux/prefetch.h
-#usr/include/linux/proc_fs.h
-#usr/include/linux/ps2esdi.h
 #usr/include/linux/ptrace.h
-#usr/include/linux/qic117.h
 #usr/include/linux/qnx4_fs.h
 #usr/include/linux/qnxtypes.h
 #usr/include/linux/quota.h
-#usr/include/linux/quotaio_v1.h
-#usr/include/linux/quotaio_v2.h
 #usr/include/linux/radeonfb.h
 #usr/include/linux/raid
-#usr/include/linux/raid/linear.h
-#usr/include/linux/raid/md.h
 #usr/include/linux/raid/md_p.h
 #usr/include/linux/raid/md_u.h
-#usr/include/linux/raid/multipath.h
-#usr/include/linux/raid/raid0.h
-#usr/include/linux/raid/raid1.h
-#usr/include/linux/raid/raid5.h
-#usr/include/linux/raid/xor.h
 #usr/include/linux/random.h
 #usr/include/linux/raw.h
-#usr/include/linux/rbtree.h
 #usr/include/linux/reboot.h
-#usr/include/linux/reiserfs_acl.h
 #usr/include/linux/reiserfs_fs.h
 #usr/include/linux/reiserfs_xattr.h
 #usr/include/linux/resource.h
+#usr/include/linux/rfkill.h
 #usr/include/linux/romfs_fs.h
-#usr/include/linux/root_dev.h
 #usr/include/linux/rose.h
 #usr/include/linux/route.h
 #usr/include/linux/rtc.h
 #usr/include/linux/rtnetlink.h
-#usr/include/linux/sc26198.h
 #usr/include/linux/scc.h
 #usr/include/linux/sched.h
-#usr/include/linux/sctp.h
-#usr/include/linux/scx200.h
-#usr/include/linux/scx200_gpio.h
+#usr/include/linux/screen_info.h
 #usr/include/linux/sdla.h
-#usr/include/linux/sdla_asy.h
-#usr/include/linux/sdla_chdlc.h
-#usr/include/linux/sdla_fr.h
-#usr/include/linux/sdla_ppp.h
-#usr/include/linux/sdla_x25.h
-#usr/include/linux/sdladrv.h
-#usr/include/linux/sdlapci.h
-#usr/include/linux/sdlasfm.h
-#usr/include/linux/securebits.h
-#usr/include/linux/security.h
-#usr/include/linux/selection.h
 #usr/include/linux/selinux_netlink.h
 #usr/include/linux/sem.h
-#usr/include/linux/seqlock.h
 #usr/include/linux/serial.h
-#usr/include/linux/serial167.h
-#usr/include/linux/serialP.h
-#usr/include/linux/serial_8250.h
 #usr/include/linux/serial_core.h
 #usr/include/linux/serial_reg.h
 #usr/include/linux/serio.h
 #usr/include/linux/shm.h
-#usr/include/linux/siginfo.h
 #usr/include/linux/signal.h
-#usr/include/linux/skbuff.h
+#usr/include/linux/signalfd.h
 #usr/include/linux/smb.h
 #usr/include/linux/smb_fs.h
 #usr/include/linux/smb_mount.h
 #usr/include/linux/smbno.h
-#usr/include/linux/smp_lock.h
 #usr/include/linux/snmp.h
 #usr/include/linux/socket.h
 #usr/include/linux/sockios.h
 #usr/include/linux/sonypi.h
 #usr/include/linux/sound.h
 #usr/include/linux/soundcard.h
-#usr/include/linux/spinlock.h
-#usr/include/linux/stallion.h
+#usr/include/linux/spi
+#usr/include/linux/spi/spidev.h
+#usr/include/linux/stat.h
 #usr/include/linux/stddef.h
-#usr/include/linux/stringify.h
+#usr/include/linux/string.h
 #usr/include/linux/sunrpc
-#usr/include/linux/sunrpc/cache.h
-#usr/include/linux/sunrpc/clnt.h
 #usr/include/linux/sunrpc/debug.h
-#usr/include/linux/sunrpc/gss_asn1.h
-#usr/include/linux/sunrpc/gss_krb5.h
-#usr/include/linux/sunrpc/gss_spkm3.h
-#usr/include/linux/sunrpc/sched.h
-#usr/include/linux/sunrpc/stats.h
-#usr/include/linux/sunrpc/svc.h
-#usr/include/linux/sunrpc/svcsock.h
-#usr/include/linux/sunrpc/timer.h
-#usr/include/linux/sunrpc/types.h
-#usr/include/linux/sunrpc/xprt.h
-#usr/include/linux/superhyway.h
-#usr/include/linux/suspend.h
-#usr/include/linux/swap.h
-#usr/include/linux/swapops.h
+#usr/include/linux/suspend_ioctls.h
+#usr/include/linux/swab.h
 #usr/include/linux/synclink.h
-#usr/include/linux/sys.h
-#usr/include/linux/syscalls.h
 #usr/include/linux/sysctl.h
-#usr/include/linux/sysdev.h
-#usr/include/linux/sysfs.h
-#usr/include/linux/sysrq.h
-#usr/include/linux/sysv_fs.h
+#usr/include/linux/taskstats.h
 #usr/include/linux/tc_act
-#usr/include/linux/tc_act/tc_defact.h
 #usr/include/linux/tc_act/tc_gact.h
 #usr/include/linux/tc_act/tc_ipt.h
 #usr/include/linux/tc_act/tc_mirred.h
+#usr/include/linux/tc_act/tc_nat.h
 #usr/include/linux/tc_act/tc_pedit.h
+#usr/include/linux/tc_act/tc_skbedit.h
 #usr/include/linux/tc_ematch
 #usr/include/linux/tc_ematch/tc_em_cmp.h
 #usr/include/linux/tc_ematch/tc_em_meta.h
 #usr/include/linux/tc_ematch/tc_em_nbyte.h
+#usr/include/linux/tc_ematch/tc_em_text.h
 #usr/include/linux/tcp.h
-#usr/include/linux/tcp_diag.h
 #usr/include/linux/telephony.h
 #usr/include/linux/termios.h
-#usr/include/linux/threads.h
-#usr/include/linux/ticable.h
 #usr/include/linux/time.h
 #usr/include/linux/times.h
 #usr/include/linux/timex.h
 #usr/include/linux/tiocl.h
+#usr/include/linux/tipc.h
+#usr/include/linux/tipc_config.h
 #usr/include/linux/toshiba.h
 #usr/include/linux/tty.h
 #usr/include/linux/types.h
-#usr/include/linux/udf_fs.h
 #usr/include/linux/udf_fs_i.h
-#usr/include/linux/udf_fs_sb.h
 #usr/include/linux/udp.h
-#usr/include/linux/ufs_fs.h
 #usr/include/linux/uinput.h
 #usr/include/linux/uio.h
 #usr/include/linux/ultrasound.h
-#usr/include/linux/umem.h
 #usr/include/linux/un.h
 #usr/include/linux/unistd.h
-#usr/include/linux/usb.h
-#usr/include/linux/usb_cdc.h
-#usr/include/linux/usb_ch9.h
-#usr/include/linux/usb_gadgetfs.h
+#usr/include/linux/usb
+#usr/include/linux/usb/audio.h
+#usr/include/linux/usb/cdc.h
+#usr/include/linux/usb/ch9.h
+#usr/include/linux/usb/g_printer.h
+#usr/include/linux/usb/gadgetfs.h
+#usr/include/linux/usb/midi.h
+#usr/include/linux/usb/tmc.h
+#usr/include/linux/usb/vstusb.h
 #usr/include/linux/usbdevice_fs.h
-#usr/include/linux/user.h
 #usr/include/linux/utime.h
-#usr/include/linux/uts.h
 #usr/include/linux/utsname.h
 #usr/include/linux/version.h
-#usr/include/linux/video_decoder.h
-#usr/include/linux/video_encoder.h
+#usr/include/linux/veth.h
 #usr/include/linux/videodev.h
 #usr/include/linux/videodev2.h
 #usr/include/linux/videotext.h
-#usr/include/linux/vmalloc.h
+#usr/include/linux/virtio_9p.h
+#usr/include/linux/virtio_balloon.h
+#usr/include/linux/virtio_blk.h
+#usr/include/linux/virtio_config.h
+#usr/include/linux/virtio_console.h
+#usr/include/linux/virtio_ids.h
+#usr/include/linux/virtio_net.h
+#usr/include/linux/virtio_pci.h
+#usr/include/linux/virtio_ring.h
+#usr/include/linux/virtio_rng.h
 #usr/include/linux/vt.h
-#usr/include/linux/vt_buffer.h
-#usr/include/linux/vt_kern.h
 #usr/include/linux/wait.h
-#usr/include/linux/wanpipe.h
 #usr/include/linux/wanrouter.h
 #usr/include/linux/watchdog.h
-#usr/include/linux/wavefront.h
+#usr/include/linux/wimax
+#usr/include/linux/wimax.h
+#usr/include/linux/wimax/i2400m.h
 #usr/include/linux/wireless.h
-#usr/include/linux/workqueue.h
 #usr/include/linux/x25.h
 #usr/include/linux/xattr.h
-#usr/include/linux/xattr_acl.h
 #usr/include/linux/xfrm.h
-#usr/include/linux/yam.h
-#usr/include/linux/zftape.h
-#usr/include/linux/zorro.h
-#usr/include/linux/zorro_ids.h
-#opt/MACHINE-uClibc
-#opt/MACHINE-uClibc/usr
-#opt/MACHINE-uClibc/usr/include
-#opt/MACHINE-uClibc/usr/include/asm
-#opt/MACHINE-uClibc/usr/include/asm/8253pit.h
-#opt/MACHINE-uClibc/usr/include/asm/a.out.h
-#opt/MACHINE-uClibc/usr/include/asm/agp.h
-#opt/MACHINE-uClibc/usr/include/asm/apic.h
-#opt/MACHINE-uClibc/usr/include/asm/apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/arch_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/atomic.h
-#opt/MACHINE-uClibc/usr/include/asm/bitops.h
-#opt/MACHINE-uClibc/usr/include/asm/boot.h
-#opt/MACHINE-uClibc/usr/include/asm/byteorder.h
-#opt/MACHINE-uClibc/usr/include/asm/cache.h
-#opt/MACHINE-uClibc/usr/include/asm/cacheflush.h
-#opt/MACHINE-uClibc/usr/include/asm/checksum.h
-#opt/MACHINE-uClibc/usr/include/asm/cpu.h
-#opt/MACHINE-uClibc/usr/include/asm/cpufeature.h
-#opt/MACHINE-uClibc/usr/include/asm/debugreg.h
-#opt/MACHINE-uClibc/usr/include/asm/desc.h
-#opt/MACHINE-uClibc/usr/include/asm/dma.h
-#opt/MACHINE-uClibc/usr/include/asm/e820.h
-#opt/MACHINE-uClibc/usr/include/asm/elf.h
-#opt/MACHINE-uClibc/usr/include/asm/errno.h
-#opt/MACHINE-uClibc/usr/include/asm/fcntl.h
-#opt/MACHINE-uClibc/usr/include/asm/fixmap.h
-#opt/MACHINE-uClibc/usr/include/asm/floppy.h
-#opt/MACHINE-uClibc/usr/include/asm/genapic.h
-#opt/MACHINE-uClibc/usr/include/asm/hardirq.h
-#opt/MACHINE-uClibc/usr/include/asm/hdreg.h
-#opt/MACHINE-uClibc/usr/include/asm/hw_irq.h
-#opt/MACHINE-uClibc/usr/include/asm/i8259.h
-#opt/MACHINE-uClibc/usr/include/asm/init.h
-#opt/MACHINE-uClibc/usr/include/asm/io.h
-#opt/MACHINE-uClibc/usr/include/asm/io_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/ioctl.h
-#opt/MACHINE-uClibc/usr/include/asm/ioctls.h
-#opt/MACHINE-uClibc/usr/include/asm/ipc.h
-#opt/MACHINE-uClibc/usr/include/asm/ipcbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/irq.h
-#opt/MACHINE-uClibc/usr/include/asm/kdebug.h
-#opt/MACHINE-uClibc/usr/include/asm/kprobes.h
-#opt/MACHINE-uClibc/usr/include/asm/ldt.h
-#opt/MACHINE-uClibc/usr/include/asm/linkage.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-bigsmp/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/apm.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/bios_ebda.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/io_ports.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_reboot.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_time.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_traps.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/pci-functions.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-default/smpboot_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-es7000/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-generic/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-numaq/mach_wakecpu.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_ipi.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpparse.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-summit/mach_mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/cobalt.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/lithium.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apic.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/mach_apicdef.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/piix4.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-visws/smpboot_hooks.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/do_timer.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/entry_arch.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/irq_vectors.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_post.h
-#opt/MACHINE-uClibc/usr/include/asm/mach-voyager/setup_arch_pre.h
-#opt/MACHINE-uClibc/usr/include/asm/math_emu.h
-#opt/MACHINE-uClibc/usr/include/asm/mca.h
-#opt/MACHINE-uClibc/usr/include/asm/mca_dma.h
-#opt/MACHINE-uClibc/usr/include/asm/mman.h
-#opt/MACHINE-uClibc/usr/include/asm/mmu.h
-#opt/MACHINE-uClibc/usr/include/asm/mmu_context.h
-#opt/MACHINE-uClibc/usr/include/asm/mmx.h
-#opt/MACHINE-uClibc/usr/include/asm/module.h
-#opt/MACHINE-uClibc/usr/include/asm/mpspec.h
-#opt/MACHINE-uClibc/usr/include/asm/mpspec_def.h
-#opt/MACHINE-uClibc/usr/include/asm/msgbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/msr.h
-#opt/MACHINE-uClibc/usr/include/asm/mtrr.h
-#opt/MACHINE-uClibc/usr/include/asm/namei.h
-#opt/MACHINE-uClibc/usr/include/asm/nmi.h
-#opt/MACHINE-uClibc/usr/include/asm/node.h
-#opt/MACHINE-uClibc/usr/include/asm/numaq.h
-#opt/MACHINE-uClibc/usr/include/asm/numnodes.h
-#opt/MACHINE-uClibc/usr/include/asm/page.h
-#opt/MACHINE-uClibc/usr/include/asm/param.h
-#opt/MACHINE-uClibc/usr/include/asm/parport.h
-#opt/MACHINE-uClibc/usr/include/asm/pgalloc.h
-#opt/MACHINE-uClibc/usr/include/asm/poll.h
-#opt/MACHINE-uClibc/usr/include/asm/posix_types.h
-#opt/MACHINE-uClibc/usr/include/asm/processor.h
-#opt/MACHINE-uClibc/usr/include/asm/ptrace.h
-#opt/MACHINE-uClibc/usr/include/asm/rwlock.h
-#opt/MACHINE-uClibc/usr/include/asm/segment.h
-#opt/MACHINE-uClibc/usr/include/asm/semaphore.h
-#opt/MACHINE-uClibc/usr/include/asm/sembuf.h
-#opt/MACHINE-uClibc/usr/include/asm/serial.h
-#opt/MACHINE-uClibc/usr/include/asm/shmbuf.h
-#opt/MACHINE-uClibc/usr/include/asm/shmparam.h
-#opt/MACHINE-uClibc/usr/include/asm/sigcontext.h
-#opt/MACHINE-uClibc/usr/include/asm/siginfo.h
-#opt/MACHINE-uClibc/usr/include/asm/socket.h
-#opt/MACHINE-uClibc/usr/include/asm/sockios.h
-#opt/MACHINE-uClibc/usr/include/asm/spinlock.h
-#opt/MACHINE-uClibc/usr/include/asm/srat.h
-#opt/MACHINE-uClibc/usr/include/asm/stat.h
-#opt/MACHINE-uClibc/usr/include/asm/suspend.h
-#opt/MACHINE-uClibc/usr/include/asm/system.h
-#opt/MACHINE-uClibc/usr/include/asm/termbits.h
-#opt/MACHINE-uClibc/usr/include/asm/termios.h
-#opt/MACHINE-uClibc/usr/include/asm/timer.h
-#opt/MACHINE-uClibc/usr/include/asm/timex.h
-#opt/MACHINE-uClibc/usr/include/asm/tlbflush.h
-#opt/MACHINE-uClibc/usr/include/asm/types.h
-#opt/MACHINE-uClibc/usr/include/asm/ucontext.h
-#opt/MACHINE-uClibc/usr/include/asm/unaligned.h
-#opt/MACHINE-uClibc/usr/include/asm/unistd.h
-#opt/MACHINE-uClibc/usr/include/asm/user.h
-#opt/MACHINE-uClibc/usr/include/asm/vga.h
-#opt/MACHINE-uClibc/usr/include/asm/vic.h
-#opt/MACHINE-uClibc/usr/include/asm/vm86.h
-#opt/MACHINE-uClibc/usr/include/asm/voyager.h
-#opt/MACHINE-uClibc/usr/include/linux
-#opt/MACHINE-uClibc/usr/include/linux/8250_pci.h
-#opt/MACHINE-uClibc/usr/include/linux/a.out.h
-#opt/MACHINE-uClibc/usr/include/linux/acct.h
-#opt/MACHINE-uClibc/usr/include/linux/acpi.h
-#opt/MACHINE-uClibc/usr/include/linux/adb.h
-#opt/MACHINE-uClibc/usr/include/linux/adfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/adfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/affs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/affs_hardblocks.h
-#opt/MACHINE-uClibc/usr/include/linux/agpgart.h
-#opt/MACHINE-uClibc/usr/include/linux/aio.h
-#opt/MACHINE-uClibc/usr/include/linux/aio_abi.h
-#opt/MACHINE-uClibc/usr/include/linux/amifd.h
-#opt/MACHINE-uClibc/usr/include/linux/amifdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/amigaffs.h
-#opt/MACHINE-uClibc/usr/include/linux/apm_bios.h
-#opt/MACHINE-uClibc/usr/include/linux/ata.h
-#opt/MACHINE-uClibc/usr/include/linux/atalk.h
-#opt/MACHINE-uClibc/usr/include/linux/atm.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_eni.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_he.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_idt77105.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_nicstar.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_suni.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/atm_zatm.h
-#opt/MACHINE-uClibc/usr/include/linux/atmapi.h
-#opt/MACHINE-uClibc/usr/include/linux/atmarp.h
-#opt/MACHINE-uClibc/usr/include/linux/atmbr2684.h
-#opt/MACHINE-uClibc/usr/include/linux/atmclip.h
-#opt/MACHINE-uClibc/usr/include/linux/atmdev.h
-#opt/MACHINE-uClibc/usr/include/linux/atmioc.h
-#opt/MACHINE-uClibc/usr/include/linux/atmlec.h
-#opt/MACHINE-uClibc/usr/include/linux/atmmpc.h
-#opt/MACHINE-uClibc/usr/include/linux/atmppp.h
-#opt/MACHINE-uClibc/usr/include/linux/atmsap.h
-#opt/MACHINE-uClibc/usr/include/linux/atmsvc.h
-#opt/MACHINE-uClibc/usr/include/linux/audit.h
-#opt/MACHINE-uClibc/usr/include/linux/auto_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/auto_fs4.h
-#opt/MACHINE-uClibc/usr/include/linux/autoconf.h
-#opt/MACHINE-uClibc/usr/include/linux/awe_voice.h
-#opt/MACHINE-uClibc/usr/include/linux/ax25.h
-#opt/MACHINE-uClibc/usr/include/linux/b1lli.h
-#opt/MACHINE-uClibc/usr/include/linux/backing-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/backlight.h
-#opt/MACHINE-uClibc/usr/include/linux/baycom.h
-#opt/MACHINE-uClibc/usr/include/linux/bcd.h
-#opt/MACHINE-uClibc/usr/include/linux/bfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/binfmts.h
-#opt/MACHINE-uClibc/usr/include/linux/bitmap.h
-#opt/MACHINE-uClibc/usr/include/linux/bitops.h
-#opt/MACHINE-uClibc/usr/include/linux/blkpg.h
-#opt/MACHINE-uClibc/usr/include/linux/blockgroup_lock.h
-#opt/MACHINE-uClibc/usr/include/linux/bootmem.h
-#opt/MACHINE-uClibc/usr/include/linux/bpqether.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/big_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/generic.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/little_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/pdp_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/swab.h
-#opt/MACHINE-uClibc/usr/include/linux/byteorder/swabb.h
-#opt/MACHINE-uClibc/usr/include/linux/cache.h
-#opt/MACHINE-uClibc/usr/include/linux/capability.h
-#opt/MACHINE-uClibc/usr/include/linux/capi.h
-#opt/MACHINE-uClibc/usr/include/linux/cciss_ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/cd1400.h
-#opt/MACHINE-uClibc/usr/include/linux/cdk.h
-#opt/MACHINE-uClibc/usr/include/linux/cdrom.h
-#opt/MACHINE-uClibc/usr/include/linux/circ_buf.h
-#opt/MACHINE-uClibc/usr/include/linux/cobalt-nvram.h
-#opt/MACHINE-uClibc/usr/include/linux/coda.h
-#opt/MACHINE-uClibc/usr/include/linux/coda_proc.h
-#opt/MACHINE-uClibc/usr/include/linux/coda_psdev.h
-#opt/MACHINE-uClibc/usr/include/linux/coff.h
-#opt/MACHINE-uClibc/usr/include/linux/com20020.h
-#opt/MACHINE-uClibc/usr/include/linux/compat.h
-#opt/MACHINE-uClibc/usr/include/linux/compat_ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/compiler.h
-#opt/MACHINE-uClibc/usr/include/linux/comstats.h
-#opt/MACHINE-uClibc/usr/include/linux/config.h
-#opt/MACHINE-uClibc/usr/include/linux/console.h
-#opt/MACHINE-uClibc/usr/include/linux/console_struct.h
-#opt/MACHINE-uClibc/usr/include/linux/consolemap.h
-#opt/MACHINE-uClibc/usr/include/linux/cpu.h
-#opt/MACHINE-uClibc/usr/include/linux/cpufreq.h
-#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/cramfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/crc32.h
-#opt/MACHINE-uClibc/usr/include/linux/crypto.h
-#opt/MACHINE-uClibc/usr/include/linux/ctype.h
-#opt/MACHINE-uClibc/usr/include/linux/cuda.h
-#opt/MACHINE-uClibc/usr/include/linux/cyclades.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_cfm.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_drv.h
-#opt/MACHINE-uClibc/usr/include/linux/cycx_x25.h
-#opt/MACHINE-uClibc/usr/include/linux/devfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/devfs_fs_kernel.h
-#opt/MACHINE-uClibc/usr/include/linux/device-mapper.h
-#opt/MACHINE-uClibc/usr/include/linux/device.h
-#opt/MACHINE-uClibc/usr/include/linux/devpts_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/dirent.h
-#opt/MACHINE-uClibc/usr/include/linux/divert.h
-#opt/MACHINE-uClibc/usr/include/linux/dm-ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/dn.h
-#opt/MACHINE-uClibc/usr/include/linux/dnotify.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_v1.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_v2.h
-#opt/MACHINE-uClibc/usr/include/linux/dqblk_xfs.h
-#opt/MACHINE-uClibc/usr/include/linux/dtlk.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb
-#opt/MACHINE-uClibc/usr/include/linux/dvb/audio.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/ca.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/dmx.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/frontend.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/net.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/osd.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/version.h
-#opt/MACHINE-uClibc/usr/include/linux/dvb/video.h
-#opt/MACHINE-uClibc/usr/include/linux/eeprom.h
-#opt/MACHINE-uClibc/usr/include/linux/efi.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_dir.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/efs_vh.h
-#opt/MACHINE-uClibc/usr/include/linux/eisa.h
-#opt/MACHINE-uClibc/usr/include/linux/elevator.h
-#opt/MACHINE-uClibc/usr/include/linux/elf-fdpic.h
-#opt/MACHINE-uClibc/usr/include/linux/elf.h
-#opt/MACHINE-uClibc/usr/include/linux/elfcore.h
-#opt/MACHINE-uClibc/usr/include/linux/err.h
-#opt/MACHINE-uClibc/usr/include/linux/err_kernel_only.h
-#opt/MACHINE-uClibc/usr/include/linux/errno.h
-#opt/MACHINE-uClibc/usr/include/linux/errqueue.h
-#opt/MACHINE-uClibc/usr/include/linux/ethtool.h
-#opt/MACHINE-uClibc/usr/include/linux/eventpoll.h
-#opt/MACHINE-uClibc/usr/include/linux/ext2_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ext3_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ext3_jbd.h
-#opt/MACHINE-uClibc/usr/include/linux/fadvise.h
-#opt/MACHINE-uClibc/usr/include/linux/fb.h
-#opt/MACHINE-uClibc/usr/include/linux/fcntl.h
-#opt/MACHINE-uClibc/usr/include/linux/fd.h
-#opt/MACHINE-uClibc/usr/include/linux/fd1772.h
-#opt/MACHINE-uClibc/usr/include/linux/fdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/file.h
-#opt/MACHINE-uClibc/usr/include/linux/filter.h
-#opt/MACHINE-uClibc/usr/include/linux/firmware.h
-#opt/MACHINE-uClibc/usr/include/linux/flat.h
-#opt/MACHINE-uClibc/usr/include/linux/font.h
-#opt/MACHINE-uClibc/usr/include/linux/fs.h
-#opt/MACHINE-uClibc/usr/include/linux/fs_struct.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape-header-segment.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape-vendors.h
-#opt/MACHINE-uClibc/usr/include/linux/ftape.h
-#opt/MACHINE-uClibc/usr/include/linux/futex.h
-#opt/MACHINE-uClibc/usr/include/linux/gameport.h
-#opt/MACHINE-uClibc/usr/include/linux/gen_stats.h
-#opt/MACHINE-uClibc/usr/include/linux/generic_serial.h
-#opt/MACHINE-uClibc/usr/include/linux/genhd.h
-#opt/MACHINE-uClibc/usr/include/linux/gfp.h
-#opt/MACHINE-uClibc/usr/include/linux/hash.h
-#opt/MACHINE-uClibc/usr/include/linux/hayesesp.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlc
-#opt/MACHINE-uClibc/usr/include/linux/hdlc.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlc/ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/hdlcdrv.h
-#opt/MACHINE-uClibc/usr/include/linux/hdreg.h
-#opt/MACHINE-uClibc/usr/include/linux/hdsmart.h
-#opt/MACHINE-uClibc/usr/include/linux/hiddev.h
-#opt/MACHINE-uClibc/usr/include/linux/highuid.h
-#opt/MACHINE-uClibc/usr/include/linux/hpfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/hysdn_if.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-bit.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-ite.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-pcf.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sgi.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-algo-sibyte.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-id.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-sensor.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c-vid.h
-#opt/MACHINE-uClibc/usr/include/linux/i2c.h
-#opt/MACHINE-uClibc/usr/include/linux/i2o-dev.h
-#opt/MACHINE-uClibc/usr/include/linux/i8k.h
-#opt/MACHINE-uClibc/usr/include/linux/ibmtr.h
-#opt/MACHINE-uClibc/usr/include/linux/icmp.h
-#opt/MACHINE-uClibc/usr/include/linux/icmpv6.h
-#opt/MACHINE-uClibc/usr/include/linux/ide.h
-#opt/MACHINE-uClibc/usr/include/linux/idr.h
-#opt/MACHINE-uClibc/usr/include/linux/if.h
-#opt/MACHINE-uClibc/usr/include/linux/if_arcnet.h
-#opt/MACHINE-uClibc/usr/include/linux/if_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/if_bonding.h
-#opt/MACHINE-uClibc/usr/include/linux/if_bridge.h
-#opt/MACHINE-uClibc/usr/include/linux/if_cablemodem.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ec.h
-#opt/MACHINE-uClibc/usr/include/linux/if_eql.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ether.h
-#opt/MACHINE-uClibc/usr/include/linux/if_fc.h
-#opt/MACHINE-uClibc/usr/include/linux/if_fddi.h
-#opt/MACHINE-uClibc/usr/include/linux/if_frad.h
-#opt/MACHINE-uClibc/usr/include/linux/if_hippi.h
-#opt/MACHINE-uClibc/usr/include/linux/if_infiniband.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ltalk.h
-#opt/MACHINE-uClibc/usr/include/linux/if_packet.h
-#opt/MACHINE-uClibc/usr/include/linux/if_plip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/if_pppox.h
-#opt/MACHINE-uClibc/usr/include/linux/if_shaper.h
-#opt/MACHINE-uClibc/usr/include/linux/if_slip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_strip.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tr.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tun.h
-#opt/MACHINE-uClibc/usr/include/linux/if_tunnel.h
-#opt/MACHINE-uClibc/usr/include/linux/if_vlan.h
-#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe.h
-#opt/MACHINE-uClibc/usr/include/linux/if_wanpipe_common.h
-#opt/MACHINE-uClibc/usr/include/linux/igmp.h
-#opt/MACHINE-uClibc/usr/include/linux/in.h
-#opt/MACHINE-uClibc/usr/include/linux/in6.h
-#opt/MACHINE-uClibc/usr/include/linux/in_route.h
-#opt/MACHINE-uClibc/usr/include/linux/inetdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/init.h
-#opt/MACHINE-uClibc/usr/include/linux/init_task.h
-#opt/MACHINE-uClibc/usr/include/linux/initrd.h
-#opt/MACHINE-uClibc/usr/include/linux/inotify.h
-#opt/MACHINE-uClibc/usr/include/linux/input.h
-#opt/MACHINE-uClibc/usr/include/linux/interrupt.h
-#opt/MACHINE-uClibc/usr/include/linux/ioctl.h
-#opt/MACHINE-uClibc/usr/include/linux/ioctl32.h
-#opt/MACHINE-uClibc/usr/include/linux/ioport.h
-#opt/MACHINE-uClibc/usr/include/linux/ip.h
-#opt/MACHINE-uClibc/usr/include/linux/ip6_tunnel.h
-#opt/MACHINE-uClibc/usr/include/linux/ip_mp_alg.h
-#opt/MACHINE-uClibc/usr/include/linux/ipc.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi_msgdefs.h
-#opt/MACHINE-uClibc/usr/include/linux/ipmi_smi.h
-#opt/MACHINE-uClibc/usr/include/linux/ipsec.h
-#opt/MACHINE-uClibc/usr/include/linux/ipv6.h
-#opt/MACHINE-uClibc/usr/include/linux/ipv6_route.h
-#opt/MACHINE-uClibc/usr/include/linux/ipx.h
-#opt/MACHINE-uClibc/usr/include/linux/irda.h
-#opt/MACHINE-uClibc/usr/include/linux/irq.h
-#opt/MACHINE-uClibc/usr/include/linux/irq_cpustat.h
-#opt/MACHINE-uClibc/usr/include/linux/isapnp.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn
-#opt/MACHINE-uClibc/usr/include/linux/isdn.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capicmd.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capilli.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/capiutil.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn/tpam.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn_divertif.h
-#opt/MACHINE-uClibc/usr/include/linux/isdn_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/isdnif.h
-#opt/MACHINE-uClibc/usr/include/linux/isicom.h
-#opt/MACHINE-uClibc/usr/include/linux/iso_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/istallion.h
-#opt/MACHINE-uClibc/usr/include/linux/ite_gpio.h
-#opt/MACHINE-uClibc/usr/include/linux/ixjuser.h
-#opt/MACHINE-uClibc/usr/include/linux/jbd.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs2.h
-#opt/MACHINE-uClibc/usr/include/linux/jffs2_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/jhash.h
-#opt/MACHINE-uClibc/usr/include/linux/jiffies.h
-#opt/MACHINE-uClibc/usr/include/linux/journal-head.h
-#opt/MACHINE-uClibc/usr/include/linux/joystick.h
-#opt/MACHINE-uClibc/usr/include/linux/kallsyms.h
-#opt/MACHINE-uClibc/usr/include/linux/kbd_diacr.h
-#opt/MACHINE-uClibc/usr/include/linux/kbd_kern.h
-#opt/MACHINE-uClibc/usr/include/linux/kd.h
-#opt/MACHINE-uClibc/usr/include/linux/kdev_t.h
-#opt/MACHINE-uClibc/usr/include/linux/kernel.h
-#opt/MACHINE-uClibc/usr/include/linux/kernel_stat.h
-#opt/MACHINE-uClibc/usr/include/linux/kernelcapi.h
-#opt/MACHINE-uClibc/usr/include/linux/keyboard.h
-#opt/MACHINE-uClibc/usr/include/linux/keyctl.h
-#opt/MACHINE-uClibc/usr/include/linux/kmalloc_sizes.h
-#opt/MACHINE-uClibc/usr/include/linux/kmod.h
-#opt/MACHINE-uClibc/usr/include/linux/kprobes.h
-#opt/MACHINE-uClibc/usr/include/linux/lapb.h
-#opt/MACHINE-uClibc/usr/include/linux/lcd.h
-#opt/MACHINE-uClibc/usr/include/linux/libata.h
-#opt/MACHINE-uClibc/usr/include/linux/libps2.h
-#opt/MACHINE-uClibc/usr/include/linux/limits.h
-#opt/MACHINE-uClibc/usr/include/linux/linkage.h
-#opt/MACHINE-uClibc/usr/include/linux/linux_logo.h
-#opt/MACHINE-uClibc/usr/include/linux/list.h
-#opt/MACHINE-uClibc/usr/include/linux/llc.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd
-#opt/MACHINE-uClibc/usr/include/linux/lockd/bind.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/nlm.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/share.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/sm_inter.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/lockd/xdr4.h
-#opt/MACHINE-uClibc/usr/include/linux/loop.h
-#opt/MACHINE-uClibc/usr/include/linux/lp.h
-#opt/MACHINE-uClibc/usr/include/linux/major.h
-#opt/MACHINE-uClibc/usr/include/linux/matroxfb.h
-#opt/MACHINE-uClibc/usr/include/linux/mbcache.h
-#opt/MACHINE-uClibc/usr/include/linux/mc6821.h
-#opt/MACHINE-uClibc/usr/include/linux/mca-legacy.h
-#opt/MACHINE-uClibc/usr/include/linux/mca.h
-#opt/MACHINE-uClibc/usr/include/linux/mempool.h
-#opt/MACHINE-uClibc/usr/include/linux/meye.h
-#opt/MACHINE-uClibc/usr/include/linux/mii.h
-#opt/MACHINE-uClibc/usr/include/linux/minix_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/miscdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/mm.h
-#opt/MACHINE-uClibc/usr/include/linux/mm_inline.h
-#opt/MACHINE-uClibc/usr/include/linux/mman.h
-#opt/MACHINE-uClibc/usr/include/linux/mod_devicetable.h
-#opt/MACHINE-uClibc/usr/include/linux/module.h
-#opt/MACHINE-uClibc/usr/include/linux/moduleloader.h
-#opt/MACHINE-uClibc/usr/include/linux/moduleparam.h
-#opt/MACHINE-uClibc/usr/include/linux/mount.h
-#opt/MACHINE-uClibc/usr/include/linux/mroute.h
-#opt/MACHINE-uClibc/usr/include/linux/msdos_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/msg.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd
-#opt/MACHINE-uClibc/usr/include/linux/mtd/blktrans.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/cfi_endian.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/compatmac.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/concat.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/doc2000.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/flashchip.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/ftl.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/gen_probe.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/iflash.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/jedec.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/map.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nand.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nand_ecc.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/nftl.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/partitions.h
-#opt/MACHINE-uClibc/usr/include/linux/mtd/pmc551.h
-#opt/MACHINE-uClibc/usr/include/linux/mtio.h
-#opt/MACHINE-uClibc/usr/include/linux/n_r3964.h
-#opt/MACHINE-uClibc/usr/include/linux/namei.h
-#opt/MACHINE-uClibc/usr/include/linux/nbd.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/ncp_no.h
-#opt/MACHINE-uClibc/usr/include/linux/net.h
-#opt/MACHINE-uClibc/usr/include/linux/netdevice.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arp_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_arp/arpt_mangle.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_802_3.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_among.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_arpreply.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ip.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_log.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_m.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_mark_t.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_nat.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_pkttype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_redirect.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_stp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_ulog.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebt_vlan.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_bridge/ebtables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_decnet.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_core.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_nat_rule.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_queue.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ip_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_DSCP.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ECN.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_LOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_MARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_REJECT.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_SAME.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_TOS.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ULOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_addrtype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ah.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_comment.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_connmark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_conntrack.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_dscp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ecn.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_esp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_helper.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_iprange.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_length.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mac.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_mark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_multiport.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_owner.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_physdev.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_pkttype.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_realm.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_recent.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_state.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_tos.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/ipt_ttl.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/listhelp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv4/lockhelp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6_tables.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_LOG.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_MARK.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ah.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_esp.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_frag.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_hl.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_length.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_limit.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mac.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_mark.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_multiport.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_opts.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_owner.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_physdev.h
-#opt/MACHINE-uClibc/usr/include/linux/netfilter_ipv6/ip6t_rt.h
-#opt/MACHINE-uClibc/usr/include/linux/netlink.h
-#opt/MACHINE-uClibc/usr/include/linux/netrom.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs2.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs3.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs4.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs4_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_idmap.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/nfs_xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/const.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/export.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/interface.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsd.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/nfsfh.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/state.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/stats.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/syscall.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr3.h
-#opt/MACHINE-uClibc/usr/include/linux/nfsd/xdr4.h
-#opt/MACHINE-uClibc/usr/include/linux/nls.h
-#opt/MACHINE-uClibc/usr/include/linux/nmi.h
-#opt/MACHINE-uClibc/usr/include/linux/node.h
-#opt/MACHINE-uClibc/usr/include/linux/notifier.h
-#opt/MACHINE-uClibc/usr/include/linux/nubus.h
-#opt/MACHINE-uClibc/usr/include/linux/numa.h
-#opt/MACHINE-uClibc/usr/include/linux/nvram.h
-#opt/MACHINE-uClibc/usr/include/linux/openprom_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/oprofile.h
-#opt/MACHINE-uClibc/usr/include/linux/pagemap.h
-#opt/MACHINE-uClibc/usr/include/linux/pagevec.h
-#opt/MACHINE-uClibc/usr/include/linux/param.h
-#opt/MACHINE-uClibc/usr/include/linux/parport.h
-#opt/MACHINE-uClibc/usr/include/linux/parport_pc.h
-#opt/MACHINE-uClibc/usr/include/linux/parser.h
-#opt/MACHINE-uClibc/usr/include/linux/patchkey.h
-#opt/MACHINE-uClibc/usr/include/linux/pci-dynids.h
-#opt/MACHINE-uClibc/usr/include/linux/pci.h
-#opt/MACHINE-uClibc/usr/include/linux/pci_ids.h
-#opt/MACHINE-uClibc/usr/include/linux/pcieport_if.h
-#opt/MACHINE-uClibc/usr/include/linux/percpu.h
-#opt/MACHINE-uClibc/usr/include/linux/percpu_counter.h
-#opt/MACHINE-uClibc/usr/include/linux/personality.h
-#opt/MACHINE-uClibc/usr/include/linux/pfkeyv2.h
-#opt/MACHINE-uClibc/usr/include/linux/pg.h
-#opt/MACHINE-uClibc/usr/include/linux/pipe_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/pkt_cls.h
-#opt/MACHINE-uClibc/usr/include/linux/pkt_sched.h
-#opt/MACHINE-uClibc/usr/include/linux/pktcdvd.h
-#opt/MACHINE-uClibc/usr/include/linux/pmu.h
-#opt/MACHINE-uClibc/usr/include/linux/poll.h
-#opt/MACHINE-uClibc/usr/include/linux/posix-timers.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_acl_xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/posix_types.h
-#opt/MACHINE-uClibc/usr/include/linux/ppdev.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp-comp.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp_channel.h
-#opt/MACHINE-uClibc/usr/include/linux/ppp_defs.h
-#opt/MACHINE-uClibc/usr/include/linux/prctl.h
-#opt/MACHINE-uClibc/usr/include/linux/preempt.h
-#opt/MACHINE-uClibc/usr/include/linux/prefetch.h
-#opt/MACHINE-uClibc/usr/include/linux/proc_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/ps2esdi.h
-#opt/MACHINE-uClibc/usr/include/linux/ptrace.h
-#opt/MACHINE-uClibc/usr/include/linux/qic117.h
-#opt/MACHINE-uClibc/usr/include/linux/qnx4_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/qnxtypes.h
-#opt/MACHINE-uClibc/usr/include/linux/quota.h
-#opt/MACHINE-uClibc/usr/include/linux/quotaio_v1.h
-#opt/MACHINE-uClibc/usr/include/linux/quotaio_v2.h
-#opt/MACHINE-uClibc/usr/include/linux/radeonfb.h
-#opt/MACHINE-uClibc/usr/include/linux/raid
-#opt/MACHINE-uClibc/usr/include/linux/raid/linear.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md_p.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/md_u.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/multipath.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid0.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid1.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/raid5.h
-#opt/MACHINE-uClibc/usr/include/linux/raid/xor.h
-#opt/MACHINE-uClibc/usr/include/linux/random.h
-#opt/MACHINE-uClibc/usr/include/linux/raw.h
-#opt/MACHINE-uClibc/usr/include/linux/rbtree.h
-#opt/MACHINE-uClibc/usr/include/linux/reboot.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/reiserfs_xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/resource.h
-#opt/MACHINE-uClibc/usr/include/linux/romfs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/root_dev.h
-#opt/MACHINE-uClibc/usr/include/linux/rose.h
-#opt/MACHINE-uClibc/usr/include/linux/route.h
-#opt/MACHINE-uClibc/usr/include/linux/rtc.h
-#opt/MACHINE-uClibc/usr/include/linux/rtnetlink.h
-#opt/MACHINE-uClibc/usr/include/linux/sc26198.h
-#opt/MACHINE-uClibc/usr/include/linux/scc.h
-#opt/MACHINE-uClibc/usr/include/linux/sched.h
-#opt/MACHINE-uClibc/usr/include/linux/sctp.h
-#opt/MACHINE-uClibc/usr/include/linux/scx200.h
-#opt/MACHINE-uClibc/usr/include/linux/scx200_gpio.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_asy.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_chdlc.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_fr.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_ppp.h
-#opt/MACHINE-uClibc/usr/include/linux/sdla_x25.h
-#opt/MACHINE-uClibc/usr/include/linux/sdladrv.h
-#opt/MACHINE-uClibc/usr/include/linux/sdlapci.h
-#opt/MACHINE-uClibc/usr/include/linux/sdlasfm.h
-#opt/MACHINE-uClibc/usr/include/linux/securebits.h
-#opt/MACHINE-uClibc/usr/include/linux/security.h
-#opt/MACHINE-uClibc/usr/include/linux/selection.h
-#opt/MACHINE-uClibc/usr/include/linux/selinux_netlink.h
-#opt/MACHINE-uClibc/usr/include/linux/sem.h
-#opt/MACHINE-uClibc/usr/include/linux/seqlock.h
-#opt/MACHINE-uClibc/usr/include/linux/serial.h
-#opt/MACHINE-uClibc/usr/include/linux/serial167.h
-#opt/MACHINE-uClibc/usr/include/linux/serialP.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_8250.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_core.h
-#opt/MACHINE-uClibc/usr/include/linux/serial_reg.h
-#opt/MACHINE-uClibc/usr/include/linux/serio.h
-#opt/MACHINE-uClibc/usr/include/linux/shm.h
-#opt/MACHINE-uClibc/usr/include/linux/siginfo.h
-#opt/MACHINE-uClibc/usr/include/linux/signal.h
-#opt/MACHINE-uClibc/usr/include/linux/skbuff.h
-#opt/MACHINE-uClibc/usr/include/linux/smb.h
-#opt/MACHINE-uClibc/usr/include/linux/smb_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/smb_mount.h
-#opt/MACHINE-uClibc/usr/include/linux/smbno.h
-#opt/MACHINE-uClibc/usr/include/linux/smp_lock.h
-#opt/MACHINE-uClibc/usr/include/linux/snmp.h
-#opt/MACHINE-uClibc/usr/include/linux/socket.h
-#opt/MACHINE-uClibc/usr/include/linux/sockios.h
-#opt/MACHINE-uClibc/usr/include/linux/som.h
-#opt/MACHINE-uClibc/usr/include/linux/sonet.h
-#opt/MACHINE-uClibc/usr/include/linux/sonypi.h
-#opt/MACHINE-uClibc/usr/include/linux/sound.h
-#opt/MACHINE-uClibc/usr/include/linux/soundcard.h
-#opt/MACHINE-uClibc/usr/include/linux/spinlock.h
-#opt/MACHINE-uClibc/usr/include/linux/stallion.h
-#opt/MACHINE-uClibc/usr/include/linux/stddef.h
-#opt/MACHINE-uClibc/usr/include/linux/stringify.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/cache.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/clnt.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/debug.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_asn1.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_krb5.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/gss_spkm3.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/sched.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/stats.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svc.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/svcsock.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/timer.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/types.h
-#opt/MACHINE-uClibc/usr/include/linux/sunrpc/xprt.h
-#opt/MACHINE-uClibc/usr/include/linux/superhyway.h
-#opt/MACHINE-uClibc/usr/include/linux/suspend.h
-#opt/MACHINE-uClibc/usr/include/linux/swap.h
-#opt/MACHINE-uClibc/usr/include/linux/swapops.h
-#opt/MACHINE-uClibc/usr/include/linux/synclink.h
-#opt/MACHINE-uClibc/usr/include/linux/sys.h
-#opt/MACHINE-uClibc/usr/include/linux/syscalls.h
-#opt/MACHINE-uClibc/usr/include/linux/sysctl.h
-#opt/MACHINE-uClibc/usr/include/linux/sysdev.h
-#opt/MACHINE-uClibc/usr/include/linux/sysfs.h
-#opt/MACHINE-uClibc/usr/include/linux/sysrq.h
-#opt/MACHINE-uClibc/usr/include/linux/sysv_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_defact.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_gact.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_ipt.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_mirred.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_act/tc_pedit.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_cmp.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_meta.h
-#opt/MACHINE-uClibc/usr/include/linux/tc_ematch/tc_em_nbyte.h
-#opt/MACHINE-uClibc/usr/include/linux/tcp.h
-#opt/MACHINE-uClibc/usr/include/linux/tcp_diag.h
-#opt/MACHINE-uClibc/usr/include/linux/telephony.h
-#opt/MACHINE-uClibc/usr/include/linux/termios.h
-#opt/MACHINE-uClibc/usr/include/linux/threads.h
-#opt/MACHINE-uClibc/usr/include/linux/ticable.h
-#opt/MACHINE-uClibc/usr/include/linux/time.h
-#opt/MACHINE-uClibc/usr/include/linux/times.h
-#opt/MACHINE-uClibc/usr/include/linux/timex.h
-#opt/MACHINE-uClibc/usr/include/linux/tiocl.h
-#opt/MACHINE-uClibc/usr/include/linux/toshiba.h
-#opt/MACHINE-uClibc/usr/include/linux/tty.h
-#opt/MACHINE-uClibc/usr/include/linux/types.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs_i.h
-#opt/MACHINE-uClibc/usr/include/linux/udf_fs_sb.h
-#opt/MACHINE-uClibc/usr/include/linux/udp.h
-#opt/MACHINE-uClibc/usr/include/linux/ufs_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/uinput.h
-#opt/MACHINE-uClibc/usr/include/linux/uio.h
-#opt/MACHINE-uClibc/usr/include/linux/ultrasound.h
-#opt/MACHINE-uClibc/usr/include/linux/umem.h
-#opt/MACHINE-uClibc/usr/include/linux/un.h
-#opt/MACHINE-uClibc/usr/include/linux/unistd.h
-#opt/MACHINE-uClibc/usr/include/linux/usb.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_cdc.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_ch9.h
-#opt/MACHINE-uClibc/usr/include/linux/usb_gadgetfs.h
-#opt/MACHINE-uClibc/usr/include/linux/usbdevice_fs.h
-#opt/MACHINE-uClibc/usr/include/linux/user.h
-#opt/MACHINE-uClibc/usr/include/linux/utime.h
-#opt/MACHINE-uClibc/usr/include/linux/uts.h
-#opt/MACHINE-uClibc/usr/include/linux/utsname.h
-#opt/MACHINE-uClibc/usr/include/linux/version.h
-#opt/MACHINE-uClibc/usr/include/linux/video_decoder.h
-#opt/MACHINE-uClibc/usr/include/linux/video_encoder.h
-#opt/MACHINE-uClibc/usr/include/linux/videodev.h
-#opt/MACHINE-uClibc/usr/include/linux/videodev2.h
-#opt/MACHINE-uClibc/usr/include/linux/videotext.h
-#opt/MACHINE-uClibc/usr/include/linux/vmalloc.h
-#opt/MACHINE-uClibc/usr/include/linux/vt.h
-#opt/MACHINE-uClibc/usr/include/linux/vt_buffer.h
-#opt/MACHINE-uClibc/usr/include/linux/vt_kern.h
-#opt/MACHINE-uClibc/usr/include/linux/wait.h
-#opt/MACHINE-uClibc/usr/include/linux/wanpipe.h
-#opt/MACHINE-uClibc/usr/include/linux/wanrouter.h
-#opt/MACHINE-uClibc/usr/include/linux/watchdog.h
-#opt/MACHINE-uClibc/usr/include/linux/wavefront.h
-#opt/MACHINE-uClibc/usr/include/linux/wireless.h
-#opt/MACHINE-uClibc/usr/include/linux/workqueue.h
-#opt/MACHINE-uClibc/usr/include/linux/x25.h
-#opt/MACHINE-uClibc/usr/include/linux/xattr.h
-#opt/MACHINE-uClibc/usr/include/linux/xattr_acl.h
-#opt/MACHINE-uClibc/usr/include/linux/xfrm.h
-#opt/MACHINE-uClibc/usr/include/linux/yam.h
-#opt/MACHINE-uClibc/usr/include/linux/zftape.h
-#opt/MACHINE-uClibc/usr/include/linux/zorro.h
-#opt/MACHINE-uClibc/usr/include/linux/zorro_ids.h
+#usr/include/mtd
+#usr/include/mtd/inftl-user.h
+#usr/include/mtd/mtd-abi.h
+#usr/include/mtd/mtd-user.h
+#usr/include/mtd/nftl-user.h
+#usr/include/mtd/ubi-user.h
+#usr/include/rdma
+#usr/include/rdma/ib_user_mad.h
+#usr/include/scsi
+#usr/include/scsi/scsi.h
+#usr/include/scsi/scsi_bsg_fc.h
+#usr/include/scsi/scsi_netlink.h
+#usr/include/scsi/scsi_netlink_fc.h
+#usr/include/sound
+#usr/include/sound/asequencer.h
+#usr/include/sound/asound.h
+#usr/include/sound/asound_fm.h
+#usr/include/sound/emu10k1.h
+#usr/include/sound/hdsp.h
+#usr/include/sound/hdspm.h
+#usr/include/sound/sb16_csp.h
+#usr/include/sound/sfnt_info.h
+#usr/include/sound/sscape_ioctl.h
+#usr/include/video
+#usr/include/video/edid.h
+#usr/include/video/sisfb.h
+#usr/include/video/uvesafb.h
+#usr/include/xen
+#usr/include/xen/evtchn.h
index 29544b6eeb589aa44b43aa704d06d94b81d8df0c..231e27da8b8e028eac2fe8d538b0757c64b5b22b 100644 (file)
@@ -1,3 +1,2 @@
-#usr/local/man/man8
-#usr/local/man/man8/install-mbr.8
-#usr/local/sbin/install-mbr
+#usr/sbin/install-mbr
+#usr/share/man/man8/install-mbr.8
index 3c0b398d3aaf3270193dae2d9299103c12f14bb1..2d6b2e2cb4b863b7799ba978d068c94378f90da3 100644 (file)
@@ -7,7 +7,6 @@ usr/local/bin/extrahdctrl
 usr/local/bin/fireinfoctrl
 usr/local/bin/getconntracktable
 usr/local/bin/getipstat
-usr/local/bin/getiptstate
 #usr/local/bin/iowrap
 usr/local/bin/ipfirereboot
 usr/local/bin/ipsecctrl
diff --git a/config/rootfiles/common/mpfr b/config/rootfiles/common/mpfr
new file mode 100644 (file)
index 0000000..e4f3337
--- /dev/null
@@ -0,0 +1,21 @@
+#usr/include/mpf2mpfr.h
+#usr/include/mpfr.h
+#usr/lib/libmpfr.a
+#usr/lib/libmpfr.la
+#usr/lib/libmpfr.so
+usr/lib/libmpfr.so.1
+usr/lib/libmpfr.so.1.2.2
+#usr/share/doc/mpfr
+#usr/share/doc/mpfr/AUTHORS
+#usr/share/doc/mpfr/BUGS
+#usr/share/doc/mpfr/COPYING
+#usr/share/doc/mpfr/COPYING.LIB
+#usr/share/doc/mpfr/FAQ.html
+#usr/share/doc/mpfr/NEWS
+#usr/share/doc/mpfr/TODO
+#usr/share/doc/mpfr/examples
+#usr/share/doc/mpfr/examples/ReadMe
+#usr/share/doc/mpfr/examples/divworst.c
+#usr/share/doc/mpfr/examples/rndo-add.c
+#usr/share/doc/mpfr/examples/sample.c
+#usr/share/info/mpfr.info
index ed892d6d00d8d03e4eba1794ebd9a8e6b8669cd8..122dc823a61a48cac2c89ba242260e4b82b93416 100644 (file)
@@ -1,11 +1,11 @@
-lib/libncursesw.so.5
-lib/libncursesw.so.5.5
 #usr/bin/captoinfo
 usr/bin/clear
 #usr/bin/infocmp
 #usr/bin/infotocap
-#usr/bin/reset
-#usr/bin/tack
+#usr/bin/ncurses5-config
+#usr/bin/ncursesw5-config
+usr/bin/reset
+#usr/bin/tabs
 #usr/bin/tic
 #usr/bin/toe
 usr/bin/tput
@@ -21,64 +21,106 @@ usr/bin/tput
 #usr/include/etip.h
 #usr/include/form.h
 #usr/include/menu.h
+#usr/include/nc_tparm.h
 #usr/include/ncurses.h
 #usr/include/ncurses_dll.h
 #usr/include/panel.h
 #usr/include/term.h
+#usr/include/term_entry.h
 #usr/include/termcap.h
+#usr/include/tic.h
 #usr/include/unctrl.h
 #usr/lib/libcurses.a
 #usr/lib/libcurses.so
-#usr/lib/libcursesw.a
 #usr/lib/libcursesw.so
 #usr/lib/libform.a
-usr/lib/libform.so
+#usr/lib/libform.so
+usr/lib/libform.so.5
+usr/lib/libform.so.5.9
 #usr/lib/libformw.a
-usr/lib/libformw.so
+#usr/lib/libformw.so
 usr/lib/libformw.so.5
-usr/lib/libformw.so.5.5
+usr/lib/libformw.so.5.9
 #usr/lib/libmenu.a
 #usr/lib/libmenu.so
+usr/lib/libmenu.so.5
+usr/lib/libmenu.so.5.9
 #usr/lib/libmenuw.a
-usr/lib/libmenuw.so
+#usr/lib/libmenuw.so
 usr/lib/libmenuw.so.5
-usr/lib/libmenuw.so.5.5
-#usr/lib/libncurses++.a4
+usr/lib/libmenuw.so.5.9
+#usr/lib/libncurses++.a
 #usr/lib/libncurses++w.a
 #usr/lib/libncurses.a
-usr/lib/libncurses.so
+#usr/lib/libncurses.so
+usr/lib/libncurses.so.5
+usr/lib/libncurses.so.5.9
 #usr/lib/libncursesw.a
 #usr/lib/libncursesw.so
-#usr/lib/libncursesw.so.5.5
+usr/lib/libncursesw.so.5
+usr/lib/libncursesw.so.5.9
 #usr/lib/libpanel.a
-usr/lib/libpanel.so
+#usr/lib/libpanel.so
+usr/lib/libpanel.so.5
+usr/lib/libpanel.so.5.9
 #usr/lib/libpanelw.a
-usr/lib/libpanelw.so
+#usr/lib/libpanelw.so
 usr/lib/libpanelw.so.5
-usr/lib/libpanelw.so.5.5
+usr/lib/libpanelw.so.5.9
+#usr/lib/libtermcap.so
+#usr/lib/libtic.a
+#usr/lib/libtic.so
+usr/lib/libtic.so.5
+usr/lib/libtic.so.5.9
+#usr/lib/libtinfo.a
+#usr/lib/libtinfo.so
+usr/lib/libtinfo.so.5
+usr/lib/libtinfo.so.5.9
 #usr/lib/terminfo
 #usr/man/man1/captoinfo.1m
 #usr/man/man1/clear.1
 #usr/man/man1/infocmp.1m
 #usr/man/man1/infotocap.1m
+#usr/man/man1/ncursesw5-config.1
 #usr/man/man1/reset.1
-#usr/man/man1/tack.1
+#usr/man/man1/tabs.1
 #usr/man/man1/tic.1m
 #usr/man/man1/toe.1m
 #usr/man/man1/tput.1
 #usr/man/man1/tset.1
-#usr/man/man3
+#usr/man/man3/BC.3x
+#usr/man/man3/COLORS.3x
 #usr/man/man3/COLOR_PAIR.3x
+#usr/man/man3/COLOR_PAIRS.3x
+#usr/man/man3/COLS.3x
+#usr/man/man3/ESCDELAY.3x
+#usr/man/man3/LINES.3x
 #usr/man/man3/PAIR_NUMBER.3x
+#usr/man/man3/PC.3x
+#usr/man/man3/SP.3x
+#usr/man/man3/TABSIZE.3x
+#usr/man/man3/TYPE_ALNUM.3x
+#usr/man/man3/TYPE_ALPHA.3x
+#usr/man/man3/TYPE_ENUM.3x
+#usr/man/man3/TYPE_INTEGER.3x
+#usr/man/man3/TYPE_IPV4.3x
+#usr/man/man3/TYPE_NUMERIC.3x
+#usr/man/man3/TYPE_REGEXP.3x
+#usr/man/man3/UP.3x
+#usr/man/man3/_nc_free_and_exit.3x
+#usr/man/man3/_nc_freeall.3x
 #usr/man/man3/_nc_tracebits.3x
 #usr/man/man3/_traceattr.3x
 #usr/man/man3/_traceattr2.3x
+#usr/man/man3/_tracecchar_t.3x
+#usr/man/man3/_tracecchar_t2.3x
 #usr/man/man3/_tracechar.3x
 #usr/man/man3/_tracechtype.3x
 #usr/man/man3/_tracechtype2.3x
 #usr/man/man3/_tracedump.3x
 #usr/man/man3/_tracef.3x
 #usr/man/man3/_tracemouse.3x
+#usr/man/man3/acs_map.3x
 #usr/man/man3/add_wch.3x
 #usr/man/man3/add_wchnstr.3x
 #usr/man/man3/add_wchstr.3x
@@ -90,6 +132,7 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/addstr.3x
 #usr/man/man3/addwstr.3x
 #usr/man/man3/assume_default_colors.3x
+#usr/man/man3/assume_default_colors_sp.3x
 #usr/man/man3/attr_get.3x
 #usr/man/man3/attr_off.3x
 #usr/man/man3/attr_on.3x
@@ -98,26 +141,36 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/attron.3x
 #usr/man/man3/attrset.3x
 #usr/man/man3/baudrate.3x
+#usr/man/man3/baudrate_sp.3x
 #usr/man/man3/beep.3x
+#usr/man/man3/beep_sp.3x
 #usr/man/man3/bkgd.3x
 #usr/man/man3/bkgdset.3x
 #usr/man/man3/bkgrnd.3x
 #usr/man/man3/bkgrndset.3x
+#usr/man/man3/boolcodes.3x
+#usr/man/man3/boolfnames.3x
+#usr/man/man3/boolnames.3x
 #usr/man/man3/border.3x
 #usr/man/man3/border_set.3x
 #usr/man/man3/bottom_panel.3x
 #usr/man/man3/box.3x
 #usr/man/man3/box_set.3x
 #usr/man/man3/can_change_color.3x
+#usr/man/man3/can_change_color_sp.3x
 #usr/man/man3/cbreak.3x
+#usr/man/man3/cbreak_sp.3x
+#usr/man/man3/ceiling_panel.3x
 #usr/man/man3/chgat.3x
 #usr/man/man3/clear.3x
 #usr/man/man3/clearok.3x
 #usr/man/man3/clrtobot.3x
 #usr/man/man3/clrtoeol.3x
 #usr/man/man3/color_content.3x
+#usr/man/man3/color_content_sp.3x
 #usr/man/man3/color_set.3x
 #usr/man/man3/copywin.3x
+#usr/man/man3/cur_term.3x
 #usr/man/man3/current_field.3x
 #usr/man/man3/current_item.3x
 #usr/man/man3/curs_add_wch.3x
@@ -156,8 +209,11 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/curs_instr.3x
 #usr/man/man3/curs_inwstr.3x
 #usr/man/man3/curs_kernel.3x
+#usr/man/man3/curs_legacy.3x
+#usr/man/man3/curs_memleaks.3x
 #usr/man/man3/curs_mouse.3x
 #usr/man/man3/curs_move.3x
+#usr/man/man3/curs_opaque.3x
 #usr/man/man3/curs_outopts.3x
 #usr/man/man3/curs_overlay.3x
 #usr/man/man3/curs_pad.3x
@@ -168,39 +224,53 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/curs_scr_dump.3x
 #usr/man/man3/curs_scroll.3x
 #usr/man/man3/curs_set.3x
+#usr/man/man3/curs_set_sp.3x
 #usr/man/man3/curs_slk.3x
+#usr/man/man3/curs_sp_funcs.3x
 #usr/man/man3/curs_termattrs.3x
 #usr/man/man3/curs_termcap.3x
 #usr/man/man3/curs_terminfo.3x
+#usr/man/man3/curs_threads.3x
 #usr/man/man3/curs_touch.3x
 #usr/man/man3/curs_trace.3x
 #usr/man/man3/curs_util.3x
+#usr/man/man3/curs_variables.3x
 #usr/man/man3/curs_window.3x
+#usr/man/man3/curscr.3x
 #usr/man/man3/curses_version.3x
 #usr/man/man3/data_ahead.3x
 #usr/man/man3/data_behind.3x
 #usr/man/man3/def_prog_mode.3x
+#usr/man/man3/def_prog_mode_sp.3x
 #usr/man/man3/def_shell_mode.3x
+#usr/man/man3/def_shell_mode_sp.3x
 #usr/man/man3/default_colors.3x
 #usr/man/man3/define_key.3x
+#usr/man/man3/define_key_sp.3x
 #usr/man/man3/del_curterm.3x
+#usr/man/man3/del_curterm_sp.3x
 #usr/man/man3/del_panel.3x
 #usr/man/man3/delay_output.3x
+#usr/man/man3/delay_output_sp.3x
 #usr/man/man3/delch.3x
 #usr/man/man3/deleteln.3x
 #usr/man/man3/delscreen.3x
 #usr/man/man3/delwin.3x
 #usr/man/man3/derwin.3x
 #usr/man/man3/doupdate.3x
+#usr/man/man3/doupdate_sp.3x
 #usr/man/man3/dup_field.3x
 #usr/man/man3/dupwin.3x
 #usr/man/man3/dynamic_field_info.3x
 #usr/man/man3/echo.3x
+#usr/man/man3/echo_sp.3x
 #usr/man/man3/echo_wchar.3x
 #usr/man/man3/echochar.3x
 #usr/man/man3/endwin.3x
+#usr/man/man3/endwin_sp.3x
 #usr/man/man3/erase.3x
 #usr/man/man3/erasechar.3x
+#usr/man/man3/erasechar_sp.3x
 #usr/man/man3/erasewchar.3x
 #usr/man/man3/field_arg.3x
 #usr/man/man3/field_back.3x
@@ -220,8 +290,11 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/field_type.3x
 #usr/man/man3/field_userptr.3x
 #usr/man/man3/filter.3x
+#usr/man/man3/filter_sp.3x
 #usr/man/man3/flash.3x
+#usr/man/man3/flash_sp.3x
 #usr/man/man3/flushinp.3x
+#usr/man/man3/flushinp_sp.3x
 #usr/man/man3/form.3x
 #usr/man/man3/form_cursor.3x
 #usr/man/man3/form_data.3x
@@ -252,33 +325,55 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/form_sub.3x
 #usr/man/man3/form_term.3x
 #usr/man/man3/form_userptr.3x
+#usr/man/man3/form_variables.3x
 #usr/man/man3/form_win.3x
 #usr/man/man3/free_field.3x
 #usr/man/man3/free_fieldtype.3x
 #usr/man/man3/free_form.3x
 #usr/man/man3/free_item.3x
 #usr/man/man3/free_menu.3x
+#usr/man/man3/get_escdelay.3x
+#usr/man/man3/get_escdelay_sp.3x
 #usr/man/man3/get_wch.3x
 #usr/man/man3/get_wstr.3x
+#usr/man/man3/getattrs.3x
+#usr/man/man3/getbegx.3x
+#usr/man/man3/getbegy.3x
 #usr/man/man3/getbegyx.3x
 #usr/man/man3/getbkgd.3x
 #usr/man/man3/getbkgrnd.3x
 #usr/man/man3/getcchar.3x
 #usr/man/man3/getch.3x
+#usr/man/man3/getcurx.3x
+#usr/man/man3/getcury.3x
+#usr/man/man3/getmaxx.3x
+#usr/man/man3/getmaxy.3x
 #usr/man/man3/getmaxyx.3x
 #usr/man/man3/getmouse.3x
+#usr/man/man3/getmouse_sp.3x
 #usr/man/man3/getn_wstr.3x
 #usr/man/man3/getnstr.3x
+#usr/man/man3/getparx.3x
+#usr/man/man3/getpary.3x
 #usr/man/man3/getparyx.3x
 #usr/man/man3/getstr.3x
 #usr/man/man3/getsyx.3x
 #usr/man/man3/getwin.3x
+#usr/man/man3/getwin_sp.3x
 #usr/man/man3/getyx.3x
+#usr/man/man3/ground_panel.3x
 #usr/man/man3/halfdelay.3x
+#usr/man/man3/halfdelay_sp.3x
 #usr/man/man3/has_colors.3x
+#usr/man/man3/has_colors_sp.3x
 #usr/man/man3/has_ic.3x
+#usr/man/man3/has_ic_sp.3x
 #usr/man/man3/has_il.3x
+#usr/man/man3/has_il_sp.3x
 #usr/man/man3/has_key.3x
+#usr/man/man3/has_key_sp.3x
+#usr/man/man3/has_mouse.3x
+#usr/man/man3/has_mouse_sp.3x
 #usr/man/man3/hide_panel.3x
 #usr/man/man3/hline.3x
 #usr/man/man3/hline_set.3x
@@ -292,7 +387,9 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/inchnstr.3x
 #usr/man/man3/inchstr.3x
 #usr/man/man3/init_color.3x
+#usr/man/man3/init_color_sp.3x
 #usr/man/man3/init_pair.3x
+#usr/man/man3/init_pair_sp.3x
 #usr/man/man3/initscr.3x
 #usr/man/man3/innstr.3x
 #usr/man/man3/innwstr.3x
@@ -306,11 +403,26 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/insstr.3x
 #usr/man/man3/instr.3x
 #usr/man/man3/intrflush.3x
+#usr/man/man3/intrflush_sp.3x
 #usr/man/man3/inwstr.3x
+#usr/man/man3/is_cleared.3x
+#usr/man/man3/is_idcok.3x
+#usr/man/man3/is_idlok.3x
+#usr/man/man3/is_immedok.3x
+#usr/man/man3/is_keypad.3x
+#usr/man/man3/is_leaveok.3x
 #usr/man/man3/is_linetouched.3x
+#usr/man/man3/is_nodelay.3x
+#usr/man/man3/is_notimeout.3x
+#usr/man/man3/is_pad.3x
+#usr/man/man3/is_scrollok.3x
+#usr/man/man3/is_subwin.3x
+#usr/man/man3/is_syncok.3x
 #usr/man/man3/is_term_resized.3x
+#usr/man/man3/is_term_resized_sp.3x
 #usr/man/man3/is_wintouched.3x
 #usr/man/man3/isendwin.3x
+#usr/man/man3/isendwin_sp.3x
 #usr/man/man3/item_count.3x
 #usr/man/man3/item_description.3x
 #usr/man/man3/item_index.3x
@@ -324,18 +436,25 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/item_value.3x
 #usr/man/man3/item_visible.3x
 #usr/man/man3/key_defined.3x
+#usr/man/man3/key_defined_sp.3x
 #usr/man/man3/key_name.3x
 #usr/man/man3/keybound.3x
+#usr/man/man3/keybound_sp.3x
 #usr/man/man3/keyname.3x
+#usr/man/man3/keyname_sp.3x
 #usr/man/man3/keyok.3x
+#usr/man/man3/keyok_sp.3x
 #usr/man/man3/keypad.3x
 #usr/man/man3/killchar.3x
+#usr/man/man3/killchar_sp.3x
 #usr/man/man3/killwchar.3x
 #usr/man/man3/leaveok.3x
+#usr/man/man3/legacy_coding.3x
 #usr/man/man3/link_field.3x
 #usr/man/man3/link_fieldtype.3x
 #usr/man/man3/longname.3x
 #usr/man/man3/mcprint.3x
+#usr/man/man3/mcprint_sp.3x
 #usr/man/man3/menu.3x
 #usr/man/man3/menu_attributes.3x
 #usr/man/man3/menu_back.3x
@@ -373,7 +492,9 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mitem_visible.3x
 #usr/man/man3/mouse_trafo.3x
 #usr/man/man3/mouseinterval.3x
+#usr/man/man3/mouseinterval_sp.3x
 #usr/man/man3/mousemask.3x
+#usr/man/man3/mousemask_sp.3x
 #usr/man/man3/move.3x
 #usr/man/man3/move_field.3x
 #usr/man/man3/move_panel.3x
@@ -389,6 +510,7 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mvaddwstr.3x
 #usr/man/man3/mvchgat.3x
 #usr/man/man3/mvcur.3x
+#usr/man/man3/mvcur_sp.3x
 #usr/man/man3/mvdelch.3x
 #usr/man/man3/mvderwin.3x
 #usr/man/man3/mvget_wch.3x
@@ -461,28 +583,49 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/mvwvline.3x
 #usr/man/man3/mvwvline_set.3x
 #usr/man/man3/napms.3x
+#usr/man/man3/napms_sp.3x
 #usr/man/man3/ncurses.3x
 #usr/man/man3/new_field.3x
 #usr/man/man3/new_fieldtype.3x
 #usr/man/man3/new_form.3x
+#usr/man/man3/new_form_sp.3x
 #usr/man/man3/new_item.3x
 #usr/man/man3/new_menu.3x
+#usr/man/man3/new_menu_sp.3x
 #usr/man/man3/new_page.3x
 #usr/man/man3/new_panel.3x
+#usr/man/man3/new_prescr.3x
 #usr/man/man3/newpad.3x
+#usr/man/man3/newpad_sp.3x
+#usr/man/man3/newscr.3x
 #usr/man/man3/newterm.3x
+#usr/man/man3/newterm_sp.3x
 #usr/man/man3/newwin.3x
+#usr/man/man3/newwin_sp.3x
 #usr/man/man3/nl.3x
+#usr/man/man3/nl_sp.3x
 #usr/man/man3/nocbreak.3x
+#usr/man/man3/nocbreak_sp.3x
 #usr/man/man3/nodelay.3x
 #usr/man/man3/noecho.3x
+#usr/man/man3/noecho_sp.3x
+#usr/man/man3/nofilter.3x
+#usr/man/man3/nofilter_sp.3x
 #usr/man/man3/nonl.3x
+#usr/man/man3/nonl_sp.3x
 #usr/man/man3/noqiflush.3x
+#usr/man/man3/noqiflush_sp.3x
 #usr/man/man3/noraw.3x
+#usr/man/man3/noraw_sp.3x
 #usr/man/man3/notimeout.3x
+#usr/man/man3/numcodes.3x
+#usr/man/man3/numfnames.3x
+#usr/man/man3/numnames.3x
+#usr/man/man3/ospeed.3x
 #usr/man/man3/overlay.3x
 #usr/man/man3/overwrite.3x
 #usr/man/man3/pair_content.3x
+#usr/man/man3/pair_content_sp.3x
 #usr/man/man3/panel.3x
 #usr/man/man3/panel_above.3x
 #usr/man/man3/panel_below.3x
@@ -499,33 +642,50 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/prefresh.3x
 #usr/man/man3/printw.3x
 #usr/man/man3/putp.3x
+#usr/man/man3/putp_sp.3x
 #usr/man/man3/putwin.3x
 #usr/man/man3/qiflush.3x
+#usr/man/man3/qiflush_sp.3x
 #usr/man/man3/raw.3x
+#usr/man/man3/raw_sp.3x
 #usr/man/man3/redrawwin.3x
 #usr/man/man3/refresh.3x
 #usr/man/man3/replace_panel.3x
 #usr/man/man3/reset_prog_mode.3x
+#usr/man/man3/reset_prog_mode_sp.3x
 #usr/man/man3/reset_shell_mode.3x
+#usr/man/man3/reset_shell_mode_sp.3x
 #usr/man/man3/resetty.3x
+#usr/man/man3/resetty_sp.3x
 #usr/man/man3/resize_term.3x
+#usr/man/man3/resize_term_sp.3x
 #usr/man/man3/resizeterm.3x
+#usr/man/man3/resizeterm_sp.3x
 #usr/man/man3/restartterm.3x
+#usr/man/man3/restartterm_sp.3x
 #usr/man/man3/ripoffline.3x
+#usr/man/man3/ripoffline_sp.3x
 #usr/man/man3/savetty.3x
+#usr/man/man3/savetty_sp.3x
 #usr/man/man3/scale_form.3x
 #usr/man/man3/scale_menu.3x
 #usr/man/man3/scanw.3x
 #usr/man/man3/scr_dump.3x
 #usr/man/man3/scr_init.3x
+#usr/man/man3/scr_init_sp.3x
 #usr/man/man3/scr_restore.3x
+#usr/man/man3/scr_restore_sp.3x
 #usr/man/man3/scr_set.3x
+#usr/man/man3/scr_set_sp.3x
 #usr/man/man3/scrl.3x
 #usr/man/man3/scroll.3x
 #usr/man/man3/scrollok.3x
 #usr/man/man3/set_current_field.3x
 #usr/man/man3/set_current_item.3x
 #usr/man/man3/set_curterm.3x
+#usr/man/man3/set_curterm_sp.3x
+#usr/man/man3/set_escdelay.3x
+#usr/man/man3/set_escdelay_sp.3x
 #usr/man/man3/set_field_back.3x
 #usr/man/man3/set_field_buffer.3x
 #usr/man/man3/set_field_fore.3x
@@ -570,6 +730,8 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/set_menu_win.3x
 #usr/man/man3/set_new_page.3x
 #usr/man/man3/set_panel_userptr.3x
+#usr/man/man3/set_tabsize.3x
+#usr/man/man3/set_tabsize_sp.3x
 #usr/man/man3/set_term.3x
 #usr/man/man3/set_top_row.3x
 #usr/man/man3/setcchar.3x
@@ -582,59 +744,109 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/slk_attr_off.3x
 #usr/man/man3/slk_attr_on.3x
 #usr/man/man3/slk_attr_set.3x
+#usr/man/man3/slk_attr_set_sp.3x
+#usr/man/man3/slk_attr_sp.3x
 #usr/man/man3/slk_attroff.3x
+#usr/man/man3/slk_attroff_sp.3x
 #usr/man/man3/slk_attron.3x
+#usr/man/man3/slk_attron_sp.3x
 #usr/man/man3/slk_attrset.3x
+#usr/man/man3/slk_attrset_sp.3x
 #usr/man/man3/slk_clear.3x
+#usr/man/man3/slk_clear_sp.3x
 #usr/man/man3/slk_color.3x
+#usr/man/man3/slk_color_sp.3x
 #usr/man/man3/slk_init.3x
+#usr/man/man3/slk_init_sp.3x
 #usr/man/man3/slk_label.3x
+#usr/man/man3/slk_label_sp.3x
 #usr/man/man3/slk_noutrefresh.3x
+#usr/man/man3/slk_noutrefresh_sp.3x
 #usr/man/man3/slk_refresh.3x
+#usr/man/man3/slk_refresh_sp.3x
 #usr/man/man3/slk_restore.3x
+#usr/man/man3/slk_restore_sp.3x
 #usr/man/man3/slk_set.3x
+#usr/man/man3/slk_set_sp.3x
 #usr/man/man3/slk_touch.3x
+#usr/man/man3/slk_touch_sp.3x
+#usr/man/man3/slk_wset.3x
 #usr/man/man3/standend.3x
 #usr/man/man3/standout.3x
 #usr/man/man3/start_color.3x
+#usr/man/man3/start_color_sp.3x
+#usr/man/man3/stdscr.3x
+#usr/man/man3/strcodes.3x
+#usr/man/man3/strfnames.3x
+#usr/man/man3/strnames.3x
 #usr/man/man3/subpad.3x
 #usr/man/man3/subwin.3x
 #usr/man/man3/syncok.3x
 #usr/man/man3/term_attrs.3x
+#usr/man/man3/term_attrs_sp.3x
+#usr/man/man3/term_variables.3x
 #usr/man/man3/termattrs.3x
+#usr/man/man3/termattrs_sp.3x
 #usr/man/man3/termname.3x
+#usr/man/man3/termname_sp.3x
 #usr/man/man3/tgetent.3x
+#usr/man/man3/tgetent_sp.3x
 #usr/man/man3/tgetflag.3x
+#usr/man/man3/tgetflag_sp.3x
 #usr/man/man3/tgetnum.3x
+#usr/man/man3/tgetnum_sp.3x
 #usr/man/man3/tgetstr.3x
+#usr/man/man3/tgetstr_sp.3x
 #usr/man/man3/tgoto.3x
 #usr/man/man3/tigetflag.3x
+#usr/man/man3/tigetflag_sp.3x
 #usr/man/man3/tigetnum.3x
+#usr/man/man3/tigetnum_sp.3x
 #usr/man/man3/tigetstr.3x
+#usr/man/man3/tigetstr_sp.3x
 #usr/man/man3/timeout.3x
+#usr/man/man3/tiparm.3x
 #usr/man/man3/top_panel.3x
 #usr/man/man3/top_row.3x
 #usr/man/man3/touchline.3x
 #usr/man/man3/touchwin.3x
 #usr/man/man3/tparm.3x
 #usr/man/man3/tputs.3x
+#usr/man/man3/tputs_sp.3x
 #usr/man/man3/trace.3x
+#usr/man/man3/ttytype.3x
 #usr/man/man3/typeahead.3x
+#usr/man/man3/typeahead_sp.3x
 #usr/man/man3/unctrl.3x
+#usr/man/man3/unctrl_sp.3x
 #usr/man/man3/unget_wch.3x
+#usr/man/man3/unget_wch_sp.3x
 #usr/man/man3/ungetch.3x
+#usr/man/man3/ungetch_sp.3x
 #usr/man/man3/ungetmouse.3x
+#usr/man/man3/ungetmouse_sp.3x
 #usr/man/man3/unpost_form.3x
 #usr/man/man3/unpost_menu.3x
 #usr/man/man3/untouchwin.3x
 #usr/man/man3/update_panels.3x
+#usr/man/man3/update_panels_sp.3x
 #usr/man/man3/use_default_colors.3x
+#usr/man/man3/use_default_colors_sp.3x
 #usr/man/man3/use_env.3x
+#usr/man/man3/use_env_sp.3x
 #usr/man/man3/use_extended_names.3x
+#usr/man/man3/use_legacy_coding.3x
+#usr/man/man3/use_legacy_coding_sp.3x
+#usr/man/man3/use_screen.3x
+#usr/man/man3/use_window.3x
 #usr/man/man3/vid_attr.3x
+#usr/man/man3/vid_attr_sp.3x
 #usr/man/man3/vid_puts.3x
+#usr/man/man3/vid_puts_sp.3x
 #usr/man/man3/vidattr.3x
+#usr/man/man3/vidattr_sp.3x
 #usr/man/man3/vidputs.3x
+#usr/man/man3/vidputs_sp.3x
 #usr/man/man3/vline.3x
 #usr/man/man3/vline_set.3x
 #usr/man/man3/vw_printw.3x
@@ -682,6 +894,8 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/wgetch.3x
 #usr/man/man3/wgetn_wstr.3x
 #usr/man/man3/wgetnstr.3x
+#usr/man/man3/wgetparent.3x
+#usr/man/man3/wgetscrreg.3x
 #usr/man/man3/wgetstr.3x
 #usr/man/man3/whline.3x
 #usr/man/man3/whline_set.3x
@@ -720,9 +934,9 @@ usr/lib/libpanelw.so.5.5
 #usr/man/man3/wtimeout.3x
 #usr/man/man3/wtouchln.3x
 #usr/man/man3/wunctrl.3x
+#usr/man/man3/wunctrl_sp.3x
 #usr/man/man3/wvline.3x
 #usr/man/man3/wvline_set.3x
-#usr/man/man5
 #usr/man/man5/term.5
 #usr/man/man5/terminfo.5
 #usr/man/man7/term.7
@@ -770,10 +984,13 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/9
 #usr/share/terminfo/9/955-hb
 #usr/share/terminfo/9/955-w
+#usr/share/terminfo/9/9term
 #usr/share/terminfo/A
 #usr/share/terminfo/A/Apple_Terminal
 #usr/share/terminfo/E
 #usr/share/terminfo/E/Eterm
+#usr/share/terminfo/E/Eterm-256color
+#usr/share/terminfo/E/Eterm-88color
 #usr/share/terminfo/E/Eterm-color
 #usr/share/terminfo/L
 #usr/share/terminfo/L/LFT-PC850
@@ -941,6 +1158,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/a/ansi+arrows
 #usr/share/terminfo/a/ansi+csr
 #usr/share/terminfo/a/ansi+cup
+#usr/share/terminfo/a/ansi+enq
 #usr/share/terminfo/a/ansi+erase
 #usr/share/terminfo/a/ansi+idc
 #usr/share/terminfo/a/ansi+idl
@@ -1015,8 +1233,18 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/a/arm100-am
 #usr/share/terminfo/a/arm100-w
 #usr/share/terminfo/a/arm100-wam
+#usr/share/terminfo/a/at
+#usr/share/terminfo/a/at-color
+#usr/share/terminfo/a/at-m
 #usr/share/terminfo/a/at386
 #usr/share/terminfo/a/atari
+#usr/share/terminfo/a/atari-color
+#usr/share/terminfo/a/atari-m
+#usr/share/terminfo/a/atari-old
+#usr/share/terminfo/a/atari_st
+#usr/share/terminfo/a/atari_st-color
+#usr/share/terminfo/a/atarist-m
+#usr/share/terminfo/a/aterm
 #usr/share/terminfo/a/att2300
 #usr/share/terminfo/a/att2350
 #usr/share/terminfo/a/att4410
@@ -1171,6 +1399,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/b/bsdos-pc-nobold
 #usr/share/terminfo/b/bsdos-ppc
 #usr/share/terminfo/b/bsdos-sparc
+#usr/share/terminfo/b/bterm
 #usr/share/terminfo/c
 #usr/share/terminfo/c/c100
 #usr/share/terminfo/c/c100-1p
@@ -1241,6 +1470,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/c/concept108-w8p
 #usr/share/terminfo/c/concept108rv4p
 #usr/share/terminfo/c/cons25
+#usr/share/terminfo/c/cons25-debian
 #usr/share/terminfo/c/cons25-iso-m
 #usr/share/terminfo/c/cons25-iso8859
 #usr/share/terminfo/c/cons25-koi8-r
@@ -1605,6 +1835,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/e/esprit
 #usr/share/terminfo/e/esprit-am
 #usr/share/terminfo/e/eterm
+#usr/share/terminfo/e/eterm-color
 #usr/share/terminfo/e/ex155
 #usr/share/terminfo/e/excel62
 #usr/share/terminfo/e/excel62-rv
@@ -1647,6 +1878,11 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/g/gigi
 #usr/share/terminfo/g/glasstty
 #usr/share/terminfo/g/gnome
+#usr/share/terminfo/g/gnome+pcfkeys
+#usr/share/terminfo/g/gnome-2007
+#usr/share/terminfo/g/gnome-2008
+#usr/share/terminfo/g/gnome-256color
+#usr/share/terminfo/g/gnome-fc5
 #usr/share/terminfo/g/gnome-rh62
 #usr/share/terminfo/g/gnome-rh72
 #usr/share/terminfo/g/gnome-rh80
@@ -1817,6 +2053,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/h/hpgeneric
 #usr/share/terminfo/h/hpsub
 #usr/share/terminfo/h/hpterm
+#usr/share/terminfo/h/hpterm-color
 #usr/share/terminfo/h/htx11
 #usr/share/terminfo/h/hurd
 #usr/share/terminfo/h/hz1000
@@ -1833,6 +2070,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/i/i3101
 #usr/share/terminfo/i/i3164
 #usr/share/terminfo/i/i400
+#usr/share/terminfo/i/iTerm.app
 #usr/share/terminfo/i/ibcs2
 #usr/share/terminfo/i/ibm+16color
 #usr/share/terminfo/i/ibm+color
@@ -1913,6 +2151,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/j/jaixterm
 #usr/share/terminfo/j/jaixterm-m
 #usr/share/terminfo/j/jerq
+#usr/share/terminfo/j/jfbterm
 #usr/share/terminfo/k
 #usr/share/terminfo/k/k45
 #usr/share/terminfo/k/kaypro
@@ -1927,10 +2166,16 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/k/klone+koi8acs
 #usr/share/terminfo/k/klone+sgr
 #usr/share/terminfo/k/klone+sgr-dumb
+#usr/share/terminfo/k/klone+sgr8
+#usr/share/terminfo/k/kon
+#usr/share/terminfo/k/kon2
 #usr/share/terminfo/k/konsole
+#usr/share/terminfo/k/konsole+pcfkeys
 #usr/share/terminfo/k/konsole-16color
+#usr/share/terminfo/k/konsole-256color
 #usr/share/terminfo/k/konsole-base
 #usr/share/terminfo/k/konsole-linux
+#usr/share/terminfo/k/konsole-solaris
 #usr/share/terminfo/k/konsole-vt100
 #usr/share/terminfo/k/konsole-vt420pc
 #usr/share/terminfo/k/konsole-xf3x
@@ -1948,6 +2193,7 @@ usr/lib/libpanelw.so.5.5
 #usr/share/terminfo/l/lft
 #usr/share/terminfo/l/lft-pc850
 usr/share/terminfo/l/linux
+#usr/share/terminfo/l/linux-16color
 usr/share/terminfo/l/linux-basic
 #usr/share/terminfo/l/linux-c
 #usr/share/terminfo/l/linux-c-nc
@@ -1957,6 +2203,7 @@ usr/share/terminfo/l/linux-lat
 usr/share/terminfo/l/linux-m
 usr/share/terminfo/l/linux-nic
 usr/share/terminfo/l/linux-vt
+#usr/share/terminfo/l/linux2.6.26
 #usr/share/terminfo/l/lisa
 #usr/share/terminfo/l/lisaterm
 #usr/share/terminfo/l/lisaterm-w
@@ -1985,6 +2232,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/mgr
 #usr/share/terminfo/m/mgr-linux
 #usr/share/terminfo/m/mgr-sun
+#usr/share/terminfo/m/mgt
 #usr/share/terminfo/m/mgterm
 #usr/share/terminfo/m/microb
 #usr/share/terminfo/m/microbee
@@ -2012,9 +2260,13 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/minitel1b
 #usr/share/terminfo/m/minitel1b-80
 #usr/share/terminfo/m/minix
+#usr/share/terminfo/m/minix-1.5
+#usr/share/terminfo/m/minix-1.7
 #usr/share/terminfo/m/minix-old
 #usr/share/terminfo/m/minix-old-am
 #usr/share/terminfo/m/mlterm
+#usr/share/terminfo/m/mlterm+pcfkeys
+#usr/share/terminfo/m/mlterm-256color
 #usr/share/terminfo/m/mm314
 #usr/share/terminfo/m/mm340
 #usr/share/terminfo/m/mod
@@ -2025,6 +2277,8 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/m/mono-emx
 #usr/share/terminfo/m/morphos
 #usr/share/terminfo/m/mouse-sun
+#usr/share/terminfo/m/mrxvt
+#usr/share/terminfo/m/mrxvt-256color
 #usr/share/terminfo/m/ms-vt-utf8
 #usr/share/terminfo/m/ms-vt100
 #usr/share/terminfo/m/ms-vt100+
@@ -2104,6 +2358,15 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/ncsa-ns
 #usr/share/terminfo/n/ncsa-vt220
 #usr/share/terminfo/n/ncsa-vt220-8
+#usr/share/terminfo/n/nd9500
+#usr/share/terminfo/n/ndr9500
+#usr/share/terminfo/n/ndr9500-25
+#usr/share/terminfo/n/ndr9500-25-mc
+#usr/share/terminfo/n/ndr9500-25-mc-nl
+#usr/share/terminfo/n/ndr9500-25-nl
+#usr/share/terminfo/n/ndr9500-mc
+#usr/share/terminfo/n/ndr9500-mc-nl
+#usr/share/terminfo/n/ndr9500-nl
 #usr/share/terminfo/n/nec
 #usr/share/terminfo/n/nec5520
 #usr/share/terminfo/n/newhp
@@ -2147,6 +2410,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/nsterm+c41
 #usr/share/terminfo/n/nsterm+mac
 #usr/share/terminfo/n/nsterm+s
+#usr/share/terminfo/n/nsterm-16color
 #usr/share/terminfo/n/nsterm-7
 #usr/share/terminfo/n/nsterm-7-c
 #usr/share/terminfo/n/nsterm-7-c-s
@@ -2159,6 +2423,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/nsterm-acs-m
 #usr/share/terminfo/n/nsterm-acs-m-s
 #usr/share/terminfo/n/nsterm-acs-s
+#usr/share/terminfo/n/nsterm-bce
 #usr/share/terminfo/n/nsterm-c
 #usr/share/terminfo/n/nsterm-c-7
 #usr/share/terminfo/n/nsterm-c-acs
@@ -2171,6 +2436,7 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/n/nsterm-m-s
 #usr/share/terminfo/n/nsterm-m-s-7
 #usr/share/terminfo/n/nsterm-m-s-acs
+#usr/share/terminfo/n/nsterm-old
 #usr/share/terminfo/n/nsterm-s
 #usr/share/terminfo/n/nsterm-s-7
 #usr/share/terminfo/n/nsterm-s-acs
@@ -2382,6 +2648,8 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/p/pt505-24
 #usr/share/terminfo/p/pty
 #usr/share/terminfo/p/putty
+#usr/share/terminfo/p/putty-256color
+#usr/share/terminfo/p/putty-vt100
 #usr/share/terminfo/q
 #usr/share/terminfo/q/qansi
 #usr/share/terminfo/q/qansi-g
@@ -2446,6 +2714,8 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/r/rxvt
 #usr/share/terminfo/r/rxvt+pcfkeys
 #usr/share/terminfo/r/rxvt-16color
+#usr/share/terminfo/r/rxvt-256color
+#usr/share/terminfo/r/rxvt-88color
 #usr/share/terminfo/r/rxvt-basic
 #usr/share/terminfo/r/rxvt-color
 #usr/share/terminfo/r/rxvt-cygwin
@@ -2465,11 +2735,35 @@ usr/share/terminfo/l/linux-vt
 #usr/share/terminfo/s/scoansi-new
 #usr/share/terminfo/s/scoansi-old
 usr/share/terminfo/s/screen
+#usr/share/terminfo/s/screen+fkeys
+#usr/share/terminfo/s/screen-16color
+#usr/share/terminfo/s/screen-16color-bce
+#usr/share/terminfo/s/screen-16color-bce-s
+#usr/share/terminfo/s/screen-16color-s
+#usr/share/terminfo/s/screen-256color
+#usr/share/terminfo/s/screen-256color-bce
+#usr/share/terminfo/s/screen-256color-bce-s
+#usr/share/terminfo/s/screen-256color-s
 usr/share/terminfo/s/screen-bce
+#usr/share/terminfo/s/screen-bce.Eterm
+#usr/share/terminfo/s/screen-bce.gnome
+#usr/share/terminfo/s/screen-bce.konsole
+#usr/share/terminfo/s/screen-bce.linux
+#usr/share/terminfo/s/screen-bce.mlterm
+#usr/share/terminfo/s/screen-bce.mrxvt
+#usr/share/terminfo/s/screen-bce.rxvt
+#usr/share/terminfo/s/screen-bce.xterm-new
 usr/share/terminfo/s/screen-s
 usr/share/terminfo/s/screen-w
+#usr/share/terminfo/s/screen.Eterm
+#usr/share/terminfo/s/screen.gnome
+#usr/share/terminfo/s/screen.konsole
 usr/share/terminfo/s/screen.linux
+#usr/share/terminfo/s/screen.mlterm
+#usr/share/terminfo/s/screen.mrxvt
+#usr/share/terminfo/s/screen.rxvt
 usr/share/terminfo/s/screen.teraterm
+#usr/share/terminfo/s/screen.vte
 usr/share/terminfo/s/screen.xterm-new
 usr/share/terminfo/s/screen.xterm-r6
 usr/share/terminfo/s/screen.xterm-xfree86
@@ -2484,6 +2778,11 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/s/soroc140
 #usr/share/terminfo/s/spinwriter
 #usr/share/terminfo/s/st52
+#usr/share/terminfo/s/st52-color
+#usr/share/terminfo/s/st52-m
+#usr/share/terminfo/s/st52-old
+#usr/share/terminfo/s/stv52
+#usr/share/terminfo/s/stv52pc
 #usr/share/terminfo/s/sun
 #usr/share/terminfo/s/sun-1
 #usr/share/terminfo/s/sun-12
@@ -2573,6 +2872,8 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/teleray
 #usr/share/terminfo/t/teletec
 #usr/share/terminfo/t/teraterm
+#usr/share/terminfo/t/teraterm2.3
+#usr/share/terminfo/t/teraterm4.59
 #usr/share/terminfo/t/terminet
 #usr/share/terminfo/t/terminet1200
 #usr/share/terminfo/t/terminet300
@@ -2614,6 +2915,7 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/ts1p
 #usr/share/terminfo/t/tt
 #usr/share/terminfo/t/tt505-22
+#usr/share/terminfo/t/tt52
 #usr/share/terminfo/t/tty33
 #usr/share/terminfo/t/tty35
 #usr/share/terminfo/t/tty37
@@ -2751,6 +3053,10 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/t/tvi970-2p
 #usr/share/terminfo/t/tvi970-vb
 #usr/share/terminfo/t/tvipt
+#usr/share/terminfo/t/tw100
+#usr/share/terminfo/t/tw52
+#usr/share/terminfo/t/tw52-color
+#usr/share/terminfo/t/tw52-m
 #usr/share/terminfo/t/tws-generic
 #usr/share/terminfo/t/tws2102-sna
 #usr/share/terminfo/t/tws2103
@@ -2820,6 +3126,7 @@ usr/share/terminfo/s/screen3
 #usr/share/terminfo/v/vt-utf8
 usr/share/terminfo/v/vt100
 usr/share/terminfo/v/vt100+
+#usr/share/terminfo/v/vt100+enq
 usr/share/terminfo/v/vt100+fnkeys
 usr/share/terminfo/v/vt100+keypad
 usr/share/terminfo/v/vt100+pfkeys
@@ -2843,6 +3150,7 @@ usr/share/terminfo/v/vt100-w-nam
 usr/share/terminfo/v/vt100-w-nav
 usr/share/terminfo/v/vt100nam
 usr/share/terminfo/v/vt102
+#usr/share/terminfo/v/vt102+enq
 usr/share/terminfo/v/vt102-nsgr
 usr/share/terminfo/v/vt102-w
 #usr/share/terminfo/v/vt125
@@ -2892,8 +3200,14 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/v/vt525
 #usr/share/terminfo/v/vt61
 #usr/share/terminfo/v/vt61.5
+#usr/share/terminfo/v/vte
+#usr/share/terminfo/v/vte+pcfkeys
+#usr/share/terminfo/v/vte-2007
+#usr/share/terminfo/v/vte-2008
+#usr/share/terminfo/v/vte-256color
 #usr/share/terminfo/v/vtnt
 #usr/share/terminfo/v/vv100
+#usr/share/terminfo/v/vwmterm
 #usr/share/terminfo/w
 #usr/share/terminfo/w/wren
 #usr/share/terminfo/w/wrenw
@@ -3147,6 +3461,8 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/x/xerox-lm
 #usr/share/terminfo/x/xerox1720
 #usr/share/terminfo/x/xerox820
+#usr/share/terminfo/x/xfce
+#usr/share/terminfo/x/xiterm
 #usr/share/terminfo/x/xl83
 #usr/share/terminfo/x/xnuppc
 #usr/share/terminfo/x/xnuppc+100x37
@@ -3199,9 +3515,24 @@ usr/share/terminfo/v/vt200-w
 #usr/share/terminfo/x/xnuppc-m-f2
 #usr/share/terminfo/x/xtalk
 usr/share/terminfo/x/xterm
+#usr/share/terminfo/x/xterm+256color
+#usr/share/terminfo/x/xterm+88color
+#usr/share/terminfo/x/xterm+app
+#usr/share/terminfo/x/xterm+edit
+#usr/share/terminfo/x/xterm+noapp
+#usr/share/terminfo/x/xterm+pc+edit
+#usr/share/terminfo/x/xterm+pcc0
+#usr/share/terminfo/x/xterm+pcc1
+#usr/share/terminfo/x/xterm+pcc2
+#usr/share/terminfo/x/xterm+pcc3
+#usr/share/terminfo/x/xterm+pce2
+#usr/share/terminfo/x/xterm+pcf0
+#usr/share/terminfo/x/xterm+pcf2
 usr/share/terminfo/x/xterm+pcfkeys
+#usr/share/terminfo/x/xterm+r6f2
 usr/share/terminfo/x/xterm+sl
 usr/share/terminfo/x/xterm+sl-twm
+#usr/share/terminfo/x/xterm+vt+edit
 #usr/share/terminfo/x/xterm-1002
 #usr/share/terminfo/x/xterm-1003
 #usr/share/terminfo/x/xterm-16color
@@ -3222,6 +3553,7 @@ usr/share/terminfo/x/xterm-color
 #usr/share/terminfo/x/xterm-r6
 #usr/share/terminfo/x/xterm-sco
 #usr/share/terminfo/x/xterm-sun
+#usr/share/terminfo/x/xterm-utf8
 usr/share/terminfo/x/xterm-vt220
 usr/share/terminfo/x/xterm-vt52
 #usr/share/terminfo/x/xterm-xf86-v32
index bb43588b18ea6cebac854cf24cef13a185f5ef4f..6a72df8b1c060d4194e30ccfa9d8401fb1e1335f 100644 (file)
 #usr/include/slapi-plugin.h
 usr/lib/liblber-2.3.so.0
 usr/lib/liblber-2.3.so.0.2.8
-#usr/lib/liblber.a
 #usr/lib/liblber.la
-usr/lib/liblber.so
+#usr/lib/liblber.so
 usr/lib/libldap-2.3.so.0
 usr/lib/libldap-2.3.so.0.2.8
-#usr/lib/libldap.a
 #usr/lib/libldap.la
-usr/lib/libldap.so
+#usr/lib/libldap.so
 usr/lib/libldap_r-2.3.so.0
 usr/lib/libldap_r-2.3.so.0.2.8
-#usr/lib/libldap_r.a
 #usr/lib/libldap_r.la
-usr/lib/libldap_r.so
+#usr/lib/libldap_r.so
+#usr/lib/openldap
+#usr/lib/openldap/accesslog-2.3.so.0
+#usr/lib/openldap/accesslog-2.3.so.0.2.8
+#usr/lib/openldap/accesslog.la
+#usr/lib/openldap/accesslog.so
+#usr/lib/openldap/back_bdb-2.3.so.0
+#usr/lib/openldap/back_bdb-2.3.so.0.2.8
+#usr/lib/openldap/back_bdb.la
+#usr/lib/openldap/back_bdb.so
+#usr/lib/openldap/back_dnssrv-2.3.so.0
+#usr/lib/openldap/back_dnssrv-2.3.so.0.2.8
+#usr/lib/openldap/back_dnssrv.la
+#usr/lib/openldap/back_dnssrv.so
+#usr/lib/openldap/back_hdb-2.3.so.0
+#usr/lib/openldap/back_hdb-2.3.so.0.2.8
+#usr/lib/openldap/back_hdb.la
+#usr/lib/openldap/back_hdb.so
+#usr/lib/openldap/back_ldap-2.3.so.0
+#usr/lib/openldap/back_ldap-2.3.so.0.2.8
+#usr/lib/openldap/back_ldap.la
+#usr/lib/openldap/back_ldap.so
+#usr/lib/openldap/back_ldbm-2.3.so.0
+#usr/lib/openldap/back_ldbm-2.3.so.0.2.8
+#usr/lib/openldap/back_ldbm.la
+#usr/lib/openldap/back_ldbm.so
+#usr/lib/openldap/back_meta-2.3.so.0
+#usr/lib/openldap/back_meta-2.3.so.0.2.8
+#usr/lib/openldap/back_meta.la
+#usr/lib/openldap/back_meta.so
+#usr/lib/openldap/back_monitor-2.3.so.0
+#usr/lib/openldap/back_monitor-2.3.so.0.2.8
+#usr/lib/openldap/back_monitor.la
+#usr/lib/openldap/back_monitor.so
+#usr/lib/openldap/back_null-2.3.so.0
+#usr/lib/openldap/back_null-2.3.so.0.2.8
+#usr/lib/openldap/back_null.la
+#usr/lib/openldap/back_null.so
+#usr/lib/openldap/back_passwd-2.3.so.0
+#usr/lib/openldap/back_passwd-2.3.so.0.2.8
+#usr/lib/openldap/back_passwd.la
+#usr/lib/openldap/back_passwd.so
+#usr/lib/openldap/back_relay-2.3.so.0
+#usr/lib/openldap/back_relay-2.3.so.0.2.8
+#usr/lib/openldap/back_relay.la
+#usr/lib/openldap/back_relay.so
+#usr/lib/openldap/back_shell-2.3.so.0
+#usr/lib/openldap/back_shell-2.3.so.0.2.8
+#usr/lib/openldap/back_shell.la
+#usr/lib/openldap/back_shell.so
+#usr/lib/openldap/denyop-2.3.so.0
+#usr/lib/openldap/denyop-2.3.so.0.2.8
+#usr/lib/openldap/denyop.la
+#usr/lib/openldap/denyop.so
+#usr/lib/openldap/dyngroup-2.3.so.0
+#usr/lib/openldap/dyngroup-2.3.so.0.2.8
+#usr/lib/openldap/dyngroup.la
+#usr/lib/openldap/dyngroup.so
+#usr/lib/openldap/dynlist-2.3.so.0
+#usr/lib/openldap/dynlist-2.3.so.0.2.8
+#usr/lib/openldap/dynlist.la
+#usr/lib/openldap/dynlist.so
+#usr/lib/openldap/lastmod-2.3.so.0
+#usr/lib/openldap/lastmod-2.3.so.0.2.8
+#usr/lib/openldap/lastmod.la
+#usr/lib/openldap/lastmod.so
+#usr/lib/openldap/pcache-2.3.so.0
+#usr/lib/openldap/pcache-2.3.so.0.2.8
+#usr/lib/openldap/pcache.la
+#usr/lib/openldap/pcache.so
+#usr/lib/openldap/ppolicy-2.3.so.0
+#usr/lib/openldap/ppolicy-2.3.so.0.2.8
+#usr/lib/openldap/ppolicy.la
+#usr/lib/openldap/ppolicy.so
+#usr/lib/openldap/refint-2.3.so.0
+#usr/lib/openldap/refint-2.3.so.0.2.8
+#usr/lib/openldap/refint.la
+#usr/lib/openldap/refint.so
+#usr/lib/openldap/retcode-2.3.so.0
+#usr/lib/openldap/retcode-2.3.so.0.2.8
+#usr/lib/openldap/retcode.la
+#usr/lib/openldap/retcode.so
+#usr/lib/openldap/rwm-2.3.so.0
+#usr/lib/openldap/rwm-2.3.so.0.2.8
+#usr/lib/openldap/rwm.la
+#usr/lib/openldap/rwm.so
+#usr/lib/openldap/syncprov-2.3.so.0
+#usr/lib/openldap/syncprov-2.3.so.0.2.8
+#usr/lib/openldap/syncprov.la
+#usr/lib/openldap/syncprov.so
+#usr/lib/openldap/translucent-2.3.so.0
+#usr/lib/openldap/translucent-2.3.so.0.2.8
+#usr/lib/openldap/translucent.la
+#usr/lib/openldap/translucent.so
+#usr/lib/openldap/unique-2.3.so.0
+#usr/lib/openldap/unique-2.3.so.0.2.8
+#usr/lib/openldap/unique.la
+#usr/lib/openldap/unique.so
+#usr/lib/openldap/valsort-2.3.so.0
+#usr/lib/openldap/valsort-2.3.so.0.2.8
+#usr/lib/openldap/valsort.la
+#usr/lib/openldap/valsort.so
+#usr/lib/slapd
+#usr/lib/slurpd
 #usr/man/man1/ldapadd.1
 #usr/man/man1/ldapcompare.1
 #usr/man/man1/ldapdelete.1
@@ -257,9 +357,7 @@ usr/lib/libldap_r.so
 #usr/sbin/slapadd
 #usr/sbin/slapauth
 #usr/sbin/slapcat
-#usr/sbin/slapd
 #usr/sbin/slapdn
 #usr/sbin/slapindex
 #usr/sbin/slappasswd
 #usr/sbin/slaptest
-#usr/sbin/slurpd
index 02e4c1cdd9509e37590cb8f903262f14b86f7119..bc1ac49f0b86720f71602acacfb0d6292dff825b 100644 (file)
@@ -1116,6 +1116,7 @@ usr/lib/libssl.so.0.9.8
 #usr/share/man/man3/dsa.3
 #usr/share/man/man3/ecdsa.3
 #usr/share/man/man3/engine.3
+#usr/share/man/man3/err.3
 #usr/share/man/man3/evp.3
 #usr/share/man/man3/hmac.3
 #usr/share/man/man3/i2d_ASN1_OBJECT.3
@@ -1163,7 +1164,6 @@ usr/lib/libssl.so.0.9.8
 #usr/share/man/man3/md5.3
 #usr/share/man/man3/mdc2.3
 #usr/share/man/man3/pem.3
-#usr/share/man/man3/rand.3
 #usr/share/man/man3/rc4.3
 #usr/share/man/man3/ripemd.3
 #usr/share/man/man3/rsa.3
index a14302aab8b4b59500b34709187cd8eb89c8b864..3335a544abaaefe3e785947fedf655aefebbd449 100644 (file)
@@ -11,7 +11,9 @@ etc/security
 #etc/security/group.conf
 #etc/security/limits.conf
 #etc/security/limits.d
+#etc/security/namespace.conf
 #etc/security/namespace.d
+#etc/security/namespace.init
 #etc/security/pam_env.conf
 #etc/security/time.conf
 lib/libpam.so.0
@@ -63,6 +65,8 @@ lib/security/pam_mail.so
 #lib/security/pam_mkhomedir.so
 #lib/security/pam_motd.la
 #lib/security/pam_motd.so
+#lib/security/pam_namespace.la
+#lib/security/pam_namespace.so
 #lib/security/pam_nologin.la
 lib/security/pam_nologin.so
 #lib/security/pam_permit.la
@@ -161,6 +165,7 @@ usr/lib/libpamc.so
 #usr/share/man/man5/access.conf.5
 #usr/share/man/man5/group.conf.5
 #usr/share/man/man5/limits.conf.5
+#usr/share/man/man5/namespace.conf.5
 #usr/share/man/man5/pam.conf.5
 #usr/share/man/man5/pam.d.5
 #usr/share/man/man5/pam_env.conf.5
@@ -188,6 +193,7 @@ usr/lib/libpamc.so
 #usr/share/man/man8/pam_mail.8
 #usr/share/man/man8/pam_mkhomedir.8
 #usr/share/man/man8/pam_motd.8
+#usr/share/man/man8/pam_namespace.8
 #usr/share/man/man8/pam_nologin.8
 #usr/share/man/man8/pam_permit.8
 #usr/share/man/man8/pam_rhosts.8
diff --git a/config/rootfiles/common/pango b/config/rootfiles/common/pango
new file mode 100644 (file)
index 0000000..286aa35
--- /dev/null
@@ -0,0 +1,143 @@
+etc/pango
+etc/pango/pango.modules
+usr/bin/pango-querymodules
+usr/bin/pango-view
+#usr/include/pango-1.0
+#usr/include/pango-1.0/pango
+#usr/include/pango-1.0/pango/pango-attributes.h
+#usr/include/pango-1.0/pango/pango-bidi-type.h
+#usr/include/pango-1.0/pango/pango-break.h
+#usr/include/pango-1.0/pango/pango-context.h
+#usr/include/pango-1.0/pango/pango-coverage.h
+#usr/include/pango-1.0/pango/pango-engine.h
+#usr/include/pango-1.0/pango/pango-enum-types.h
+#usr/include/pango-1.0/pango/pango-features.h
+#usr/include/pango-1.0/pango/pango-font.h
+#usr/include/pango-1.0/pango/pango-fontmap.h
+#usr/include/pango-1.0/pango/pango-fontset.h
+#usr/include/pango-1.0/pango/pango-glyph-item.h
+#usr/include/pango-1.0/pango/pango-glyph.h
+#usr/include/pango-1.0/pango/pango-gravity.h
+#usr/include/pango-1.0/pango/pango-item.h
+#usr/include/pango-1.0/pango/pango-language.h
+#usr/include/pango-1.0/pango/pango-layout.h
+#usr/include/pango-1.0/pango/pango-matrix.h
+#usr/include/pango-1.0/pango/pango-modules.h
+#usr/include/pango-1.0/pango/pango-ot.h
+#usr/include/pango-1.0/pango/pango-renderer.h
+#usr/include/pango-1.0/pango/pango-script.h
+#usr/include/pango-1.0/pango/pango-tabs.h
+#usr/include/pango-1.0/pango/pango-types.h
+#usr/include/pango-1.0/pango/pango-utils.h
+#usr/include/pango-1.0/pango/pango.h
+#usr/include/pango-1.0/pango/pangocairo.h
+#usr/include/pango-1.0/pango/pangofc-decoder.h
+#usr/include/pango-1.0/pango/pangofc-font.h
+#usr/include/pango-1.0/pango/pangofc-fontmap.h
+#usr/include/pango-1.0/pango/pangoft2.h
+#usr/lib/libpango-1.0.la
+#usr/lib/libpango-1.0.so
+usr/lib/libpango-1.0.so.0
+usr/lib/libpango-1.0.so.0.3000.1
+#usr/lib/libpangocairo-1.0.la
+#usr/lib/libpangocairo-1.0.so
+usr/lib/libpangocairo-1.0.so.0
+usr/lib/libpangocairo-1.0.so.0.3000.1
+#usr/lib/libpangoft2-1.0.la
+#usr/lib/libpangoft2-1.0.so
+usr/lib/libpangoft2-1.0.so.0
+usr/lib/libpangoft2-1.0.so.0.3000.1
+usr/lib/pango
+usr/lib/pango/1.6.0
+usr/lib/pango/1.6.0/modules
+#usr/lib/pango/1.6.0/modules/pango-arabic-fc.la
+usr/lib/pango/1.6.0/modules/pango-arabic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-arabic-lang.la
+usr/lib/pango/1.6.0/modules/pango-arabic-lang.so
+#usr/lib/pango/1.6.0/modules/pango-basic-fc.la
+usr/lib/pango/1.6.0/modules/pango-basic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-hangul-fc.la
+usr/lib/pango/1.6.0/modules/pango-hangul-fc.so
+#usr/lib/pango/1.6.0/modules/pango-hebrew-fc.la
+usr/lib/pango/1.6.0/modules/pango-hebrew-fc.so
+#usr/lib/pango/1.6.0/modules/pango-indic-fc.la
+usr/lib/pango/1.6.0/modules/pango-indic-fc.so
+#usr/lib/pango/1.6.0/modules/pango-indic-lang.la
+usr/lib/pango/1.6.0/modules/pango-indic-lang.so
+#usr/lib/pango/1.6.0/modules/pango-khmer-fc.la
+usr/lib/pango/1.6.0/modules/pango-khmer-fc.so
+#usr/lib/pango/1.6.0/modules/pango-syriac-fc.la
+usr/lib/pango/1.6.0/modules/pango-syriac-fc.so
+#usr/lib/pango/1.6.0/modules/pango-thai-fc.la
+usr/lib/pango/1.6.0/modules/pango-thai-fc.so
+#usr/lib/pango/1.6.0/modules/pango-tibetan-fc.la
+usr/lib/pango/1.6.0/modules/pango-tibetan-fc.so
+#usr/lib/pkgconfig/pango.pc
+#usr/lib/pkgconfig/pangocairo.pc
+#usr/lib/pkgconfig/pangoft2.pc
+#usr/share/gtk-doc/html/pango
+#usr/share/gtk-doc/html/pango/PangoEngineLang.html
+#usr/share/gtk-doc/html/pango/PangoEngineShape.html
+#usr/share/gtk-doc/html/pango/PangoFcDecoder.html
+#usr/share/gtk-doc/html/pango/PangoFcFont.html
+#usr/share/gtk-doc/html/pango/PangoFcFontMap.html
+#usr/share/gtk-doc/html/pango/PangoMarkupFormat.html
+#usr/share/gtk-doc/html/pango/annotation-glossary.html
+#usr/share/gtk-doc/html/pango/api-index-1-10.html
+#usr/share/gtk-doc/html/pango/api-index-1-12.html
+#usr/share/gtk-doc/html/pango/api-index-1-14.html
+#usr/share/gtk-doc/html/pango/api-index-1-16.html
+#usr/share/gtk-doc/html/pango/api-index-1-18.html
+#usr/share/gtk-doc/html/pango/api-index-1-2.html
+#usr/share/gtk-doc/html/pango/api-index-1-20.html
+#usr/share/gtk-doc/html/pango/api-index-1-22.html
+#usr/share/gtk-doc/html/pango/api-index-1-24.html
+#usr/share/gtk-doc/html/pango/api-index-1-26.html
+#usr/share/gtk-doc/html/pango/api-index-1-28.html
+#usr/share/gtk-doc/html/pango/api-index-1-30.html
+#usr/share/gtk-doc/html/pango/api-index-1-4.html
+#usr/share/gtk-doc/html/pango/api-index-1-6.html
+#usr/share/gtk-doc/html/pango/api-index-1-8.html
+#usr/share/gtk-doc/html/pango/api-index-deprecated.html
+#usr/share/gtk-doc/html/pango/api-index-full.html
+#usr/share/gtk-doc/html/pango/home.png
+#usr/share/gtk-doc/html/pango/index.html
+#usr/share/gtk-doc/html/pango/index.sgml
+#usr/share/gtk-doc/html/pango/layout.gif
+#usr/share/gtk-doc/html/pango/left.png
+#usr/share/gtk-doc/html/pango/lowlevel.html
+#usr/share/gtk-doc/html/pango/pango-ATSUI-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-Bidirectional-Text.html
+#usr/share/gtk-doc/html/pango/pango-Cairo-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-CoreText-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-Coverage-Maps.html
+#usr/share/gtk-doc/html/pango/pango-Engines.html
+#usr/share/gtk-doc/html/pango/pango-Fonts.html
+#usr/share/gtk-doc/html/pango/pango-FreeType-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-Glyph-Storage.html
+#usr/share/gtk-doc/html/pango/pango-Layout-Objects.html
+#usr/share/gtk-doc/html/pango/pango-Miscellaneous-Utilities.html
+#usr/share/gtk-doc/html/pango/pango-Modules.html
+#usr/share/gtk-doc/html/pango/pango-OpenType-Font-Handling.html
+#usr/share/gtk-doc/html/pango/pango-Scripts-and-Languages.html
+#usr/share/gtk-doc/html/pango/pango-Tab-Stops.html
+#usr/share/gtk-doc/html/pango/pango-Text-Attributes.html
+#usr/share/gtk-doc/html/pango/pango-Text-Processing.html
+#usr/share/gtk-doc/html/pango/pango-Version-Checking.html
+#usr/share/gtk-doc/html/pango/pango-Vertical-Text.html
+#usr/share/gtk-doc/html/pango/pango-Win32-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-X-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-Xft-Fonts-and-Rendering.html
+#usr/share/gtk-doc/html/pango/pango-hierarchy.html
+#usr/share/gtk-doc/html/pango/pango-pango-renderer.html
+#usr/share/gtk-doc/html/pango/pango-querymodules.html
+#usr/share/gtk-doc/html/pango/pango.devhelp2
+#usr/share/gtk-doc/html/pango/pango.html
+#usr/share/gtk-doc/html/pango/rendering.html
+#usr/share/gtk-doc/html/pango/right.png
+#usr/share/gtk-doc/html/pango/rotated-text.png
+#usr/share/gtk-doc/html/pango/style.css
+#usr/share/gtk-doc/html/pango/tools.html
+#usr/share/gtk-doc/html/pango/up.png
+#usr/share/man/man1/pango-querymodules.1
+#usr/share/man/man1/pango-view.1
index d031bd3dd0273913e2dc15fe4a1d250307432b09..5c292700c77ce6d28e70b913f1190d8692baa33d 100644 (file)
@@ -1,5 +1,3 @@
-lib/libpcre.so.0
-lib/libpcre.so.0.0.1
 #usr/bin/pcre-config
 #usr/bin/pcregrep
 #usr/bin/pcretest
@@ -9,57 +7,21 @@ lib/libpcre.so.0.0.1
 #usr/include/pcrecpp.h
 #usr/include/pcrecpparg.h
 #usr/include/pcreposix.h
-#usr/lib/libpcre.a
 #usr/lib/libpcre.la
 usr/lib/libpcre.so
-#usr/lib/libpcrecpp.a
+usr/lib/libpcre.so.1
+usr/lib/libpcre.so.1.0.1
 #usr/lib/libpcrecpp.la
 usr/lib/libpcrecpp.so
 usr/lib/libpcrecpp.so.0
 usr/lib/libpcrecpp.so.0.0.0
-#usr/lib/libpcreposix.a
 #usr/lib/libpcreposix.la
 usr/lib/libpcreposix.so
 usr/lib/libpcreposix.so.0
-usr/lib/libpcreposix.so.0.0.0
+usr/lib/libpcreposix.so.0.0.1
 #usr/lib/pkgconfig/libpcre.pc
-#usr/man/man1/pcregrep.1
-#usr/man/man1/pcretest.1
-#usr/man/man3/pcre.3
-#usr/man/man3/pcre_compile.3
-#usr/man/man3/pcre_compile2.3
-#usr/man/man3/pcre_config.3
-#usr/man/man3/pcre_copy_named_substring.3
-#usr/man/man3/pcre_copy_substring.3
-#usr/man/man3/pcre_dfa_exec.3
-#usr/man/man3/pcre_exec.3
-#usr/man/man3/pcre_free_substring.3
-#usr/man/man3/pcre_free_substring_list.3
-#usr/man/man3/pcre_fullinfo.3
-#usr/man/man3/pcre_get_named_substring.3
-#usr/man/man3/pcre_get_stringnumber.3
-#usr/man/man3/pcre_get_stringtable_entries.3
-#usr/man/man3/pcre_get_substring.3
-#usr/man/man3/pcre_get_substring_list.3
-#usr/man/man3/pcre_info.3
-#usr/man/man3/pcre_maketables.3
-#usr/man/man3/pcre_refcount.3
-#usr/man/man3/pcre_study.3
-#usr/man/man3/pcre_version.3
-#usr/man/man3/pcreapi.3
-#usr/man/man3/pcrebuild.3
-#usr/man/man3/pcrecallout.3
-#usr/man/man3/pcrecompat.3
-#usr/man/man3/pcrecpp.3
-#usr/man/man3/pcrematching.3
-#usr/man/man3/pcrepartial.3
-#usr/man/man3/pcrepattern.3
-#usr/man/man3/pcreperform.3
-#usr/man/man3/pcreposix.3
-#usr/man/man3/pcreprecompile.3
-#usr/man/man3/pcresample.3
-#usr/man/man3/pcrestack.3
 #usr/lib/pkgconfig/libpcrecpp.pc
+#usr/lib/pkgconfig/libpcreposix.pc
 #usr/share/doc/pcre
 #usr/share/doc/pcre/AUTHORS
 #usr/share/doc/pcre/COPYING
@@ -71,6 +33,8 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/index.html
 #usr/share/doc/pcre/html/pcre-config.html
 #usr/share/doc/pcre/html/pcre.html
+#usr/share/doc/pcre/html/pcre16.html
+#usr/share/doc/pcre/html/pcre_assign_jit_stack.html
 #usr/share/doc/pcre/html/pcre_compile.html
 #usr/share/doc/pcre/html/pcre_compile2.html
 #usr/share/doc/pcre/html/pcre_config.html
@@ -78,6 +42,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcre_copy_substring.html
 #usr/share/doc/pcre/html/pcre_dfa_exec.html
 #usr/share/doc/pcre/html/pcre_exec.html
+#usr/share/doc/pcre/html/pcre_free_study.html
 #usr/share/doc/pcre/html/pcre_free_substring.html
 #usr/share/doc/pcre/html/pcre_free_substring_list.html
 #usr/share/doc/pcre/html/pcre_fullinfo.html
@@ -86,17 +51,23 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcre_get_stringtable_entries.html
 #usr/share/doc/pcre/html/pcre_get_substring.html
 #usr/share/doc/pcre/html/pcre_get_substring_list.html
-#usr/share/doc/pcre/html/pcre_info.html
+#usr/share/doc/pcre/html/pcre_jit_stack_alloc.html
+#usr/share/doc/pcre/html/pcre_jit_stack_free.html
 #usr/share/doc/pcre/html/pcre_maketables.html
+#usr/share/doc/pcre/html/pcre_pattern_to_host_byte_order.html
 #usr/share/doc/pcre/html/pcre_refcount.html
 #usr/share/doc/pcre/html/pcre_study.html
+#usr/share/doc/pcre/html/pcre_utf16_to_host_byte_order.html
 #usr/share/doc/pcre/html/pcre_version.html
 #usr/share/doc/pcre/html/pcreapi.html
 #usr/share/doc/pcre/html/pcrebuild.html
 #usr/share/doc/pcre/html/pcrecallout.html
 #usr/share/doc/pcre/html/pcrecompat.html
 #usr/share/doc/pcre/html/pcrecpp.html
+#usr/share/doc/pcre/html/pcredemo.html
 #usr/share/doc/pcre/html/pcregrep.html
+#usr/share/doc/pcre/html/pcrejit.html
+#usr/share/doc/pcre/html/pcrelimits.html
 #usr/share/doc/pcre/html/pcrematching.html
 #usr/share/doc/pcre/html/pcrepartial.html
 #usr/share/doc/pcre/html/pcrepattern.html
@@ -107,6 +78,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/doc/pcre/html/pcrestack.html
 #usr/share/doc/pcre/html/pcresyntax.html
 #usr/share/doc/pcre/html/pcretest.html
+#usr/share/doc/pcre/html/pcreunicode.html
 #usr/share/doc/pcre/pcre-config.txt
 #usr/share/doc/pcre/pcre.txt
 #usr/share/doc/pcre/pcregrep.txt
@@ -115,6 +87,33 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man1/pcregrep.1
 #usr/share/man/man1/pcretest.1
 #usr/share/man/man3/pcre.3
+#usr/share/man/man3/pcre16.3
+#usr/share/man/man3/pcre16_assign_jit_stack.3
+#usr/share/man/man3/pcre16_compile.3
+#usr/share/man/man3/pcre16_compile2.3
+#usr/share/man/man3/pcre16_config.3
+#usr/share/man/man3/pcre16_copy_named_substring.3
+#usr/share/man/man3/pcre16_copy_substring.3
+#usr/share/man/man3/pcre16_dfa_exec.3
+#usr/share/man/man3/pcre16_exec.3
+#usr/share/man/man3/pcre16_free_study.3
+#usr/share/man/man3/pcre16_free_substring.3
+#usr/share/man/man3/pcre16_free_substring_list.3
+#usr/share/man/man3/pcre16_fullinfo.3
+#usr/share/man/man3/pcre16_get_named_substring.3
+#usr/share/man/man3/pcre16_get_stringnumber.3
+#usr/share/man/man3/pcre16_get_stringtable_entries.3
+#usr/share/man/man3/pcre16_get_substring.3
+#usr/share/man/man3/pcre16_get_substring_list.3
+#usr/share/man/man3/pcre16_jit_stack_alloc.3
+#usr/share/man/man3/pcre16_jit_stack_free.3
+#usr/share/man/man3/pcre16_maketables.3
+#usr/share/man/man3/pcre16_pattern_to_host_byte_order.3
+#usr/share/man/man3/pcre16_refcount.3
+#usr/share/man/man3/pcre16_study.3
+#usr/share/man/man3/pcre16_utf16_to_host_byte_order.3
+#usr/share/man/man3/pcre16_version.3
+#usr/share/man/man3/pcre_assign_jit_stack.3
 #usr/share/man/man3/pcre_compile.3
 #usr/share/man/man3/pcre_compile2.3
 #usr/share/man/man3/pcre_config.3
@@ -122,6 +121,7 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcre_copy_substring.3
 #usr/share/man/man3/pcre_dfa_exec.3
 #usr/share/man/man3/pcre_exec.3
+#usr/share/man/man3/pcre_free_study.3
 #usr/share/man/man3/pcre_free_substring.3
 #usr/share/man/man3/pcre_free_substring_list.3
 #usr/share/man/man3/pcre_fullinfo.3
@@ -130,16 +130,21 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcre_get_stringtable_entries.3
 #usr/share/man/man3/pcre_get_substring.3
 #usr/share/man/man3/pcre_get_substring_list.3
-#usr/share/man/man3/pcre_info.3
+#usr/share/man/man3/pcre_jit_stack_alloc.3
+#usr/share/man/man3/pcre_jit_stack_free.3
 #usr/share/man/man3/pcre_maketables.3
+#usr/share/man/man3/pcre_pattern_to_host_byte_order.3
 #usr/share/man/man3/pcre_refcount.3
 #usr/share/man/man3/pcre_study.3
+#usr/share/man/man3/pcre_utf16_to_host_byte_order.3
 #usr/share/man/man3/pcre_version.3
 #usr/share/man/man3/pcreapi.3
 #usr/share/man/man3/pcrebuild.3
 #usr/share/man/man3/pcrecallout.3
 #usr/share/man/man3/pcrecompat.3
 #usr/share/man/man3/pcrecpp.3
+#usr/share/man/man3/pcrejit.3
+#usr/share/man/man3/pcrelimits.3
 #usr/share/man/man3/pcrematching.3
 #usr/share/man/man3/pcrepartial.3
 #usr/share/man/man3/pcrepattern.3
@@ -149,3 +154,4 @@ usr/lib/libpcreposix.so.0.0.0
 #usr/share/man/man3/pcresample.3
 #usr/share/man/man3/pcrestack.3
 #usr/share/man/man3/pcresyntax.3
+#usr/share/man/man3/pcreunicode.3
diff --git a/config/rootfiles/common/pcre-compat b/config/rootfiles/common/pcre-compat
new file mode 100644 (file)
index 0000000..ff1b776
--- /dev/null
@@ -0,0 +1,2 @@
+lib/libpcre.so.0
+lib/libpcre.so.0.0.1
diff --git a/config/rootfiles/common/pixman b/config/rootfiles/common/pixman
new file mode 100644 (file)
index 0000000..ea44cd8
--- /dev/null
@@ -0,0 +1,9 @@
+#usr/include/pixman-1
+#usr/include/pixman-1/pixman-version.h
+#usr/include/pixman-1/pixman.h
+#usr/lib/libpixman-1.a
+#usr/lib/libpixman-1.la
+usr/lib/libpixman-1.so
+usr/lib/libpixman-1.so.0
+usr/lib/libpixman-1.so.0.26.0
+#usr/lib/pkgconfig/pixman-1.pc
index edf003534d14a158abb915f5eb651568272667af..7bef2c18faf091d69ad3991e0e204af885f32aff 100644 (file)
@@ -1,7 +1,3 @@
-lib/libhistory.so.5
-lib/libhistory.so.5.1
-lib/libreadline.so.5
-lib/libreadline.so.5.1
 #usr/include/readline
 #usr/include/readline/chardefs.h
 #usr/include/readline/history.h
@@ -11,12 +7,14 @@ lib/libreadline.so.5.1
 #usr/include/readline/rlstdc.h
 #usr/include/readline/rltypedefs.h
 #usr/include/readline/tilde.h
-#usr/info/history.info
-#usr/info/readline.info
-#usr/info/rluserman.info
-#usr/lib/libhistory.a
-usr/lib/libhistory.so
-#usr/lib/libreadline.a
-usr/lib/libreadline.so
-#usr/man/man3/history.3
-#usr/man/man3/readline.3
+#usr/lib/libhistory.so
+usr/lib/libhistory.so.6
+usr/lib/libhistory.so.6.2
+#usr/lib/libreadline.so
+usr/lib/libreadline.so.6
+usr/lib/libreadline.so.6.2
+#usr/share/info/history.info
+#usr/share/info/readline.info
+#usr/share/info/rluserman.info
+#usr/share/man/man3/history.3
+#usr/share/man/man3/readline.3
diff --git a/config/rootfiles/common/readline-compat b/config/rootfiles/common/readline-compat
new file mode 100644 (file)
index 0000000..1ff7325
--- /dev/null
@@ -0,0 +1,4 @@
+lib/libhistory.so.5
+lib/libhistory.so.5.2
+lib/libreadline.so.5
+lib/libreadline.so.5.2
diff --git a/config/rootfiles/common/reiser4progs b/config/rootfiles/common/reiser4progs
deleted file mode 100644 (file)
index e01e4f8..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#sbin/debugfs.reiser4
-sbin/fsck.reiser4
-#sbin/make_reiser4
-sbin/measurefs.reiser4
-sbin/mkfs.reiser4
-#usr/include/reiser4
-#usr/include/reiser4/alloc.h
-#usr/include/reiser4/backup.h
-#usr/include/reiser4/bitmap.h
-#usr/include/reiser4/factory.h
-#usr/include/reiser4/fake.h
-#usr/include/reiser4/filesystem.h
-#usr/include/reiser4/flow.h
-#usr/include/reiser4/format.h
-#usr/include/reiser4/item.h
-#usr/include/reiser4/journal.h
-#usr/include/reiser4/key.h
-#usr/include/reiser4/libreiser4.h
-#usr/include/reiser4/master.h
-#usr/include/reiser4/node.h
-#usr/include/reiser4/object.h
-#usr/include/reiser4/oid.h
-#usr/include/reiser4/place.h
-#usr/include/reiser4/plugin.h
-#usr/include/reiser4/print.h
-#usr/include/reiser4/profile.h
-#usr/include/reiser4/pset.h
-#usr/include/reiser4/semantic.h
-#usr/include/reiser4/status.h
-#usr/include/reiser4/tree.h
-#usr/include/reiser4/types.h
-#usr/include/repair
-#usr/include/repair/add_missing.h
-#usr/include/repair/alloc.h
-#usr/include/repair/backup.h
-#usr/include/repair/cleanup.h
-#usr/include/repair/disk_scan.h
-#usr/include/repair/filesystem.h
-#usr/include/repair/filter.h
-#usr/include/repair/format.h
-#usr/include/repair/item.h
-#usr/include/repair/journal.h
-#usr/include/repair/librepair.h
-#usr/include/repair/lost_found.h
-#usr/include/repair/master.h
-#usr/include/repair/node.h
-#usr/include/repair/object.h
-#usr/include/repair/oid.h
-#usr/include/repair/place.h
-#usr/include/repair/plugin.h
-#usr/include/repair/pset.h
-#usr/include/repair/repair.h
-#usr/include/repair/semantic.h
-#usr/include/repair/status.h
-#usr/include/repair/tree.h
-#usr/include/repair/twig_scan.h
-usr/lib/libreiser4-1.0.so.6
-usr/lib/libreiser4-1.0.so.6.0.0
-usr/lib/libreiser4-minimal-1.0.so.6
-usr/lib/libreiser4-minimal-1.0.so.6.0.0
-#usr/lib/libreiser4-minimal.a
-#usr/lib/libreiser4-minimal.la
-usr/lib/libreiser4-minimal.so
-#usr/lib/libreiser4.a
-#usr/lib/libreiser4.la
-usr/lib/libreiser4.so
-usr/lib/librepair-1.0.so.6
-usr/lib/librepair-1.0.so.6.0.0
-#usr/lib/librepair.a
-#usr/lib/librepair.la
-usr/lib/librepair.so
-#usr/man/man8
-#usr/man/man8/debugfs.reiser4.8
-#usr/man/man8/fsck.reiser4.8
-#usr/man/man8/measurefs.reiser4.8
-#usr/man/man8/mkfs.reiser4.8
-#usr/share/aclocal/libreiser4.m4
index faa0dca8440eeffdc019c0abd7018676ddd4c0d2..c957d523bdfa7a25644a0217f536db4924bb8da0 100644 (file)
@@ -1,17 +1,20 @@
 #srv/web/ipfire/html/graphs
-#usr/bin/rrdcgi
+usr/bin/rrdcached
 usr/bin/rrdtool
 usr/bin/rrdupdate
+#usr/include/rrd.h
+#usr/include/rrd_client.h
+#usr/include/rrd_format.h
 #usr/lib/librrd.a
 #usr/lib/librrd.la
-usr/lib/librrd.so
-usr/lib/librrd.so.2
-usr/lib/librrd.so.2.0.15
+#usr/lib/librrd.so
+usr/lib/librrd.so.4
+usr/lib/librrd.so.4.2.0
 #usr/lib/librrd_th.a
 #usr/lib/librrd_th.la
-usr/lib/librrd_th.so
-usr/lib/librrd_th.so.2
-usr/lib/librrd_th.so.2.0.13
+#usr/lib/librrd_th.so
+usr/lib/librrd_th.so.4
+usr/lib/librrd_th.so.4.2.0
 usr/lib/perl5/site_perl/5.12.3/RRDp.pm
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDp
@@ -20,17 +23,111 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/RRDs.pm
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/.packlist
 #usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.bs
 usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
-#usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/ntmake.pl
+#usr/lib/pkgconfig/librrd.pc
+#usr/share/doc/rrdtool-1.4.7
+#usr/share/doc/rrdtool-1.4.7/html
+#usr/share/doc/rrdtool-1.4.7/html/RRDp.html
+#usr/share/doc/rrdtool-1.4.7/html/RRDs.html
+#usr/share/doc/rrdtool-1.4.7/html/bin_dec_hex.html
+#usr/share/doc/rrdtool-1.4.7/html/cdeftutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/index.html
+#usr/share/doc/rrdtool-1.4.7/html/librrd.html
+#usr/share/doc/rrdtool-1.4.7/html/rpntutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/rrd-beginners.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdbuild.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcached.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcgi.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdcreate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrddump.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdfetch.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdfirst.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdflushcached.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_data.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_examples.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_graph.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdgraph_rpn.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdinfo.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdlast.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdlastupdate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdresize.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdrestore.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdthreads.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtool.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtune.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdtutorial.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdupdate.html
+#usr/share/doc/rrdtool-1.4.7/html/rrdxport.html
+#usr/share/doc/rrdtool-1.4.7/txt
+#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.pod
+#usr/share/doc/rrdtool-1.4.7/txt/bin_dec_hex.txt
+#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/cdeftutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/librrd.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rpntutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrd-beginners.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdbuild.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcached.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcgi.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdcreate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrddump.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrddump.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfetch.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdfirst.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdflushcached.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_data.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_examples.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_graph.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdgraph_rpn.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdinfo.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlast.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdlastupdate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdresize.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdrestore.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdthreads.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtool.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtune.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdtutorial.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdupdate.txt
+#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.pod
+#usr/share/doc/rrdtool-1.4.7/txt/rrdxport.txt
 #usr/share/man/man1/bin_dec_hex.1
 #usr/share/man/man1/cdeftutorial.1
 #usr/share/man/man1/rpntutorial.1
 #usr/share/man/man1/rrd-beginners.1
 #usr/share/man/man1/rrdbuild.1
+#usr/share/man/man1/rrdcached.1
 #usr/share/man/man1/rrdcgi.1
 #usr/share/man/man1/rrdcreate.1
 #usr/share/man/man1/rrddump.1
 #usr/share/man/man1/rrdfetch.1
 #usr/share/man/man1/rrdfirst.1
+#usr/share/man/man1/rrdflushcached.1
 #usr/share/man/man1/rrdgraph.1
 #usr/share/man/man1/rrdgraph_data.1
 #usr/share/man/man1/rrdgraph_examples.1
@@ -49,105 +146,18 @@ usr/lib/perl5/site_perl/5.12.3/MACHINE-linux-thread-multi/auto/RRDs/RRDs.so
 #usr/share/man/man1/rrdxport.1
 #usr/share/man/man3/RRDp.3
 #usr/share/man/man3/RRDs.3
-#usr/share/rrdtool-1.2.30
-#usr/share/rrdtool-1.2.30/include
-#usr/share/rrdtool-1.2.30/include/rrd.h
-#usr/share/rrdtool-1.2.30/share
-#usr/share/rrdtool-1.2.30/share/doc
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDp.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/RRDs.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/bin_dec_hex.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/cdeftutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/index.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rpntutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrd-beginners.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdbuild.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcgi.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdcreate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrddump.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfetch.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdfirst.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_data.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_examples.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_graph.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdgraph_rpn.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdinfo.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlast.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdlastupdate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdresize.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdrestore.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdthreads.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtool.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtune.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdtutorial.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdupdate.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/html/rrdxport.html
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/bin_dec_hex.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/cdeftutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rpntutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrd-beginners.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdbuild.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcgi.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdcreate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrddump.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfetch.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdfirst.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_data.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_examples.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_graph.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdgraph_rpn.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdinfo.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlast.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdlastupdate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdresize.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdrestore.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdthreads.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtool.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtune.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdtutorial.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdupdate.txt
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.pod
-#usr/share/rrdtool-1.2.30/share/doc/rrdtool-1.2.30/txt/rrdxport.txt
-#usr/share/rrdtool-1.2.30/share/rrdtool
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/4charts.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/bigtops.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/cgi-demo.cgi
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/minmax.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/perftest.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/piped-demo.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/shared-demo.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/examples/stripes.pl
-#usr/share/rrdtool-1.2.30/share/rrdtool/fonts
-usr/share/rrdtool-1.2.30/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf
+#usr/share/man/man3/librrd.3
+#usr/share/rrdtool
+#usr/share/rrdtool/examples
+#usr/share/rrdtool/examples/4charts.pl
+#usr/share/rrdtool/examples/bigtops.pl
+#usr/share/rrdtool/examples/cgi-demo.cgi
+#usr/share/rrdtool/examples/minmax.pl
+#usr/share/rrdtool/examples/perftest.pl
+#usr/share/rrdtool/examples/piped-demo.pl
+#usr/share/rrdtool/examples/rrdcached
+#usr/share/rrdtool/examples/rrdcached/RRDCached.pm
+#usr/share/rrdtool/examples/rrdcached/rrdcached-size.pl
+#usr/share/rrdtool/examples/shared-demo.pl
+#usr/share/rrdtool/examples/stripes.pl
 var/log/rrd
index 5cd180bef74f7e6292e74bc4b9ed863b2cc94570..8db08fa39d3cc5053853ec50b74f3b54396db369 100644 (file)
@@ -1,5 +1,3 @@
 bin/sed
-#usr/info/sed.info
-#usr/info/sed.info-1
-#usr/info/sed.info-2
-#usr/man/man1/sed.1
+#usr/share/info/sed.info
+#usr/share/man/man1/sed.1
index 31a273f862e7a507f24ab4563dbfd6791573a003..ec9054efea51408cdfbff231d7aec1b62ffe6610 100644 (file)
@@ -23,7 +23,7 @@ lib/libshadow.so.0.0.0
 #usr/bin/sg
 #usr/lib/libshadow.a
 #usr/lib/libshadow.la
-usr/lib/libshadow.so
+#usr/lib/libshadow.so
 #usr/man/man1/chage.1
 #usr/man/man1/chfn.1
 #usr/man/man1/chsh.1
@@ -45,6 +45,7 @@ usr/lib/libshadow.so
 #usr/man/man5/porttime.5
 #usr/man/man5/shadow.5
 #usr/man/man5/suauth.5
+#usr/man/man8
 #usr/man/man8/chpasswd.8
 #usr/man/man8/faillog.8
 #usr/man/man8/groupadd.8
index 796e0f3237b4ed7e041452cd00e069a99cb1f30e..3d21e4e2abd2e6c615bced3fd3c7bf80f9c8eb34 100644 (file)
@@ -1,9 +1,11 @@
 bin/bash
 bin/cat
-bin/grep
+bin/echo
 bin/pwd
 bin/stty
 #boot
+dev/console
+dev/null
 etc/bashrc
 etc/certparams
 etc/e2fsck.conf
@@ -13,11 +15,10 @@ etc/hddtemp.db
 etc/host.conf
 etc/inittab
 etc/inputrc
-#etc/ipsec.user.conf
-#etc/ipsec.user.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
 etc/issue
 etc/ld.so.conf
-etc/localtime
 etc/logrotate.conf
 etc/mime.types
 etc/modprobe.d
@@ -53,11 +54,18 @@ mnt
 root/ipfire
 #sbin
 #srv
+tmp
+#usr/bin
 #usr/bin/perl
 #usr/include
 #usr/lib
-usr/lib/libgcc_s.so
+#usr/lib/libgcc_s.so
 usr/lib/libgcc_s.so.1
+#usr/lib/libstdc++.la
+#usr/lib/libstdc++.so
+usr/lib/libstdc++.so.6
+#usr/local
+#usr/local/bin
 #usr/local/bin/archive.files
 usr/local/bin/backupiso
 usr/local/bin/connscheduler
@@ -74,14 +82,15 @@ usr/local/bin/scanhd
 usr/local/bin/setddns.pl
 usr/local/bin/settime
 usr/local/bin/timecheck
-#usr/local/bin/uname
-usr/local/bin/vpn-watch
 #usr/local/include
 #usr/local/lib
 #usr/local/sbin
+#usr/local/share
 #usr/local/share/doc
 #usr/local/share/info
 #usr/local/share/locale
+#usr/local/share/man
+#usr/local/share/man/man1
 #usr/local/share/man/man2
 #usr/local/share/man/man3
 #usr/local/share/man/man4
@@ -133,6 +142,3 @@ var/run
 var/run/utmp
 #var/spool
 var/tmp
-dev/null
-dev/console
-tmp
index 4c7d558b1a0b3f6882c3ab38c9c70a416ec7f13f..18d7582b1ee4f0aa0abeb06713abe7fffd488dd0 100644 (file)
@@ -13,133 +13,62 @@ etc/strongswan.conf
 #usr/lib/ipsec
 #usr/lib/ipsec/libcharon.a
 #usr/lib/ipsec/libcharon.la
-usr/lib/ipsec/libcharon.so
+#usr/lib/ipsec/libcharon.so
 usr/lib/ipsec/libcharon.so.0
 usr/lib/ipsec/libcharon.so.0.0.0
 #usr/lib/ipsec/libhydra.a
 #usr/lib/ipsec/libhydra.la
-usr/lib/ipsec/libhydra.so
+#usr/lib/ipsec/libhydra.so
 usr/lib/ipsec/libhydra.so.0
 usr/lib/ipsec/libhydra.so.0.0.0
 #usr/lib/ipsec/libstrongswan.a
 #usr/lib/ipsec/libstrongswan.la
-usr/lib/ipsec/libstrongswan.so
+#usr/lib/ipsec/libstrongswan.so
 usr/lib/ipsec/libstrongswan.so.0
 usr/lib/ipsec/libstrongswan.so.0.0.0
 #usr/lib/ipsec/plugins
-#usr/lib/ipsec/plugins/libstrongswan-aes.a
-#usr/lib/ipsec/plugins/libstrongswan-aes.la
 usr/lib/ipsec/plugins/libstrongswan-aes.so
-#usr/lib/ipsec/plugins/libstrongswan-attr.a
-#usr/lib/ipsec/plugins/libstrongswan-attr.la
 usr/lib/ipsec/plugins/libstrongswan-attr.so
-#usr/lib/ipsec/plugins/libstrongswan-cmac.a
-#usr/lib/ipsec/plugins/libstrongswan-cmac.la
 usr/lib/ipsec/plugins/libstrongswan-cmac.so
-#usr/lib/ipsec/plugins/libstrongswan-constraints.a
-#usr/lib/ipsec/plugins/libstrongswan-constraints.la
 usr/lib/ipsec/plugins/libstrongswan-constraints.so
-#usr/lib/ipsec/plugins/libstrongswan-curl.a
-#usr/lib/ipsec/plugins/libstrongswan-curl.la
 usr/lib/ipsec/plugins/libstrongswan-curl.so
-#usr/lib/ipsec/plugins/libstrongswan-des.a
-#usr/lib/ipsec/plugins/libstrongswan-des.la
 usr/lib/ipsec/plugins/libstrongswan-des.so
-#usr/lib/ipsec/plugins/libstrongswan-dnskey.a
-#usr/lib/ipsec/plugins/libstrongswan-dnskey.la
 usr/lib/ipsec/plugins/libstrongswan-dnskey.so
-#usr/lib/ipsec/plugins/libstrongswan-fips-prf.a
-#usr/lib/ipsec/plugins/libstrongswan-fips-prf.la
 usr/lib/ipsec/plugins/libstrongswan-fips-prf.so
-#usr/lib/ipsec/plugins/libstrongswan-gmp.a
-#usr/lib/ipsec/plugins/libstrongswan-gmp.la
 usr/lib/ipsec/plugins/libstrongswan-gmp.so
-#usr/lib/ipsec/plugins/libstrongswan-hmac.a
-#usr/lib/ipsec/plugins/libstrongswan-hmac.la
 usr/lib/ipsec/plugins/libstrongswan-hmac.so
-#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.a
-#usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.la
 usr/lib/ipsec/plugins/libstrongswan-kernel-netlink.so
-#usr/lib/ipsec/plugins/libstrongswan-md5.a
-#usr/lib/ipsec/plugins/libstrongswan-md5.la
 usr/lib/ipsec/plugins/libstrongswan-md5.so
-#usr/lib/ipsec/plugins/libstrongswan-pem.a
-#usr/lib/ipsec/plugins/libstrongswan-pem.la
+usr/lib/ipsec/plugins/libstrongswan-nonce.so
+usr/lib/ipsec/plugins/libstrongswan-openssl.so
+#usr/lib/ipsec/plugins/libstrongswan-padlock.so
 usr/lib/ipsec/plugins/libstrongswan-pem.so
-#usr/lib/ipsec/plugins/libstrongswan-pgp.a
-#usr/lib/ipsec/plugins/libstrongswan-pgp.la
 usr/lib/ipsec/plugins/libstrongswan-pgp.so
-#usr/lib/ipsec/plugins/libstrongswan-pkcs1.a
-#usr/lib/ipsec/plugins/libstrongswan-pkcs1.la
 usr/lib/ipsec/plugins/libstrongswan-pkcs1.so
-#usr/lib/ipsec/plugins/libstrongswan-pkcs8.a
-#usr/lib/ipsec/plugins/libstrongswan-pkcs8.la
 usr/lib/ipsec/plugins/libstrongswan-pkcs8.so
-#usr/lib/ipsec/plugins/libstrongswan-pubkey.a
-#usr/lib/ipsec/plugins/libstrongswan-pubkey.la
 usr/lib/ipsec/plugins/libstrongswan-pubkey.so
-#usr/lib/ipsec/plugins/libstrongswan-random.a
-#usr/lib/ipsec/plugins/libstrongswan-random.la
 usr/lib/ipsec/plugins/libstrongswan-random.so
-#usr/lib/ipsec/plugins/libstrongswan-resolve.a
-#usr/lib/ipsec/plugins/libstrongswan-resolve.la
 usr/lib/ipsec/plugins/libstrongswan-resolve.so
-#usr/lib/ipsec/plugins/libstrongswan-revocation.a
-#usr/lib/ipsec/plugins/libstrongswan-revocation.la
 usr/lib/ipsec/plugins/libstrongswan-revocation.so
-#usr/lib/ipsec/plugins/libstrongswan-sha1.a
-#usr/lib/ipsec/plugins/libstrongswan-sha1.la
 usr/lib/ipsec/plugins/libstrongswan-sha1.so
-#usr/lib/ipsec/plugins/libstrongswan-sha2.a
-#usr/lib/ipsec/plugins/libstrongswan-sha2.la
 usr/lib/ipsec/plugins/libstrongswan-sha2.so
-#usr/lib/ipsec/plugins/libstrongswan-socket-raw.a
-#usr/lib/ipsec/plugins/libstrongswan-socket-raw.la
-usr/lib/ipsec/plugins/libstrongswan-socket-raw.so
-#usr/lib/ipsec/plugins/libstrongswan-stroke.a
-#usr/lib/ipsec/plugins/libstrongswan-stroke.la
+usr/lib/ipsec/plugins/libstrongswan-socket-default.so
 usr/lib/ipsec/plugins/libstrongswan-stroke.so
-#usr/lib/ipsec/plugins/libstrongswan-updown.a
-#usr/lib/ipsec/plugins/libstrongswan-updown.la
 usr/lib/ipsec/plugins/libstrongswan-updown.so
-#usr/lib/ipsec/plugins/libstrongswan-x509.a
-#usr/lib/ipsec/plugins/libstrongswan-x509.la
 usr/lib/ipsec/plugins/libstrongswan-x509.so
-#usr/lib/ipsec/plugins/libstrongswan-xauth.a
-#usr/lib/ipsec/plugins/libstrongswan-xauth.la
-usr/lib/ipsec/plugins/libstrongswan-xauth.so
-#usr/lib/ipsec/plugins/libstrongswan-xcbc.a
-#usr/lib/ipsec/plugins/libstrongswan-xcbc.la
+usr/lib/ipsec/plugins/libstrongswan-xauth-generic.so
 usr/lib/ipsec/plugins/libstrongswan-xcbc.so
 #usr/libexec/ipsec
 usr/libexec/ipsec/_copyright
-usr/libexec/ipsec/_pluto_adns
 usr/libexec/ipsec/_updown
 usr/libexec/ipsec/_updown_espmark
 usr/libexec/ipsec/charon
 usr/libexec/ipsec/openac
 usr/libexec/ipsec/pki
-usr/libexec/ipsec/pluto
 usr/libexec/ipsec/scepclient
 usr/libexec/ipsec/starter
 usr/libexec/ipsec/stroke
-usr/libexec/ipsec/whack
 usr/sbin/ipsec
-#usr/share/man/man3/anyaddr.3
-#usr/share/man/man3/atoaddr.3
-#usr/share/man/man3/atoasr.3
-#usr/share/man/man3/atoul.3
-#usr/share/man/man3/goodmask.3
-#usr/share/man/man3/initaddr.3
-#usr/share/man/man3/initsubnet.3
-#usr/share/man/man3/portof.3
-#usr/share/man/man3/rangetosubnet.3
-#usr/share/man/man3/sameaddr.3
-#usr/share/man/man3/subnetof.3
-#usr/share/man/man3/ttoaddr.3
-#usr/share/man/man3/ttodata.3
-#usr/share/man/man3/ttosa.3
-#usr/share/man/man3/ttoul.3
 #usr/share/man/man5/ipsec.conf.5
 #usr/share/man/man5/ipsec.secrets.5
 #usr/share/man/man5/strongswan.conf.5
@@ -147,7 +76,4 @@ usr/sbin/ipsec
 #usr/share/man/man8/_updown_espmark.8
 #usr/share/man/man8/ipsec.8
 #usr/share/man/man8/openac.8
-#usr/share/man/man8/pluto.8
 #usr/share/man/man8/scepclient.8
-etc/ipsec.user.conf
-etc/ipsec.user.secrets
index c749e481aa0fea1dbd7614673435a6831d879613..32eca4ed5711267704024cd68a17c57beb7d5f22 100644 (file)
@@ -1,18 +1,3 @@
-#opt/MACHINE-uClibc/bin/dlist_test
-#opt/MACHINE-uClibc/bin/get_bus_devices_list
-#opt/MACHINE-uClibc/bin/get_class_dev
-#opt/MACHINE-uClibc/bin/get_classdev_parent
-#opt/MACHINE-uClibc/bin/get_device
-#opt/MACHINE-uClibc/bin/get_driver
-#opt/MACHINE-uClibc/bin/systool
-#opt/MACHINE-uClibc/bin/testlibsysfs
-#opt/MACHINE-uClibc/bin/write_attr
-#opt/MACHINE-uClibc/lib/libsysfs.a
-#opt/MACHINE-uClibc/lib/libsysfs.la
-#opt/MACHINE-uClibc/man/man1/systool.1
-#opt/MACHINE-uClibc/usr/include/sysfs
-#opt/MACHINE-uClibc/usr/include/sysfs/dlist.h
-#opt/MACHINE-uClibc/usr/include/sysfs/libsysfs.h
 #bin/dlist_test
 #bin/get_bus_devices_list
 #bin/get_class_dev
index e7de4b7a91f700d03ef8cf3d1f10a4996fb45363..00e9aedf8ba17b7ec89153a22905c6b058c761f0 100644 (file)
@@ -2,23 +2,26 @@
 #usr/bin/infokey
 #usr/bin/install-info
 #usr/bin/makeinfo
+#usr/bin/pdftexi2dvi
 #usr/bin/texi2dvi
 #usr/bin/texi2pdf
 #usr/bin/texindex
-#usr/info/info-stnd.info
-#usr/info/info.info
-#usr/info/texinfo
-#usr/info/texinfo-1
-#usr/info/texinfo-2
-#usr/info/texinfo-3
-#usr/man/man1/info.1
-#usr/man/man1/infokey.1
-#usr/man/man1/install-info.1
-#usr/man/man1/makeinfo.1
-#usr/man/man1/texi2dvi.1
-#usr/man/man1/texindex.1
-#usr/man/man5/info.5
-#usr/man/man5/texinfo.5
+#usr/share/info/info-stnd.info
+#usr/share/info/info.info
+#usr/share/info/texinfo
+#usr/share/info/texinfo-1
+#usr/share/info/texinfo-2
+#usr/share/info/texinfo-3
+#usr/share/man/man1/info.1
+#usr/share/man/man1/infokey.1
+#usr/share/man/man1/install-info.1
+#usr/share/man/man1/makeinfo.1
+#usr/share/man/man1/pdftexi2dvi.1
+#usr/share/man/man1/texi2dvi.1
+#usr/share/man/man1/texi2pdf.1
+#usr/share/man/man1/texindex.1
+#usr/share/man/man5/info.5
+#usr/share/man/man5/texinfo.5
 #usr/share/texinfo
 #usr/share/texinfo/texinfo.cat
 #usr/share/texinfo/texinfo.dtd
diff --git a/config/rootfiles/common/uClibc b/config/rootfiles/common/uClibc
deleted file mode 100644 (file)
index 373caa9..0000000
+++ /dev/null
@@ -1,1353 +0,0 @@
-#lib/ld-uClibc-0.9.28.so
-#lib/ld-uClibc.so.0
-#lib/libc.so
-#lib/libc.so.0
-#lib/libm.so.0
-#lib/libuClibc-0.9.28.so
-#opt/MACHINE-uClibc/include/a.out.h
-#opt/MACHINE-uClibc/include/alloca.h
-#opt/MACHINE-uClibc/include/ar.h
-#opt/MACHINE-uClibc/include/arpa
-#opt/MACHINE-uClibc/include/arpa/ftp.h
-#opt/MACHINE-uClibc/include/arpa/inet.h
-#opt/MACHINE-uClibc/include/arpa/nameser.h
-#opt/MACHINE-uClibc/include/arpa/nameser_compat.h
-#opt/MACHINE-uClibc/include/arpa/telnet.h
-#opt/MACHINE-uClibc/include/arpa/tftp.h
-#opt/MACHINE-uClibc/include/asm
-#opt/MACHINE-uClibc/include/asm-generic
-#opt/MACHINE-uClibc/include/asm-generic/errno-base.h
-#opt/MACHINE-uClibc/include/asm-generic/errno.h
-#opt/MACHINE-uClibc/include/asm/8253pit.h
-#opt/MACHINE-uClibc/include/asm/a.out.h
-#opt/MACHINE-uClibc/include/asm/agp.h
-#opt/MACHINE-uClibc/include/asm/apic.h
-#opt/MACHINE-uClibc/include/asm/apicdef.h
-#opt/MACHINE-uClibc/include/asm/arch_hooks.h
-#opt/MACHINE-uClibc/include/asm/atomic.h
-#opt/MACHINE-uClibc/include/asm/bitops.h
-#opt/MACHINE-uClibc/include/asm/boot.h
-#opt/MACHINE-uClibc/include/asm/byteorder.h
-#opt/MACHINE-uClibc/include/asm/cache.h
-#opt/MACHINE-uClibc/include/asm/cacheflush.h
-#opt/MACHINE-uClibc/include/asm/checksum.h
-#opt/MACHINE-uClibc/include/asm/cpu.h
-#opt/MACHINE-uClibc/include/asm/cpufeature.h
-#opt/MACHINE-uClibc/include/asm/debugreg.h
-#opt/MACHINE-uClibc/include/asm/desc.h
-#opt/MACHINE-uClibc/include/asm/dma.h
-#opt/MACHINE-uClibc/include/asm/e820.h
-#opt/MACHINE-uClibc/include/asm/elf.h
-#opt/MACHINE-uClibc/include/asm/errno.h
-#opt/MACHINE-uClibc/include/asm/fcntl.h
-#opt/MACHINE-uClibc/include/asm/fixmap.h
-#opt/MACHINE-uClibc/include/asm/floppy.h
-#opt/MACHINE-uClibc/include/asm/genapic.h
-#opt/MACHINE-uClibc/include/asm/hardirq.h
-#opt/MACHINE-uClibc/include/asm/hdreg.h
-#opt/MACHINE-uClibc/include/asm/hw_irq.h
-#opt/MACHINE-uClibc/include/asm/i8259.h
-#opt/MACHINE-uClibc/include/asm/init.h
-#opt/MACHINE-uClibc/include/asm/io.h
-#opt/MACHINE-uClibc/include/asm/io_apic.h
-#opt/MACHINE-uClibc/include/asm/ioctl.h
-#opt/MACHINE-uClibc/include/asm/ioctls.h
-#opt/MACHINE-uClibc/include/asm/ipc.h
-#opt/MACHINE-uClibc/include/asm/ipcbuf.h
-#opt/MACHINE-uClibc/include/asm/irq.h
-#opt/MACHINE-uClibc/include/asm/kdebug.h
-#opt/MACHINE-uClibc/include/asm/kprobes.h
-#opt/MACHINE-uClibc/include/asm/kvm.h
-#opt/MACHINE-uClibc/include/asm/kvm_emulate.h
-#opt/MACHINE-uClibc/include/asm/kvm_host.h
-#opt/MACHINE-uClibc/include/asm/kvm_para.h
-#opt/MACHINE-uClibc/include/asm/ldt.h
-#opt/MACHINE-uClibc/include/asm/linkage.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-bigsmp/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-default
-#opt/MACHINE-uClibc/include/asm/mach-default/apm.h
-#opt/MACHINE-uClibc/include/asm/mach-default/bios_ebda.h
-#opt/MACHINE-uClibc/include/asm/mach-default/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-default/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-default/io_ports.h
-#opt/MACHINE-uClibc/include/asm/mach-default/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_reboot.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_time.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_traps.h
-#opt/MACHINE-uClibc/include/asm/mach-default/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-default/pci-functions.h
-#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-default/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/mach-default/smpboot_hooks.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-es7000/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-generic
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-generic/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-numaq/mach_wakecpu.h
-#opt/MACHINE-uClibc/include/asm/mach-summit
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_ipi.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpparse.h
-#opt/MACHINE-uClibc/include/asm/mach-summit/mach_mpspec.h
-#opt/MACHINE-uClibc/include/asm/mach-visws
-#opt/MACHINE-uClibc/include/asm/mach-visws/cobalt.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/lithium.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apic.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/mach_apicdef.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/piix4.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/mach-visws/smpboot_hooks.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager
-#opt/MACHINE-uClibc/include/asm/mach-voyager/do_timer.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/entry_arch.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/irq_vectors.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_post.h
-#opt/MACHINE-uClibc/include/asm/mach-voyager/setup_arch_pre.h
-#opt/MACHINE-uClibc/include/asm/math_emu.h
-#opt/MACHINE-uClibc/include/asm/mca.h
-#opt/MACHINE-uClibc/include/asm/mca_dma.h
-#opt/MACHINE-uClibc/include/asm/mman.h
-#opt/MACHINE-uClibc/include/asm/mmu.h
-#opt/MACHINE-uClibc/include/asm/mmu_context.h
-#opt/MACHINE-uClibc/include/asm/mmx.h
-#opt/MACHINE-uClibc/include/asm/module.h
-#opt/MACHINE-uClibc/include/asm/mpspec.h
-#opt/MACHINE-uClibc/include/asm/mpspec_def.h
-#opt/MACHINE-uClibc/include/asm/msgbuf.h
-#opt/MACHINE-uClibc/include/asm/msr.h
-#opt/MACHINE-uClibc/include/asm/mtrr.h
-#opt/MACHINE-uClibc/include/asm/namei.h
-#opt/MACHINE-uClibc/include/asm/nmi.h
-#opt/MACHINE-uClibc/include/asm/node.h
-#opt/MACHINE-uClibc/include/asm/numaq.h
-#opt/MACHINE-uClibc/include/asm/numnodes.h
-#opt/MACHINE-uClibc/include/asm/page.h
-#opt/MACHINE-uClibc/include/asm/param.h
-#opt/MACHINE-uClibc/include/asm/parport.h
-#opt/MACHINE-uClibc/include/asm/pgalloc.h
-#opt/MACHINE-uClibc/include/asm/poll.h
-#opt/MACHINE-uClibc/include/asm/posix_types.h
-#opt/MACHINE-uClibc/include/asm/processor.h
-#opt/MACHINE-uClibc/include/asm/ptrace.h
-#opt/MACHINE-uClibc/include/asm/rwlock.h
-#opt/MACHINE-uClibc/include/asm/segment.h
-#opt/MACHINE-uClibc/include/asm/semaphore.h
-#opt/MACHINE-uClibc/include/asm/sembuf.h
-#opt/MACHINE-uClibc/include/asm/serial.h
-#opt/MACHINE-uClibc/include/asm/shmbuf.h
-#opt/MACHINE-uClibc/include/asm/shmparam.h
-#opt/MACHINE-uClibc/include/asm/sigcontext.h
-#opt/MACHINE-uClibc/include/asm/siginfo.h
-#opt/MACHINE-uClibc/include/asm/socket.h
-#opt/MACHINE-uClibc/include/asm/sockios.h
-#opt/MACHINE-uClibc/include/asm/spinlock.h
-#opt/MACHINE-uClibc/include/asm/srat.h
-#opt/MACHINE-uClibc/include/asm/stat.h
-#opt/MACHINE-uClibc/include/asm/suspend.h
-#opt/MACHINE-uClibc/include/asm/svm.h
-#opt/MACHINE-uClibc/include/asm/system.h
-#opt/MACHINE-uClibc/include/asm/termbits.h
-#opt/MACHINE-uClibc/include/asm/termios.h
-#opt/MACHINE-uClibc/include/asm/timer.h
-#opt/MACHINE-uClibc/include/asm/timex.h
-#opt/MACHINE-uClibc/include/asm/tlbflush.h
-#opt/MACHINE-uClibc/include/asm/types.h
-#opt/MACHINE-uClibc/include/asm/ucontext.h
-#opt/MACHINE-uClibc/include/asm/unaligned.h
-#opt/MACHINE-uClibc/include/asm/unistd.h
-#opt/MACHINE-uClibc/include/asm/user.h
-#opt/MACHINE-uClibc/include/asm/vga.h
-#opt/MACHINE-uClibc/include/asm/vic.h
-#opt/MACHINE-uClibc/include/asm/virtext.h
-#opt/MACHINE-uClibc/include/asm/vm86.h
-#opt/MACHINE-uClibc/include/asm/vmx.h
-#opt/MACHINE-uClibc/include/asm/voyager.h
-#opt/MACHINE-uClibc/include/assert.h
-#opt/MACHINE-uClibc/include/atomic.h
-#opt/MACHINE-uClibc/include/bits
-#opt/MACHINE-uClibc/include/bits/atomic.h
-#opt/MACHINE-uClibc/include/bits/atomicity.h
-#opt/MACHINE-uClibc/include/bits/byteswap.h
-#opt/MACHINE-uClibc/include/bits/cmathcalls.h
-#opt/MACHINE-uClibc/include/bits/confname.h
-#opt/MACHINE-uClibc/include/bits/dirent.h
-#opt/MACHINE-uClibc/include/bits/dlfcn.h
-#opt/MACHINE-uClibc/include/bits/elfclass.h
-#opt/MACHINE-uClibc/include/bits/endian.h
-#opt/MACHINE-uClibc/include/bits/environments.h
-#opt/MACHINE-uClibc/include/bits/errno.h
-#opt/MACHINE-uClibc/include/bits/errno_values.h
-#opt/MACHINE-uClibc/include/bits/fcntl.h
-#opt/MACHINE-uClibc/include/bits/fenv.h
-#opt/MACHINE-uClibc/include/bits/fenvinline.h
-#opt/MACHINE-uClibc/include/bits/getopt.h
-#opt/MACHINE-uClibc/include/bits/huge_val.h
-#opt/MACHINE-uClibc/include/bits/in.h
-#opt/MACHINE-uClibc/include/bits/initspin.h
-#opt/MACHINE-uClibc/include/bits/ioctl-types.h
-#opt/MACHINE-uClibc/include/bits/ioctls.h
-#opt/MACHINE-uClibc/include/bits/ipc.h
-#opt/MACHINE-uClibc/include/bits/kernel_sigaction.h
-#opt/MACHINE-uClibc/include/bits/kernel_stat.h
-#opt/MACHINE-uClibc/include/bits/kernel_types.h
-#opt/MACHINE-uClibc/include/bits/local_lim.h
-#opt/MACHINE-uClibc/include/bits/locale.h
-#opt/MACHINE-uClibc/include/bits/mathcalls.h
-#opt/MACHINE-uClibc/include/bits/mathdef.h
-#opt/MACHINE-uClibc/include/bits/mathinline.h
-#opt/MACHINE-uClibc/include/bits/mman.h
-#opt/MACHINE-uClibc/include/bits/msq.h
-#opt/MACHINE-uClibc/include/bits/nan.h
-#opt/MACHINE-uClibc/include/bits/netdb.h
-#opt/MACHINE-uClibc/include/bits/poll.h
-#opt/MACHINE-uClibc/include/bits/posix1_lim.h
-#opt/MACHINE-uClibc/include/bits/posix2_lim.h
-#opt/MACHINE-uClibc/include/bits/posix_opt.h
-#opt/MACHINE-uClibc/include/bits/profil-counter.h
-#opt/MACHINE-uClibc/include/bits/pthreadtypes.h
-#opt/MACHINE-uClibc/include/bits/resource.h
-#opt/MACHINE-uClibc/include/bits/sched.h
-#opt/MACHINE-uClibc/include/bits/select.h
-#opt/MACHINE-uClibc/include/bits/sem.h
-#opt/MACHINE-uClibc/include/bits/setjmp.h
-#opt/MACHINE-uClibc/include/bits/shm.h
-#opt/MACHINE-uClibc/include/bits/sigaction.h
-#opt/MACHINE-uClibc/include/bits/sigcontext.h
-#opt/MACHINE-uClibc/include/bits/sigcontextinfo.h
-#opt/MACHINE-uClibc/include/bits/siginfo.h
-#opt/MACHINE-uClibc/include/bits/signum.h
-#opt/MACHINE-uClibc/include/bits/sigset.h
-#opt/MACHINE-uClibc/include/bits/sigstack.h
-#opt/MACHINE-uClibc/include/bits/sigthread.h
-#opt/MACHINE-uClibc/include/bits/sockaddr.h
-#opt/MACHINE-uClibc/include/bits/socket.h
-#opt/MACHINE-uClibc/include/bits/stackinfo.h
-#opt/MACHINE-uClibc/include/bits/stat.h
-#opt/MACHINE-uClibc/include/bits/statfs.h
-#opt/MACHINE-uClibc/include/bits/statvfs.h
-#opt/MACHINE-uClibc/include/bits/stdio.h
-#opt/MACHINE-uClibc/include/bits/stdio_lim.h
-#opt/MACHINE-uClibc/include/bits/syscalls.h
-#opt/MACHINE-uClibc/include/bits/sysnum.h
-#opt/MACHINE-uClibc/include/bits/termios.h
-#opt/MACHINE-uClibc/include/bits/time.h
-#opt/MACHINE-uClibc/include/bits/types.h
-#opt/MACHINE-uClibc/include/bits/uClibc_clk_tck.h
-#opt/MACHINE-uClibc/include/bits/uClibc_config.h
-#opt/MACHINE-uClibc/include/bits/uClibc_ctype.h
-#opt/MACHINE-uClibc/include/bits/uClibc_fpmax.h
-#opt/MACHINE-uClibc/include/bits/uClibc_locale.h
-#opt/MACHINE-uClibc/include/bits/uClibc_locale_data.h
-#opt/MACHINE-uClibc/include/bits/uClibc_page.h
-#opt/MACHINE-uClibc/include/bits/uClibc_pthread.h
-#opt/MACHINE-uClibc/include/bits/uClibc_stdio.h
-#opt/MACHINE-uClibc/include/bits/uClibc_touplow.h
-#opt/MACHINE-uClibc/include/bits/uClibc_uintmaxtostr.h
-#opt/MACHINE-uClibc/include/bits/uClibc_uwchar.h
-#opt/MACHINE-uClibc/include/bits/uClibc_va_copy.h
-#opt/MACHINE-uClibc/include/bits/uio.h
-#opt/MACHINE-uClibc/include/bits/ustat.h
-#opt/MACHINE-uClibc/include/bits/utmp.h
-#opt/MACHINE-uClibc/include/bits/utmpx.h
-#opt/MACHINE-uClibc/include/bits/utsname.h
-#opt/MACHINE-uClibc/include/bits/waitflags.h
-#opt/MACHINE-uClibc/include/bits/waitstatus.h
-#opt/MACHINE-uClibc/include/bits/wchar.h
-#opt/MACHINE-uClibc/include/bits/wordsize.h
-#opt/MACHINE-uClibc/include/bits/xopen_lim.h
-#opt/MACHINE-uClibc/include/byteswap.h
-#opt/MACHINE-uClibc/include/complex.h
-#opt/MACHINE-uClibc/include/cpio.h
-#opt/MACHINE-uClibc/include/crypt.h
-#opt/MACHINE-uClibc/include/ctype.h
-#opt/MACHINE-uClibc/include/dirent.h
-#opt/MACHINE-uClibc/include/dlfcn.h
-#opt/MACHINE-uClibc/include/elf.h
-#opt/MACHINE-uClibc/include/endian.h
-#opt/MACHINE-uClibc/include/err.h
-#opt/MACHINE-uClibc/include/errno.h
-#opt/MACHINE-uClibc/include/error.h
-#opt/MACHINE-uClibc/include/fcntl.h
-#opt/MACHINE-uClibc/include/features.h
-#opt/MACHINE-uClibc/include/fnmatch.h
-#opt/MACHINE-uClibc/include/fpu_control.h
-#opt/MACHINE-uClibc/include/ftw.h
-#opt/MACHINE-uClibc/include/getopt.h
-#opt/MACHINE-uClibc/include/glob.h
-#opt/MACHINE-uClibc/include/gnu-versions.h
-#opt/MACHINE-uClibc/include/grp.h
-#opt/MACHINE-uClibc/include/iconv.h
-#opt/MACHINE-uClibc/include/ieee754.h
-#opt/MACHINE-uClibc/include/inttypes.h
-#opt/MACHINE-uClibc/include/langinfo.h
-#opt/MACHINE-uClibc/include/lastlog.h
-#opt/MACHINE-uClibc/include/libgen.h
-#opt/MACHINE-uClibc/include/limits.h
-#opt/MACHINE-uClibc/include/link.h
-#opt/MACHINE-uClibc/include/linux
-#opt/MACHINE-uClibc/include/linux/8250_pci.h
-#opt/MACHINE-uClibc/include/linux/a.out.h
-#opt/MACHINE-uClibc/include/linux/acct.h
-#opt/MACHINE-uClibc/include/linux/acpi.h
-#opt/MACHINE-uClibc/include/linux/adb.h
-#opt/MACHINE-uClibc/include/linux/adfs_fs.h
-#opt/MACHINE-uClibc/include/linux/adfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/affs_fs.h
-#opt/MACHINE-uClibc/include/linux/affs_hardblocks.h
-#opt/MACHINE-uClibc/include/linux/agpgart.h
-#opt/MACHINE-uClibc/include/linux/aio.h
-#opt/MACHINE-uClibc/include/linux/aio_abi.h
-#opt/MACHINE-uClibc/include/linux/amifd.h
-#opt/MACHINE-uClibc/include/linux/amifdreg.h
-#opt/MACHINE-uClibc/include/linux/amigaffs.h
-#opt/MACHINE-uClibc/include/linux/apm_bios.h
-#opt/MACHINE-uClibc/include/linux/ata.h
-#opt/MACHINE-uClibc/include/linux/atalk.h
-#opt/MACHINE-uClibc/include/linux/atm.h
-#opt/MACHINE-uClibc/include/linux/atm_eni.h
-#opt/MACHINE-uClibc/include/linux/atm_he.h
-#opt/MACHINE-uClibc/include/linux/atm_idt77105.h
-#opt/MACHINE-uClibc/include/linux/atm_nicstar.h
-#opt/MACHINE-uClibc/include/linux/atm_suni.h
-#opt/MACHINE-uClibc/include/linux/atm_tcp.h
-#opt/MACHINE-uClibc/include/linux/atm_zatm.h
-#opt/MACHINE-uClibc/include/linux/atmapi.h
-#opt/MACHINE-uClibc/include/linux/atmarp.h
-#opt/MACHINE-uClibc/include/linux/atmbr2684.h
-#opt/MACHINE-uClibc/include/linux/atmclip.h
-#opt/MACHINE-uClibc/include/linux/atmdev.h
-#opt/MACHINE-uClibc/include/linux/atmioc.h
-#opt/MACHINE-uClibc/include/linux/atmlec.h
-#opt/MACHINE-uClibc/include/linux/atmmpc.h
-#opt/MACHINE-uClibc/include/linux/atmppp.h
-#opt/MACHINE-uClibc/include/linux/atmsap.h
-#opt/MACHINE-uClibc/include/linux/atmsvc.h
-#opt/MACHINE-uClibc/include/linux/audit.h
-#opt/MACHINE-uClibc/include/linux/auto_fs.h
-#opt/MACHINE-uClibc/include/linux/auto_fs4.h
-#opt/MACHINE-uClibc/include/linux/autoconf.h
-#opt/MACHINE-uClibc/include/linux/awe_voice.h
-#opt/MACHINE-uClibc/include/linux/ax25.h
-#opt/MACHINE-uClibc/include/linux/b1lli.h
-#opt/MACHINE-uClibc/include/linux/backing-dev.h
-#opt/MACHINE-uClibc/include/linux/backlight.h
-#opt/MACHINE-uClibc/include/linux/baycom.h
-#opt/MACHINE-uClibc/include/linux/bcd.h
-#opt/MACHINE-uClibc/include/linux/bfs_fs.h
-#opt/MACHINE-uClibc/include/linux/binfmts.h
-#opt/MACHINE-uClibc/include/linux/bitmap.h
-#opt/MACHINE-uClibc/include/linux/bitops.h
-#opt/MACHINE-uClibc/include/linux/blkpg.h
-#opt/MACHINE-uClibc/include/linux/blockgroup_lock.h
-#opt/MACHINE-uClibc/include/linux/bootmem.h
-#opt/MACHINE-uClibc/include/linux/bpqether.h
-#opt/MACHINE-uClibc/include/linux/byteorder
-#opt/MACHINE-uClibc/include/linux/byteorder/big_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/generic.h
-#opt/MACHINE-uClibc/include/linux/byteorder/little_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/pdp_endian.h
-#opt/MACHINE-uClibc/include/linux/byteorder/swab.h
-#opt/MACHINE-uClibc/include/linux/byteorder/swabb.h
-#opt/MACHINE-uClibc/include/linux/cache.h
-#opt/MACHINE-uClibc/include/linux/capability.h
-#opt/MACHINE-uClibc/include/linux/capi.h
-#opt/MACHINE-uClibc/include/linux/cciss_ioctl.h
-#opt/MACHINE-uClibc/include/linux/cd1400.h
-#opt/MACHINE-uClibc/include/linux/cdk.h
-#opt/MACHINE-uClibc/include/linux/cdrom.h
-#opt/MACHINE-uClibc/include/linux/circ_buf.h
-#opt/MACHINE-uClibc/include/linux/cobalt-nvram.h
-#opt/MACHINE-uClibc/include/linux/coda.h
-#opt/MACHINE-uClibc/include/linux/coda_proc.h
-#opt/MACHINE-uClibc/include/linux/coda_psdev.h
-#opt/MACHINE-uClibc/include/linux/coff.h
-#opt/MACHINE-uClibc/include/linux/com20020.h
-#opt/MACHINE-uClibc/include/linux/compat.h
-#opt/MACHINE-uClibc/include/linux/compat_ioctl.h
-#opt/MACHINE-uClibc/include/linux/compiler.h
-#opt/MACHINE-uClibc/include/linux/comstats.h
-#opt/MACHINE-uClibc/include/linux/config.h
-#opt/MACHINE-uClibc/include/linux/console.h
-#opt/MACHINE-uClibc/include/linux/console_struct.h
-#opt/MACHINE-uClibc/include/linux/consolemap.h
-#opt/MACHINE-uClibc/include/linux/cpu.h
-#opt/MACHINE-uClibc/include/linux/cpufreq.h
-#opt/MACHINE-uClibc/include/linux/cramfs_fs.h
-#opt/MACHINE-uClibc/include/linux/cramfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/crc32.h
-#opt/MACHINE-uClibc/include/linux/crypto.h
-#opt/MACHINE-uClibc/include/linux/cryptodev.h
-#opt/MACHINE-uClibc/include/linux/ctype.h
-#opt/MACHINE-uClibc/include/linux/cuda.h
-#opt/MACHINE-uClibc/include/linux/cyclades.h
-#opt/MACHINE-uClibc/include/linux/cycx_cfm.h
-#opt/MACHINE-uClibc/include/linux/cycx_drv.h
-#opt/MACHINE-uClibc/include/linux/cycx_x25.h
-#opt/MACHINE-uClibc/include/linux/devfs_fs.h
-#opt/MACHINE-uClibc/include/linux/devfs_fs_kernel.h
-#opt/MACHINE-uClibc/include/linux/device-mapper.h
-#opt/MACHINE-uClibc/include/linux/device.h
-#opt/MACHINE-uClibc/include/linux/devpts_fs.h
-#opt/MACHINE-uClibc/include/linux/dirent.h
-#opt/MACHINE-uClibc/include/linux/divert.h
-#opt/MACHINE-uClibc/include/linux/dm-ioctl.h
-#opt/MACHINE-uClibc/include/linux/dn.h
-#opt/MACHINE-uClibc/include/linux/dnotify.h
-#opt/MACHINE-uClibc/include/linux/dqblk_v1.h
-#opt/MACHINE-uClibc/include/linux/dqblk_v2.h
-#opt/MACHINE-uClibc/include/linux/dqblk_xfs.h
-#opt/MACHINE-uClibc/include/linux/dtlk.h
-#opt/MACHINE-uClibc/include/linux/dvb
-#opt/MACHINE-uClibc/include/linux/dvb/audio.h
-#opt/MACHINE-uClibc/include/linux/dvb/ca.h
-#opt/MACHINE-uClibc/include/linux/dvb/dmx.h
-#opt/MACHINE-uClibc/include/linux/dvb/frontend.h
-#opt/MACHINE-uClibc/include/linux/dvb/net.h
-#opt/MACHINE-uClibc/include/linux/dvb/osd.h
-#opt/MACHINE-uClibc/include/linux/dvb/version.h
-#opt/MACHINE-uClibc/include/linux/dvb/video.h
-#opt/MACHINE-uClibc/include/linux/eeprom.h
-#opt/MACHINE-uClibc/include/linux/efi.h
-#opt/MACHINE-uClibc/include/linux/efs_dir.h
-#opt/MACHINE-uClibc/include/linux/efs_fs.h
-#opt/MACHINE-uClibc/include/linux/efs_fs_i.h
-#opt/MACHINE-uClibc/include/linux/efs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/efs_vh.h
-#opt/MACHINE-uClibc/include/linux/eisa.h
-#opt/MACHINE-uClibc/include/linux/elevator.h
-#opt/MACHINE-uClibc/include/linux/elf-fdpic.h
-#opt/MACHINE-uClibc/include/linux/elf.h
-#opt/MACHINE-uClibc/include/linux/elfcore.h
-#opt/MACHINE-uClibc/include/linux/err.h
-#opt/MACHINE-uClibc/include/linux/err_kernel_only.h
-#opt/MACHINE-uClibc/include/linux/errno.h
-#opt/MACHINE-uClibc/include/linux/errqueue.h
-#opt/MACHINE-uClibc/include/linux/ethtool.h
-#opt/MACHINE-uClibc/include/linux/eventpoll.h
-#opt/MACHINE-uClibc/include/linux/ext2_fs.h
-#opt/MACHINE-uClibc/include/linux/ext3_fs.h
-#opt/MACHINE-uClibc/include/linux/ext3_jbd.h
-#opt/MACHINE-uClibc/include/linux/fadvise.h
-#opt/MACHINE-uClibc/include/linux/fb.h
-#opt/MACHINE-uClibc/include/linux/fcntl.h
-#opt/MACHINE-uClibc/include/linux/fd.h
-#opt/MACHINE-uClibc/include/linux/fd1772.h
-#opt/MACHINE-uClibc/include/linux/fdreg.h
-#opt/MACHINE-uClibc/include/linux/file.h
-#opt/MACHINE-uClibc/include/linux/filter.h
-#opt/MACHINE-uClibc/include/linux/firmware.h
-#opt/MACHINE-uClibc/include/linux/flat.h
-#opt/MACHINE-uClibc/include/linux/font.h
-#opt/MACHINE-uClibc/include/linux/fs.h
-#opt/MACHINE-uClibc/include/linux/fs_struct.h
-#opt/MACHINE-uClibc/include/linux/ftape-header-segment.h
-#opt/MACHINE-uClibc/include/linux/ftape-vendors.h
-#opt/MACHINE-uClibc/include/linux/ftape.h
-#opt/MACHINE-uClibc/include/linux/futex.h
-#opt/MACHINE-uClibc/include/linux/gameport.h
-#opt/MACHINE-uClibc/include/linux/gen_stats.h
-#opt/MACHINE-uClibc/include/linux/generic_serial.h
-#opt/MACHINE-uClibc/include/linux/genetlink.h
-#opt/MACHINE-uClibc/include/linux/genhd.h
-#opt/MACHINE-uClibc/include/linux/gfp.h
-#opt/MACHINE-uClibc/include/linux/hash.h
-#opt/MACHINE-uClibc/include/linux/hayesesp.h
-#opt/MACHINE-uClibc/include/linux/hdlc
-#opt/MACHINE-uClibc/include/linux/hdlc.h
-#opt/MACHINE-uClibc/include/linux/hdlc/ioctl.h
-#opt/MACHINE-uClibc/include/linux/hdlcdrv.h
-#opt/MACHINE-uClibc/include/linux/hdreg.h
-#opt/MACHINE-uClibc/include/linux/hdsmart.h
-#opt/MACHINE-uClibc/include/linux/hiddev.h
-#opt/MACHINE-uClibc/include/linux/highuid.h
-#opt/MACHINE-uClibc/include/linux/hpfs_fs.h
-#opt/MACHINE-uClibc/include/linux/hysdn_if.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-bit.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-ite.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-pcf.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-sgi.h
-#opt/MACHINE-uClibc/include/linux/i2c-algo-sibyte.h
-#opt/MACHINE-uClibc/include/linux/i2c-dev.h
-#opt/MACHINE-uClibc/include/linux/i2c-id.h
-#opt/MACHINE-uClibc/include/linux/i2c-sensor.h
-#opt/MACHINE-uClibc/include/linux/i2c-vid.h
-#opt/MACHINE-uClibc/include/linux/i2c.h
-#opt/MACHINE-uClibc/include/linux/i2o-dev.h
-#opt/MACHINE-uClibc/include/linux/i8k.h
-#opt/MACHINE-uClibc/include/linux/ibmtr.h
-#opt/MACHINE-uClibc/include/linux/icmp.h
-#opt/MACHINE-uClibc/include/linux/icmpv6.h
-#opt/MACHINE-uClibc/include/linux/ide.h
-#opt/MACHINE-uClibc/include/linux/idr.h
-#opt/MACHINE-uClibc/include/linux/if.h
-#opt/MACHINE-uClibc/include/linux/if_arcnet.h
-#opt/MACHINE-uClibc/include/linux/if_arp.h
-#opt/MACHINE-uClibc/include/linux/if_bonding.h
-#opt/MACHINE-uClibc/include/linux/if_bridge.h
-#opt/MACHINE-uClibc/include/linux/if_cablemodem.h
-#opt/MACHINE-uClibc/include/linux/if_ec.h
-#opt/MACHINE-uClibc/include/linux/if_eql.h
-#opt/MACHINE-uClibc/include/linux/if_ether.h
-#opt/MACHINE-uClibc/include/linux/if_fc.h
-#opt/MACHINE-uClibc/include/linux/if_fddi.h
-#opt/MACHINE-uClibc/include/linux/if_frad.h
-#opt/MACHINE-uClibc/include/linux/if_hippi.h
-#opt/MACHINE-uClibc/include/linux/if_infiniband.h
-#opt/MACHINE-uClibc/include/linux/if_ltalk.h
-#opt/MACHINE-uClibc/include/linux/if_packet.h
-#opt/MACHINE-uClibc/include/linux/if_plip.h
-#opt/MACHINE-uClibc/include/linux/if_ppp.h
-#opt/MACHINE-uClibc/include/linux/if_pppox.h
-#opt/MACHINE-uClibc/include/linux/if_shaper.h
-#opt/MACHINE-uClibc/include/linux/if_slip.h
-#opt/MACHINE-uClibc/include/linux/if_strip.h
-#opt/MACHINE-uClibc/include/linux/if_tr.h
-#opt/MACHINE-uClibc/include/linux/if_tun.h
-#opt/MACHINE-uClibc/include/linux/if_tunnel.h
-#opt/MACHINE-uClibc/include/linux/if_vlan.h
-#opt/MACHINE-uClibc/include/linux/if_wanpipe.h
-#opt/MACHINE-uClibc/include/linux/if_wanpipe_common.h
-#opt/MACHINE-uClibc/include/linux/igmp.h
-#opt/MACHINE-uClibc/include/linux/in.h
-#opt/MACHINE-uClibc/include/linux/in6.h
-#opt/MACHINE-uClibc/include/linux/in_route.h
-#opt/MACHINE-uClibc/include/linux/inetdevice.h
-#opt/MACHINE-uClibc/include/linux/init.h
-#opt/MACHINE-uClibc/include/linux/init_task.h
-#opt/MACHINE-uClibc/include/linux/initrd.h
-#opt/MACHINE-uClibc/include/linux/inotify.h
-#opt/MACHINE-uClibc/include/linux/input.h
-#opt/MACHINE-uClibc/include/linux/interrupt.h
-#opt/MACHINE-uClibc/include/linux/ioctl.h
-#opt/MACHINE-uClibc/include/linux/ioctl32.h
-#opt/MACHINE-uClibc/include/linux/ioport.h
-#opt/MACHINE-uClibc/include/linux/ip.h
-#opt/MACHINE-uClibc/include/linux/ip6_tunnel.h
-#opt/MACHINE-uClibc/include/linux/ip_mp_alg.h
-#opt/MACHINE-uClibc/include/linux/ipc.h
-#opt/MACHINE-uClibc/include/linux/ipmi.h
-#opt/MACHINE-uClibc/include/linux/ipmi_msgdefs.h
-#opt/MACHINE-uClibc/include/linux/ipmi_smi.h
-#opt/MACHINE-uClibc/include/linux/ipsec.h
-#opt/MACHINE-uClibc/include/linux/ipv6.h
-#opt/MACHINE-uClibc/include/linux/ipv6_route.h
-#opt/MACHINE-uClibc/include/linux/ipx.h
-#opt/MACHINE-uClibc/include/linux/irda.h
-#opt/MACHINE-uClibc/include/linux/irq.h
-#opt/MACHINE-uClibc/include/linux/irq_cpustat.h
-#opt/MACHINE-uClibc/include/linux/isapnp.h
-#opt/MACHINE-uClibc/include/linux/isdn
-#opt/MACHINE-uClibc/include/linux/isdn.h
-#opt/MACHINE-uClibc/include/linux/isdn/capicmd.h
-#opt/MACHINE-uClibc/include/linux/isdn/capilli.h
-#opt/MACHINE-uClibc/include/linux/isdn/capiutil.h
-#opt/MACHINE-uClibc/include/linux/isdn/tpam.h
-#opt/MACHINE-uClibc/include/linux/isdn_divertif.h
-#opt/MACHINE-uClibc/include/linux/isdn_ppp.h
-#opt/MACHINE-uClibc/include/linux/isdnif.h
-#opt/MACHINE-uClibc/include/linux/isicom.h
-#opt/MACHINE-uClibc/include/linux/iso_fs.h
-#opt/MACHINE-uClibc/include/linux/istallion.h
-#opt/MACHINE-uClibc/include/linux/ite_gpio.h
-#opt/MACHINE-uClibc/include/linux/ixjuser.h
-#opt/MACHINE-uClibc/include/linux/jbd.h
-#opt/MACHINE-uClibc/include/linux/jffs.h
-#opt/MACHINE-uClibc/include/linux/jffs2.h
-#opt/MACHINE-uClibc/include/linux/jffs2_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/jhash.h
-#opt/MACHINE-uClibc/include/linux/jiffies.h
-#opt/MACHINE-uClibc/include/linux/journal-head.h
-#opt/MACHINE-uClibc/include/linux/joystick.h
-#opt/MACHINE-uClibc/include/linux/kallsyms.h
-#opt/MACHINE-uClibc/include/linux/kbd_diacr.h
-#opt/MACHINE-uClibc/include/linux/kbd_kern.h
-#opt/MACHINE-uClibc/include/linux/kd.h
-#opt/MACHINE-uClibc/include/linux/kdev_t.h
-#opt/MACHINE-uClibc/include/linux/kernel.h
-#opt/MACHINE-uClibc/include/linux/kernel_stat.h
-#opt/MACHINE-uClibc/include/linux/kernelcapi.h
-#opt/MACHINE-uClibc/include/linux/keyboard.h
-#opt/MACHINE-uClibc/include/linux/keyctl.h
-#opt/MACHINE-uClibc/include/linux/kmalloc_sizes.h
-#opt/MACHINE-uClibc/include/linux/kmod.h
-#opt/MACHINE-uClibc/include/linux/kprobes.h
-#opt/MACHINE-uClibc/include/linux/kvm.h
-#opt/MACHINE-uClibc/include/linux/kvm_host.h
-#opt/MACHINE-uClibc/include/linux/kvm_para.h
-#opt/MACHINE-uClibc/include/linux/kvm_types.h
-#opt/MACHINE-uClibc/include/linux/lapb.h
-#opt/MACHINE-uClibc/include/linux/lcd.h
-#opt/MACHINE-uClibc/include/linux/libata.h
-#opt/MACHINE-uClibc/include/linux/libps2.h
-#opt/MACHINE-uClibc/include/linux/limits.h
-#opt/MACHINE-uClibc/include/linux/linkage.h
-#opt/MACHINE-uClibc/include/linux/linux_logo.h
-#opt/MACHINE-uClibc/include/linux/list.h
-#opt/MACHINE-uClibc/include/linux/llc.h
-#opt/MACHINE-uClibc/include/linux/lockd
-#opt/MACHINE-uClibc/include/linux/lockd/bind.h
-#opt/MACHINE-uClibc/include/linux/lockd/debug.h
-#opt/MACHINE-uClibc/include/linux/lockd/nlm.h
-#opt/MACHINE-uClibc/include/linux/lockd/share.h
-#opt/MACHINE-uClibc/include/linux/lockd/sm_inter.h
-#opt/MACHINE-uClibc/include/linux/lockd/xdr.h
-#opt/MACHINE-uClibc/include/linux/lockd/xdr4.h
-#opt/MACHINE-uClibc/include/linux/loop.h
-#opt/MACHINE-uClibc/include/linux/lp.h
-#opt/MACHINE-uClibc/include/linux/major.h
-#opt/MACHINE-uClibc/include/linux/matroxfb.h
-#opt/MACHINE-uClibc/include/linux/mbcache.h
-#opt/MACHINE-uClibc/include/linux/mc6821.h
-#opt/MACHINE-uClibc/include/linux/mca-legacy.h
-#opt/MACHINE-uClibc/include/linux/mca.h
-#opt/MACHINE-uClibc/include/linux/mempool.h
-#opt/MACHINE-uClibc/include/linux/meye.h
-#opt/MACHINE-uClibc/include/linux/mii.h
-#opt/MACHINE-uClibc/include/linux/minix_fs.h
-#opt/MACHINE-uClibc/include/linux/miscdevice.h
-#opt/MACHINE-uClibc/include/linux/mm.h
-#opt/MACHINE-uClibc/include/linux/mm_inline.h
-#opt/MACHINE-uClibc/include/linux/mman.h
-#opt/MACHINE-uClibc/include/linux/mod_devicetable.h
-#opt/MACHINE-uClibc/include/linux/module.h
-#opt/MACHINE-uClibc/include/linux/moduleloader.h
-#opt/MACHINE-uClibc/include/linux/moduleparam.h
-#opt/MACHINE-uClibc/include/linux/mount.h
-#opt/MACHINE-uClibc/include/linux/mroute.h
-#opt/MACHINE-uClibc/include/linux/msdos_fs.h
-#opt/MACHINE-uClibc/include/linux/msg.h
-#opt/MACHINE-uClibc/include/linux/mtd
-#opt/MACHINE-uClibc/include/linux/mtd/blktrans.h
-#opt/MACHINE-uClibc/include/linux/mtd/cfi.h
-#opt/MACHINE-uClibc/include/linux/mtd/cfi_endian.h
-#opt/MACHINE-uClibc/include/linux/mtd/compatmac.h
-#opt/MACHINE-uClibc/include/linux/mtd/concat.h
-#opt/MACHINE-uClibc/include/linux/mtd/doc2000.h
-#opt/MACHINE-uClibc/include/linux/mtd/flashchip.h
-#opt/MACHINE-uClibc/include/linux/mtd/ftl.h
-#opt/MACHINE-uClibc/include/linux/mtd/gen_probe.h
-#opt/MACHINE-uClibc/include/linux/mtd/iflash.h
-#opt/MACHINE-uClibc/include/linux/mtd/jedec.h
-#opt/MACHINE-uClibc/include/linux/mtd/map.h
-#opt/MACHINE-uClibc/include/linux/mtd/nand.h
-#opt/MACHINE-uClibc/include/linux/mtd/nand_ecc.h
-#opt/MACHINE-uClibc/include/linux/mtd/nftl.h
-#opt/MACHINE-uClibc/include/linux/mtd/partitions.h
-#opt/MACHINE-uClibc/include/linux/mtd/pmc551.h
-#opt/MACHINE-uClibc/include/linux/mtio.h
-#opt/MACHINE-uClibc/include/linux/n_r3964.h
-#opt/MACHINE-uClibc/include/linux/namei.h
-#opt/MACHINE-uClibc/include/linux/nbd.h
-#opt/MACHINE-uClibc/include/linux/ncp.h
-#opt/MACHINE-uClibc/include/linux/ncp_fs.h
-#opt/MACHINE-uClibc/include/linux/ncp_mount.h
-#opt/MACHINE-uClibc/include/linux/ncp_no.h
-#opt/MACHINE-uClibc/include/linux/net.h
-#opt/MACHINE-uClibc/include/linux/netdevice.h
-#opt/MACHINE-uClibc/include/linux/netfilter
-#opt/MACHINE-uClibc/include/linux/netfilter.h
-#opt/MACHINE-uClibc/include/linux/netfilter/Kbuild
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_amanda.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_common.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_dccp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_ftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_asn1.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_h323_types.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_irc.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_pptp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_proto_gre.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sane.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_sip.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tcp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nf_conntrack_tuple_common.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_compat.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_log.h
-#opt/MACHINE-uClibc/include/linux/netfilter/nfnetlink_queue.h
-#opt/MACHINE-uClibc/include/linux/netfilter/x_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CLASSIFY.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_CONNSECMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_DSCP.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_IMQ.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_LED.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFLOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_NFQUEUE.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_RATEEST.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_SECMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPMSS.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TCPOPTSTRIP.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_TPROXY.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_cluster.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_comment.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connbytes.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_connmark.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_dccp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_dscp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_hashlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_iprange.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_layer7.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_osf.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_policy.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_quota.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_rateest.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_realm.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_recent.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_socket.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_state.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_statistic.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_string.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpmss.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_tcpudp.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_time.h
-#opt/MACHINE-uClibc/include/linux/netfilter/xt_u32.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp
-#opt/MACHINE-uClibc/include/linux/netfilter_arp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp/arp_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_arp/arpt_mangle.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_802_3.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_among.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_arpreply.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ip.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_log.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_m.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_mark_t.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_nat.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_redirect.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_stp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_ulog.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebt_vlan.h
-#opt/MACHINE-uClibc/include/linux/netfilter_bridge/ebtables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_decnet.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_amanda.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_core.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_ftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_icmp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_irc.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_protocol.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tcp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tftp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_conntrack_tuple.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_core.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_protocol.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_nat_rule.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_queue.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ip_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLASSIFY.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CLUSTERIP.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_CONNMARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_DSCP.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ECN.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_LOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_REJECT.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_SAME.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TCPMSS.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_TOS.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ULOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_addrtype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ah.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_comment.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_connmark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_conntrack.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_dscp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ecn.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_hashlimit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_helper.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_iprange.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_pkttype.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_realm.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_recent.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_sctp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_state.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tcpmss.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_tos.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/ipt_ttl.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/listhelp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv4/lockhelp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6_tables.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_LOG.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_MARK.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ah.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_esp.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_frag.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_hl.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_ipv6header.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_length.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_limit.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mac.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_mark.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_multiport.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_opts.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_owner.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_physdev.h
-#opt/MACHINE-uClibc/include/linux/netfilter_ipv6/ip6t_rt.h
-#opt/MACHINE-uClibc/include/linux/netlink.h
-#opt/MACHINE-uClibc/include/linux/netrom.h
-#opt/MACHINE-uClibc/include/linux/nfs.h
-#opt/MACHINE-uClibc/include/linux/nfs2.h
-#opt/MACHINE-uClibc/include/linux/nfs3.h
-#opt/MACHINE-uClibc/include/linux/nfs4.h
-#opt/MACHINE-uClibc/include/linux/nfs4_mount.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs_i.h
-#opt/MACHINE-uClibc/include/linux/nfs_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/nfs_idmap.h
-#opt/MACHINE-uClibc/include/linux/nfs_mount.h
-#opt/MACHINE-uClibc/include/linux/nfs_xdr.h
-#opt/MACHINE-uClibc/include/linux/nfsd
-#opt/MACHINE-uClibc/include/linux/nfsd/const.h
-#opt/MACHINE-uClibc/include/linux/nfsd/debug.h
-#opt/MACHINE-uClibc/include/linux/nfsd/export.h
-#opt/MACHINE-uClibc/include/linux/nfsd/interface.h
-#opt/MACHINE-uClibc/include/linux/nfsd/nfsd.h
-#opt/MACHINE-uClibc/include/linux/nfsd/nfsfh.h
-#opt/MACHINE-uClibc/include/linux/nfsd/state.h
-#opt/MACHINE-uClibc/include/linux/nfsd/stats.h
-#opt/MACHINE-uClibc/include/linux/nfsd/syscall.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr3.h
-#opt/MACHINE-uClibc/include/linux/nfsd/xdr4.h
-#opt/MACHINE-uClibc/include/linux/nls.h
-#opt/MACHINE-uClibc/include/linux/nmi.h
-#opt/MACHINE-uClibc/include/linux/node.h
-#opt/MACHINE-uClibc/include/linux/notifier.h
-#opt/MACHINE-uClibc/include/linux/nubus.h
-#opt/MACHINE-uClibc/include/linux/numa.h
-#opt/MACHINE-uClibc/include/linux/nvram.h
-#opt/MACHINE-uClibc/include/linux/openprom_fs.h
-#opt/MACHINE-uClibc/include/linux/oprofile.h
-#opt/MACHINE-uClibc/include/linux/pagemap.h
-#opt/MACHINE-uClibc/include/linux/pagevec.h
-#opt/MACHINE-uClibc/include/linux/param.h
-#opt/MACHINE-uClibc/include/linux/parport.h
-#opt/MACHINE-uClibc/include/linux/parport_pc.h
-#opt/MACHINE-uClibc/include/linux/parser.h
-#opt/MACHINE-uClibc/include/linux/patchkey.h
-#opt/MACHINE-uClibc/include/linux/pci-dynids.h
-#opt/MACHINE-uClibc/include/linux/pci.h
-#opt/MACHINE-uClibc/include/linux/pci_ids.h
-#opt/MACHINE-uClibc/include/linux/pcieport_if.h
-#opt/MACHINE-uClibc/include/linux/percpu.h
-#opt/MACHINE-uClibc/include/linux/percpu_counter.h
-#opt/MACHINE-uClibc/include/linux/personality.h
-#opt/MACHINE-uClibc/include/linux/pfkeyv2.h
-#opt/MACHINE-uClibc/include/linux/pg.h
-#opt/MACHINE-uClibc/include/linux/pipe_fs_i.h
-#opt/MACHINE-uClibc/include/linux/pkt_cls.h
-#opt/MACHINE-uClibc/include/linux/pkt_sched.h
-#opt/MACHINE-uClibc/include/linux/pktcdvd.h
-#opt/MACHINE-uClibc/include/linux/pmu.h
-#opt/MACHINE-uClibc/include/linux/poll.h
-#opt/MACHINE-uClibc/include/linux/posix-timers.h
-#opt/MACHINE-uClibc/include/linux/posix_acl.h
-#opt/MACHINE-uClibc/include/linux/posix_acl_xattr.h
-#opt/MACHINE-uClibc/include/linux/posix_types.h
-#opt/MACHINE-uClibc/include/linux/ppdev.h
-#opt/MACHINE-uClibc/include/linux/ppp-comp.h
-#opt/MACHINE-uClibc/include/linux/ppp_channel.h
-#opt/MACHINE-uClibc/include/linux/ppp_defs.h
-#opt/MACHINE-uClibc/include/linux/prctl.h
-#opt/MACHINE-uClibc/include/linux/preempt.h
-#opt/MACHINE-uClibc/include/linux/prefetch.h
-#opt/MACHINE-uClibc/include/linux/proc_fs.h
-#opt/MACHINE-uClibc/include/linux/ps2esdi.h
-#opt/MACHINE-uClibc/include/linux/ptrace.h
-#opt/MACHINE-uClibc/include/linux/qic117.h
-#opt/MACHINE-uClibc/include/linux/qnx4_fs.h
-#opt/MACHINE-uClibc/include/linux/qnxtypes.h
-#opt/MACHINE-uClibc/include/linux/quota.h
-#opt/MACHINE-uClibc/include/linux/quotaio_v1.h
-#opt/MACHINE-uClibc/include/linux/quotaio_v2.h
-#opt/MACHINE-uClibc/include/linux/radeonfb.h
-#opt/MACHINE-uClibc/include/linux/raid
-#opt/MACHINE-uClibc/include/linux/raid/linear.h
-#opt/MACHINE-uClibc/include/linux/raid/md.h
-#opt/MACHINE-uClibc/include/linux/raid/md_p.h
-#opt/MACHINE-uClibc/include/linux/raid/md_u.h
-#opt/MACHINE-uClibc/include/linux/raid/multipath.h
-#opt/MACHINE-uClibc/include/linux/raid/raid0.h
-#opt/MACHINE-uClibc/include/linux/raid/raid1.h
-#opt/MACHINE-uClibc/include/linux/raid/raid5.h
-#opt/MACHINE-uClibc/include/linux/raid/xor.h
-#opt/MACHINE-uClibc/include/linux/random.h
-#opt/MACHINE-uClibc/include/linux/raw.h
-#opt/MACHINE-uClibc/include/linux/rbtree.h
-#opt/MACHINE-uClibc/include/linux/reboot.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_acl.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_fs.h
-#opt/MACHINE-uClibc/include/linux/reiserfs_xattr.h
-#opt/MACHINE-uClibc/include/linux/resource.h
-#opt/MACHINE-uClibc/include/linux/romfs_fs.h
-#opt/MACHINE-uClibc/include/linux/root_dev.h
-#opt/MACHINE-uClibc/include/linux/rose.h
-#opt/MACHINE-uClibc/include/linux/route.h
-#opt/MACHINE-uClibc/include/linux/rtc.h
-#opt/MACHINE-uClibc/include/linux/rtnetlink.h
-#opt/MACHINE-uClibc/include/linux/sc26198.h
-#opt/MACHINE-uClibc/include/linux/scc.h
-#opt/MACHINE-uClibc/include/linux/sched.h
-#opt/MACHINE-uClibc/include/linux/sctp.h
-#opt/MACHINE-uClibc/include/linux/scx200.h
-#opt/MACHINE-uClibc/include/linux/scx200_gpio.h
-#opt/MACHINE-uClibc/include/linux/sdla.h
-#opt/MACHINE-uClibc/include/linux/sdla_asy.h
-#opt/MACHINE-uClibc/include/linux/sdla_chdlc.h
-#opt/MACHINE-uClibc/include/linux/sdla_fr.h
-#opt/MACHINE-uClibc/include/linux/sdla_ppp.h
-#opt/MACHINE-uClibc/include/linux/sdla_x25.h
-#opt/MACHINE-uClibc/include/linux/sdladrv.h
-#opt/MACHINE-uClibc/include/linux/sdlapci.h
-#opt/MACHINE-uClibc/include/linux/sdlasfm.h
-#opt/MACHINE-uClibc/include/linux/securebits.h
-#opt/MACHINE-uClibc/include/linux/security.h
-#opt/MACHINE-uClibc/include/linux/selection.h
-#opt/MACHINE-uClibc/include/linux/selinux_netlink.h
-#opt/MACHINE-uClibc/include/linux/sem.h
-#opt/MACHINE-uClibc/include/linux/seqlock.h
-#opt/MACHINE-uClibc/include/linux/serial.h
-#opt/MACHINE-uClibc/include/linux/serial167.h
-#opt/MACHINE-uClibc/include/linux/serialP.h
-#opt/MACHINE-uClibc/include/linux/serial_8250.h
-#opt/MACHINE-uClibc/include/linux/serial_core.h
-#opt/MACHINE-uClibc/include/linux/serial_reg.h
-#opt/MACHINE-uClibc/include/linux/serio.h
-#opt/MACHINE-uClibc/include/linux/shm.h
-#opt/MACHINE-uClibc/include/linux/siginfo.h
-#opt/MACHINE-uClibc/include/linux/signal.h
-#opt/MACHINE-uClibc/include/linux/skbuff.h
-#opt/MACHINE-uClibc/include/linux/smb.h
-#opt/MACHINE-uClibc/include/linux/smb_fs.h
-#opt/MACHINE-uClibc/include/linux/smb_mount.h
-#opt/MACHINE-uClibc/include/linux/smbno.h
-#opt/MACHINE-uClibc/include/linux/smp_lock.h
-#opt/MACHINE-uClibc/include/linux/snmp.h
-#opt/MACHINE-uClibc/include/linux/socket.h
-#opt/MACHINE-uClibc/include/linux/sockios.h
-#opt/MACHINE-uClibc/include/linux/som.h
-#opt/MACHINE-uClibc/include/linux/sonet.h
-#opt/MACHINE-uClibc/include/linux/sonypi.h
-#opt/MACHINE-uClibc/include/linux/sound.h
-#opt/MACHINE-uClibc/include/linux/soundcard.h
-#opt/MACHINE-uClibc/include/linux/spinlock.h
-#opt/MACHINE-uClibc/include/linux/stallion.h
-#opt/MACHINE-uClibc/include/linux/stddef.h
-#opt/MACHINE-uClibc/include/linux/stringify.h
-#opt/MACHINE-uClibc/include/linux/sunrpc
-#opt/MACHINE-uClibc/include/linux/sunrpc/cache.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/clnt.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/debug.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_asn1.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_krb5.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/gss_spkm3.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/sched.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/stats.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/svc.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/svcsock.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/timer.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/types.h
-#opt/MACHINE-uClibc/include/linux/sunrpc/xprt.h
-#opt/MACHINE-uClibc/include/linux/superhyway.h
-#opt/MACHINE-uClibc/include/linux/suspend.h
-#opt/MACHINE-uClibc/include/linux/swap.h
-#opt/MACHINE-uClibc/include/linux/swapops.h
-#opt/MACHINE-uClibc/include/linux/synclink.h
-#opt/MACHINE-uClibc/include/linux/sys.h
-#opt/MACHINE-uClibc/include/linux/syscalls.h
-#opt/MACHINE-uClibc/include/linux/sysctl.h
-#opt/MACHINE-uClibc/include/linux/sysdev.h
-#opt/MACHINE-uClibc/include/linux/sysfs.h
-#opt/MACHINE-uClibc/include/linux/sysrq.h
-#opt/MACHINE-uClibc/include/linux/sysv_fs.h
-#opt/MACHINE-uClibc/include/linux/tc_act
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_defact.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_gact.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_ipt.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_mirred.h
-#opt/MACHINE-uClibc/include/linux/tc_act/tc_pedit.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_cmp.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_meta.h
-#opt/MACHINE-uClibc/include/linux/tc_ematch/tc_em_nbyte.h
-#opt/MACHINE-uClibc/include/linux/tcp.h
-#opt/MACHINE-uClibc/include/linux/tcp_diag.h
-#opt/MACHINE-uClibc/include/linux/telephony.h
-#opt/MACHINE-uClibc/include/linux/termios.h
-#opt/MACHINE-uClibc/include/linux/threads.h
-#opt/MACHINE-uClibc/include/linux/ticable.h
-#opt/MACHINE-uClibc/include/linux/time.h
-#opt/MACHINE-uClibc/include/linux/times.h
-#opt/MACHINE-uClibc/include/linux/timex.h
-#opt/MACHINE-uClibc/include/linux/tiocl.h
-#opt/MACHINE-uClibc/include/linux/toshiba.h
-#opt/MACHINE-uClibc/include/linux/tty.h
-#opt/MACHINE-uClibc/include/linux/types.h
-#opt/MACHINE-uClibc/include/linux/udf_fs.h
-#opt/MACHINE-uClibc/include/linux/udf_fs_i.h
-#opt/MACHINE-uClibc/include/linux/udf_fs_sb.h
-#opt/MACHINE-uClibc/include/linux/udp.h
-#opt/MACHINE-uClibc/include/linux/ufs_fs.h
-#opt/MACHINE-uClibc/include/linux/uinput.h
-#opt/MACHINE-uClibc/include/linux/uio.h
-#opt/MACHINE-uClibc/include/linux/ultrasound.h
-#opt/MACHINE-uClibc/include/linux/umem.h
-#opt/MACHINE-uClibc/include/linux/un.h
-#opt/MACHINE-uClibc/include/linux/unistd.h
-#opt/MACHINE-uClibc/include/linux/usb.h
-#opt/MACHINE-uClibc/include/linux/usb_cdc.h
-#opt/MACHINE-uClibc/include/linux/usb_ch9.h
-#opt/MACHINE-uClibc/include/linux/usb_gadgetfs.h
-#opt/MACHINE-uClibc/include/linux/usbdevice_fs.h
-#opt/MACHINE-uClibc/include/linux/user.h
-#opt/MACHINE-uClibc/include/linux/utime.h
-#opt/MACHINE-uClibc/include/linux/uts.h
-#opt/MACHINE-uClibc/include/linux/utsname.h
-#opt/MACHINE-uClibc/include/linux/version.h
-#opt/MACHINE-uClibc/include/linux/video_decoder.h
-#opt/MACHINE-uClibc/include/linux/video_encoder.h
-#opt/MACHINE-uClibc/include/linux/videodev.h
-#opt/MACHINE-uClibc/include/linux/videodev2.h
-#opt/MACHINE-uClibc/include/linux/videotext.h
-#opt/MACHINE-uClibc/include/linux/vmalloc.h
-#opt/MACHINE-uClibc/include/linux/vt.h
-#opt/MACHINE-uClibc/include/linux/vt_buffer.h
-#opt/MACHINE-uClibc/include/linux/vt_kern.h
-#opt/MACHINE-uClibc/include/linux/wait.h
-#opt/MACHINE-uClibc/include/linux/wanpipe.h
-#opt/MACHINE-uClibc/include/linux/wanrouter.h
-#opt/MACHINE-uClibc/include/linux/watchdog.h
-#opt/MACHINE-uClibc/include/linux/wavefront.h
-#opt/MACHINE-uClibc/include/linux/wireless.h
-#opt/MACHINE-uClibc/include/linux/workqueue.h
-#opt/MACHINE-uClibc/include/linux/x25.h
-#opt/MACHINE-uClibc/include/linux/xattr.h
-#opt/MACHINE-uClibc/include/linux/xattr_acl.h
-#opt/MACHINE-uClibc/include/linux/xfrm.h
-#opt/MACHINE-uClibc/include/linux/yam.h
-#opt/MACHINE-uClibc/include/linux/zftape.h
-#opt/MACHINE-uClibc/include/linux/zorro.h
-#opt/MACHINE-uClibc/include/linux/zorro_ids.h
-#opt/MACHINE-uClibc/include/locale.h
-#opt/MACHINE-uClibc/include/malloc.h
-#opt/MACHINE-uClibc/include/math.h
-#opt/MACHINE-uClibc/include/memory.h
-#opt/MACHINE-uClibc/include/mntent.h
-#opt/MACHINE-uClibc/include/mqueue.h
-#opt/MACHINE-uClibc/include/net
-#opt/MACHINE-uClibc/include/net/ethernet.h
-#opt/MACHINE-uClibc/include/net/if.h
-#opt/MACHINE-uClibc/include/net/if_arp.h
-#opt/MACHINE-uClibc/include/net/if_packet.h
-#opt/MACHINE-uClibc/include/net/if_ppp.h
-#opt/MACHINE-uClibc/include/net/if_shaper.h
-#opt/MACHINE-uClibc/include/net/if_slip.h
-#opt/MACHINE-uClibc/include/net/ppp-comp.h
-#opt/MACHINE-uClibc/include/net/ppp_defs.h
-#opt/MACHINE-uClibc/include/net/route.h
-#opt/MACHINE-uClibc/include/netax25
-#opt/MACHINE-uClibc/include/netax25/ax25.h
-#opt/MACHINE-uClibc/include/netdb.h
-#opt/MACHINE-uClibc/include/neteconet
-#opt/MACHINE-uClibc/include/neteconet/ec.h
-#opt/MACHINE-uClibc/include/netinet
-#opt/MACHINE-uClibc/include/netinet/ether.h
-#opt/MACHINE-uClibc/include/netinet/icmp6.h
-#opt/MACHINE-uClibc/include/netinet/if_ether.h
-#opt/MACHINE-uClibc/include/netinet/if_fddi.h
-#opt/MACHINE-uClibc/include/netinet/if_tr.h
-#opt/MACHINE-uClibc/include/netinet/igmp.h
-#opt/MACHINE-uClibc/include/netinet/in.h
-#opt/MACHINE-uClibc/include/netinet/in_systm.h
-#opt/MACHINE-uClibc/include/netinet/ip.h
-#opt/MACHINE-uClibc/include/netinet/ip6.h
-#opt/MACHINE-uClibc/include/netinet/ip_fw.h
-#opt/MACHINE-uClibc/include/netinet/ip_icmp.h
-#opt/MACHINE-uClibc/include/netinet/ip_tcp.h
-#opt/MACHINE-uClibc/include/netinet/ip_udp.h
-#opt/MACHINE-uClibc/include/netinet/protocols.h
-#opt/MACHINE-uClibc/include/netinet/tcp.h
-#opt/MACHINE-uClibc/include/netinet/udp.h
-#opt/MACHINE-uClibc/include/netipx
-#opt/MACHINE-uClibc/include/netipx/ipx.h
-#opt/MACHINE-uClibc/include/netpacket
-#opt/MACHINE-uClibc/include/netpacket/packet.h
-#opt/MACHINE-uClibc/include/nl_types.h
-#opt/MACHINE-uClibc/include/obstack.h
-#opt/MACHINE-uClibc/include/paths.h
-#opt/MACHINE-uClibc/include/poll.h
-#opt/MACHINE-uClibc/include/printf.h
-#opt/MACHINE-uClibc/include/protocols
-#opt/MACHINE-uClibc/include/protocols/routed.h
-#opt/MACHINE-uClibc/include/protocols/rwhod.h
-#opt/MACHINE-uClibc/include/protocols/talkd.h
-#opt/MACHINE-uClibc/include/protocols/timed.h
-#opt/MACHINE-uClibc/include/pthread.h
-#opt/MACHINE-uClibc/include/pty.h
-#opt/MACHINE-uClibc/include/pwd.h
-#opt/MACHINE-uClibc/include/regex.h
-#opt/MACHINE-uClibc/include/regexp.h
-#opt/MACHINE-uClibc/include/resolv.h
-#opt/MACHINE-uClibc/include/rpc
-#opt/MACHINE-uClibc/include/rpc/auth.h
-#opt/MACHINE-uClibc/include/rpc/auth_des.h
-#opt/MACHINE-uClibc/include/rpc/auth_unix.h
-#opt/MACHINE-uClibc/include/rpc/clnt.h
-#opt/MACHINE-uClibc/include/rpc/des_crypt.h
-#opt/MACHINE-uClibc/include/rpc/key_prot.h
-#opt/MACHINE-uClibc/include/rpc/netdb.h
-#opt/MACHINE-uClibc/include/rpc/pmap_clnt.h
-#opt/MACHINE-uClibc/include/rpc/pmap_prot.h
-#opt/MACHINE-uClibc/include/rpc/pmap_rmt.h
-#opt/MACHINE-uClibc/include/rpc/rpc.h
-#opt/MACHINE-uClibc/include/rpc/rpc_des.h
-#opt/MACHINE-uClibc/include/rpc/rpc_msg.h
-#opt/MACHINE-uClibc/include/rpc/svc.h
-#opt/MACHINE-uClibc/include/rpc/svc_auth.h
-#opt/MACHINE-uClibc/include/rpc/types.h
-#opt/MACHINE-uClibc/include/rpc/xdr.h
-#opt/MACHINE-uClibc/include/sched.h
-#opt/MACHINE-uClibc/include/scsi
-#opt/MACHINE-uClibc/include/scsi/scsi.h
-#opt/MACHINE-uClibc/include/scsi/scsi_ioctl.h
-#opt/MACHINE-uClibc/include/scsi/sg.h
-#opt/MACHINE-uClibc/include/search.h
-#opt/MACHINE-uClibc/include/semaphore.h
-#opt/MACHINE-uClibc/include/setjmp.h
-#opt/MACHINE-uClibc/include/sgtty.h
-#opt/MACHINE-uClibc/include/shadow.h
-#opt/MACHINE-uClibc/include/signal.h
-#opt/MACHINE-uClibc/include/stdint.h
-#opt/MACHINE-uClibc/include/stdio.h
-#opt/MACHINE-uClibc/include/stdio_ext.h
-#opt/MACHINE-uClibc/include/stdlib.h
-#opt/MACHINE-uClibc/include/string.h
-#opt/MACHINE-uClibc/include/strings.h
-#opt/MACHINE-uClibc/include/sys
-#opt/MACHINE-uClibc/include/sys/bitypes.h
-#opt/MACHINE-uClibc/include/sys/cdefs.h
-#opt/MACHINE-uClibc/include/sys/debugreg.h
-#opt/MACHINE-uClibc/include/sys/dir.h
-#opt/MACHINE-uClibc/include/sys/elf.h
-#opt/MACHINE-uClibc/include/sys/epoll.h
-#opt/MACHINE-uClibc/include/sys/errno.h
-#opt/MACHINE-uClibc/include/sys/fcntl.h
-#opt/MACHINE-uClibc/include/sys/file.h
-#opt/MACHINE-uClibc/include/sys/fsuid.h
-#opt/MACHINE-uClibc/include/sys/io.h
-#opt/MACHINE-uClibc/include/sys/ioctl.h
-#opt/MACHINE-uClibc/include/sys/ipc.h
-#opt/MACHINE-uClibc/include/sys/kd.h
-#opt/MACHINE-uClibc/include/sys/kdaemon.h
-#opt/MACHINE-uClibc/include/sys/klog.h
-#opt/MACHINE-uClibc/include/sys/mman.h
-#opt/MACHINE-uClibc/include/sys/mount.h
-#opt/MACHINE-uClibc/include/sys/msg.h
-#opt/MACHINE-uClibc/include/sys/mtio.h
-#opt/MACHINE-uClibc/include/sys/param.h
-#opt/MACHINE-uClibc/include/sys/perm.h
-#opt/MACHINE-uClibc/include/sys/personality.h
-#opt/MACHINE-uClibc/include/sys/poll.h
-#opt/MACHINE-uClibc/include/sys/prctl.h
-#opt/MACHINE-uClibc/include/sys/procfs.h
-#opt/MACHINE-uClibc/include/sys/ptrace.h
-#opt/MACHINE-uClibc/include/sys/queue.h
-#opt/MACHINE-uClibc/include/sys/quota.h
-#opt/MACHINE-uClibc/include/sys/reboot.h
-#opt/MACHINE-uClibc/include/sys/reg.h
-#opt/MACHINE-uClibc/include/sys/resource.h
-#opt/MACHINE-uClibc/include/sys/select.h
-#opt/MACHINE-uClibc/include/sys/sem.h
-#opt/MACHINE-uClibc/include/sys/sendfile.h
-#opt/MACHINE-uClibc/include/sys/shm.h
-#opt/MACHINE-uClibc/include/sys/signal.h
-#opt/MACHINE-uClibc/include/sys/socket.h
-#opt/MACHINE-uClibc/include/sys/socketvar.h
-#opt/MACHINE-uClibc/include/sys/soundcard.h
-#opt/MACHINE-uClibc/include/sys/stat.h
-#opt/MACHINE-uClibc/include/sys/statfs.h
-#opt/MACHINE-uClibc/include/sys/statvfs.h
-#opt/MACHINE-uClibc/include/sys/swap.h
-#opt/MACHINE-uClibc/include/sys/syscall.h
-#opt/MACHINE-uClibc/include/sys/sysctl.h
-#opt/MACHINE-uClibc/include/sys/sysinfo.h
-#opt/MACHINE-uClibc/include/sys/syslog.h
-#opt/MACHINE-uClibc/include/sys/sysmacros.h
-#opt/MACHINE-uClibc/include/sys/termios.h
-#opt/MACHINE-uClibc/include/sys/time.h
-#opt/MACHINE-uClibc/include/sys/timeb.h
-#opt/MACHINE-uClibc/include/sys/times.h
-#opt/MACHINE-uClibc/include/sys/timex.h
-#opt/MACHINE-uClibc/include/sys/ttydefaults.h
-#opt/MACHINE-uClibc/include/sys/types.h
-#opt/MACHINE-uClibc/include/sys/ucontext.h
-#opt/MACHINE-uClibc/include/sys/uio.h
-#opt/MACHINE-uClibc/include/sys/un.h
-#opt/MACHINE-uClibc/include/sys/unistd.h
-#opt/MACHINE-uClibc/include/sys/user.h
-#opt/MACHINE-uClibc/include/sys/ustat.h
-#opt/MACHINE-uClibc/include/sys/utsname.h
-#opt/MACHINE-uClibc/include/sys/vfs.h
-#opt/MACHINE-uClibc/include/sys/vm86.h
-#opt/MACHINE-uClibc/include/sys/vt.h
-#opt/MACHINE-uClibc/include/sys/wait.h
-#opt/MACHINE-uClibc/include/sys/xattr.h
-#opt/MACHINE-uClibc/include/syscall.h
-#opt/MACHINE-uClibc/include/sysexits.h
-#opt/MACHINE-uClibc/include/syslog.h
-#opt/MACHINE-uClibc/include/tar.h
-#opt/MACHINE-uClibc/include/termio.h
-#opt/MACHINE-uClibc/include/termios.h
-#opt/MACHINE-uClibc/include/tgmath.h
-#opt/MACHINE-uClibc/include/thread_db.h
-#opt/MACHINE-uClibc/include/time.h
-#opt/MACHINE-uClibc/include/ttyent.h
-#opt/MACHINE-uClibc/include/ucontext.h
-#opt/MACHINE-uClibc/include/ulimit.h
-#opt/MACHINE-uClibc/include/unistd.h
-#opt/MACHINE-uClibc/include/ustat.h
-#opt/MACHINE-uClibc/include/utime.h
-#opt/MACHINE-uClibc/include/utmp.h
-#opt/MACHINE-uClibc/include/values.h
-#opt/MACHINE-uClibc/include/wait.h
-#opt/MACHINE-uClibc/include/wchar.h
-#opt/MACHINE-uClibc/include/wctype.h
-#opt/MACHINE-uClibc/include/xlocale.h
-#opt/MACHINE-uClibc/lib/Scrt1.o
-#opt/MACHINE-uClibc/lib/crt1.o
-#opt/MACHINE-uClibc/lib/crti.o
-#opt/MACHINE-uClibc/lib/crtn.o
-#opt/MACHINE-uClibc/lib/ld-uClibc-0.9.28.so
-#opt/MACHINE-uClibc/lib/ld-uClibc.so.0
-#opt/MACHINE-uClibc/lib/ldscripts
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.x
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xbn
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xd
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xdw
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xn
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xr
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xs
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsc
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xsw
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xu
-#opt/MACHINE-uClibc/lib/ldscripts/elf_i386.xw
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.x
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xbn
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xn
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xr
-#opt/MACHINE-uClibc/lib/ldscripts/i386linux.xu
-#opt/MACHINE-uClibc/lib/libc.a
-#opt/MACHINE-uClibc/lib/libc.so
-#opt/MACHINE-uClibc/lib/libc.so.0
-#opt/MACHINE-uClibc/lib/libc_pic.a
-#opt/MACHINE-uClibc/lib/libcrypt-0.9.28.so
-#opt/MACHINE-uClibc/lib/libcrypt.a
-#opt/MACHINE-uClibc/lib/libcrypt.so
-#opt/MACHINE-uClibc/lib/libcrypt.so.0
-#opt/MACHINE-uClibc/lib/libcrypt_pic.a
-#opt/MACHINE-uClibc/lib/libdl-0.9.28.so
-#opt/MACHINE-uClibc/lib/libdl.a
-#opt/MACHINE-uClibc/lib/libdl.so
-#opt/MACHINE-uClibc/lib/libdl.so.0
-#opt/MACHINE-uClibc/lib/libm-0.9.28.so
-#opt/MACHINE-uClibc/lib/libm.a
-#opt/MACHINE-uClibc/lib/libm.so
-#opt/MACHINE-uClibc/lib/libm.so.0
-#opt/MACHINE-uClibc/lib/libm_pic.a
-#opt/MACHINE-uClibc/lib/libnsl-0.9.28.so
-#opt/MACHINE-uClibc/lib/libnsl.a
-#opt/MACHINE-uClibc/lib/libnsl.so
-#opt/MACHINE-uClibc/lib/libnsl.so.0
-#opt/MACHINE-uClibc/lib/libnsl_pic.a
-#opt/MACHINE-uClibc/lib/libpthread-0.9.28.so
-#opt/MACHINE-uClibc/lib/libpthread.a
-#opt/MACHINE-uClibc/lib/libpthread.so
-#opt/MACHINE-uClibc/lib/libpthread.so.0
-#opt/MACHINE-uClibc/lib/libpthread_pic.a
-#opt/MACHINE-uClibc/lib/libresolv-0.9.28.so
-#opt/MACHINE-uClibc/lib/libresolv.a
-#opt/MACHINE-uClibc/lib/libresolv.so
-#opt/MACHINE-uClibc/lib/libresolv.so.0
-#opt/MACHINE-uClibc/lib/libresolv_pic.a
-#opt/MACHINE-uClibc/lib/librt-0.9.28.so
-#opt/MACHINE-uClibc/lib/librt.a
-#opt/MACHINE-uClibc/lib/librt.so
-#opt/MACHINE-uClibc/lib/librt.so.0
-#opt/MACHINE-uClibc/lib/librt_pic.a
-#opt/MACHINE-uClibc/lib/libuClibc-0.9.28.so
-#opt/MACHINE-uClibc/lib/libutil-0.9.28.so
-#opt/MACHINE-uClibc/lib/libutil.a
-#opt/MACHINE-uClibc/lib/libutil.so
-#opt/MACHINE-uClibc/lib/libutil.so.0
-#opt/MACHINE-uClibc/lib/libutil_pic.a
index 5e5cb5a0d8b9b2a9e2d8db4d01c32f3a548413ed..58df07cee369c530e81351195cb94f1a45b5c17b 100644 (file)
@@ -31,6 +31,7 @@ lib/udev
 #lib/udev/devices/stdin
 #lib/udev/devices/stdout
 #lib/udev/edd_id
+#lib/udev/enable_codel
 #lib/udev/firmware.sh
 #lib/udev/path_id
 #lib/udev/rules.d
@@ -43,6 +44,7 @@ lib/udev
 #lib/udev/rules.d/61-persistent-storage-edd.rules
 #lib/udev/rules.d/80-drivers.rules
 #lib/udev/rules.d/95-udev-late.rules
+#lib/udev/rules.d/99-codel.rules
 #lib/udev/scsi_id
 #lib/udev/usb_id
 #lib/udev/vol_id
index b275de54b94f24af488d45e6319563d9243794b0..8c4684360c4e85b8efc7de71bf37002f609195f8 100644 (file)
@@ -1,7 +1,9 @@
 lib/libz.so.1
-lib/libz.so.1.2.3
+lib/libz.so.1.2.7
 #usr/include/zconf.h
 #usr/include/zlib.h
 #usr/lib/libz.a
 usr/lib/libz.so
+#usr/lib/pkgconfig
+#usr/lib/pkgconfig/zlib.pc
 #usr/share/man/man3/zlib.3
diff --git a/config/rootfiles/core/strongswan/exclude b/config/rootfiles/core/strongswan/exclude
new file mode 100644 (file)
index 0000000..7360266
--- /dev/null
@@ -0,0 +1,12 @@
+srv/web/ipfire/html/proxy.pac
+etc/udev/rules.d/30-persistent-network.rules
+etc/ipsec.conf
+etc/ipsec.secrets
+etc/ipsec.user.conf
+etc/ipsec.user.secrets
+var/updatecache
+etc/localtime
+var/ipfire/ovpn
+etc/ssh/ssh_config
+etc/ssh/sshd_config
+etc/ssl/openssl.cnf
diff --git a/config/rootfiles/core/strongswan/filelists/files b/config/rootfiles/core/strongswan/filelists/files
new file mode 100644 (file)
index 0000000..4aa5440
--- /dev/null
@@ -0,0 +1,6 @@
+etc/system-release
+etc/issue
+etc/rc.d/init.d/tmpfs
+srv/web/ipfire/cgi-bin/services.cgi
+srv/web/ipfire/cgi-bin/vpnmain.cgi
+usr/local/bin/ipsecctrl
diff --git a/config/rootfiles/core/strongswan/filelists/strongswan b/config/rootfiles/core/strongswan/filelists/strongswan
new file mode 120000 (symlink)
index 0000000..90c727e
--- /dev/null
@@ -0,0 +1 @@
+../../../common/strongswan
\ No newline at end of file
diff --git a/config/rootfiles/core/strongswan/meta b/config/rootfiles/core/strongswan/meta
new file mode 100644 (file)
index 0000000..d547fa8
--- /dev/null
@@ -0,0 +1 @@
+DEPS=""
diff --git a/config/rootfiles/core/strongswan/update.sh b/config/rootfiles/core/strongswan/update.sh
new file mode 100644 (file)
index 0000000..7ef3f2f
--- /dev/null
@@ -0,0 +1,89 @@
+#!/bin/bash
+############################################################################
+#                                                                          #
+# This file is part of the IPFire Firewall.                                #
+#                                                                          #
+# IPFire is free software; you can redistribute it and/or modify           #
+# it under the terms of the GNU General Public License as published by     #
+# the Free Software Foundation; either version 3 of the License, or        #
+# (at your option) any later version.                                      #
+#                                                                          #
+# IPFire is distributed in the hope that it will be useful,                #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
+# GNU General Public License for more details.                             #
+#                                                                          #
+# You should have received a copy of the GNU General Public License        #
+# along with IPFire; if not, write to the Free Software                    #
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
+#                                                                          #
+# Copyright (C) 2012 IPFire-Team <info@ipfire.org>.                        #
+#                                                                          #
+############################################################################
+#
+. /opt/pakfire/lib/functions.sh
+/usr/local/bin/backupctrl exclude >/dev/null 2>&1
+
+#
+# Remove old core updates from pakfire cache to save space...
+core=61
+for (( i=1; i<=$core; i++ ))
+do
+       rm -f /var/cache/pakfire/core-upgrade-*-$i.ipfire
+done
+
+#
+#Stop services
+ipsecctrl D
+
+#
+#Extract files
+extract_files
+
+# Remove old pluto binaries.
+rm -f /usr/libexec/ipsec/{pluto,_pluto_adns,whack}
+rm -f /usr/local/bin/vpn-watch
+
+#
+#Start services
+
+# Call the CGI script to regenerate the configuration files.
+/srv/web/ipfire/cgi-bin/vpnmain.cgi
+ipsecctrl S
+
+#
+#Update Language cache
+perl -e "require '/var/ipfire/lang.pl'; &Lang::BuildCacheLang"
+
+#Rebuild module dep's
+#arch=`uname -m`
+#if [ ${arch::3} == "arm" ]; then
+#      depmod -a 2.6.32.45-ipfire-versatile >/dev/null 2>&1
+#      depmod -a 2.6.32.45-ipfire-kirkwood >/dev/null 2>&1
+#else
+#      depmod -a 2.6.32.45-ipfire     >/dev/null 2>&1
+#      depmod -a 2.6.32.45-ipfire-pae >/dev/null 2>&1
+#      depmod -a 2.6.32.45-ipfire-xen >/dev/null 2>&1
+#fi
+
+
+#Rebuild initrd's because some compat-wireless modules are inside
+#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45.img 2.6.32.45-ipfire
+#if [ -e /boot/ipfirerd-2.6.32.45-pae.img ]; then
+#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-pae.img 2.6.32.45-ipfire-pae
+#fi
+#if [ -e /boot/ipfirerd-2.6.32.45-xen.img ]; then
+#/sbin/dracut --force --verbose /boot/ipfirerd-2.6.32.45-xen.img 2.6.32.45-ipfire-xen
+#fi
+
+sync
+
+# This update need a reboot...
+#touch /var/run/need_reboot
+
+#
+#Finish
+/etc/init.d/fireinfo start
+sendprofile
+#Don't report the exitcode last command
+exit 0
diff --git a/config/rootfiles/installer/findutils b/config/rootfiles/installer/findutils
new file mode 120000 (symlink)
index 0000000..1114c4c
--- /dev/null
@@ -0,0 +1 @@
+../common/findutils
\ No newline at end of file
diff --git a/config/rootfiles/installer/libsafe b/config/rootfiles/installer/libsafe
deleted file mode 120000 (symlink)
index c31e31d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-../common/libsafe
\ No newline at end of file
diff --git a/config/rootfiles/installer/pcre b/config/rootfiles/installer/pcre
new file mode 120000 (symlink)
index 0000000..ffd8616
--- /dev/null
@@ -0,0 +1 @@
+../common/pcre
\ No newline at end of file
index c9db15008c853ce7cc0e189977dfd870d758d6ad..b8fee57a2267cd356da6afd3d854ff5fdbb43d17 100644 (file)
@@ -173,6 +173,119 @@ usr/include/alsa/sound/hdspm.h
 #usr/include/alsa/timer.h
 #usr/include/alsa/use-case.h
 #usr/include/alsa/version.h
+#usr/include/sound
+#usr/include/sound/ac97_codec.h
+#usr/include/sound/aci.h
+#usr/include/sound/ad1816a.h
+#usr/include/sound/ad1843.h
+#usr/include/sound/adau1373.h
+#usr/include/sound/ak4113.h
+#usr/include/sound/ak4114.h
+#usr/include/sound/ak4117.h
+#usr/include/sound/ak4531_codec.h
+#usr/include/sound/ak4641.h
+#usr/include/sound/ak4xxx-adda.h
+#usr/include/sound/alc5623.h
+#usr/include/sound/asequencer.h
+#usr/include/sound/asoundef.h
+#usr/include/sound/asound_fm.h
+#usr/include/sound/asound.h
+#usr/include/sound/atmel-abdac.h
+#usr/include/sound/atmel-ac97c.h
+#usr/include/sound/compress_driver.h
+#usr/include/sound/compress_offload.h
+#usr/include/sound/compress_params.h
+#usr/include/sound/control.h
+#usr/include/sound/core.h
+#usr/include/sound/cs4231-regs.h
+#usr/include/sound/cs4271.h
+#usr/include/sound/cs46xx_dsp_scb_types.h
+#usr/include/sound/cs46xx_dsp_spos.h
+#usr/include/sound/cs46xx_dsp_task_types.h
+#usr/include/sound/cs46xx.h
+#usr/include/sound/cs8403.h
+#usr/include/sound/cs8427.h
+#usr/include/sound/emu10k1.h
+#usr/include/sound/emu10k1_synth.h
+#usr/include/sound/emu8000.h
+#usr/include/sound/emu8000_reg.h
+#usr/include/sound/emux_legacy.h
+#usr/include/sound/emux_synth.h
+#usr/include/sound/es1688.h
+#usr/include/sound/gus.h
+#usr/include/sound/hda_hwdep.h
+#usr/include/sound/hdsp.h
+#usr/include/sound/hdspm.h
+#usr/include/sound/hwdep.h
+#usr/include/sound/i2c.h
+#usr/include/sound/info.h
+#usr/include/sound/initval.h
+#usr/include/sound/jack.h
+#usr/include/sound/l3.h
+#usr/include/sound/max98088.h
+#usr/include/sound/max98095.h
+#usr/include/sound/memalloc.h
+#usr/include/sound/minors.h
+#usr/include/sound/mixer_oss.h
+#usr/include/sound/mpu401.h
+#usr/include/sound/opl3.h
+#usr/include/sound/opl4.h
+#usr/include/sound/pcm.h
+#usr/include/sound/pcm-indirect.h
+#usr/include/sound/pcm_oss.h
+#usr/include/sound/pcm_params.h
+#usr/include/sound/pt2258.h
+#usr/include/sound/pxa2xx-lib.h
+#usr/include/sound/rawmidi.h
+#usr/include/sound/s3c24xx_uda134x.h
+#usr/include/sound/saif.h
+#usr/include/sound/sb16_csp.h
+#usr/include/sound/sb.h
+#usr/include/sound/seq_device.h
+#usr/include/sound/seq_kernel.h
+#usr/include/sound/seq_midi_emul.h
+#usr/include/sound/seq_midi_event.h
+#usr/include/sound/seq_oss.h
+#usr/include/sound/seq_oss_legacy.h
+#usr/include/sound/seq_virmidi.h
+#usr/include/sound/sfnt_info.h
+#usr/include/sound/sh_dac_audio.h
+#usr/include/sound/sh_fsi.h
+#usr/include/sound/snd_wavefront.h
+#usr/include/sound/soc-dai.h
+#usr/include/sound/soc-dapm.h
+#usr/include/sound/soc.h
+#usr/include/sound/soundfont.h
+#usr/include/sound/sta32x.h
+#usr/include/sound/tea575x-tuner.h
+#usr/include/sound/tea6330t.h
+#usr/include/sound/timer.h
+#usr/include/sound/tlv320aic32x4.h
+#usr/include/sound/tlv320aic3x.h
+#usr/include/sound/tlv320dac33-plat.h
+#usr/include/sound/tlv.h
+#usr/include/sound/tpa6130a2-plat.h
+#usr/include/sound/trident.h
+#usr/include/sound/uda134x.h
+#usr/include/sound/uda1380.h
+#usr/include/sound/util_mem.h
+#usr/include/sound/version.h
+#usr/include/sound/vx_core.h
+#usr/include/sound/wavefront.h
+#usr/include/sound/wm1250-ev1.h
+#usr/include/sound/wm2000.h
+#usr/include/sound/wm5100.h
+#usr/include/sound/wm8903.h
+#usr/include/sound/wm8904.h
+#usr/include/sound/wm8955.h
+#usr/include/sound/wm8960.h
+#usr/include/sound/wm8962.h
+#usr/include/sound/wm8993.h
+#usr/include/sound/wm8996.h
+#usr/include/sound/wm9081.h
+#usr/include/sound/wm9090.h
+#usr/include/sound/wss.h
+#usr/include/sound/ymfpci.h
 #usr/include/sys/asoundlib.h
 #usr/lib/alsa-lib
 #usr/lib/alsa-lib/smixer
@@ -274,6 +387,8 @@ usr/sbin/alsactl
 #usr/share/aclocal/alsa.m4
 usr/share/alsa
 #usr/share/alsa/alsa.conf
+#usr/share/alsa/alsa.conf.d
+usr/share/alsa/alsa.conf.d/README
 #usr/share/alsa/cards
 #usr/share/alsa/cards/AACI.conf
 #usr/share/alsa/cards/aliases.alisp
@@ -300,7 +415,9 @@ usr/share/alsa
 #usr/share/alsa/cards/ENS1370.conf
 #usr/share/alsa/cards/ENS1371.conf
 #usr/share/alsa/cards/ES1968.conf
+#usr/share/alsa/cards/FireWave.conf
 #usr/share/alsa/cards/FM801.conf
+#usr/share/alsa/cards/FWSpeakers.conf
 #usr/share/alsa/cards/GUS.conf
 #usr/share/alsa/cards/HDA-Intel.conf
 #usr/share/alsa/cards/ICE1712.conf
diff --git a/config/rootfiles/packages/applejuice b/config/rootfiles/packages/applejuice
deleted file mode 100644 (file)
index ca14dee..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-etc/httpd/conf/vhosts.d/phpaj.conf
-etc/rc.d/init.d/applejuice
-opt/applejuice
-opt/applejuice/ajcore.jar
-opt/applejuice/libajnetmask.so
-srv/web/phpaj
-srv/web/phpaj/export
-srv/web/phpaj/export/Default.php
-srv/web/phpaj/export/ajl.php
-srv/web/phpaj/export/bb.php
-srv/web/phpaj/export/html.php
-srv/web/phpaj/index.php
-srv/web/phpaj/language
-srv/web/phpaj/language/deutsch.xml
-srv/web/phpaj/language/english.xml
-srv/web/phpaj/main
-srv/web/phpaj/main/classes
-srv/web/phpaj/main/classes/class_core.php
-srv/web/phpaj/main/classes/class_downloads.php
-srv/web/phpaj/main/classes/class_icons.php
-srv/web/phpaj/main/classes/class_search.php
-srv/web/phpaj/main/classes/class_server.php
-srv/web/phpaj/main/classes/class_share.php
-srv/web/phpaj/main/classes/class_uploads.php
-srv/web/phpaj/main/directory.php
-srv/web/phpaj/main/dl_parts.php
-srv/web/phpaj/main/dl_users.php
-srv/web/phpaj/main/downloads.php
-srv/web/phpaj/main/extras.php
-srv/web/phpaj/main/index.php
-srv/web/phpaj/main/progressbar.php
-srv/web/phpaj/main/search.php
-srv/web/phpaj/main/server.php
-srv/web/phpaj/main/settings.php
-srv/web/phpaj/main/shareexport.php
-srv/web/phpaj/main/sharefiles.php
-srv/web/phpaj/main/shares.php
-srv/web/phpaj/main/showparts.php
-srv/web/phpaj/main/start.php
-srv/web/phpaj/main/status.php
-srv/web/phpaj/main/subs.php
-srv/web/phpaj/main/top.php
-srv/web/phpaj/main/uploads.php
-srv/web/phpaj/minigui
-srv/web/phpaj/minigui/downloads.php
-srv/web/phpaj/minigui/index.php
-srv/web/phpaj/minigui/minigui.php
-srv/web/phpaj/plugins
-srv/web/phpaj/plugins/ajl
-srv/web/phpaj/plugins/ajl/ajl.php
-srv/web/phpaj/plugins/ajl/icon.gif
-srv/web/phpaj/plugins/ajl/info.php
-srv/web/phpaj/plugins/register.php
-srv/web/phpaj/plugins/sharestats
-srv/web/phpaj/plugins/sharestats/info.php
-srv/web/phpaj/plugins/sharestats/sharestats.php
-srv/web/phpaj/plugins/versionchecker
-srv/web/phpaj/plugins/versionchecker/info.php
-srv/web/phpaj/plugins/versionchecker/versionchecker.php
-srv/web/phpaj/plugins/wizard
-srv/web/phpaj/plugins/wizard/icon.gif
-srv/web/phpaj/plugins/wizard/info.php
-srv/web/phpaj/plugins/wizard/wizard.php
-srv/web/phpaj/plugins/wizard/wizard.xml
-srv/web/phpaj/style
-srv/web/phpaj/style/default
-srv/web/phpaj/style/default/default_blue.css
-srv/web/phpaj/style/default/default_green.css
-srv/web/phpaj/style/default/default_grey.css
-srv/web/phpaj/style/default/info.png
-srv/web/phpaj/style/default/minus.png
-srv/web/phpaj/style/default/os
-srv/web/phpaj/style/default/os/bsd.png
-srv/web/phpaj/style/default/os/linux.png
-srv/web/phpaj/style/default/os/mac.png
-srv/web/phpaj/style/default/os/na.png
-srv/web/phpaj/style/default/os/netware.png
-srv/web/phpaj/style/default/os/os2.png
-srv/web/phpaj/style/default/os/solaris.png
-srv/web/phpaj/style/default/os/win.png
-srv/web/phpaj/style/default/plus.png
-srv/web/phpaj/style/default/server
-srv/web/phpaj/style/default/server/alt.gif
-srv/web/phpaj/style/default/server/neu.gif
-srv/web/phpaj/style/default/server/verbinde.gif
-srv/web/phpaj/style/default/server/verbunden.gif
-srv/web/phpaj/style/default/stop.png
-srv/web/phpaj/style/default/tabs
-srv/web/phpaj/style/default/tabs/download.gif
-srv/web/phpaj/style/default/tabs/extras.gif
-srv/web/phpaj/style/default/tabs/kill.gif
-srv/web/phpaj/style/default/tabs/logout.gif
-srv/web/phpaj/style/default/tabs/meinshare.gif
-srv/web/phpaj/style/default/tabs/optionen.gif
-srv/web/phpaj/style/default/tabs/server.gif
-srv/web/phpaj/style/default/tabs/start.gif
-srv/web/phpaj/style/default/tabs/suchen.gif
-srv/web/phpaj/style/default/tabs/upload.gif
-srv/web/phpaj/style/default/user
-srv/web/phpaj/style/default/user/direct.png
-srv/web/phpaj/style/default/user/indirect.png
-srv/web/phpaj/style/default/user/tryindirect.png
-srv/web/phpaj/style/default/user/unknown.png
-srv/web/phpaj/style/default/warnung.gif
-srv/web/phpaj/style/default/x.png
-srv/web/phpaj/style/default_blue.php
-srv/web/phpaj/style/default_green.php
-srv/web/phpaj/style/default_grey.php
-srv/web/phpaj/style/new
-srv/web/phpaj/style/new.php
-srv/web/phpaj/style/new/bg.png
-srv/web/phpaj/style/new/new.css
-srv/web/phpaj/style/tango
-srv/web/phpaj/style/tango.php
-srv/web/phpaj/style/tango/bg.png
-srv/web/phpaj/style/tango/icons
-srv/web/phpaj/style/tango/icons/direct.png
-srv/web/phpaj/style/tango/icons/down.png
-srv/web/phpaj/style/tango/icons/empty.png
-srv/web/phpaj/style/tango/icons/extras.png
-srv/web/phpaj/style/tango/icons/home.png
-srv/web/phpaj/style/tango/icons/indirect.png
-srv/web/phpaj/style/tango/icons/info.png
-srv/web/phpaj/style/tango/icons/kill.png
-srv/web/phpaj/style/tango/icons/logout.png
-srv/web/phpaj/style/tango/icons/minus.png
-srv/web/phpaj/style/tango/icons/plus.png
-srv/web/phpaj/style/tango/icons/preferences.png
-srv/web/phpaj/style/tango/icons/search.png
-srv/web/phpaj/style/tango/icons/server.png
-srv/web/phpaj/style/tango/icons/share.png
-srv/web/phpaj/style/tango/icons/stop.png
-srv/web/phpaj/style/tango/icons/up.png
-srv/web/phpaj/style/tango/icons/warning.png
-srv/web/phpaj/style/tango/icons/x.png
-srv/web/phpaj/style/tango/tango.css
-srv/web/phpaj/vars.php
-usr/local/bin/applejuicectrl
-var/ipfire/applejuice
-var/ipfire/applejuice/settings
-#usr/lib/libajnetmask.so
index 7e7b25e963dc2c128e69b551ee4606e412230257..7a02653b1766e532fff76d5df2977514526acf2e 100644 (file)
@@ -156,8 +156,6 @@ usr/lib/asterisk/modules/app_channelredirect.so
 usr/lib/asterisk/modules/app_chanspy.so
 usr/lib/asterisk/modules/app_confbridge.so
 usr/lib/asterisk/modules/app_controlplayback.so
-usr/lib/asterisk/modules/app_dahdibarge.so
-usr/lib/asterisk/modules/app_dahdiras.so
 usr/lib/asterisk/modules/app_db.so
 usr/lib/asterisk/modules/app_dial.so
 usr/lib/asterisk/modules/app_dictate.so
@@ -169,7 +167,6 @@ usr/lib/asterisk/modules/app_echo.so
 usr/lib/asterisk/modules/app_exec.so
 usr/lib/asterisk/modules/app_externalivr.so
 usr/lib/asterisk/modules/app_festival.so
-usr/lib/asterisk/modules/app_flash.so
 usr/lib/asterisk/modules/app_followme.so
 usr/lib/asterisk/modules/app_forkcdr.so
 usr/lib/asterisk/modules/app_getcpeid.so
@@ -177,7 +174,6 @@ usr/lib/asterisk/modules/app_ices.so
 usr/lib/asterisk/modules/app_image.so
 usr/lib/asterisk/modules/app_ivrdemo.so
 usr/lib/asterisk/modules/app_macro.so
-usr/lib/asterisk/modules/app_meetme.so
 usr/lib/asterisk/modules/app_milliwatt.so
 usr/lib/asterisk/modules/app_minivm.so
 usr/lib/asterisk/modules/app_mixmonitor.so
@@ -186,7 +182,6 @@ usr/lib/asterisk/modules/app_mp3.so
 usr/lib/asterisk/modules/app_mysql.so
 usr/lib/asterisk/modules/app_nbscat.so
 usr/lib/asterisk/modules/app_originate.so
-usr/lib/asterisk/modules/app_page.so
 usr/lib/asterisk/modules/app_parkandannounce.so
 usr/lib/asterisk/modules/app_playback.so
 usr/lib/asterisk/modules/app_playtones.so
@@ -237,7 +232,6 @@ usr/lib/asterisk/modules/chan_agent.so
 usr/lib/asterisk/modules/chan_alsa.so
 usr/lib/asterisk/modules/chan_bridge.so
 usr/lib/asterisk/modules/chan_capi.so
-usr/lib/asterisk/modules/chan_dahdi.so
 usr/lib/asterisk/modules/chan_iax2.so
 usr/lib/asterisk/modules/chan_local.so
 usr/lib/asterisk/modules/chan_mgcp.so
@@ -252,10 +246,10 @@ usr/lib/asterisk/modules/chan_unistim.so
 usr/lib/asterisk/modules/codec_a_mu.so
 usr/lib/asterisk/modules/codec_adpcm.so
 usr/lib/asterisk/modules/codec_alaw.so
-usr/lib/asterisk/modules/codec_dahdi.so
 usr/lib/asterisk/modules/codec_g722.so
 usr/lib/asterisk/modules/codec_g726.so
 usr/lib/asterisk/modules/codec_gsm.so
+usr/lib/asterisk/modules/codec_ilbc.so
 usr/lib/asterisk/modules/codec_lpc10.so
 usr/lib/asterisk/modules/codec_ulaw.so
 usr/lib/asterisk/modules/format_g719.so
@@ -351,18 +345,32 @@ usr/lib/asterisk/modules/res_smdi.so
 usr/lib/asterisk/modules/res_snmp.so
 usr/lib/asterisk/modules/res_speech.so
 usr/lib/asterisk/modules/res_stun_monitor.so
-usr/lib/asterisk/modules/res_timing_dahdi.so
 usr/lib/asterisk/modules/res_timing_pthread.so
+usr/lib/asterisk/modules/res_timing_timerfd.so
 #usr/lib/pkgconfig/asterisk.pc
+usr/sbin/aelparse
+usr/sbin/astcanary
 usr/sbin/asterisk
 usr/sbin/astgenkey
+usr/sbin/astman
 usr/sbin/autosupport
+usr/sbin/check_expr
+usr/sbin/check_expr2
+usr/sbin/conf2ael
+usr/sbin/hashtest
+usr/sbin/hashtest2
+usr/sbin/muted
 usr/sbin/rasterisk
+usr/sbin/refcounter
 usr/sbin/safe_asterisk
+usr/sbin/smsq
+usr/sbin/stereorize
+usr/sbin/streamplayer
 #usr/share/man/man8/asterisk.8
 #usr/share/man/man8/astgenkey.8
 #usr/share/man/man8/autosupport.8
 #usr/share/man/man8/safe_asterisk.8
+#var/ipfire/asterisk
 var/ipfire/asterisk/adsi.conf
 var/ipfire/asterisk/agents.conf
 var/ipfire/asterisk/ais.conf
diff --git a/config/rootfiles/packages/centerim b/config/rootfiles/packages/centerim
deleted file mode 100644 (file)
index 26f9b48..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-usr/bin/centerim
-usr/bin/cicqconv
-#usr/share/centerim
-usr/share/centerim/email.wav
-usr/share/centerim/msg.wav
-usr/share/centerim/offline.wav
-usr/share/centerim/online.wav
-usr/share/centerim/sms.wav
-usr/share/centerim/url.wav
-#usr/share/man/man1/cicqconv.1
diff --git a/config/rootfiles/packages/dahdi b/config/rootfiles/packages/dahdi
deleted file mode 100644 (file)
index 8e7b8d7..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-etc/dahdi
-#etc/hotplug
-#etc/hotplug/usb
-etc/hotplug/usb/xpp_fxloader
-etc/hotplug/usb/xpp_fxloader.usermap
-etc/modprobe.d/dahdi
-etc/modprobe.d/dahdi.blacklist
-etc/rc.d/init.d/dahdi
-etc/rc.d/rc0.d/K30dahdi
-etc/rc.d/rc3.d/S15dahdi
-etc/rc.d/rc6.d/K30dahdi
-etc/udev/rules.d/dahdi.rules
-etc/udev/rules.d/xpp.rules
-lib/firmware/.dahdi-fw-oct6114-064-1.05.01
-lib/firmware/.dahdi-fw-oct6114-128-1.05.01
-lib/firmware/.dahdi-fw-tc400m-MR6.12
-lib/firmware/dahdi-fw-oct6114-064.bin
-lib/firmware/dahdi-fw-oct6114-128.bin
-lib/firmware/dahdi-fw-tc400m.bin
-#usr/include/dahdi
-#usr/include/dahdi/dahdi_config.h
-#usr/include/dahdi/fasthdlc.h
-#usr/include/dahdi/kernel.h
-#usr/include/dahdi/tonezone.h
-#usr/include/dahdi/user.h
-#usr/include/dahdi/wctdm_user.h
-#usr/lib/hotplug
-#usr/lib/hotplug/firmware
-#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-064-1.05.01
-#usr/lib/hotplug/firmware/.dahdi-fw-oct6114-128-1.05.01
-#usr/lib/hotplug/firmware/.dahdi-fw-tc400m-MR6.12
-#usr/lib/hotplug/firmware/dahdi-fw-oct6114-064.bin
-#usr/lib/hotplug/firmware/dahdi-fw-oct6114-128.bin
-#usr/lib/hotplug/firmware/dahdi-fw-tc400m.bin
-#usr/lib/libtonezone.a
-usr/lib/libtonezone.so
-usr/lib/libtonezone.so.1
-usr/lib/libtonezone.so.1.0
-usr/lib/libtonezone.so.2
-usr/lib/libtonezone.so.2.0
-#usr/lib/perl5/site_perl/5.12.3/Dahdi
-usr/lib/perl5/site_perl/5.12.3/Dahdi.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Chans.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Chandahdi.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Modules.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/System.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Unicall.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Users.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Gen/Xpporder.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Config/Params.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/PCI.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Hardware/USB.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Span.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Utils.pm
-#usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Line.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Mpp.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xbus.pm
-usr/lib/perl5/site_perl/5.12.3/Dahdi/Xpp/Xpd.pm
-usr/sbin/astribank_allow
-usr/sbin/astribank_hexload
-usr/sbin/astribank_is_starting
-usr/sbin/astribank_tool
-usr/sbin/dahdi_cfg
-usr/sbin/dahdi_genconf
-usr/sbin/dahdi_hardware
-usr/sbin/dahdi_monitor
-usr/sbin/dahdi_registration
-usr/sbin/dahdi_scan
-usr/sbin/dahdi_speed
-usr/sbin/dahdi_test
-usr/sbin/dahdi_tool
-usr/sbin/fpga_load
-usr/sbin/fxotune
-usr/sbin/lsdahdi
-usr/sbin/sethdlc
-usr/sbin/twinstar
-usr/sbin/xpp_blink
-usr/sbin/xpp_sync
-#usr/share/dahdi
-usr/share/dahdi/FPGA_1141.hex
-usr/share/dahdi/FPGA_1151.hex
-usr/share/dahdi/FPGA_1161.hex
-usr/share/dahdi/FPGA_FXS.hex
-usr/share/dahdi/PIC_TYPE_1.hex
-usr/share/dahdi/PIC_TYPE_2.hex
-usr/share/dahdi/PIC_TYPE_3.hex
-usr/share/dahdi/PIC_TYPE_4.hex
-usr/share/dahdi/USB_FW.hex
-usr/share/dahdi/XppConfig.pm
-usr/share/dahdi/astribank_hook
-usr/share/dahdi/init_card_1_30
-usr/share/dahdi/init_card_2_30
-usr/share/dahdi/init_card_3_30
-usr/share/dahdi/init_card_4_30
-usr/share/dahdi/waitfor_xpds
-usr/share/dahdi/xpp_fxloader
-#usr/share/man/man8/astribank_allow.8
-#usr/share/man/man8/astribank_hexload.8
-#usr/share/man/man8/astribank_is_starting.8
-#usr/share/man/man8/astribank_tool.8
-#usr/share/man/man8/dahdi_cfg.8
-#usr/share/man/man8/dahdi_genconf.8
-#usr/share/man/man8/dahdi_hardware.8
-#usr/share/man/man8/dahdi_monitor.8
-#usr/share/man/man8/dahdi_registration.8
-#usr/share/man/man8/dahdi_scan.8
-#usr/share/man/man8/dahdi_test.8
-#usr/share/man/man8/dahdi_tool.8
-#usr/share/man/man8/fpga_load.8
-#usr/share/man/man8/fxotune.8
-#usr/share/man/man8/lsdahdi.8
-#usr/share/man/man8/twinstar.8
-#usr/share/man/man8/xpp_blink.8
-#usr/share/man/man8/xpp_sync.8
-#var/ipfire/asterisk
-#var/ipfire/asterisk/dahdi
-var/ipfire/asterisk/dahdi/genconf_parameters
-var/ipfire/asterisk/dahdi/init.conf
-var/ipfire/asterisk/dahdi/modules
-var/ipfire/asterisk/dahdi/system.conf
index f7b18a7c9aef808f49a79505ed7d053ca8099020..450adfb49a9bf7cf21a6faff8c1218226f03fe3d 100644 (file)
@@ -1,9 +1,9 @@
+etc/fcron.daily/gnump3d-index
 #etc/gnump3d
 etc/gnump3d/file.types
 etc/gnump3d/gnump3d.conf
 etc/gnump3d/mime.types
 etc/rc.d/init.d/gnump3d
-etc/fcron.daily/gnump3d-index
 usr/bin/gnump3d
 usr/bin/gnump3d-index
 usr/bin/gnump3d-top
@@ -43,7 +43,8 @@ usr/lib/perl5/5.12.3/gnump3d/readtags.pm
 usr/lib/perl5/5.12.3/gnump3d/sorting.pm
 usr/lib/perl5/5.12.3/gnump3d/tagcache.pm
 usr/lib/perl5/5.12.3/gnump3d/url.pm
-usr/lib/perl5/5.12.3/Pod
+#usr/local/man
+#usr/local/man/man1
 #usr/local/man/man1/gnump3d-index.1
 #usr/local/man/man1/gnump3d-top.1
 #usr/local/man/man1/gnump3d.1
@@ -53,7 +54,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Avalon/AUTHOR
 #usr/share/gnump3d/Avalon/COPYING.html
 #usr/share/gnump3d/Avalon/base.css
-#usr/share/gnump3d/Avalon/bug.html
 #usr/share/gnump3d/Avalon/error.html
 #usr/share/gnump3d/Avalon/gnump3d-logo.jpg
 #usr/share/gnump3d/Avalon/html_footer.tmpl
@@ -77,7 +77,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/BlueBox/AUTHOR
 #usr/share/gnump3d/BlueBox/BlueBox.css
 #usr/share/gnump3d/BlueBox/COPYING.html
-#usr/share/gnump3d/BlueBox/bug.html
 #usr/share/gnump3d/BlueBox/error.html
 #usr/share/gnump3d/BlueBox/extras.html
 #usr/share/gnump3d/BlueBox/footer.tmpl
@@ -99,7 +98,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Clean
 #usr/share/gnump3d/Clean/AUTHOR
 #usr/share/gnump3d/Clean/COPYING.html
-#usr/share/gnump3d/Clean/bug.html
 #usr/share/gnump3d/Clean/error.html
 #usr/share/gnump3d/Clean/index.html
 #usr/share/gnump3d/Clean/info.html
@@ -118,7 +116,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/LaFrere
 #usr/share/gnump3d/LaFrere/AUTHOR
 #usr/share/gnump3d/LaFrere/COPYING.html
-#usr/share/gnump3d/LaFrere/bug.html
 #usr/share/gnump3d/LaFrere/error.html
 #usr/share/gnump3d/LaFrere/index.html
 #usr/share/gnump3d/LaFrere/info.html
@@ -137,7 +134,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Liquid/AUTHOR
 #usr/share/gnump3d/Liquid/COPYING.html
 #usr/share/gnump3d/Liquid/bck.gif
-#usr/share/gnump3d/Liquid/bug.html
 #usr/share/gnump3d/Liquid/cel-bar-anthrazite-act.gif
 #usr/share/gnump3d/Liquid/cel-bar-anthrazite.gif
 #usr/share/gnump3d/Liquid/cel-bar-aqua-act.gif
@@ -188,7 +184,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Musicus
 #usr/share/gnump3d/Musicus/AUTHOR
 #usr/share/gnump3d/Musicus/COPYING.html
-#usr/share/gnump3d/Musicus/bug.html
 #usr/share/gnump3d/Musicus/error.html
 #usr/share/gnump3d/Musicus/extras.html
 #usr/share/gnump3d/Musicus/footer.tmpl
@@ -214,7 +209,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Nomad/Nomad_theme.css
 #usr/share/gnump3d/Nomad/SmallHome.gif
 #usr/share/gnump3d/Nomad/bg.gif
-#usr/share/gnump3d/Nomad/bug.html
 #usr/share/gnump3d/Nomad/error.html
 #usr/share/gnump3d/Nomad/gnump3d_themes_footer.tmpl
 #usr/share/gnump3d/Nomad/gnump3d_themes_header.tmpl
@@ -235,7 +229,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/SchwartzNGrau
 #usr/share/gnump3d/SchwartzNGrau/AUTHOR
 #usr/share/gnump3d/SchwartzNGrau/COPYING.html
-#usr/share/gnump3d/SchwartzNGrau/bug.html
 #usr/share/gnump3d/SchwartzNGrau/clear.gif
 #usr/share/gnump3d/SchwartzNGrau/error.html
 #usr/share/gnump3d/SchwartzNGrau/index.html
@@ -254,7 +247,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Tabular
 #usr/share/gnump3d/Tabular/AUTHOR
 #usr/share/gnump3d/Tabular/COPYING.html
-#usr/share/gnump3d/Tabular/bug.html
 #usr/share/gnump3d/Tabular/error.html
 #usr/share/gnump3d/Tabular/extras.html
 #usr/share/gnump3d/Tabular/footer.tmpl
@@ -276,7 +268,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/Thexder
 #usr/share/gnump3d/Thexder/AUTHOR
 #usr/share/gnump3d/Thexder/COPYING.html
-#usr/share/gnump3d/Thexder/bug.html
 #usr/share/gnump3d/Thexder/dig_temp2_01.jpg
 #usr/share/gnump3d/Thexder/dig_temp2_02.jpg
 #usr/share/gnump3d/Thexder/dig_temp2_03.gif
@@ -308,7 +299,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/default
 #usr/share/gnump3d/default/AUTHOR
 #usr/share/gnump3d/default/COPYING.html
-#usr/share/gnump3d/default/bug.html
 #usr/share/gnump3d/default/error.html
 #usr/share/gnump3d/default/footer.tmpl
 #usr/share/gnump3d/default/header.tmpl
@@ -328,7 +318,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/dotNET
 #usr/share/gnump3d/dotNET/AUTHOR
 #usr/share/gnump3d/dotNET/COPYING.html
-#usr/share/gnump3d/dotNET/bug.html
 #usr/share/gnump3d/dotNET/content.tmpl
 #usr/share/gnump3d/dotNET/error.html
 #usr/share/gnump3d/dotNET/header.tmpl
@@ -365,7 +354,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/nausicaa
 #usr/share/gnump3d/nausicaa/AUTHOR
 #usr/share/gnump3d/nausicaa/COPYING.html
-#usr/share/gnump3d/nausicaa/bug.html
 #usr/share/gnump3d/nausicaa/error.html
 #usr/share/gnump3d/nausicaa/extras.html
 #usr/share/gnump3d/nausicaa/index.html
@@ -382,7 +370,6 @@ usr/share/gnump3d
 #usr/share/gnump3d/redgrey
 #usr/share/gnump3d/redgrey/AUTHOR
 #usr/share/gnump3d/redgrey/COPYING.html
-#usr/share/gnump3d/redgrey/bug.html
 #usr/share/gnump3d/redgrey/error.html
 #usr/share/gnump3d/redgrey/header.tmpl
 #usr/share/gnump3d/redgrey/index.html
@@ -400,5 +387,4 @@ usr/share/gnump3d
 var/cache/gnump3d
 var/cache/gnump3d/serving
 var/log/gnump3d
-#var/mp3
 var/mp3/info
index 551afa73a617deaf7566001864a49c74efe34d3f..74a271140b9f9bd2396ae9af5fde411393cbd4fa 100644 (file)
-usr/bin/hpijs
-#usr/share/doc/hplip-2.7.10
-#usr/share/doc/hplip-2.7.10/COPYING
-#usr/share/doc/hplip-2.7.10/README_LIBJPG
-#usr/share/doc/hplip-2.7.10/about.html
-#usr/share/doc/hplip-2.7.10/contacts.html
-#usr/share/doc/hplip-2.7.10/downloads.html
-#usr/share/doc/hplip-2.7.10/faqs.html
-#usr/share/doc/hplip-2.7.10/features.html
-#usr/share/doc/hplip-2.7.10/howtos
-#usr/share/doc/hplip-2.7.10/howtos/build.html
-#usr/share/doc/hplip-2.7.10/howtos/faxing.html
-#usr/share/doc/hplip-2.7.10/howtos/index.html
-#usr/share/doc/hplip-2.7.10/howtos/install.html
-#usr/share/doc/hplip-2.7.10/howtos/io.html
-#usr/share/doc/hplip-2.7.10/howtos/known.html
-#usr/share/doc/hplip-2.7.10/howtos/negative.html
-#usr/share/doc/hplip-2.7.10/howtos/other.html
-#usr/share/doc/hplip-2.7.10/howtos/pcard.html
-#usr/share/doc/hplip-2.7.10/howtos/printing.html
-#usr/share/doc/hplip-2.7.10/howtos/scanning.html
-#usr/share/doc/hplip-2.7.10/howtos/toolbox.html
-#usr/share/doc/hplip-2.7.10/howtos/uninstall.html
-#usr/share/doc/hplip-2.7.10/images
-#usr/share/doc/hplip-2.7.10/images/Screenshot-xsane.png
-#usr/share/doc/hplip-2.7.10/images/back.png
-#usr/share/doc/hplip-2.7.10/images/button.png
-#usr/share/doc/hplip-2.7.10/images/circular.gif
-#usr/share/doc/hplip-2.7.10/images/cups_device_list.png
-#usr/share/doc/hplip-2.7.10/images/cups_left.png
-#usr/share/doc/hplip-2.7.10/images/cups_model_list.png
-#usr/share/doc/hplip-2.7.10/images/cups_opening.png
-#usr/share/doc/hplip-2.7.10/images/cups_printer_model.png
-#usr/share/doc/hplip-2.7.10/images/download.png
-#usr/share/doc/hplip-2.7.10/images/favicon.ico
-#usr/share/doc/hplip-2.7.10/images/favicon2.ico
-#usr/share/doc/hplip-2.7.10/images/fullbleed_1.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_2.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_3.png
-#usr/share/doc/hplip-2.7.10/images/fullbleed_4.png
-#usr/share/doc/hplip-2.7.10/images/gs_hpijs.png
-#usr/share/doc/hplip-2.7.10/images/hp-tux-printer.png
-#usr/share/doc/hplip-2.7.10/images/hp_invent_logo.png
-#usr/share/doc/hplip-2.7.10/images/hplip_overview.png
-#usr/share/doc/hplip-2.7.10/images/hpliplogo.png
-#usr/share/doc/hplip-2.7.10/images/hplogo.png
-#usr/share/doc/hplip-2.7.10/images/hplogo2.png
-#usr/share/doc/hplip-2.7.10/images/linux_printing_logo.png
-#usr/share/doc/hplip-2.7.10/images/linuxlogo.png
-#usr/share/doc/hplip-2.7.10/images/network_appssocket.png
-#usr/share/doc/hplip-2.7.10/images/network_device_list.png
-#usr/share/doc/hplip-2.7.10/images/network_device_uri.png
-#usr/share/doc/hplip-2.7.10/images/network_model_list.png
-#usr/share/doc/hplip-2.7.10/images/osi_certified.png
-#usr/share/doc/hplip-2.7.10/images/python-logo.png
-#usr/share/doc/hplip-2.7.10/images/rest2web.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_copies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_fax.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_unload.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_functions_xsane.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_hp_setup_step6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_10_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_11.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_12.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_13.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_14.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_15.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_7_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_installer_9_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_emailalerts.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_autorefresh.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_functions_commands.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_control.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_print1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_print_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_status.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_supplies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_lg_toolbox_tools.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_copies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_fax.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_unload.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_functions_xsane.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_hp_setup_step6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_10_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_11.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_12.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_13.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_14.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_15.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_2.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_3.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_4.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_5.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_6.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_7_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_installer_9_postfix.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_emailalerts.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_autorefresh.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_functions_commands.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_control.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_functions.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_print1.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_print_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_settings.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_status.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_supplies.png
-#usr/share/doc/hplip-2.7.10/images/screenshots_sm_toolbox_tools.png
-#usr/share/doc/hplip-2.7.10/images/sflogo.png
-#usr/share/doc/hplip-2.7.10/images/topbar.png
-#usr/share/doc/hplip-2.7.10/images/tux.png
-#usr/share/doc/hplip-2.7.10/images/tuxlogo.png
-#usr/share/doc/hplip-2.7.10/images/tuxlogo2.png
-#usr/share/doc/hplip-2.7.10/images/view.png
-#usr/share/doc/hplip-2.7.10/images/yast_hardware.png
-#usr/share/doc/hplip-2.7.10/images/yast_opening_hw.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_configure.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_kind.png
-#usr/share/doc/hplip-2.7.10/images/yast_other_printer.png
-#usr/share/doc/hplip-2.7.10/images/yast_printer_model.png
-#usr/share/doc/hplip-2.7.10/index.html
-#usr/share/doc/hplip-2.7.10/install
-#usr/share/doc/hplip-2.7.10/install/index.html
-#usr/share/doc/hplip-2.7.10/install/install
-#usr/share/doc/hplip-2.7.10/install/install/index.html
-#usr/share/doc/hplip-2.7.10/install/manual
-#usr/share/doc/hplip-2.7.10/install/manual/configure.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros
-#usr/share/doc/hplip-2.7.10/install/manual/distros/centos.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/debian.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/fedora_core.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/freebsd.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/gentoo.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/index.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/lfs.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/linspire.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mac.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mandriva.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/mepis.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/novell.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/other.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/redhat.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/redhatenterprise.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/slackware.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/ubuntu.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/windows.html
-#usr/share/doc/hplip-2.7.10/install/manual/distros/xandros.html
-#usr/share/doc/hplip-2.7.10/install/manual/download.html
-#usr/share/doc/hplip-2.7.10/install/manual/final.html
-#usr/share/doc/hplip-2.7.10/install/manual/hp_setup.html
-#usr/share/doc/hplip-2.7.10/install/manual/index.html
-#usr/share/doc/hplip-2.7.10/install/manual/make.html
-#usr/share/doc/hplip-2.7.10/install/manual/make_install.html
-#usr/share/doc/hplip-2.7.10/install/manual/permissions.html
-#usr/share/doc/hplip-2.7.10/install/step1
-#usr/share/doc/hplip-2.7.10/install/step1/apt.html
-#usr/share/doc/hplip-2.7.10/install/step1/index.html
-#usr/share/doc/hplip-2.7.10/install/step1/rpm.html
-#usr/share/doc/hplip-2.7.10/install/step2
-#usr/share/doc/hplip-2.7.10/install/step2/debian.html
-#usr/share/doc/hplip-2.7.10/install/step2/fc4.html
-#usr/share/doc/hplip-2.7.10/install/step2/freebsd.html
-#usr/share/doc/hplip-2.7.10/install/step2/index.html
-#usr/share/doc/hplip-2.7.10/install/step2/mandriva06.html
-#usr/share/doc/hplip-2.7.10/install/step2/other.html
-#usr/share/doc/hplip-2.7.10/install/step2/slackware.html
-#usr/share/doc/hplip-2.7.10/install/step2/suse10.html
-#usr/share/doc/hplip-2.7.10/install/step2/ubuntu510.html
-#usr/share/doc/hplip-2.7.10/install/step2/ubuntu606.html
-#usr/share/doc/hplip-2.7.10/install/step3
-#usr/share/doc/hplip-2.7.10/install/step3/index.html
-#usr/share/doc/hplip-2.7.10/install/step4
-#usr/share/doc/hplip-2.7.10/install/step4/cups
-#usr/share/doc/hplip-2.7.10/install/step4/cups/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/cups/local.html
-#usr/share/doc/hplip-2.7.10/install/step4/cups/net.html
-#usr/share/doc/hplip-2.7.10/install/step4/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup
-#usr/share/doc/hplip-2.7.10/install/step4/setup/index.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup/local.html
-#usr/share/doc/hplip-2.7.10/install/step4/setup/net.html
-#usr/share/doc/hplip-2.7.10/install/step4/suse
-#usr/share/doc/hplip-2.7.10/install/step4/suse/index.html
-#usr/share/doc/hplip-2.7.10/legal.html
-#usr/share/doc/hplip-2.7.10/license.html
-#usr/share/doc/hplip-2.7.10/mailing_lists.html
-#usr/share/doc/hplip-2.7.10/other_support.html
-#usr/share/doc/hplip-2.7.10/release_notes.html
-#usr/share/doc/hplip-2.7.10/screenshots.html
-#usr/share/doc/hplip-2.7.10/styles
-#usr/share/doc/hplip-2.7.10/styles/default.css
-#usr/share/doc/hplip-2.7.10/styles/rest.css
-#usr/share/doc/hplip-2.7.10/support_statement.html
-#usr/share/doc/hplip-2.7.10/supported_devices
-#usr/share/doc/hplip-2.7.10/supported_devices/color_laser.html
-#usr/share/doc/hplip-2.7.10/supported_devices/color_laser_mfp.html
-#usr/share/doc/hplip-2.7.10/supported_devices/combined.html
-#usr/share/doc/hplip-2.7.10/supported_devices/edgeline.html
-#usr/share/doc/hplip-2.7.10/supported_devices/index.html
-#usr/share/doc/hplip-2.7.10/supported_devices/inkjet.html
-#usr/share/doc/hplip-2.7.10/supported_devices/inkjet_aio.html
-#usr/share/doc/hplip-2.7.10/supported_devices/laser.html
-#usr/share/doc/hplip-2.7.10/supported_devices/mono_laser_mfp.html
-#usr/share/doc/hplip-2.7.10/supported_devices/photosmart.html
-#usr/share/doc/hplip-2.7.10/supported_devices/scanjet.html
-#usr/share/doc/hplip-2.7.10/supported_devices/unsupported.html
-#usr/share/doc/hplip-2.7.10/system_requirements.html
-#usr/share/doc/hplip-2.7.10/tech_docs
-#usr/share/doc/hplip-2.7.10/tech_docs/device_classes.html
-#usr/share/doc/hplip-2.7.10/tech_docs/hpijs.html
-#usr/share/doc/hplip-2.7.10/tech_docs/index.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/align.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/check.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/clean.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/colorcal.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/fab.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/firmware.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/hpssd.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/index.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/info.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/install.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/levels.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makecopies.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/makeuri.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/print.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/probe.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/scan.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/sendfax.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/setup.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/testpage.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/timedate.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/toolbox.html
-#usr/share/doc/hplip-2.7.10/tech_docs/man_pages/unload.html
-#usr/share/doc/hplip-2.7.10/tech_docs/overview.html
-#usr/share/doc/hplip-2.7.10/tech_docs/page_sizes.html
-#usr/share/doc/hplip-2.7.10/tech_docs/printable_areas.html
-#usr/share/doc/hplip-2.7.10/tech_docs/tarball_install.html
-#usr/share/doc/hplip-2.7.10/troubleshooting
-#usr/share/doc/hplip-2.7.10/troubleshooting/build.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/distro.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/faxing.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/index.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/install.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/io.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/network.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/other.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/parallel.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/pcard.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/printing.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/scanning.html
-#usr/share/doc/hplip-2.7.10/troubleshooting/toolbox.html
-usr/share/foomatic/db/source/PPD/HP/HP_Color_LaserJet_3800.ppd.gz
-usr/share/foomatic/db/source/PPD/HP/HP_LaserJet_4Si_v2011.110.ppd.gz
-usr/share/foomatic/db/source/PPD/HP/hp_LaserJet_4200_Series.ppd.gz
-usr/share/foomatic/db/source/printer/HP-OfficeJet_J3600.xml
-usr/share/foomatic/db/source/printer/HP-OfficeJet_J5500.xml
-usr/share/foomatic/db/source/printer/HP-OfficeJet_Pro_K8600.xml
-usr/share/foomatic/db/source/printer/HP-Officejet_K7100.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C4380.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C6200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C7200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_C8100.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D5300.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7200.xml
-usr/share/foomatic/db/source/printer/HP-PhotoSmart_D7400.xml
+#usr/share/doc/hplip-3.12.6
+#usr/share/doc/hplip-3.12.6/COPYING
+#usr/share/doc/hplip-3.12.6/README_LIBJPG
+#usr/share/doc/hplip-3.12.6/commandline.html
+#usr/share/doc/hplip-3.12.6/copying.html
+#usr/share/doc/hplip-3.12.6/copyright
+#usr/share/doc/hplip-3.12.6/devicemanager.html
+#usr/share/doc/hplip-3.12.6/faxtrouble.html
+#usr/share/doc/hplip-3.12.6/gettinghelp.html
+#usr/share/doc/hplip-3.12.6/hpscan.html
+#usr/share/doc/hplip-3.12.6/images
+#usr/share/doc/hplip-3.12.6/images/favicon.ico
+#usr/share/doc/hplip-3.12.6/images/print.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_actions.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_fax.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_print_control.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_print_settings.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_status.png
+#usr/share/doc/hplip-3.12.6/images/toolbox_supplies.png
+#usr/share/doc/hplip-3.12.6/images/xsane.png
+#usr/share/doc/hplip-3.12.6/index.html
+#usr/share/doc/hplip-3.12.6/mainttask.html
+#usr/share/doc/hplip-3.12.6/plugins.html
+#usr/share/doc/hplip-3.12.6/print.html
+#usr/share/doc/hplip-3.12.6/printing.html
+#usr/share/doc/hplip-3.12.6/printoptions.html
+#usr/share/doc/hplip-3.12.6/printtroubleshooting.html
+#usr/share/doc/hplip-3.12.6/scanning.html
+#usr/share/doc/hplip-3.12.6/scantrouble.html
+#usr/share/doc/hplip-3.12.6/sendfax.html
+#usr/share/doc/hplip-3.12.6/setup.html
+#usr/share/doc/hplip-3.12.6/styles
+#usr/share/doc/hplip-3.12.6/styles/css.css
+#usr/share/doc/hplip-3.12.6/systray.html
+#usr/share/doc/hplip-3.12.6/troubleshooting.html
+#usr/share/doc/hplip-3.12.6/uninstalling.html
+#usr/share/doc/hplip-3.12.6/upgrading.html
 usr/share/hplip
+#usr/share/ppd
+usr/share/ppd/HP
+#usr/share/ppd/HP/hp-business_inkjet_2250-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2280-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2300-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2600-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_2800-ps.ppd.gz
+#usr/share/ppd/HP/hp-business_inkjet_3000-ps.ppd.gz
+#usr/share/ppd/HP/hp-cm8050_mfp_with_edgeline-ps.ppd.gz
+#usr/share/ppd/HP/hp-cm8060_mfp_with_edgeline-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2500_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2550_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2605dtn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2700n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2800-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2820-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2830-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_2840-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3000-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3700n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_3800-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4600-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4600_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4610-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4650-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4700-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_4730mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_5m-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_8500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_8550-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_9500-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_9500_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1015-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1017-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1312_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm1312nfi_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320fxi_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320n_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm2320nf_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm3530_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm4540_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm4730_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6030_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cm6049_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1514n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1515n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp1518ni-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp2025x-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp3505-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp3525-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4005-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4020_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp4520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225dn-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5225n-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp5520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-color_laserjet_cp6015-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4000ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4020ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4500mfp.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4500ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4520mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_4520ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1100ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1100ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1120ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1120ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1200_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t1300_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t2300_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t7100ps-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t7100ps_monochrome-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t770_postscript-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t770ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t790ps_24in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_t790ps_44in-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6100ps_42in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6100ps_60in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6200_42in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-designjet_z6200_60in_photo-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_100_color_mfp_m175-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1200n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1220-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1220se-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1300xi-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320n-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320nw-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_1320tn-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_200_colormfp_m275-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2100-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2200_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2300_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2410-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2420-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_2430-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3015-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3020-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3030-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3050-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3052-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3200m-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3300_3310_3320-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3380-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_3390-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_m401-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_m401d-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_400_mfp_m425-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4050_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4100_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4240-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4250-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4300-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4345_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4350-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4_plus-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4ml-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4si-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_4v-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5000-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_color_m551-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_color_mfp_m575-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_500_mfp_m525-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200l-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5200lx-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5p-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5si-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_5si_mopier-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_600_m601_m602_m603-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_6mp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_6p-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8000-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8100_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8100_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_8150_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9000_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9000_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9040-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9050-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9050_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9055mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_9065mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_cm1410_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_cp1520_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522n_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1522nf_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m1530_mfp_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m2727_mfp_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m3027_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m3035_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4345_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4349_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m4555_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m5025_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m5035_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9040_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9050_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_m9059_mfp-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p2015_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p2055_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3004-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3005-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p3010_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-laserjet_p4010_series-ps.ppd.gz
+#usr/share/ppd/HP/hp-lj_300_400_color_m351_m451-ps.ppd.gz
+#usr/share/ppd/HP/hp-lj_300_400_color_mfp_m375_m475-ps.ppd.gz
+#usr/share/ppd/HP/hp-mopier_240-ps.ppd.gz
+#usr/share/ppd/HP/hp-mopier_320-ps.ppd.gz
+#usr/share/ppd/HP/hp-officejet_pro_8000_enterprise_a811a-ps.ppd.gz
index e9ba57a439724fc8edbfe34694112f8ce08754b3..21a8d63a5360a4e2b73f134cd8a422d1b72e2829 100644 (file)
@@ -4,85 +4,83 @@
 #usr/include/ogg/os_types.h
 #usr/lib/libogg.a
 #usr/lib/libogg.la
-usr/lib/libogg.so
+#usr/lib/libogg.so
 usr/lib/libogg.so.0
-usr/lib/libogg.so.0.6.0
+usr/lib/libogg.so.0.8.0
 #usr/lib/pkgconfig/ogg.pc
 #usr/share/aclocal/ogg.m4
-#usr/share/doc/libogg-1.1.4
-#usr/share/doc/libogg-1.1.4/framing.html
-#usr/share/doc/libogg-1.1.4/index.html
-#usr/share/doc/libogg-1.1.4/ogg
-#usr/share/doc/libogg-1.1.4/ogg-multiplex.html
-#usr/share/doc/libogg-1.1.4/ogg/bitpacking.html
-#usr/share/doc/libogg-1.1.4/ogg/datastructures.html
-#usr/share/doc/libogg-1.1.4/ogg/decoding.html
-#usr/share/doc/libogg-1.1.4/ogg/encoding.html
-#usr/share/doc/libogg-1.1.4/ogg/general.html
-#usr/share/doc/libogg-1.1.4/ogg/index.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_packet.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_packet_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_bos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_checksum_set.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_continued.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_eos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_granulepos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_packets.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_pageno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_serialno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_page_version.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_destroy.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_eos.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_flush.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_init.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetin.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_packetpeek.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pagein.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_pageout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_reset_serialno.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_stream_state.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_clear.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_destroy.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_init.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageout.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_pageseek.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_state.html
-#usr/share/doc/libogg-1.1.4/ogg/ogg_sync_wrote.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_adv1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_bits.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_bytes.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_get_buffer.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_look.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_look1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_read.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_read1.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_readinit.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_reset.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_write.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writealign.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeclear.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writecopy.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writeinit.html
-#usr/share/doc/libogg-1.1.4/ogg/oggpack_writetrunc.html
-#usr/share/doc/libogg-1.1.4/ogg/overview.html
-#usr/share/doc/libogg-1.1.4/ogg/reference.html
-#usr/share/doc/libogg-1.1.4/ogg/style.css
-#usr/share/doc/libogg-1.1.4/ogg/vorbis_comment.html
-#usr/share/doc/libogg-1.1.4/ogg/vorbis_info.html
-#usr/share/doc/libogg-1.1.4/oggstream.html
-#usr/share/doc/libogg-1.1.4/rfc3533.txt
-#usr/share/doc/libogg-1.1.4/rfc3534.txt
-#usr/share/doc/libogg-1.1.4/stream.png
-#usr/share/doc/libogg-1.1.4/vorbisword2.png
-#usr/share/doc/libogg-1.1.4/white-ogg.png
-#usr/share/doc/libogg-1.1.4/white-xifish.png
-#usr/share/doc/libogg-1.1.4/rfc5334.txt
-#usr/share/doc/libogg-1.1.4/skeleton.html
+#usr/share/doc/libogg-1.3.0
+#usr/share/doc/libogg-1.3.0/framing.html
+#usr/share/doc/libogg-1.3.0/index.html
+#usr/share/doc/libogg-1.3.0/ogg
+#usr/share/doc/libogg-1.3.0/ogg-multiplex.html
+#usr/share/doc/libogg-1.3.0/ogg/bitpacking.html
+#usr/share/doc/libogg-1.3.0/ogg/datastructures.html
+#usr/share/doc/libogg-1.3.0/ogg/decoding.html
+#usr/share/doc/libogg-1.3.0/ogg/encoding.html
+#usr/share/doc/libogg-1.3.0/ogg/general.html
+#usr/share/doc/libogg-1.3.0/ogg/index.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_packet.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_packet_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_bos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_checksum_set.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_continued.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_eos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_granulepos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_packets.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_pageno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_serialno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_page_version.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_destroy.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_eos.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_flush.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_init.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetin.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_packetpeek.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pagein.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_pageout_fill.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_reset_serialno.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_stream_state.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_clear.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_destroy.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_init.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageout.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_pageseek.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_state.html
+#usr/share/doc/libogg-1.3.0/ogg/ogg_sync_wrote.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_adv1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_bits.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_bytes.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_get_buffer.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_look.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_look1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_read.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_read1.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_readinit.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_reset.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_write.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writealign.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeclear.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writecopy.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writeinit.html
+#usr/share/doc/libogg-1.3.0/ogg/oggpack_writetrunc.html
+#usr/share/doc/libogg-1.3.0/ogg/overview.html
+#usr/share/doc/libogg-1.3.0/ogg/reference.html
+#usr/share/doc/libogg-1.3.0/ogg/style.css
+#usr/share/doc/libogg-1.3.0/oggstream.html
+#usr/share/doc/libogg-1.3.0/rfc3533.txt
+#usr/share/doc/libogg-1.3.0/rfc5334.txt
+#usr/share/doc/libogg-1.3.0/skeleton.html
+#usr/share/doc/libogg-1.3.0/stream.png
+#usr/share/doc/libogg-1.3.0/vorbisword2.png
+#usr/share/doc/libogg-1.3.0/white-ogg.png
+#usr/share/doc/libogg-1.3.0/white-xifish.png
index 587d5149f9acb5f59825b56521c57ed621051803..de1d12d05540556ef5e1919b5122669e0b6eb04e 100644 (file)
@@ -1,13 +1,13 @@
 #usr/include/solv
 #usr/include/solv/bitmap.h
 #usr/include/solv/chksum.h
+#usr/include/solv/dataiterator.h
 #usr/include/solv/dirpool.h
 #usr/include/solv/evr.h
 #usr/include/solv/hash.h
 #usr/include/solv/knownid.h
 #usr/include/solv/policy.h
 #usr/include/solv/pool.h
-#usr/include/solv/pool_fileconflicts.h
 #usr/include/solv/poolarch.h
 #usr/include/solv/poolid.h
 #usr/include/solv/pooltypes.h
 #usr/include/solv/problems.h
 #usr/include/solv/queue.h
 #usr/include/solv/repo.h
-#usr/include/solv/repo_content.h
-#usr/include/solv/repo_deb.h
-#usr/include/solv/repo_deltainfoxml.h
-#usr/include/solv/repo_helix.h
-#usr/include/solv/repo_products.h
-#usr/include/solv/repo_releasefile_products.h
-#usr/include/solv/repo_repomdxml.h
-#usr/include/solv/repo_rpmdb.h
-#usr/include/solv/repo_rpmmd.h
 #usr/include/solv/repo_solv.h
-#usr/include/solv/repo_susetags.h
-#usr/include/solv/repo_updateinfoxml.h
 #usr/include/solv/repo_write.h
-#usr/include/solv/repo_zyppdb.h
 #usr/include/solv/repodata.h
-#usr/include/solv/repopage.h
 #usr/include/solv/rules.h
 #usr/include/solv/solv_xfopen.h
 #usr/include/solv/solvable.h
 #usr/include/solv/solverdebug.h
 #usr/include/solv/solvversion.h
 #usr/include/solv/strpool.h
+#usr/include/solv/testcase.h
 #usr/include/solv/tools_util.h
 #usr/include/solv/transaction.h
 #usr/include/solv/util.h
-usr/lib/libsolv.so
+#usr/lib/libsolv.so
 usr/lib/libsolv.so.0
-usr/lib/libsolvext.so
+#usr/lib/libsolvext.so
 usr/lib/libsolvext.so.0
+#usr/share/cmake
+#usr/share/cmake/Modules
+#usr/share/cmake/Modules/FindLibSolv.cmake
index 212e864162c73cdcddcb4901164f78e829f0045a..e7f7c3c1bc9c53ce08def7bd288dfb47cf03579c 100644 (file)
 #usr/include/vorbis/vorbisfile.h
 #usr/lib/libvorbis.a
 #usr/lib/libvorbis.la
-usr/lib/libvorbis.so
+#usr/lib/libvorbis.so
 usr/lib/libvorbis.so.0
-usr/lib/libvorbis.so.0.4.3
+usr/lib/libvorbis.so.0.4.6
 #usr/lib/libvorbisenc.a
 #usr/lib/libvorbisenc.la
-usr/lib/libvorbisenc.so
+#usr/lib/libvorbisenc.so
 usr/lib/libvorbisenc.so.2
-usr/lib/libvorbisenc.so.2.0.6
+usr/lib/libvorbisenc.so.2.0.9
 #usr/lib/libvorbisfile.a
 #usr/lib/libvorbisfile.la
-usr/lib/libvorbisfile.so
+#usr/lib/libvorbisfile.so
 usr/lib/libvorbisfile.so.3
-usr/lib/libvorbisfile.so.3.3.2
+usr/lib/libvorbisfile.so.3.3.5
 #usr/lib/pkgconfig/vorbis.pc
 #usr/lib/pkgconfig/vorbisenc.pc
 #usr/lib/pkgconfig/vorbisfile.pc
 #usr/share/aclocal/vorbis.m4
-#usr/share/doc/libvorbis-1.2.3
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.cfg
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.css
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.html
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.pdf
-#usr/share/doc/libvorbis-1.2.3/Vorbis_I_spec.tex
-#usr/share/doc/libvorbis-1.2.3/eightphase.png
-#usr/share/doc/libvorbis-1.2.3/evenlsp.png
-#usr/share/doc/libvorbis-1.2.3/fish_xiph_org.png
-#usr/share/doc/libvorbis-1.2.3/floor1_inverse_dB_table.html
-#usr/share/doc/libvorbis-1.2.3/floorval.png
-#usr/share/doc/libvorbis-1.2.3/fourphase.png
-#usr/share/doc/libvorbis-1.2.3/framing.html
-#usr/share/doc/libvorbis-1.2.3/helper.html
-#usr/share/doc/libvorbis-1.2.3/index.html
-#usr/share/doc/libvorbis-1.2.3/lspmap.png
-#usr/share/doc/libvorbis-1.2.3/oddlsp.png
-#usr/share/doc/libvorbis-1.2.3/oggstream.html
-#usr/share/doc/libvorbis-1.2.3/programming.html
-#usr/share/doc/libvorbis-1.2.3/rfc5215.txt
-#usr/share/doc/libvorbis-1.2.3/rfc5215.xml
-#usr/share/doc/libvorbis-1.2.3/squarepolar.png
-#usr/share/doc/libvorbis-1.2.3/stereo.html
-#usr/share/doc/libvorbis-1.2.3/stream.png
-#usr/share/doc/libvorbis-1.2.3/v-comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbis-clip.txt
-#usr/share/doc/libvorbis-1.2.3/vorbis-errors.txt
-#usr/share/doc/libvorbis-1.2.3/vorbis-fidelity.html
-#usr/share/doc/libvorbis-1.2.3/vorbis.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/changes.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/examples.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/index.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage2_arg.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/ov_ectl_ratemanage_arg.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/overview.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/reference.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/style.css
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_ctl.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_init_vbr.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_init.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_managed.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_encode_setup_vbr.html
-#usr/share/doc/libvorbis-1.2.3/vorbisenc/vorbis_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/OggVorbis_File.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/chaining_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/chainingexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/crosslap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/datastructures.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/decoding.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/example.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/exampleindex.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/fileinfo.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/index.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/initialization.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_bitrate_instant.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_clear.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_crosslap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_fopen.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_open_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_seek_page_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_pcm_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_raw_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_read_float.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_seekable.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_serialnumber.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_streams.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_callbacks.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_test_open.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_seek_page_lap.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_tell.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/ov_time_total.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/overview.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/reference.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/return.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seeking_test_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/seekingexample.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/style.css
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/threads.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_comment.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbis_info.html
-#usr/share/doc/libvorbis-1.2.3/vorbisfile/vorbisfile_example_c.html
-#usr/share/doc/libvorbis-1.2.3/vorbisword2.png
-#usr/share/doc/libvorbis-1.2.3/wait.png
-#usr/share/doc/libvorbis-1.2.3/white-xifish.png
+#usr/share/doc/libvorbis-1.3.3
+#usr/share/doc/libvorbis-1.3.3/doxygen-build.stamp
+#usr/share/doc/libvorbis-1.3.3/eightphase.png
+#usr/share/doc/libvorbis-1.3.3/evenlsp.png
+#usr/share/doc/libvorbis-1.3.3/fish_xiph_org.png
+#usr/share/doc/libvorbis-1.3.3/floor1_inverse_dB_table.html
+#usr/share/doc/libvorbis-1.3.3/floorval.png
+#usr/share/doc/libvorbis-1.3.3/fourphase.png
+#usr/share/doc/libvorbis-1.3.3/framing.html
+#usr/share/doc/libvorbis-1.3.3/helper.html
+#usr/share/doc/libvorbis-1.3.3/index.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis
+#usr/share/doc/libvorbis-1.3.3/libvorbis/index.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/overview.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/reference.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/return.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/style.css
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_blockout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_buffer.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_headerout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_analysis_wrote.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_addblock.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_bitrate_flushpacket.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_block_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_add_tag.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_comment_query_count.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_commentheader_out.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_dsp_state.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_granule_time.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_blocksize.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_clear.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_info_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_packet_blocksize.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_blockin.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_halfrate_p.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_headerin.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_idheader.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_init.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_lapout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_pcmout.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_read.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_restart.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_synthesis_trackonly.html
+#usr/share/doc/libvorbis-1.3.3/libvorbis/vorbis_version_string.html
+#usr/share/doc/libvorbis-1.3.3/lspmap.png
+#usr/share/doc/libvorbis-1.3.3/oddlsp.png
+#usr/share/doc/libvorbis-1.3.3/oggstream.html
+#usr/share/doc/libvorbis-1.3.3/programming.html
+#usr/share/doc/libvorbis-1.3.3/rfc5215.txt
+#usr/share/doc/libvorbis-1.3.3/rfc5215.xml
+#usr/share/doc/libvorbis-1.3.3/squarepolar.png
+#usr/share/doc/libvorbis-1.3.3/stereo.html
+#usr/share/doc/libvorbis-1.3.3/stream.png
+#usr/share/doc/libvorbis-1.3.3/v-comment.html
+#usr/share/doc/libvorbis-1.3.3/vorbis-clip.txt
+#usr/share/doc/libvorbis-1.3.3/vorbis-errors.txt
+#usr/share/doc/libvorbis-1.3.3/vorbis-fidelity.html
+#usr/share/doc/libvorbis-1.3.3/vorbis.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/changes.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/examples.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/index.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage2_arg.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/ovectl_ratemanage_arg.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/overview.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/reference.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/style.css
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_ctl.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_init_vbr.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_init.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_managed.html
+#usr/share/doc/libvorbis-1.3.3/vorbisenc/vorbis_encode_setup_vbr.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/OggVorbis_File.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/chaining_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/chainingexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/crosslap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/datastructures.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/decoding.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/example.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/exampleindex.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/fileinfo.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/index.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/initialization.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_bitrate_instant.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_clear.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_comment.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_crosslap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_fopen.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_info.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_open_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_seek_page_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_pcm_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_raw_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_filter.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_read_float.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_seekable.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_serialnumber.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_streams.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_callbacks.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_test_open.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_seek_page_lap.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_tell.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/ov_time_total.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/overview.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/reference.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seeking_test_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/seekingexample.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/style.css
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/threads.html
+#usr/share/doc/libvorbis-1.3.3/vorbisfile/vorbisfile_example_c.html
+#usr/share/doc/libvorbis-1.3.3/vorbisword2.png
+#usr/share/doc/libvorbis-1.3.3/wait.png
+#usr/share/doc/libvorbis-1.3.3/white-xifish.png
index c4899a4d2d4011b45679c9fc1e58662821c0cef3..9ff6677bd5137208995675761aad99faae038de4 100644 (file)
@@ -1558,6 +1558,8 @@ lib/modules/KVER-ipfire-pae
 #lib/modules/KVER-ipfire-pae/kernel/fs/smbfs/smbfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/udf
 #lib/modules/KVER-ipfire-pae/kernel/fs/udf/udf.ko
+#lib/modules/KVER-ipfire-pae/kernel/fs/ufs
+#lib/modules/KVER-ipfire-pae/kernel/fs/ufs/xfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/fs/xfs
 #lib/modules/KVER-ipfire-pae/kernel/fs/xfs/xfs.ko
 #lib/modules/KVER-ipfire-pae/kernel/lib
index 7a3bc21b87b203c4b7dc635e00a1685c2a86fd39..ec6b99a21e7a4f65394740771033308076567dbe 100644 (file)
-boot/System.map-KVER-ipfire-xen
+boot/System.map-2.6.32.59-ipfire-xen
 boot/System.map-ipfire-xen
-boot/config-KVER-ipfire-xen
-boot/vmlinuz-KVER-ipfire-xen
+boot/config-2.6.32.59-ipfire-xen
+boot/vmlinuz-2.6.32.59-ipfire-xen
 boot/vmlinuz-ipfire-xen
 #lib/firmware/bnx2x-e1-5.0.21.0.fw
 #lib/firmware/bnx2x-e1h-5.0.21.0.fw
 #lib/modules
-lib/modules/KVER-ipfire-xen
-#lib/modules/KVER-ipfire-xen/build
-#lib/modules/KVER-ipfire-xen/kernel
-#lib/modules/KVER-ipfire-xen/kernel/arch
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/microcode.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/msr.ko
-#lib/modules/KVER-ipfire-xen/kernel/arch/x86/kernel/scx200.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto
-#lib/modules/KVER-ipfire-xen/kernel/crypto/aes_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ansi_cprng.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/anubis.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/arc4.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_pq.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_tx.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/async_tx/async_xor.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/authenc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/blowfish.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/camellia.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cast5.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cast6.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ccm.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/crc32c.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cryptd.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ctr.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/cts.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/des_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ecb.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/fcrypt.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/gcm.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/gf128mul.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/ghash-generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/khazad.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/lrw.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/lzo.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/md5.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/michael_mic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/pcbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd128.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd160.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd256.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/rmd320.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/salsa20_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/seed.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/seqiv.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/serpent.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha1_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha256_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/sha512_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/tea.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/tgr192.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/twofish_common.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/vmac.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/wp512.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xcbc.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xor.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/xts.ko
-#lib/modules/KVER-ipfire-xen/kernel/crypto/zlib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/ac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/button.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/container.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/fan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/pci_slot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/power_meter.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/processor.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/sbshc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/thermal.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/acpi/video.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ahci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/ata_piix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/libata.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ali.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_amd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_artop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_efar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it8213.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_it821x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_marvell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_netcell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_opti.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_optidma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_radisys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rdc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sil680.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_triflex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pata_via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/pdc_adma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_mv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_nv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_promise.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_qstor.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sil24.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_svw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_sx4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_uli.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ata/sata_vsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/ambassador.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/atmtcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/eni.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/firestream.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/fore_200e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/he.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/horizon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77105.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/idt77252.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/iphase.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/lanai.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/nicstar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/solos-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/suni.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/uPD98402.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/atm/zatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/DAC960.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/aoe/aoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cciss.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cpqarray.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/cryptoloop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/floppy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/nbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/osdblk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/block/sx8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/btusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/agpgart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/agp/via-agp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/i8k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/lp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nozomi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nsc_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/nvram.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/ppdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/scx200_gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/char/toshiba.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource
-#lib/modules/KVER-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/connector
-#lib/modules/KVER-ipfire-xen/kernel/drivers/connector/cn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dca
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dca/dca.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/dmatest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat
-#lib/modules/KVER-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-net.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware
-#lib/modules/KVER-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via
-#lib/modules/KVER-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-apple.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-belkin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cherry.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-chicony.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-drff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gaff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-gyration.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kensington.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-kye.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-logitech.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-monterey.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-pl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-samsung.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sony.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-tmff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-topseed.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-wacom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/hid-zpff.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7414.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ad7418.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1021.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1025.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1026.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1029.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm1031.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adm9240.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ads7828.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7462.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7470.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7473.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/adt7475.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/applesmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asb100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/atxp1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/coretemp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/dme1737.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ds1621.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71805f.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/f75375s.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/fschmd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/g760a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hdaps.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/it87.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/k8temp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm63.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm75.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm77.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm78.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm80.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm83.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm85.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm87.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm90.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm92.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm93.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/lm95241.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max1619.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/max6650.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87360.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pc87427.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/sis5595.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/thmc50.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp401.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/tmp421.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/via686a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt1211.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/vt8231.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83781d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83791d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83792d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83793.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/ff-memless.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/input-polldev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/apanel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/cm109.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/powermate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/input/misc/yealink.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/led-class.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-alix2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/leds-wrap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-crypt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-delay.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-log.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mirror.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-multipath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-queue-length.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-region-hash.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-round-robin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-service-time.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-snapshot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/dm-zero.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/linear.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/md-mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/multipath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid0.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid10.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid456.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/md/raid6_pq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/media/video/videodev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/memstick.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/mfd-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/sm501.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm831x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/c2port/core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/enclosure.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/hpilo.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/ics932s401.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/isl29003.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/misc/tifm_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ar7part.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdblock.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdchar.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/3c59x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139cp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8139too.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/8390.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/acenic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/amd8111e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atlx/atl2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/atp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/b44.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/benet/be2net.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bnx2x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bonding/bonding.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/bsd_comp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cassini.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cnic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de600.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/de620.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dl2k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000/e1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/enic/enic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/epic100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/eql.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ethoc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/fealnx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/forcedeth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hamachi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/hp100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ifb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igb/igb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/imq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ipg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/donauboe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/stir4200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/jme.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8842.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ks8851_mll.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/macvlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mii.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/natsemi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ne2k-pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/niu.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ns83820.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pcnet32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/broadcom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/cicada.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/davicom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/et1011c.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/icplus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/lxt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/marvell.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/national.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/qsemi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/realtek.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/smsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/phy/vitesse.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_async.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_deflate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_mppe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/ppp_synctty.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppol2tp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/pppox.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qla3xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/qlge/qlge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r6040.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/r8169.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/s2io.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sb1000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sc92031.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis190.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sis900.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/skge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sky2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slhc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/slip.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/smsc9420.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/starfire.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sundance.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sungem_phy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/sunhme.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tehuti.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tg3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/tulip.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/tun.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/typhoon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/asix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/catc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/dm9601.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/gl620a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/hso.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/int51x1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/kaweth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/net1080.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/pegasus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/plusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/usbnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/usb/zaurus.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/veth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-rhine.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/via-velocity.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/vxge/vxge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/net/yellowfin.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/parport/parport_pc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pci
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pci/pci-stub.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/i82092.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/platform/x86/wmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/ds2782_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/max17040_battery.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm831x_power.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/power/wm8350_power.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pps
-#lib/modules/KVER-ipfire-xen/kernel/drivers/pps/pps_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-test.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/BusLogic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/a100u2w.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/advansys.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/atp870u.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dc395x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/eata.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fdomain.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/gdth.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/hptiop.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/imm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/initio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ipr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ips.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/nsp32.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/osd/osd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/pmcraid.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ppa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla1280.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sd_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/ses.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sr_mod.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/stex.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/scsi/tmscsim.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/serial/serial_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/ssb/ssb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss
-#lib/modules/KVER-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_aec.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_cif.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uio/uio_smx.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usblp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/core/usbcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/host/xhci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi26.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/emi62.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbled.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/uss720.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/aircable.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ch341.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/empeg.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ipw.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/opticon.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/option.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/sierra.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/umc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/uwb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whc-rc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/whci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp
-#lib/modules/KVER-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/arkfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/atyfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/lcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/broadsheetfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cirrusfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/cyber2000fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/display/display.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_ddc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/gxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/geode/lxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/i810/i810fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/macmodes.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/metronomefb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/neofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/output.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm2fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/pm3fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/riva/rivafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/s3fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/savage/savagefb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sis/sisfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sm501fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sstfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/svgalib.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/syscopyarea.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysfillrect.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/sysimgblt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tdfxfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tmiofb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/tridentfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/uvesafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vgastate.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/via/viafb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/video/vt8623fb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/w1/wire.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/machzwd.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/softdog.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront
-#lib/modules/KVER-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs/autofs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4
-#lib/modules/KVER-ipfire-xen/kernel/fs/autofs4/autofs4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/cifs
-#lib/modules/KVER-ipfire-xen/kernel/fs/cifs/cifs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/exportfs/exportfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext2
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext2/ext2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext3
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext3/ext3.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext4
-#lib/modules/KVER-ipfire-xen/kernel/fs/ext4/ext4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat/fat.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fat/vfat.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/cuse.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/fuse/fuse.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/isofs
-#lib/modules/KVER-ipfire-xen/kernel/fs/isofs/isofs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd/jbd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2
-#lib/modules/KVER-ipfire-xen/kernel/fs/jbd2/jbd2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2
-#lib/modules/KVER-ipfire-xen/kernel/fs/jffs2/jffs2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/jfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/jfs/jfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/lockd
-#lib/modules/KVER-ipfire-xen/kernel/fs/lockd/lockd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/mbcache.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs/nfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd
-#lib/modules/KVER-ipfire-xen/kernel/fs/nfsd/nfsd.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_tree.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v1.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/quota/quota_v2.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiser4/reiser4.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/smbfs/smbfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/udf
-#lib/modules/KVER-ipfire-xen/kernel/fs/udf/udf.ko
-#lib/modules/KVER-ipfire-xen/kernel/fs/xfs
-#lib/modules/KVER-ipfire-xen/kernel/fs/xfs/xfs.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-ccitt.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-itu-t.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc-t10dif.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc16.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/crc7.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/libcrc32c.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_compress.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_bm.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_fsm.ko
-#lib/modules/KVER-ipfire-xen/kernel/lib/ts_kmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net
-#lib/modules/KVER-ipfire-xen/kernel/net/802
-#lib/modules/KVER-ipfire-xen/kernel/net/802/garp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/p8022.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/psnap.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/802/stp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/8021q
-#lib/modules/KVER-ipfire-xen/kernel/net/8021q/8021q.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/br2684.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/clip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/atm/pppoatm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bluetooth.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/l2cap.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bluetooth/sco.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/bridge.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/af_802154.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/nl802154.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ieee802154/wpan-class.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ah4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/esp4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/inet_diag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ip_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/ipip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_bic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_diag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_lp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_veno.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/tunnel4.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ah6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/esp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipcomp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/ipv6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/mip6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/sit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/tunnel6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irlan/irlan.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet
-#lib/modules/KVER-ipfire-xen/kernel/net/irda/irnet/irnet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/key
-#lib/modules/KVER-ipfire-xen/kernel/net/key/af_key.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/llc
-#lib/modules/KVER-ipfire-xen/kernel/net/llc/llc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/mac80211
-#lib/modules/KVER-ipfire-xen/kernel/net/mac80211/mac80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/x_tables.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_HL.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_LED.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_MARK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_cluster.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_comment.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_connmark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dccp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_dscp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_esp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_helper.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_hl.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_iprange.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_layer7.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_length.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_limit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mac.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_mark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_multiport.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_osf.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_owner.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_physdev.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_policy.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_quota.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_rateest.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_realm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_recent.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_sctp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_socket.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_state.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_statistic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_string.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_time.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/netfilter/xt_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet/phonet.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/phonet/pn_pep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rds
-#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rds/rds_tcp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rfkill
-#lib/modules/KVER-ipfire-xen/kernel/net/rfkill/rfkill.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/rxrpc/rxkad.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_gact.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_ipt.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_mirred.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_nat.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_pedit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_police.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/act_skbedit.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_basic.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_flow.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_fw.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_route.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_rsvp6.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_tcindex.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/cls_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_cmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_meta.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_nbyte.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_text.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/em_u32.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_atm.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_cbq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_drr.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_dsmark.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_gred.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_hfsc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_htb.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_ingress.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_multiq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_netem.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_prio.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_red.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_sfq.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_tbf.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sched/sch_teql.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/sunrpc/sunrpc.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wimax
-#lib/modules/KVER-ipfire-xen/kernel/net/wimax/wimax.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/cfg80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko
-#lib/modules/KVER-ipfire-xen/kernel/net/xfrm/xfrm_user.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound
-#lib/modules/KVER-ipfire-xen/kernel/sound/ac97_bus.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/seq/snd-seq.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-hwdep.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-page-alloc.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-pcm.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-rawmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd-timer.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/core/snd.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-dummy.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-mts64.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx
-#lib/modules/KVER-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/i2c/snd-i2c.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ad1889.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als300.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-als4000.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-atiixp.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-bt87x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cmipci.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs4281.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-cs5530.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1370.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-ens1371.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1938.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-es1968.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-fm801.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-maestro3.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme32.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-rme96.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sis7019.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/snd-via82xx.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci
-#lib/modules/KVER-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx
-#lib/modules/KVER-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soc/snd-soc-core.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/soundcore.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/synth/snd-util-mem.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko
-#lib/modules/KVER-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
-#lib/modules/KVER-ipfire-xen/modules.alias
-#lib/modules/KVER-ipfire-xen/modules.alias.bin
-#lib/modules/KVER-ipfire-xen/modules.ccwmap
-#lib/modules/KVER-ipfire-xen/modules.dep
-#lib/modules/KVER-ipfire-xen/modules.dep.bin
-#lib/modules/KVER-ipfire-xen/modules.ieee1394map
-#lib/modules/KVER-ipfire-xen/modules.inputmap
-#lib/modules/KVER-ipfire-xen/modules.isapnpmap
-#lib/modules/KVER-ipfire-xen/modules.ofmap
-#lib/modules/KVER-ipfire-xen/modules.order
-#lib/modules/KVER-ipfire-xen/modules.pcimap
-#lib/modules/KVER-ipfire-xen/modules.seriomap
-#lib/modules/KVER-ipfire-xen/modules.symbols
-#lib/modules/KVER-ipfire-xen/modules.symbols.bin
-#lib/modules/KVER-ipfire-xen/modules.usbmap
-#lib/modules/KVER-ipfire-xen/source
+lib/modules/2.6.32.59-ipfire-xen
+#lib/modules/2.6.32.59-ipfire-xen/build
+#lib/modules/2.6.32.59-ipfire-xen/kernel
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/crypto
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/crypto/aes-i586.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/crypto/crc32c-intel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/crypto/salsa20-i586.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/crypto/twofish-i586.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/kernel
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/kernel/microcode.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/kernel/msr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/arch/x86/kernel/scx200.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/aes_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/ansi_cprng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/anubis.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/arc4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx/async_memcpy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx/async_pq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx/async_raid6_recov.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx/async_tx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/async_tx/async_xor.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/authenc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/blowfish.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/camellia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/cast5.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/cast6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/cbc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/ccm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/crc32c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/cryptd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/ctr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/cts.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/des_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/ecb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/fcrypt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/gcm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/gf128mul.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/ghash-generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/khazad.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/lrw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/lzo.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/md5.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/michael_mic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/pcbc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/rmd128.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/rmd160.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/rmd256.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/rmd320.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/salsa20_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/seed.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/seqiv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/serpent.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/sha1_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/sha256_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/sha512_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/tea.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/tgr192.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/twofish.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/twofish_common.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/vmac.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/wp512.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/xcbc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/xor.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/xts.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/crypto/zlib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/ac.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/acpi_pad.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/battery.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/button.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/container.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/fan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/pci_slot.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/power_meter.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/processor.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/sbs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/sbshc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/thermal.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/acpi/video.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/ahci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/ata_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/ata_piix.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/libata.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_acpi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_ali.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_amd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_artop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_atiixp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_atp867x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cmd640.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cmd64x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cs5520.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cs5530.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cs5535.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cs5536.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_cypress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_efar.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_hpt366.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_hpt37x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_hpt3x2n.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_hpt3x3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_it8213.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_it821x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_jmicron.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_marvell.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_mpiix.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_netcell.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_ninja32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_ns87410.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_ns87415.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_oldpiix.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_opti.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_optidma.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_pcmcia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_pdc2027x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_pdc202xx_old.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_radisys.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_rdc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_rz1000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_sc1200.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_sch.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_serverworks.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_sil680.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_sis.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_sl82c105.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_triflex.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pata_via.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/pdc_adma.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_inic162x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_mv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_nv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_promise.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_qstor.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_sil.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_sil24.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_sis.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_svw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_sx4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_uli.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_via.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ata/sata_vsc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/ambassador.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/atmtcp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/eni.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/firestream.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/fore_200e.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/he.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/horizon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/idt77105.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/idt77252.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/iphase.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/lanai.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/nicstar.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/solos-pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/suni.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/uPD98402.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/atm/zatm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/DAC960.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/aoe
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/aoe/aoe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/cciss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/cpqarray.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/cryptoloop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/floppy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/nbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/osdblk.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/block/sx8.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/bcm203x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/bfusb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/bluecard_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/bpa10x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/bt3c_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/btmrvl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/btmrvl_sdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/btsdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/btuart_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/btusb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/dtl1_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/hci_uart.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/bluetooth/hci_vhci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/agpgart.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/ali-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/amd-k7-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/amd64-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/ati-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/efficeon-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/intel-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/nvidia-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/sis-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/sworks-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/agp/via-agp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/cs5535_gpio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hangcheck-timer.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/amd-rng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/geode-rng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/intel-rng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/rng-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/timeriomem-rng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/hw_random/via-rng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/i8k.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi/ipmi_devintf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi/ipmi_msghandler.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi/ipmi_poweroff.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi/ipmi_si.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ipmi/ipmi_watchdog.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/lp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/nozomi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/nsc_gpio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/nvram.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/pc8736x_gpio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/pcmcia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/pcmcia/ipwireless/ipwireless.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/pcmcia/synclink_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/ppdev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/scx200_gpio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/char/toshiba.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/clocksource
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/clocksource/scx200_hrt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/connector
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/connector/cn.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/crypto
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/crypto/geode-aes.ko.off
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/crypto/hifn_795x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/crypto/padlock-aes.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/crypto/padlock-sha.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dca
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dca/dca.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dma
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dma/dmatest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dma/ioat
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/dma/ioat/ioatdma.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firewire
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firewire/firewire-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firewire/firewire-net.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firewire/firewire-ohci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firewire/firewire-sbp2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firmware
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/firmware/iscsi_ibft.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/drm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/drm_kms_helper.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i810
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i810/i810.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i830
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i830/i830.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i915
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/i915/i915.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/mga
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/mga/mga.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/r128
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/r128/r128.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/radeon
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/radeon/radeon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/savage
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/savage/savage.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/sis
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/sis/sis.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/tdfx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/tdfx/tdfx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/ttm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/ttm/ttm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/via
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/gpu/drm/via/via.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-a4tech.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-apple.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-belkin.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-cherry.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-chicony.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-cypress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-drff.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-ezkey.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-gaff.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-gyration.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-kensington.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-kye.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-logitech.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-microsoft.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-monterey.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-ntrig.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-petalynx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-pl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-samsung.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-sjoy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-sony.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-sunplus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-tmff.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-topseed.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-twinhan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-wacom.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/hid-zpff.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/usbhid
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hid/usbhid/usbhid.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/abituguru.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/abituguru3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ad7414.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ad7418.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm1021.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm1025.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm1026.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm1029.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm1031.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adm9240.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ads7828.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adt7462.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adt7470.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adt7473.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/adt7475.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/applesmc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/asb100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/asus_atk0110.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/atxp1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/coretemp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/dme1737.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ds1621.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/f71805f.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/f71882fg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/f75375s.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/fschmd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/g760a.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/gl518sm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/gl520sm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/hdaps.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/hp_accel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/hwmon-vid.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/hwmon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/i5k_amb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ibmaem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ibmpex.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/it87.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/k8temp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lis3lv02d.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm63.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm75.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm77.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm78.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm80.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm83.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm85.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm87.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm90.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm92.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm93.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/lm95241.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ltc4215.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/ltc4245.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/max1619.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/max6650.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/pc87360.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/pc87427.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/pcf8591.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/sis5595.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/smsc47b397.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/smsc47m1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/smsc47m192.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/thmc50.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/tmp401.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/tmp421.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/via686a.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/vt1211.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/vt8231.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83627ehf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83627hf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83781d.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83791d.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83792d.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83793.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83l785ts.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/w83l786ng.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/wm831x-hwmon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/hwmon/wm8350-hwmon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/algos
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-bit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/algos/i2c-algo-pca.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1535.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali1563.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-ali15x3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756-s4882.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd756.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-amd8111.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-i801.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-isch.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2-s4985.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-nforce2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-ocores.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport-light.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-parport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-pca-platform.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-piix4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-scmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-simtec.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis5595.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis630.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-sis96x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-stub.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-tiny-usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-via.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-viapro.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/i2c-voodoo3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/busses/scx200_acb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/chips
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/chips/ds1682.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/chips/tsl2550.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/i2c-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/i2c/i2c-dev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ieee802154
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ieee802154/fakehard.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/ff-memless.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/input-polldev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/adp5588-keys.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/lkkbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/lm8323.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/max7359_keypad.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/newtonkbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/opencores-kbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/stowaway.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/sunkbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/keyboard/xtkbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/apanel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/ati_remote.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/ati_remote2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/cm109.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/keyspan_remote.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/pcf50633-input.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/pcspkr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/powermate.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/winbond-cir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/wm831x-on.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/input/misc/yealink.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/capi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/capi/capi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/capi/capidrv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/capi/kernelcapi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/divert
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/divert/dss1_divert.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/gigaset
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/gigaset/bas_gigaset.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/gigaset/gigaset.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/gigaset/ser_gigaset.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/gigaset/usb_gigaset.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/avm_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1dma.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/b1pcmcia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/c4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/avm/t1pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_idi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon/diva_mnt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divacapi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divadidd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hardware/eicon/divas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/avma1_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/elsa_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hfc4s8s_l1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hfc_usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hisax.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hisax_fcpcipnp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hisax_isac.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/hisax_st5481.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/sedlbauer_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hisax/teles_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hysdn
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/hysdn/hysdn.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/i4l
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/i4l/isdn.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/i4l/isdn_bsdcomp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/isdn/i4l/isdnhdlc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/led-class.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-alix2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-bd2802.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-clevo-mail.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-lp3944.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-net48xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-pca9532.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-pca955x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-wm831x-status.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-wm8350.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/leds-wrap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/ledtrig-backlight.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/ledtrig-default-on.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/ledtrig-heartbeat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/ledtrig-netdev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/leds/ledtrig-timer.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-crypt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-delay.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-log-userspace.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-log.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-mirror.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-mod.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-multipath.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-queue-length.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-region-hash.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-round-robin.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-service-time.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-snapshot.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/dm-zero.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/linear.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/md-mod.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/multipath.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/raid0.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/raid1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/raid10.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/raid456.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/md/raid6_pq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/mc44s803.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/mt20xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tda8290.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tda9887.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tea5761.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tea5767.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tuner-simple.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tuner-types.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/tuner-xc2028.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/common/tuners/xc5000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/dvb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/dvb/dvb-core
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/dvb/dvb-core/dvb-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/video
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/video/v4l1-compat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/video/v4l2-common.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/video/v4l2-int-device.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/media/video/videodev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/core
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/core/memstick.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/core/mspro_block.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/host
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/host/jmb38x_ms.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/memstick/host/tifm_ms.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptbase.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptctl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptfc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptsas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptscsih.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/message/fusion/mptspi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/ab3100-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/ab3100-otp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/htc-pasic3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/mfd-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/pcf50633-adc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/pcf50633-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/pcf50633-gpio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/sm501.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/wm831x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/wm8350-i2c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/wm8350.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mfd/wm8400-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/c2port
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/c2port/c2port-duramar2150.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/c2port/core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/cb710
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/cb710/cb710.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/eeprom
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/eeprom/at24.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/eeprom/eeprom.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/eeprom/eeprom_93cx6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/eeprom/max6875.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/enclosure.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/hpilo.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/ics932s401.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/isl29003.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/tifm_7xx1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/misc/tifm_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/card
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/card/mmc_block.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/card/mmc_test.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/card/sdio_uart.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/core
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/core/mmc_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/cb710-mmc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/ricoh_mmc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/sdhci-pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/sdhci-pltfm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/sdhci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/sdricoh_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/tifm_sd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/via-sdmmc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mmc/host/wbsd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/ar7part.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/chips
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/chips/chipreg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/lpddr
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/lpddr/lpddr_cmds.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/lpddr/qinfo_probe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/maps
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/maps/physmap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/mtd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/mtd_blkdevs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/mtdblock.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/mtdchar.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/mtdconcat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_oobtest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_pagetest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_readtest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_speedtest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_stresstest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_subpagetest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/tests/mtd_torturetest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/ubi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/mtd/ubi/ubi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/3c59x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/8139cp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/8139too.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/8390.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/acenic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/amd8111e.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atl1c
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atl1c/atl1c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atl1e
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atl1e/atl1e.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atlx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atlx/atl1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atlx/atl2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/atp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/b44.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/benet
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/benet/be2net.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/bnx2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/bnx2x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/bonding
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/bonding/bonding.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/bsd_comp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/cassini.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/chelsio
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/chelsio/cxgb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/cnic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/cxgb3
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/cxgb3/cxgb3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/de600.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/de620.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/dl2k.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/dnet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/dummy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/e100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/e1000
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/e1000/e1000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/e1000e
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/e1000e/e1000e.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/enic
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/enic/enic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/epic100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/eql.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ethoc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/fealnx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/forcedeth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/hamachi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/hp100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ifb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/igb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/igb/igb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/igbvf
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/igbvf/igbvf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/imq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ipg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/ali-ircc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/donauboe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/irda-usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/irtty-sir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/kingsun-sir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/ks959-sir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/ksdazzle-sir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/mcs7780.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/nsc-ircc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/sir-dev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/smsc-ircc2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/stir4200.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/via-ircc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/vlsi_ir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/irda/w83977af_ir.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ixgb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ixgb/ixgb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ixgbe
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ixgbe/ixgbe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/jme.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ks8842.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ks8851_mll.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/macvlan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/mdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/mii.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/mlx4
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/mlx4/mlx4_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/mlx4/mlx4_en.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/myri10ge
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/myri10ge/myri10ge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/natsemi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ne2k-pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/netxen
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/netxen/netxen_nic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/niu.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ns83820.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/3c574_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/3c589_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/axnet_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/fmvj18x_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/nmclan_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/pcnet_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/smc91c92_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcmcia/xirc2ps_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pcnet32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/broadcom.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/cicada.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/davicom.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/et1011c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/icplus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/lxt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/marvell.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/mdio-bitbang.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/national.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/qsemi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/realtek.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/smsc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/ste10Xp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/phy/vitesse.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ppp_async.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ppp_deflate.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ppp_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ppp_mppe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/ppp_synctty.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pppoe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pppol2tp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/pppox.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/qla3xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/qlge
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/qlge/qlge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/r6040.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/r8169.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/s2io.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sb1000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sc92031.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sis190.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sis900.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/skge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sky2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/slhc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/slip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/smsc9420.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/starfire.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sundance.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sungem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sungem_phy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/sunhme.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tehuti.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tg3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tlan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/de2104x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/de4x5.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/dmfe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/tulip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/uli526x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/winbond-840.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tulip/xircom_cb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/tun.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/typhoon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/asix.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/catc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/cdc-phonet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/cdc_eem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/cdc_ether.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/cdc_subset.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/dm9601.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/gl620a.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/hso.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/int51x1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/kaweth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/mcs7830.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/net1080.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/pegasus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/plusb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/rndis_host.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/rtl8150.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/smsc95xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/usbnet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/usb/zaurus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/veth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/via-rhine.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/via-velocity.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/vxge
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/vxge/vxge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wimax
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wimax/i2400m
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-sdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m-usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wimax/i2400m/i2400m.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/adm8211.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/airo.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/airo_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/at76c50x-usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ar9170/ar9170usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ath.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/atmel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/atmel_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/atmel_pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/b43
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/b43/b43.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/b43legacy
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/b43legacy/b43legacy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/hostap
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/hostap/hostap_plx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ipw2x00
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/ipw2200.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ipw2x00/libipw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwlwifi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwl3945.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlagn.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwlwifi/iwlcore.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/iwmc3200wifi/iwmc3200wifi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas/libertas_sdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas/usb8xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas_tf
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/libertas_tf/libertas_tf_usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/mwl8k.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_nortel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_plx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/orinoco_tmd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/orinoco/spectrum_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/p54
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/p54/p54common.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/p54/p54pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/p54/p54usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/prism54
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/prism54/prism54.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/ray_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rndis_wlan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2400pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2500usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt2x00usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt61pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rtl818x
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8180.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/rtl818x/rtl8187.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/wl12xx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/wl12xx/wl1251_sdio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/wl3501_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/zd1201.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/zd1211rw
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/wireless/zd1211rw/zd1211rw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/net/yellowfin.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/parport
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/parport/parport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/parport/parport_ax88796.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/parport/parport_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/parport/parport_pc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pci
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pci/pci-stub.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/i82092.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/pcmcia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/pcmcia_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/pd6729.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/rsrc_nonstatic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pcmcia/yenta_socket.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/acer-wmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/asus-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/asus_acpi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/compal-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/dell-wmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/fujitsu-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/hp-wmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/intel_menlow.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/msi-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/panasonic-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/sony-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/tc1100-wmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/thinkpad_acpi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/topstar-laptop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/toshiba_acpi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/platform/x86/wmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/bq27x00_battery.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/ds2782_battery.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/max17040_battery.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/pcf50633-charger.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/wm831x_power.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/power/wm8350_power.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pps
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/pps/pps_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ab3100.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-bq4802.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-cmos.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1286.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1307.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1374.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1511.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1553.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1672.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-ds1742.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-fm3130.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-isl1208.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-m41t80.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-m48t35.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-m48t59.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-m48t86.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-max6900.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-pcf50633.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-pcf8563.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-pcf8583.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-rs5c372.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-rx8025.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-rx8581.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-s35390a.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-stk17ta8.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-test.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-v3020.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-wm831x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-wm8350.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/rtc/rtc-x1205.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/3w-9xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/3w-xxxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/BusLogic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/a100u2w.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aacraid
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aacraid/aacraid.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/advansys.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aic7xxx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic79xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aic7xxx/aic7xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aic94xx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/aic94xx/aic94xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/arcmsr
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/arcmsr/arcmsr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/atp870u.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/be2iscsi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/be2iscsi/be2iscsi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/bfa
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/bfa/bfa.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/bnx2i
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/bnx2i/bnx2i.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/ch.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/cxgb3i
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/cxgb3i/cxgb3i.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/dc395x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_alua.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_emc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_hp_sw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/device_handler/scsi_dh_rdac.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/dmx3191d.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/dpt_i2o.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/eata.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fcoe
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fcoe/fcoe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fcoe/libfcoe.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fdomain.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fnic
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/fnic/fnic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/gdth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/hptiop.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/imm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/initio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/ipr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/ips.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/iscsi_tcp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libfc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libfc/libfc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libiscsi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libiscsi_tcp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libsas
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/libsas/libsas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/lpfc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/lpfc/lpfc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/megaraid
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/megaraid.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mbox.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_mm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/megaraid/megaraid_sas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/mvsas
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/mvsas/mvsas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/nsp32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/osd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/osd/libosd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/osd/osd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia/aha152x_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia/fdomain_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia/nsp_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia/qlogic_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pcmcia/sym53c500_cs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/pmcraid.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/ppa.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qla1280.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qla2xxx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qla2xxx/qla2xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qla4xxx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qla4xxx/qla4xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/qlogicfas408.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_mod.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_transport_fc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_transport_iscsi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_transport_sas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_transport_spi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_transport_srp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/scsi_wait_scan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/sd_mod.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/ses.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/sg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/sr_mod.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/stex.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/sym53c8xx_2/sym53c8xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/scsi/tmscsim.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/serial
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/serial/jsm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/serial/jsm/jsm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/serial/serial_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ssb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/ssb/ssb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/staging
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/staging/et131x
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/staging/et131x/et131x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/staging/slicoss
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/staging/slicoss/slicoss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_aec.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_cif.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_pci_generic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_pdrv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_pdrv_genirq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_sercos3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uio/uio_smx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm/cxacru.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm/speedtch.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm/ueagle-atm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm/usbatm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/atm/xusbatm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/class
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/class/cdc-acm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/class/cdc-wdm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/class/usblp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/class/usbtmc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/core
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/core/usbcore.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/ehci-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/hwa-hc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/isp116x-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/isp1362-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/ohci-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/oxu210hp-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/r8a66597-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/sl811-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/u132-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/uhci-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/whci
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/whci/whci-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/host/xhci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/berry_charge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/cypress_cy7c63.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/cytherm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/emi26.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/emi62.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/ftdi-elan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/iowarrior.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/isight_firmware.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/sisusbvga
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/sisusbvga/sisusbvga.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/usblcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/usbled.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/usbsevseg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/uss720.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/misc/vstusb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/otg
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/otg/nop-usb-xceiv.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/aircable.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/ark3116.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/belkin_sa.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/ch341.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/cp210x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/cypress_m8.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/digi_acceleport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/empeg.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/ftdi_sio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/garmin_gps.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/hp4x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/io_edgeport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/ipw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/iuu_phoenix.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/keyspan_pda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/mct_u232.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/mos7720.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/mos7840.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/moto_modem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/opticon.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/option.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/oti6858.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/pl2303.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/safe_serial.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/siemens_mpi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/sierra.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/spcp8x5.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/symbolserial.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/ti_usb_3410_5052.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/usbserial.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/serial/whiteheat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-alauda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-cypress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-freecom.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-isd200.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-jumpshot.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-karma.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-onetouch.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-sddr09.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-sddr55.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/ums-usbat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/storage/usb-storage.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/wusbcore
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-cbaf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/wusbcore/wusb-wa.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/usb/wusbcore/wusbcore.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/hwa-rc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480/dfu
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480/dfu/i1480-dfu-usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480/i1480-est.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/i1480/i1480u-wlp/i1480u-wlp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/umc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/uwb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/whc-rc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/whci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/wlp
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/uwb/wlp/wlp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/arkfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/aty
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/aty/aty128fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/aty/atyfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/aty/radeonfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/cr_bllcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/generic_bl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/kb3886_bl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/lcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/mbp_nvidia_bl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/platform_lcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/progear_bl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/backlight/wm831x_bl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/broadsheetfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/cirrusfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/cyber2000fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/display
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/display/display.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/fb_ddc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/fb_sys_fops.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/geode
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/geode/gx1fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/geode/gxfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/geode/lxfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/i810
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/i810/i810fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/kyro
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/kyro/kyrofb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/macmodes.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/g450_pll.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/i2c-matroxfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_DAC1064.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_Ti3026.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_accel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_base.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_crtc2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_g450.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_maven.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/matrox/matroxfb_misc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/mb862xx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/mb862xx/mb862xxfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/metronomefb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/neofb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/nvidia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/nvidia/nvidiafb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/output.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/pm2fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/pm3fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/riva
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/riva/rivafb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/s3fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/savage
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/savage/savagefb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sis
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sis/sisfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sm501fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sstfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/svgalib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/syscopyarea.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sysfillrect.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/sysimgblt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/tdfxfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/tmiofb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/tridentfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/uvesafb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/vermilion
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/vermilion/crvml.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/vermilion/vmlfb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/vgastate.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/via
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/via/viafb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/video/vt8623fb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/masters
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/masters/ds2482.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/masters/ds2490.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/masters/matrox_w1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_bq27000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2431.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2433.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_ds2760.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_smem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/slaves/w1_therm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/w1/wire.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/acquirewdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/advantechwdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/alim1535_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/alim7101_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/cpu5wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/eurotechwdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/hpwdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/i6300esb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/iTCO_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/ib700wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/ibmasr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/it8712f_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/it87_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/machzwd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/pc87413_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/pcwd_pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/pcwd_usb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sbc60xxwdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sbc7240_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sbc8360.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sbc_epx_c3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sbc_fitpc2_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sc1200wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sc520_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/sch311x_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/scx200_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/smsc37b787_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/softdog.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/w83627hf_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/w83697hf_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/w83697ug_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/w83877f_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/w83977f_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/wafer5823wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/wdt_pci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/wm831x_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/watchdog/wm8350_wdt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/blktap2
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/blktap2/blktap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/scsiback
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/scsiback/xen-scsibk.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/scsifront
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/scsifront/xenscsi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/usbback
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/usbback/usbbk.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/usbfront
+#lib/modules/2.6.32.59-ipfire-xen/kernel/drivers/xen/usbfront/xen-hcd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/autofs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/autofs/autofs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/autofs4
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/autofs4/autofs4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/cifs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/cifs/cifs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ecryptfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ecryptfs/ecryptfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/exportfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/exportfs/exportfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext2
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext2/ext2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext3
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext3/ext3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext4
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ext4/ext4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fat
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fat/fat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fat/vfat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fuse
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fuse/cuse.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/fuse/fuse.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/isofs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/isofs/isofs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jbd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jbd/jbd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jbd2
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jbd2/jbd2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jffs2
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jffs2/jffs2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/jfs/jfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/lockd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/lockd/lockd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/mbcache.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfs/nfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfs_common
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfs_common/nfs_acl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfsd
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/nfsd/nfsd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/quota
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/quota/quota_tree.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/quota/quota_v1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/quota/quota_v2.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/reiser4
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/reiser4/reiser4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/reiserfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/reiserfs/reiserfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/smbfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/smbfs/smbfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/udf
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/udf/udf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ufs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/ufs/xfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/xfs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/fs/xfs/xfs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/crc-ccitt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/crc-itu-t.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/crc-t10dif.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/crc16.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/crc7.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/libcrc32c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/lzo
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/lzo/lzo_compress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/lzo/lzo_decompress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/ts_bm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/ts_fsm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/lib/ts_kmp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/802
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/802/garp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/802/p8022.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/802/psnap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/802/stp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/8021q
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/8021q/8021q.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/atm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/atm/atm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/atm/br2684.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/atm/clip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/atm/pppoatm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/bluetooth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/bnep
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/bnep/bnep.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/cmtp
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/cmtp/cmtp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/hidp
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/hidp/hidp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/l2cap.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/rfcomm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/rfcomm/rfcomm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bluetooth/sco.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/bridge.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_802_3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_among.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_arp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_arpreply.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_dnat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_ip6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_limit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_log.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_mark_m.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_nflog.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_pkttype.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_redirect.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_snat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_stp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_ulog.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebt_vlan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebtable_broute.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebtable_filter.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebtable_nat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/bridge/netfilter/ebtables.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ieee802154
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ieee802154/af_802154.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ieee802154/nl802154.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ieee802154/wpan-class.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/ah4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/esp4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/inet_diag.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/ip_gre.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/ipcomp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/ipip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/arp_tables.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/arpt_mangle.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/arptable_filter.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ip_queue.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ip_tables.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_CLUSTERIP.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ECN.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_LOG.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_MASQUERADE.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_NETMAP.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REDIRECT.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_REJECT.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ULOG.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_addrtype.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ah.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ecn.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/ipt_ipp2p.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/iptable_filter.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/iptable_mangle.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/iptable_nat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/iptable_raw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_conntrack_ipv4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_defrag_ipv4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_amanda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_ftp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_h323.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_irc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_pptp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_dccp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_gre.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_sctp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_proto_udplite.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_sip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_snmp_basic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/netfilter/nf_nat_tftp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_bic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_cubic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_diag.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_highspeed.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_htcp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_hybla.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_illinois.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_lp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_scalable.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_vegas.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_veno.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_westwood.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tcp_yeah.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/tunnel4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv4/xfrm4_tunnel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/ah6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/esp6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/ip6_tunnel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/ipcomp6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/ipv6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/mip6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6_queue.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6_tables.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_LOG.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_REJECT.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ah.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_eui64.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_frag.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_hbh.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_ipv6header.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_mh.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6t_rt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_filter.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_mangle.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/ip6table_raw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/netfilter/nf_conntrack_ipv6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/sit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/tunnel6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/xfrm6_mode_beet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/xfrm6_mode_ro.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/xfrm6_mode_transport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/xfrm6_mode_tunnel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/ipv6/xfrm6_tunnel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/ircomm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/ircomm/ircomm-tty.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/ircomm/ircomm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/irda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/irlan
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/irlan/irlan.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/irnet
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/irda/irnet/irnet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/key
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/key/af_key.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/llc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/llc/llc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/mac80211
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/mac80211/mac80211.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/ipvs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/ipvs/ip_vs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_amanda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_ftp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_h323.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_irc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_netbios_ns.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_netlink.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_pptp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_dccp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_gre.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_sctp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_proto_udplite.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_sane.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_sip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_conntrack_tftp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nf_tproxy_core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nfnetlink.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nfnetlink_log.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/nfnetlink_queue.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/x_tables.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_CLASSIFY.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_CONNMARK.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_DSCP.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_HL.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_IMQ.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_LED.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_MARK.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_NFLOG.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_NFQUEUE.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_NOTRACK.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_RATEEST.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_TCPMSS.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_TCPOPTSTRIP.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_TPROXY.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_TRACE.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_cluster.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_comment.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_connbytes.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_connlimit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_connmark.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_conntrack.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_dccp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_dscp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_esp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_hashlimit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_helper.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_hl.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_iprange.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_layer7.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_length.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_limit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_mac.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_mark.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_multiport.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_osf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_owner.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_physdev.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_pkttype.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_policy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_quota.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_rateest.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_realm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_recent.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_sctp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_socket.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_state.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_statistic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_string.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_tcpmss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_tcpudp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_time.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/netfilter/xt_u32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/phonet
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/phonet/phonet.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/phonet/pn_pep.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rds
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rds/rds.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rds/rds_tcp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rfkill
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rfkill/rfkill.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rxrpc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rxrpc/af-rxrpc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/rxrpc/rxkad.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_gact.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_ipt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_mirred.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_nat.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_pedit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_police.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/act_skbedit.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_basic.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_flow.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_fw.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_route.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_rsvp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_rsvp6.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_tcindex.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/cls_u32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/em_cmp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/em_meta.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/em_nbyte.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/em_text.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/em_u32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_atm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_cbq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_drr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_dsmark.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_gred.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_hfsc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_htb.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_ingress.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_multiq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_netem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_prio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_red.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_sfq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_tbf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sched/sch_teql.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sunrpc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sunrpc/auth_gss
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sunrpc/auth_gss/auth_rpcgss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sunrpc/auth_gss/rpcsec_gss_krb5.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/sunrpc/sunrpc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wimax
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wimax/wimax.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless/cfg80211.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless/lib80211.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless/lib80211_crypt_ccmp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless/lib80211_crypt_tkip.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/wireless/lib80211_crypt_wep.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/xfrm
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/xfrm/xfrm_ipcomp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/net/xfrm/xfrm_user.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/ac97_bus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/oss
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/oss/snd-mixer-oss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/oss/snd-pcm-oss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/oss
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/oss/snd-seq-oss.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-device.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-dummy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-emul.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-midi-event.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-midi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq-virmidi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/seq/snd-seq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd-hwdep.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd-page-alloc.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd-pcm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd-rawmidi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd-timer.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/core/snd.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/mpu401
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401-uart.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/mpu401/snd-mpu401.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/opl3
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/opl3/snd-opl3-synth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-dummy.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-mtpav.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-mts64.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-portman2x4.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-serial-u16550.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/snd-virmidi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/vx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/drivers/vx/snd-vx-lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/other
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/other/snd-ak4114.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/other/snd-ak4117.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/other/snd-ak4xxx-adda.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/other/snd-pt2258.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/snd-cs8427.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/i2c/snd-i2c.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/isa
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/isa/sb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/isa/sb/snd-sb-common.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/isa/sb/snd-sb16-dsp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ac97
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ac97/snd-ac97-codec.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ali5451
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ali5451/snd-ali5451.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/au88x0
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/au88x0/snd-au8810.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/au88x0/snd-au8820.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/au88x0/snd-au8830.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ca0106
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ca0106/snd-ca0106.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/cs46xx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/cs46xx/snd-cs46xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/cs5535audio
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/cs5535audio/snd-cs5535audio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ctxfi
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ctxfi/snd-ctxfi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla20.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-darla24.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-echo3g.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina20.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-gina24.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigo.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodj.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigodjx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-indigoiox.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla20.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-layla24.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-mia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/echoaudio/snd-mona.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/emu10k1
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1-synth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/emu10k1/snd-emu10k1x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-analog.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-atihdmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-ca0110.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cirrus.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-cmedia.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-conexant.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-idt.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-intelhdmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-nvhdmi.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-realtek.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-si3054.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec-via.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-codec.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/hda/snd-hda-intel.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ice1712
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1712.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ice1712/snd-ice1724.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ice1712/snd-ice17xx-ak4xxx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/korg1212
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/korg1212/snd-korg1212.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/lx6464es
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/lx6464es/snd-lx6464es.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/mixart
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/mixart/snd-mixart.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/nm256
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/nm256/snd-nm256.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/oxygen
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/oxygen/snd-hifier.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen-lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/oxygen/snd-oxygen.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/oxygen/snd-virtuoso.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/pcxhr
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/pcxhr/snd-pcxhr.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/riptide
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/riptide/snd-riptide.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/rme9652
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/rme9652/snd-hdsp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/rme9652/snd-hdspm.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/rme9652/snd-rme9652.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-ad1889.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-als300.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-als4000.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-atiixp-modem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-atiixp.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-bt87x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-cmipci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-cs4281.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-cs5530.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-ens1370.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-ens1371.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-es1938.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-es1968.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-fm801.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-intel8x0.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-intel8x0m.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-maestro3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-rme32.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-rme96.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-sis7019.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-sonicvibes.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-via82xx-modem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/snd-via82xx.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/trident
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/trident/snd-trident.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/vx222
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/vx222/snd-vx222.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ymfpci
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pci/ymfpci/snd-ymfpci.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pcmcia
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pcmcia/pdaudiocf
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pcmcia/pdaudiocf/snd-pdaudiocf.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pcmcia/vx
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/pcmcia/vx/snd-vxpocket.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ad73311.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4535.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ak4642.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-cs4270.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-l3.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-max9877.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-pcm3008.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-spdif.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-ssm2602.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic23.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-tlv320aic3x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda134x.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-uda1380.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm-hubs.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8350.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8400.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8510.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8523.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8580.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8728.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8731.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8750.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8753.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8776.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8900.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8903.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8940.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8960.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8961.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8971.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8974.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8988.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8990.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm8993.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/codecs/snd-soc-wm9081.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soc/snd-soc-core.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/soundcore.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/synth
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/synth/emux
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/synth/emux/snd-emux-synth.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/synth/snd-util-mem.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/caiaq
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/caiaq/snd-usb-caiaq.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/snd-usb-audio.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/snd-usb-lib.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/usx2y
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-us122l.ko
+#lib/modules/2.6.32.59-ipfire-xen/kernel/sound/usb/usx2y/snd-usb-usx2y.ko
+#lib/modules/2.6.32.59-ipfire-xen/modules.alias
+#lib/modules/2.6.32.59-ipfire-xen/modules.alias.bin
+#lib/modules/2.6.32.59-ipfire-xen/modules.ccwmap
+#lib/modules/2.6.32.59-ipfire-xen/modules.dep
+#lib/modules/2.6.32.59-ipfire-xen/modules.dep.bin
+#lib/modules/2.6.32.59-ipfire-xen/modules.ieee1394map
+#lib/modules/2.6.32.59-ipfire-xen/modules.inputmap
+#lib/modules/2.6.32.59-ipfire-xen/modules.isapnpmap
+#lib/modules/2.6.32.59-ipfire-xen/modules.ofmap
+#lib/modules/2.6.32.59-ipfire-xen/modules.order
+#lib/modules/2.6.32.59-ipfire-xen/modules.pcimap
+#lib/modules/2.6.32.59-ipfire-xen/modules.seriomap
+#lib/modules/2.6.32.59-ipfire-xen/modules.symbols
+#lib/modules/2.6.32.59-ipfire-xen/modules.symbols.bin
+#lib/modules/2.6.32.59-ipfire-xen/modules.usbmap
+#lib/modules/2.6.32.59-ipfire-xen/source
diff --git a/config/rootfiles/packages/qemu-kqemu b/config/rootfiles/packages/qemu-kqemu
deleted file mode 100644 (file)
index 7a908f7..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/bin/qemu-kqemu
-usr/share/qemu/bios-kqemu.bin
diff --git a/config/rootfiles/packages/splix b/config/rootfiles/packages/splix
deleted file mode 100644 (file)
index f9c7579..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-usr/lib/cups/filter/pstoqpdl
-usr/lib/cups/filter/rastertoqpdl
-usr/share/cups/model/dell
-usr/share/cups/model/dell/1100.ppd
-usr/share/cups/model/dell/1100fr.ppd
-usr/share/cups/model/dell/1110.ppd
-usr/share/cups/model/dell/1110fr.ppd
-usr/share/cups/model/samsung
-usr/share/cups/model/samsung/clp200.ppd
-usr/share/cups/model/samsung/clp200fr.ppd
-usr/share/cups/model/samsung/clp300.ppd
-usr/share/cups/model/samsung/clp300fr.ppd
-usr/share/cups/model/samsung/clp500.ppd
-usr/share/cups/model/samsung/clp500fr.ppd
-usr/share/cups/model/samsung/clp510.ppd
-usr/share/cups/model/samsung/clp510fr.ppd
-usr/share/cups/model/samsung/clp550.ppd
-usr/share/cups/model/samsung/clp550fr.ppd
-usr/share/cups/model/samsung/clp600.ppd
-usr/share/cups/model/samsung/clp600fr.ppd
-usr/share/cups/model/samsung/clp610.ppd
-usr/share/cups/model/samsung/clp610fr.ppd
-usr/share/cups/model/samsung/clx216x.ppd
-usr/share/cups/model/samsung/clx216xfr.ppd
-usr/share/cups/model/samsung/clx2170.ppd
-usr/share/cups/model/samsung/clx2170fr.ppd
-usr/share/cups/model/samsung/clx3160.ppd
-usr/share/cups/model/samsung/clx3160fr.ppd
-usr/share/cups/model/samsung/ml1510.ppd
-usr/share/cups/model/samsung/ml1510fr.ppd
-usr/share/cups/model/samsung/ml1520.ppd
-usr/share/cups/model/samsung/ml1520fr.ppd
-usr/share/cups/model/samsung/ml1610.ppd
-usr/share/cups/model/samsung/ml1610fr.ppd
-usr/share/cups/model/samsung/ml1630.ppd
-usr/share/cups/model/samsung/ml1630fr.ppd
-usr/share/cups/model/samsung/ml1710.ppd
-usr/share/cups/model/samsung/ml1710fr.ppd
-usr/share/cups/model/samsung/ml1740.ppd
-usr/share/cups/model/samsung/ml1740fr.ppd
-usr/share/cups/model/samsung/ml1750.ppd
-usr/share/cups/model/samsung/ml1750fr.ppd
-usr/share/cups/model/samsung/ml2010.ppd
-usr/share/cups/model/samsung/ml2010fr.ppd
-usr/share/cups/model/samsung/ml2150.ppd
-usr/share/cups/model/samsung/ml2150fr.ppd
-usr/share/cups/model/samsung/ml2250.ppd
-usr/share/cups/model/samsung/ml2250fr.ppd
-usr/share/cups/model/samsung/ml2251.ppd
-usr/share/cups/model/samsung/ml2251fr.ppd
-usr/share/cups/model/samsung/ml2510.ppd
-usr/share/cups/model/samsung/ml2510fr.ppd
-usr/share/cups/model/samsung/ml2550.ppd
-usr/share/cups/model/samsung/ml2550fr.ppd
-usr/share/cups/model/samsung/ml3050.ppd
-usr/share/cups/model/samsung/ml3050fr.ppd
-usr/share/cups/model/samsung/ml3560.ppd
-usr/share/cups/model/samsung/ml3560fr.ppd
-usr/share/cups/model/xerox
-usr/share/cups/model/xerox/ph3115.ppd
-usr/share/cups/model/xerox/ph3115fr.ppd
-usr/share/cups/model/xerox/ph3116.ppd
-usr/share/cups/model/xerox/ph3116fr.ppd
-usr/share/cups/model/xerox/ph3117.ppd
-usr/share/cups/model/xerox/ph3117fr.ppd
-usr/share/cups/model/xerox/ph3120.ppd
-usr/share/cups/model/xerox/ph3120fr.ppd
-usr/share/cups/model/xerox/ph3121.ppd
-usr/share/cups/model/xerox/ph3121fr.ppd
-usr/share/cups/model/xerox/ph3122.ppd
-usr/share/cups/model/xerox/ph3122fr.ppd
-usr/share/cups/model/xerox/ph3130.ppd
-usr/share/cups/model/xerox/ph3130fr.ppd
-usr/share/cups/model/xerox/ph3150.ppd
-usr/share/cups/model/xerox/ph3150fr.ppd
-usr/share/cups/model/xerox/ph3160.ppd
-usr/share/cups/model/xerox/ph3160fr.ppd
-usr/share/cups/model/xerox/ph3420.ppd
-usr/share/cups/model/xerox/ph3420fr.ppd
-usr/share/cups/model/xerox/ph3425.ppd
-usr/share/cups/model/xerox/ph3425fr.ppd
-usr/share/cups/model/xerox/ph5500.ppd
-usr/share/cups/model/xerox/ph5500fr.ppd
-usr/share/cups/model/xerox/ph6100.ppd
-usr/share/cups/model/xerox/ph6100fr.ppd
-usr/share/cups/model/xerox/ph6110.ppd
-usr/share/cups/model/xerox/ph6110fr.ppd
diff --git a/config/rpi-firmware/config.txt b/config/rpi-firmware/config.txt
new file mode 100644 (file)
index 0000000..e9bd9bf
--- /dev/null
@@ -0,0 +1,28 @@
+###############################################################################
+#
+# Raspberry Pi - Videocore configuration file
+#
+###############################################################################
+
+###############################################################################
+#
+# Turbo Mode (cpufreq) Settings ...
+# default clocks are arm=700, core=250 and sdram=400
+#
+###############################################################################
+#
+# underclock at idle
+arm_freq_min=500
+sdram_freq_min=250
+#
+# use following paramters to overclock at load
+#arm_freq=1000
+#core_freq=450
+#sdram_freq=450
+#over_voltage=2
+
+################################################################################
+#
+# end
+#
+################################################################################
index 68ad82afd721b9eea16af87732e3e6ebece44e14..ee258cc37c6bde85160ea3b9bf6a0d7e752002b9 100644 (file)
@@ -2,13 +2,13 @@ TIMEOUT 5000
 DISPLAY boot.msg
 PROMPT 1
 DEFAULT vmlinuz
-  APPEND initrd=instroot vga=791 splash=silent ro
+  APPEND initrd=instroot vga=791 quiet rhgb ro
 LABEL novga
   KERNEL vmlinuz
-  APPEND initrd=instroot ro
+  APPEND initrd=instroot quiet rhgb ro
 LABEL unattended
   KERNEL vmlinuz
-  APPEND initrd=instroot vga=791 splash=silent unattended ro
+  APPEND initrd=instroot vga=791 quiet rhgb  unattended ro
 LABEL memtest
   KERNEL memtest
   APPEND -
diff --git a/config/u-boot/boot.scr b/config/u-boot/boot.scr
new file mode 100755 (executable)
index 0000000..784c121
Binary files /dev/null and b/config/u-boot/boot.scr differ
diff --git a/config/u-boot/boot.script b/config/u-boot/boot.script
new file mode 100755 (executable)
index 0000000..795e60f
--- /dev/null
@@ -0,0 +1,4 @@
+fatload mmc 0:1 0x80000000 uImage-ipfire-omap
+fatload mmc 0:1 0x81600000 uInit-ipfire-omap
+setenv bootargs vram=32M console=tty1 omapfb.mode=dvi:800x600MR-16@60 rootwait smsc95xx.macaddr=$usbethaddr root=/dev/mmcblk0p3 ro
+bootm 0x80000000 0x81600000
diff --git a/config/u-boot/convert_bootscript b/config/u-boot/convert_bootscript
new file mode 100755 (executable)
index 0000000..962191f
--- /dev/null
@@ -0,0 +1 @@
+mkimage -A arm -T script -C none -d boot.script boot.scr
diff --git a/config/uClibc/busybox.config b/config/uClibc/busybox.config
deleted file mode 100644 (file)
index 9682385..0000000
+++ /dev/null
@@ -1,643 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-HAVE_DOT_CONFIG=y
-
-#
-# Busybox Settings
-#
-
-#
-# General Configuration
-#
-# CONFIG_NITPICK is not set
-# CONFIG_FEATURE_BUFFERS_USE_MALLOC is not set
-# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
-# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
-CONFIG_SHOW_USAGE=y
-CONFIG_FEATURE_VERBOSE_USAGE=y
-CONFIG_FEATURE_COMPRESS_USAGE=y
-# CONFIG_FEATURE_INSTALLER is not set
-# CONFIG_LOCALE_SUPPORT is not set
-CONFIG_GETOPT_LONG=y
-# CONFIG_FEATURE_DEVPTS is not set
-# CONFIG_FEATURE_CLEAN_UP is not set
-# CONFIG_FEATURE_SUID is not set
-# CONFIG_FEATURE_SUID_CONFIG is not set
-# CONFIG_FEATURE_SUID_CONFIG_QUIET is not set
-# CONFIG_SELINUX is not set
-CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe"
-
-#
-# Build Options
-#
-# CONFIG_STATIC is not set
-# CONFIG_BUILD_LIBBUSYBOX is not set
-# CONFIG_FEATURE_FULL_LIBBUSYBOX is not set
-# CONFIG_FEATURE_SHARED_BUSYBOX is not set
-CONFIG_LFS=y
-USING_CROSS_COMPILER=y
-CROSS_COMPILER_PREFIX="/opt/i586-uClibc/bin/i586-linux-"
-# CONFIG_BUILD_AT_ONCE is not set
-
-#
-# Debugging Options
-#
-# CONFIG_DEBUG is not set
-# CONFIG_DEBUG_PESSIMIZE is not set
-# CONFIG_NO_DEBUG_LIB is not set
-# CONFIG_DMALLOC is not set
-# CONFIG_EFENCE is not set
-# CONFIG_DEBUG_YANK_SUSv2 is not set
-
-#
-# Installation Options
-#
-CONFIG_INSTALL_NO_USR=y
-CONFIG_INSTALL_APPLET_SYMLINKS=y
-# CONFIG_INSTALL_APPLET_HARDLINKS is not set
-# CONFIG_INSTALL_APPLET_DONT is not set
-PREFIX="/install/initrd"
-
-#
-# Busybox Library Tuning
-#
-CONFIG_MD5_SIZE_VS_SPEED=3
-
-#
-# Applets
-#
-
-#
-# Archival Utilities
-#
-# CONFIG_AR is not set
-# CONFIG_FEATURE_AR_LONG_FILENAMES is not set
-# CONFIG_BUNZIP2 is not set
-# CONFIG_CPIO is not set
-# CONFIG_DPKG is not set
-# CONFIG_DPKG_DEB is not set
-# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set
-# CONFIG_GUNZIP is not set
-# CONFIG_FEATURE_GUNZIP_UNCOMPRESS is not set
-CONFIG_GZIP=y
-# CONFIG_RPM2CPIO is not set
-# CONFIG_RPM is not set
-CONFIG_TAR=y
-# CONFIG_FEATURE_TAR_CREATE is not set
-CONFIG_FEATURE_TAR_BZIP2=y
-CONFIG_FEATURE_TAR_LZMA=y
-# CONFIG_FEATURE_TAR_FROM is not set
-CONFIG_FEATURE_TAR_GZIP=y
-# CONFIG_FEATURE_TAR_COMPRESS is not set
-CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y
-CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y
-CONFIG_FEATURE_TAR_LONG_OPTIONS=y
-# CONFIG_UNCOMPRESS is not set
-# CONFIG_UNLZMA is not set
-# CONFIG_FEATURE_LZMA_FAST is not set
-CONFIG_UNZIP=y
-
-#
-# Common options for cpio and tar
-#
-# CONFIG_FEATURE_UNARCHIVE_TAPE is not set
-# CONFIG_FEATURE_DEB_TAR_GZ is not set
-# CONFIG_FEATURE_DEB_TAR_BZ2 is not set
-# CONFIG_FEATURE_DEB_TAR_LZMA is not set
-
-#
-# Coreutils
-#
-CONFIG_BASENAME=y
-# CONFIG_CAL is not set
-CONFIG_CAT=y
-# CONFIG_CATV is not set
-# CONFIG_CHGRP is not set
-CONFIG_CHMOD=y
-CONFIG_CHOWN=y
-CONFIG_CHROOT=y
-# CONFIG_CKSUM is not set
-# CONFIG_CMP is not set
-# CONFIG_COMM is not set
-CONFIG_CP=y
-CONFIG_CUT=y
-CONFIG_DATE=y
-CONFIG_FEATURE_DATE_ISOFMT=y
-CONFIG_DD=y
-CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
-# CONFIG_FEATURE_DD_IBS_OBS is not set
-CONFIG_DF=y
-# CONFIG_DIFF is not set
-# CONFIG_FEATURE_DIFF_BINARY is not set
-# CONFIG_FEATURE_DIFF_DIR is not set
-# CONFIG_FEATURE_DIFF_MINIMAL is not set
-# CONFIG_DIRNAME is not set
-# CONFIG_DOS2UNIX is not set
-# CONFIG_UNIX2DOS is not set
-CONFIG_DU=y
-CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y
-CONFIG_ECHO=y
-CONFIG_FEATURE_FANCY_ECHO=y
-# CONFIG_ENV is not set
-# CONFIG_FEATURE_ENV_LONG_OPTIONS is not set
-# CONFIG_EXPR is not set
-# CONFIG_EXPR_MATH_SUPPORT_64 is not set
-# CONFIG_FALSE is not set
-# CONFIG_FOLD is not set
-CONFIG_HEAD=y
-# CONFIG_FEATURE_FANCY_HEAD is not set
-# CONFIG_HOSTID is not set
-# CONFIG_ID is not set
-# CONFIG_INSTALL is not set
-# CONFIG_FEATURE_INSTALL_LONG_OPTIONS is not set
-# CONFIG_LENGTH is not set
-CONFIG_LN=y
-# CONFIG_LOGNAME is not set
-CONFIG_LS=y
-CONFIG_FEATURE_LS_FILETYPES=y
-CONFIG_FEATURE_LS_FOLLOWLINKS=y
-CONFIG_FEATURE_LS_RECURSIVE=y
-CONFIG_FEATURE_LS_SORTFILES=y
-CONFIG_FEATURE_LS_TIMESTAMPS=y
-CONFIG_FEATURE_LS_USERNAME=y
-CONFIG_FEATURE_LS_COLOR=y
-# CONFIG_FEATURE_LS_COLOR_IS_DEFAULT is not set
-CONFIG_MD5SUM=y
-CONFIG_MKDIR=y
-# CONFIG_FEATURE_MKDIR_LONG_OPTIONS is not set
-CONFIG_MKFIFO=y
-CONFIG_MKNOD=y
-CONFIG_MV=y
-CONFIG_FEATURE_MV_LONG_OPTIONS=y
-CONFIG_NICE=y
-# CONFIG_NOHUP is not set
-# CONFIG_OD is not set
-# CONFIG_PRINTENV is not set
-# CONFIG_PRINTF is not set
-# CONFIG_PWD is not set
-# CONFIG_REALPATH is not set
-CONFIG_RM=y
-# CONFIG_RMDIR is not set
-CONFIG_SEQ=y
-# CONFIG_SHA1SUM is not set
-CONFIG_SLEEP=y
-# CONFIG_FEATURE_FANCY_SLEEP is not set
-CONFIG_SORT=y
-CONFIG_FEATURE_SORT_BIG=y
-# CONFIG_STAT is not set
-# CONFIG_FEATURE_STAT_FORMAT is not set
-# CONFIG_STTY is not set
-# CONFIG_SUM is not set
-CONFIG_SYNC=y
-CONFIG_TAIL=y
-CONFIG_FEATURE_FANCY_TAIL=y
-CONFIG_TEE=y
-# CONFIG_FEATURE_TEE_USE_BLOCK_IO is not set
-CONFIG_TEST=y
-# CONFIG_FEATURE_TEST_64 is not set
-CONFIG_TOUCH=y
-CONFIG_TR=y
-CONFIG_FEATURE_TR_CLASSES=y
-CONFIG_FEATURE_TR_EQUIV=y
-CONFIG_TRUE=y
-# CONFIG_TTY is not set
-CONFIG_UNAME=y
-CONFIG_UNIQ=y
-# CONFIG_USLEEP is not set
-# CONFIG_UUDECODE is not set
-# CONFIG_UUENCODE is not set
-# CONFIG_WATCH is not set
-CONFIG_WC=y
-# CONFIG_WHO is not set
-# CONFIG_WHOAMI is not set
-CONFIG_YES=y
-
-#
-# Common options for cp and mv
-#
-CONFIG_FEATURE_PRESERVE_HARDLINKS=y
-
-#
-# Common options for ls, more and telnet
-#
-CONFIG_FEATURE_AUTOWIDTH=y
-
-#
-# Common options for df, du, ls
-#
-CONFIG_FEATURE_HUMAN_READABLE=y
-
-#
-# Common options for md5sum, sha1sum
-#
-# CONFIG_FEATURE_MD5_SHA1_SUM_CHECK is not set
-
-#
-# Console Utilities
-#
-CONFIG_CHVT=y
-CONFIG_CLEAR=y
-# CONFIG_DEALLOCVT is not set
-# CONFIG_DUMPKMAP is not set
-CONFIG_LOADFONT=y
-CONFIG_LOADKMAP=y
-# CONFIG_OPENVT is not set
-# CONFIG_RESET is not set
-CONFIG_SETCONSOLE=y
-# CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set
-CONFIG_SETKEYCODES=y
-# CONFIG_SETLOGCONS is not set
-
-#
-# Debian Utilities
-#
-# CONFIG_MKTEMP is not set
-# CONFIG_PIPE_PROGRESS is not set
-# CONFIG_READLINK is not set
-# CONFIG_FEATURE_READLINK_FOLLOW is not set
-# CONFIG_RUN_PARTS is not set
-# CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS is not set
-# CONFIG_START_STOP_DAEMON is not set
-# CONFIG_FEATURE_START_STOP_DAEMON_FANCY is not set
-# CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS is not set
-CONFIG_WHICH=y
-
-#
-# Editors
-#
-CONFIG_AWK=y
-# CONFIG_FEATURE_AWK_MATH is not set
-# CONFIG_ED is not set
-# CONFIG_PATCH is not set
-CONFIG_SED=y
-CONFIG_VI=y
-CONFIG_FEATURE_VI_COLON=y
-CONFIG_FEATURE_VI_YANKMARK=y
-CONFIG_FEATURE_VI_SEARCH=y
-CONFIG_FEATURE_VI_USE_SIGNALS=y
-CONFIG_FEATURE_VI_DOT_CMD=y
-CONFIG_FEATURE_VI_READONLY=y
-CONFIG_FEATURE_VI_SETOPTS=y
-CONFIG_FEATURE_VI_SET=y
-CONFIG_FEATURE_VI_WIN_RESIZE=y
-CONFIG_FEATURE_VI_OPTIMIZE_CURSOR=y
-
-#
-# Finding Utilities
-#
-CONFIG_FIND=y
-CONFIG_FEATURE_FIND_PRINT0=y
-CONFIG_FEATURE_FIND_MTIME=y
-CONFIG_FEATURE_FIND_MMIN=y
-CONFIG_FEATURE_FIND_PERM=y
-CONFIG_FEATURE_FIND_TYPE=y
-CONFIG_FEATURE_FIND_XDEV=y
-CONFIG_FEATURE_FIND_NEWER=y
-CONFIG_FEATURE_FIND_INUM=y
-CONFIG_FEATURE_FIND_EXEC=y
-CONFIG_GREP=y
-CONFIG_FEATURE_GREP_EGREP_ALIAS=y
-CONFIG_FEATURE_GREP_FGREP_ALIAS=y
-CONFIG_FEATURE_GREP_CONTEXT=y
-CONFIG_XARGS=y
-# CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_QUOTES is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT is not set
-# CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM is not set
-
-#
-# Init Utilities
-#
-CONFIG_INIT=y
-# CONFIG_DEBUG_INIT is not set
-CONFIG_FEATURE_USE_INITTAB=y
-# CONFIG_FEATURE_INIT_SCTTY is not set
-CONFIG_FEATURE_EXTRA_QUIET=y
-# CONFIG_FEATURE_INIT_COREDUMPS is not set
-CONFIG_FEATURE_INITRD=y
-CONFIG_HALT=y
-# CONFIG_MESG is not set
-
-#
-# Login/Password Management Utilities
-#
-# CONFIG_FEATURE_SHADOWPASSWDS is not set
-# CONFIG_USE_BB_SHADOW is not set
-# CONFIG_USE_BB_PWD_GRP is not set
-# CONFIG_ADDGROUP is not set
-# CONFIG_DELGROUP is not set
-# CONFIG_ADDUSER is not set
-# CONFIG_DELUSER is not set
-CONFIG_GETTY=y
-# CONFIG_FEATURE_UTMP is not set
-# CONFIG_FEATURE_WTMP is not set
-# CONFIG_LOGIN is not set
-# CONFIG_FEATURE_SECURETTY is not set
-# CONFIG_PASSWD is not set
-# CONFIG_SU is not set
-# CONFIG_SULOGIN is not set
-# CONFIG_VLOCK is not set
-
-#
-# Linux Ext2 FS Progs
-#
-# CONFIG_CHATTR is not set
-CONFIG_E2FSCK=y
-CONFIG_FSCK=y
-# CONFIG_LSATTR is not set
-CONFIG_MKE2FS=y
-CONFIG_TUNE2FS=y
-CONFIG_E2LABEL=y
-# CONFIG_FINDFS is not set
-
-#
-# Linux Module Utilities
-#
-CONFIG_INSMOD=y
-# CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set
-# CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set
-# CONFIG_FEATURE_INSMOD_LOADINKMEM is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP is not set
-# CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set
-CONFIG_RMMOD=y
-CONFIG_LSMOD=y
-CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT=y
-CONFIG_MODPROBE=y
-CONFIG_FEATURE_MODPROBE_MULTIPLE_OPTIONS=y
-
-#
-# Options common to multiple modutils
-#
-# CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set
-# CONFIG_FEATURE_2_4_MODULES is not set
-CONFIG_FEATURE_2_6_MODULES=y
-# CONFIG_FEATURE_QUERY_MODULE_INTERFACE is not set
-
-#
-# Linux System Utilities
-#
-CONFIG_DMESG=y
-# CONFIG_FBSET is not set
-# CONFIG_FEATURE_FBSET_FANCY is not set
-# CONFIG_FEATURE_FBSET_READMODE is not set
-# CONFIG_FDFLUSH is not set
-# CONFIG_FDFORMAT is not set
-CONFIG_FDISK=y
-FDISK_SUPPORT_LARGE_DISKS=y
-CONFIG_FEATURE_FDISK_WRITABLE=y
-# CONFIG_FEATURE_AIX_LABEL is not set
-# CONFIG_FEATURE_SGI_LABEL is not set
-# CONFIG_FEATURE_SUN_LABEL is not set
-# CONFIG_FEATURE_OSF_LABEL is not set
-# CONFIG_FEATURE_FDISK_ADVANCED is not set
-# CONFIG_FREERAMDISK is not set
-# CONFIG_FSCK_MINIX is not set
-# CONFIG_MKFS_MINIX is not set
-# CONFIG_FEATURE_MINIX2 is not set
-# CONFIG_GETOPT is not set
-# CONFIG_HEXDUMP is not set
-# CONFIG_HWCLOCK is not set
-# CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS is not set
-# CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set
-# CONFIG_IPCRM is not set
-# CONFIG_IPCS is not set
-CONFIG_LOSETUP=y
-# CONFIG_MDEV is not set
-# CONFIG_FEATURE_MDEV_CONF is not set
-# CONFIG_FEATURE_MDEV_EXEC is not set
-CONFIG_MKSWAP=y
-# CONFIG_FEATURE_MKSWAP_V0 is not set
-CONFIG_MORE=y
-CONFIG_FEATURE_USE_TERMIOS=y
-CONFIG_MOUNT=y
-# CONFIG_FEATURE_MOUNT_NFS is not set
-CONFIG_PIVOT_ROOT=y
-# CONFIG_RDATE is not set
-# CONFIG_READPROFILE is not set
-# CONFIG_SETARCH is not set
-CONFIG_SWAPONOFF=y
-# CONFIG_SWITCH_ROOT is not set
-CONFIG_UMOUNT=y
-CONFIG_FEATURE_UMOUNT_ALL=y
-
-#
-# Common options for mount/umount
-#
-CONFIG_FEATURE_MOUNT_LOOP=y
-# CONFIG_FEATURE_MTAB_SUPPORT is not set
-
-#
-# Miscellaneous Utilities
-#
-# CONFIG_ADJTIMEX is not set
-# CONFIG_BBCONFIG is not set
-# CONFIG_CROND is not set
-# CONFIG_DEBUG_CROND_OPTION is not set
-# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
-# CONFIG_CRONTAB is not set
-# CONFIG_DC is not set
-# CONFIG_DEVFSD is not set
-# CONFIG_DEVFSD_MODLOAD is not set
-# CONFIG_DEVFSD_FG_NP is not set
-# CONFIG_DEVFSD_VERBOSE is not set
-# CONFIG_FEATURE_DEVFS is not set
-CONFIG_EJECT=y
-# CONFIG_LAST is not set
-CONFIG_LESS=y
-CONFIG_FEATURE_LESS_BRACKETS=y
-CONFIG_FEATURE_LESS_FLAGS=y
-# CONFIG_FEATURE_LESS_FLAGCS is not set
-# CONFIG_FEATURE_LESS_MARKS is not set
-# CONFIG_FEATURE_LESS_REGEXP is not set
-# CONFIG_HDPARM is not set
-# CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set
-# CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set
-# CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set
-# CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set
-# CONFIG_MAKEDEVS is not set
-# CONFIG_FEATURE_MAKEDEVS_LEAF is not set
-# CONFIG_FEATURE_MAKEDEVS_TABLE is not set
-# CONFIG_MOUNTPOINT is not set
-# CONFIG_MT is not set
-# CONFIG_RUNLEVEL is not set
-# CONFIG_RX is not set
-# CONFIG_STRINGS is not set
-# CONFIG_SETSID is not set
-# CONFIG_TASKSET is not set
-# CONFIG_TIME is not set
-# CONFIG_WATCHDOG is not set
-
-#
-# Networking Utilities
-#
-# CONFIG_FEATURE_IPV6 is not set
-# CONFIG_ARPING is not set
-# CONFIG_DNSD is not set
-# CONFIG_ETHER_WAKE is not set
-# CONFIG_FAKEIDENTD is not set
-# CONFIG_FTPGET is not set
-# CONFIG_FTPPUT is not set
-# CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS is not set
-CONFIG_HOSTNAME=y
-# CONFIG_HTTPD is not set
-# CONFIG_FEATURE_HTTPD_WITHOUT_INETD is not set
-# CONFIG_FEATURE_HTTPD_RELOAD_CONFIG_SIGHUP is not set
-# CONFIG_FEATURE_HTTPD_SETUID is not set
-# CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set
-# CONFIG_FEATURE_HTTPD_AUTH_MD5 is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_MIME_TYPES is not set
-# CONFIG_FEATURE_HTTPD_CGI is not set
-# CONFIG_FEATURE_HTTPD_CONFIG_WITH_SCRIPT_INTERPR is not set
-# CONFIG_FEATURE_HTTPD_SET_REMOTE_PORT_TO_ENV is not set
-# CONFIG_FEATURE_HTTPD_ENCODE_URL_STR is not set
-CONFIG_IFCONFIG=y
-CONFIG_FEATURE_IFCONFIG_STATUS=y
-# CONFIG_FEATURE_IFCONFIG_SLIP is not set
-# CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ is not set
-# CONFIG_FEATURE_IFCONFIG_HW is not set
-CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y
-# CONFIG_IFUPDOWN is not set
-# CONFIG_FEATURE_IFUPDOWN_IP is not set
-# CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN is not set
-# CONFIG_FEATURE_IFUPDOWN_IPV4 is not set
-# CONFIG_FEATURE_IFUPDOWN_IPV6 is not set
-# CONFIG_FEATURE_IFUPDOWN_IPX is not set
-# CONFIG_FEATURE_IFUPDOWN_MAPPING is not set
-# CONFIG_INETD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_ECHO is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DISCARD is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_TIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_DAYTIME is not set
-# CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set
-# CONFIG_FEATURE_INETD_RPC is not set
-CONFIG_IP=y
-CONFIG_FEATURE_IP_ADDRESS=y
-CONFIG_FEATURE_IP_LINK=y
-CONFIG_FEATURE_IP_ROUTE=y
-# CONFIG_FEATURE_IP_TUNNEL is not set
-CONFIG_FEATURE_IP_SHORT_FORMS=y
-CONFIG_IPADDR=y
-CONFIG_IPLINK=y
-CONFIG_IPROUTE=y
-# CONFIG_IPTUNNEL is not set
-# CONFIG_IPCALC is not set
-# CONFIG_FEATURE_IPCALC_FANCY is not set
-# CONFIG_FEATURE_IPCALC_LONG_OPTIONS is not set
-# CONFIG_NAMEIF is not set
-# CONFIG_NC is not set
-# CONFIG_NC_GAPING_SECURITY_HOLE is not set
-# CONFIG_NETSTAT is not set
-# CONFIG_NSLOOKUP is not set
-CONFIG_PING=y
-# CONFIG_FEATURE_FANCY_PING is not set
-# CONFIG_PING6 is not set
-# CONFIG_FEATURE_FANCY_PING6 is not set
-CONFIG_ROUTE=y
-# CONFIG_TELNET is not set
-# CONFIG_FEATURE_TELNET_TTYPE is not set
-# CONFIG_FEATURE_TELNET_AUTOLOGIN is not set
-# CONFIG_TELNETD is not set
-# CONFIG_FEATURE_TELNETD_INETD is not set
-# CONFIG_TFTP is not set
-# CONFIG_FEATURE_TFTP_GET is not set
-# CONFIG_FEATURE_TFTP_PUT is not set
-# CONFIG_FEATURE_TFTP_BLOCKSIZE is not set
-# CONFIG_DEBUG_TFTP is not set
-# CONFIG_TRACEROUTE is not set
-# CONFIG_FEATURE_TRACEROUTE_VERBOSE is not set
-# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set
-# CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set
-
-#
-# udhcp Server/Client
-#
-# CONFIG_APP_UDHCPD is not set
-CONFIG_APP_UDHCPC=y
-# CONFIG_APP_DUMPLEASES is not set
-CONFIG_FEATURE_UDHCP_SYSLOG=y
-# CONFIG_FEATURE_UDHCP_DEBUG is not set
-CONFIG_VCONFIG=y
-# CONFIG_WGET is not set
-# CONFIG_FEATURE_WGET_STATUSBAR is not set
-# CONFIG_FEATURE_WGET_AUTHENTICATION is not set
-# CONFIG_FEATURE_WGET_IP6_LITERAL is not set
-# CONFIG_FEATURE_WGET_LONG_OPTIONS is not set
-# CONFIG_ZCIP is not set
-
-#
-# Process Utilities
-#
-CONFIG_FREE=y
-# CONFIG_FUSER is not set
-CONFIG_KILL=y
-CONFIG_KILLALL=y
-# CONFIG_PIDOF is not set
-# CONFIG_FEATURE_PIDOF_SINGLE is not set
-# CONFIG_FEATURE_PIDOF_OMIT is not set
-CONFIG_PS=y
-CONFIG_FEATURE_PS_WIDE=y
-CONFIG_RENICE=y
-# CONFIG_BB_SYSCTL is not set
-CONFIG_TOP=y
-CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y
-CONFIG_UPTIME=y
-
-#
-# Shells
-#
-CONFIG_FEATURE_SH_IS_ASH=y
-# CONFIG_FEATURE_SH_IS_HUSH is not set
-# CONFIG_FEATURE_SH_IS_LASH is not set
-# CONFIG_FEATURE_SH_IS_MSH is not set
-# CONFIG_FEATURE_SH_IS_NONE is not set
-CONFIG_ASH=y
-
-#
-# Ash Shell Options
-#
-CONFIG_ASH_JOB_CONTROL=y
-# CONFIG_ASH_READ_NCHARS is not set
-# CONFIG_ASH_READ_TIMEOUT is not set
-CONFIG_ASH_ALIAS=y
-CONFIG_ASH_MATH_SUPPORT=y
-# CONFIG_ASH_MATH_SUPPORT_64 is not set
-CONFIG_ASH_GETOPTS=y
-CONFIG_ASH_BUILTIN_ECHO=y
-CONFIG_ASH_BUILTIN_TEST=y
-# CONFIG_ASH_CMDCMD is not set
-# CONFIG_ASH_MAIL is not set
-CONFIG_ASH_OPTIMIZE_FOR_SIZE=y
-# CONFIG_ASH_RANDOM_SUPPORT is not set
-CONFIG_ASH_EXPAND_PRMT=y
-# CONFIG_HUSH is not set
-# CONFIG_LASH is not set
-# CONFIG_MSH is not set
-
-#
-# Bourne Shell Options
-#
-# CONFIG_FEATURE_SH_EXTRA_QUIET is not set
-# CONFIG_FEATURE_SH_STANDALONE_SHELL is not set
-CONFIG_FEATURE_COMMAND_EDITING=y
-# CONFIG_FEATURE_COMMAND_EDITING_VI is not set
-CONFIG_FEATURE_COMMAND_HISTORY=15
-CONFIG_FEATURE_COMMAND_SAVEHISTORY=y
-CONFIG_FEATURE_COMMAND_TAB_COMPLETION=y
-# CONFIG_FEATURE_COMMAND_USERNAME_COMPLETION is not set
-CONFIG_FEATURE_SH_FANCY_PROMPT=y
-
-#
-# System Logging Utilities
-#
-CONFIG_SYSLOGD=y
-# CONFIG_FEATURE_ROTATE_LOGFILE is not set
-# CONFIG_FEATURE_REMOTE_LOG is not set
-# CONFIG_FEATURE_IPC_SYSLOG is not set
-CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
-# CONFIG_LOGREAD is not set
-# CONFIG_FEATURE_LOGREAD_REDUCED_LOCKING is not set
-CONFIG_KLOGD=y
-CONFIG_LOGGER=y
diff --git a/config/uClibc/codesets.txt b/config/uClibc/codesets.txt
deleted file mode 100644 (file)
index 98530d3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-./charmaps/ASCII.pairs
-./charmaps/ISO-8859-1.pairs
diff --git a/config/uClibc/locales.txt b/config/uClibc/locales.txt
deleted file mode 100644 (file)
index a3100ec..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-@euro e
-@cyrillic c
-#---------------------------------------------------------------------------
-UTF-8 yes
-8-BIT yes
-#---------------------------------------------------------------------------
-en_US ISO-8859-1
-en_US.UTF-8 UTF-8
diff --git a/config/uClibc/uClibc.config-i586 b/config/uClibc/uClibc.config-i586
deleted file mode 100644 (file)
index f46b1fe..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-#
-# Automatically generated make config: don't edit
-#
-# TARGET_alpha is not set
-# TARGET_arm is not set
-# TARGET_bfin is not set
-# TARGET_cris is not set
-# TARGET_e1 is not set
-# TARGET_frv is not set
-# TARGET_h8300 is not set
-TARGET_i386=y
-# TARGET_i960 is not set
-# TARGET_m68k is not set
-# TARGET_microblaze is not set
-# TARGET_mips is not set
-# TARGET_nios is not set
-# TARGET_nios2 is not set
-# TARGET_powerpc is not set
-# TARGET_sh is not set
-# TARGET_sh64 is not set
-# TARGET_sparc is not set
-# TARGET_v850 is not set
-# TARGET_x86_64 is not set
-
-#
-# Target Architecture Features and Options
-#
-HAVE_ELF=y
-ARCH_SUPPORTS_LITTLE_ENDIAN=y
-TARGET_ARCH="i386"
-# CONFIG_GENERIC_386 is not set
-# CONFIG_386 is not set
-# CONFIG_486 is not set
-CONFIG_586=y
-# CONFIG_586MMX is not set
-# CONFIG_686 is not set
-# CONFIG_PENTIUMII is not set
-# CONFIG_PENTIUMIII is not set
-# CONFIG_PENTIUM4 is not set
-# CONFIG_K6 is not set
-# CONFIG_K7 is not set
-# CONFIG_ELAN is not set
-# CONFIG_CRUSOE is not set
-# CONFIG_WINCHIPC6 is not set
-# CONFIG_WINCHIP2 is not set
-# CONFIG_CYRIXIII is not set
-# CONFIG_NEHEMIAH is not set
-ARCH_LITTLE_ENDIAN=y
-# ARCH_BIG_ENDIAN is not set
-# ARCH_HAS_NO_MMU is not set
-ARCH_HAS_MMU=y
-UCLIBC_HAS_FLOATS=y
-HAS_FPU=y
-DO_C99_MATH=y
-KERNEL_SOURCE="/usr"
-C_SYMBOL_PREFIX=""
-HAVE_DOT_CONFIG=y
-
-#
-# General Library Settings
-#
-# HAVE_NO_PIC is not set
-DOPIC=y
-# HAVE_NO_SHARED is not set
-HAVE_SHARED=y
-# ARCH_HAS_NO_LDSO is not set
-BUILD_UCLIBC_LDSO=y
-FORCE_SHAREABLE_TEXT_SEGMENTS=y
-LDSO_LDD_SUPPORT=y
-LDSO_CACHE_SUPPORT=y
-# LDSO_PRELOAD_FILE_SUPPORT is not set
-LDSO_BASE_FILENAME="ld.so"
-LDSO_RUNPATH=y
-# DL_FINI_CRT_COMPAT is not set
-UCLIBC_CTOR_DTOR=y
-# HAS_NO_THREADS is not set
-UCLIBC_HAS_THREADS=y
-# PTHREADS_DEBUG_SUPPORT is not set
-UCLIBC_HAS_LFS=y
-# UCLIBC_STATIC_LDCONFIG is not set
-# MALLOC is not set
-# MALLOC_SIMPLE is not set
-MALLOC_STANDARD=y
-MALLOC_GLIBC_COMPAT=y
-UCLIBC_DYNAMIC_ATEXIT=y
-HAS_SHADOW=y
-UNIX98PTY_ONLY=y
-ASSUME_DEVPTS=y
-UCLIBC_HAS_TM_EXTENSIONS=y
-UCLIBC_HAS_TZ_CACHING=y
-UCLIBC_HAS_TZ_FILE=y
-UCLIBC_HAS_TZ_FILE_READ_MANY=y
-UCLIBC_TZ_FILE_PATH="/etc/TZ"
-
-#
-# Networking Support
-#
-# UCLIBC_HAS_IPV6 is not set
-# UCLIBC_HAS_RPC is not set
-
-#
-# String and Stdio Support
-#
-UCLIBC_HAS_STRING_GENERIC_OPT=y
-UCLIBC_HAS_STRING_ARCH_OPT=y
-UCLIBC_HAS_CTYPE_TABLES=y
-UCLIBC_HAS_CTYPE_SIGNED=y
-UCLIBC_HAS_CTYPE_UNSAFE=y
-# UCLIBC_HAS_CTYPE_CHECKED is not set
-# UCLIBC_HAS_CTYPE_ENFORCED is not set
-UCLIBC_HAS_WCHAR=y
-UCLIBC_HAS_LOCALE=y
-UCLIBC_PREGENERATED_LOCALE_DATA=y
-# UCLIBC_DOWNLOAD_PREGENERATED_LOCALE_DATA is not set
-UCLIBC_HAS_XLOCALE=y
-# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set
-# UCLIBC_HAS_GLIBC_DIGIT_GROUPING is not set
-UCLIBC_HAS_GLIBC_CUSTOM_PRINTF=y
-UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9
-# UCLIBC_HAS_SCANF_GLIBC_A_FLAG is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set
-# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set
-UCLIBC_HAS_STDIO_BUFSIZ_4096=y
-# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set
-UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set
-# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set
-# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set
-UCLIBC_HAS_STDIO_GETC_MACRO=y
-UCLIBC_HAS_STDIO_PUTC_MACRO=y
-UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y
-# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set
-# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set
-# UCLIBC_HAS_GLIBC_CUSTOM_STREAMS is not set
-# UCLIBC_HAS_PRINTF_M_SPEC is not set
-UCLIBC_HAS_ERRNO_MESSAGES=y
-# UCLIBC_HAS_SYS_ERRLIST is not set
-UCLIBC_HAS_SIGNUM_MESSAGES=y
-UCLIBC_HAS_SYS_SIGLIST=y
-UCLIBC_HAS_GNU_GETOPT=y
-
-#
-# Big and Tall
-#
-UCLIBC_HAS_REGEX=y
-# UCLIBC_HAS_WORDEXP is not set
-UCLIBC_HAS_FTW=y
-UCLIBC_HAS_GLOB=y
-
-#
-# Library Installation Options
-#
-SHARED_LIB_LOADER_PREFIX="/lib"
-RUNTIME_PREFIX="/"
-DEVEL_PREFIX="/usr/"
-
-#
-# uClibc security related options
-#
-# UCLIBC_SECURITY is not set
-
-#
-# uClibc development/debugging options
-#
-CROSS_COMPILER_PREFIX=""
-# DODEBUG is not set
-# DODEBUG_PT is not set
-# DOASSERTS is not set
-# SUPPORT_LD_DEBUG is not set
-# SUPPORT_LD_DEBUG_EARLY is not set
-WARNINGS="-Wall"
-# UCLIBC_MJN3_ONLY is not set
diff --git a/config/udev/99-codel.rules b/config/udev/99-codel.rules
new file mode 100644 (file)
index 0000000..d6747ba
--- /dev/null
@@ -0,0 +1,2 @@
+# Call the enable codel script.
+SUBSYSTEM=="net", RUN+="/lib/udev/enable_codel"
similarity index 69%
rename from src/paks/applejuice/uninstall.sh
rename to config/udev/enable_codel
index e14e422faf6c8f747dd563065fbeb0d1c375cb6d..6cafd9b268a6f43c67eee119e5b00378f1b50660 100644 (file)
 # along with IPFire; if not, write to the Free Software                    #
 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
 #                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
+# Copyright (C) 2007-2012 IPFire Team <info@ipfire.org>.                   #
 #                                                                          #
 ############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-/etc/init.d/applejuice stop
-remove_files
-rm -rf /etc/rc.d/rc*.d/*applejuice
+
+LOG_FACILITY="codel"
+
+function log() {
+       logger -t "${LOG_FACILITY}" $@
+}
+
+if [ -z "${INTERFACE}" ]; then
+       echo "INTERFACE variable was not set." >&2
+       exit 1
+fi
+
+# Do nothing for the loopback device.
+[ "${INTERFACE}" = "lo" ] && exit 0
+
+case "${ACTION}" in
+       add|register)
+               # Change root qdisc to use fq_codel.
+               /sbin/tc qdisc add root dev ${INTERFACE} fq_codel
+               ret=$?
+
+               if [ ${ret} -eq 0 ]; then
+                       log "Codel AQM has been enabled on '${INTERFACE}'."
+               else
+                       log "Codel AQM could not be enabled on '${INTERFACE}'. Error code: ${ret}"
+                       exit ${ret}
+               fi
+               ;;
+
+       remove|unregister)
+               # Nothing to do here.
+               ;;
+esac
+
+exit 0
index 65f8b46f8d92a7e689a1e5ac32975ca4867d8297..f3e114bfd978cbf6f8923d87c7bfa142a861b35b 100644 (file)
@@ -50,9 +50,9 @@ CONFIG_DRIVER_HOSTAP=y
 #CFLAGS += -I../../include/wireless
 
 # Driver interface for madwifi driver
-CONFIG_DRIVER_MADWIFI=y
+#CONFIG_DRIVER_MADWIFI=y
 # Set include directory to the madwifi source tree
-CFLAGS += -I/usr/src/madwifi
+#CFLAGS += -I/usr/src/madwifi
 
 # Driver interface for Prism54 driver
 # (Note: Prism54 is not yet supported, i.e., this will not work as-is and is
index 844058de3276cf249dde5669ce9603576b326f14..300e6ae4515604170898a717bcadb37fa27c31ac 100644 (file)
@@ -74,8 +74,7 @@ $qossettings{'DEFCLASS_INC'} = '';
 $qossettings{'DEFCLASS_OUT'} = '';
 $qossettings{'ACK'} = '';
 $qossettings{'MTU'} = '1492';
-$qossettings{'SFQ_PERTUB'} = '10';
-$qossettings{'QLENGTH'} = '30';
+$qossettings{'QLENGTH'} = '1000';
 $qossettings{'RED_DEV'} = 'ppp0';
 $qossettings{'IMQ_DEV'} = 'imq0';
 $qossettings{'VALID'} = 'yes';
@@ -1448,9 +1447,6 @@ sub expert
                    <td width='33%' align='center'>$Lang::tr{'mtu QoS'}
                <tr><td width='33%' align='right'>$Lang::tr{'Queuelenght'}:<td width='33%' align='left'>
                        <input type='text' name='QLENGTH' maxlength='8' required='2' value='$qossettings{'QLENGTH'}' />
-                   <td width='33%' align='center'>&nbsp;
-               <tr><td width='33%' align='right'>SFQ Perturb:<td width='33%' align='left'>
-                       <input type='text' name='SFQ_PERTUB' maxlength='8' required='1' value='$qossettings{'SFQ_PERTUB'}' />
                    <td width='33%' align='center'><input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
                </table>
                </form>
index 123c3258792ddab8da3350c2c9600dca3132d483..22a9ac707cce13d072c261398fae6c9ed8a25234 100644 (file)
@@ -54,7 +54,7 @@ my %servicenames =(
        $Lang::tr{'kernel logging server'} => 'klogd',
        $Lang::tr{'ntp server'} => 'ntpd',
        $Lang::tr{'secure shell server'} => 'sshd',
-       $Lang::tr{'vpn'} => 'pluto',
+       $Lang::tr{'vpn'} => 'charon',
        $Lang::tr{'web proxy'} => 'squid',
        'OpenVPN' => 'openvpn'
 );
index 0fb7c930a7e334d9e6a47aa665cb004c13658c3a..831ef93bf1f8c11b59bece2644e97a7364db18b7 100644 (file)
@@ -73,17 +73,9 @@ $cgiparams{'ENABLED'} = 'off';
 $cgiparams{'EDIT_ADVANCED'} = 'off';
 $cgiparams{'ACTION'} = '';
 $cgiparams{'CA_NAME'} = '';
-$cgiparams{'DBG_CRYPT'} = '';
-$cgiparams{'DBG_PARSING'} = '';
-$cgiparams{'DBG_EMITTING'} = '';
-$cgiparams{'DBG_CONTROL'} = '';
-$cgiparams{'DBG_KLIPS'} = '';
-$cgiparams{'DBG_DNS'} = '';
-$cgiparams{'DBG_NAT_T'} = '';
 $cgiparams{'KEY'} = '';
 $cgiparams{'TYPE'} = '';
 $cgiparams{'ADVANCED'} = '';
-$cgiparams{'INTERFACE'} = '';
 $cgiparams{'NAME'} = '';
 $cgiparams{'LOCAL_SUBNET'} = '';
 $cgiparams{'REMOTE_SUBNET'} = '';
@@ -253,50 +245,8 @@ sub writeipsecfiles {
     flock CONF, 2;
     flock SECRETS, 2;
     print CONF "version 2\n\n";
-    print CONF "config setup\n";
-    #create an ipsec Interface for each 'enabled' ones
-    #loop trought configuration and add physical interfaces to the list
-    my $interfaces = "\tinterfaces=\"";
-    foreach my $key (keys %lconfighash) {
-       next if ($lconfighash{$key}[0] ne 'on');
-        $interfaces .= "%defaultroute "                    if ($interfaces !~ /defaultroute/ && $lconfighash{$key}[26] eq 'RED');
-       $interfaces .= "$netsettings{'GREEN_DEV'} "  if ($interfaces !~ /ipsec1/              && $lconfighash{$key}[26] eq 'GREEN');
-       $interfaces .= "$netsettings{'BLUE_DEV'} "   if ($interfaces !~ /ipsec2/              && $lconfighash{$key}[26] eq 'BLUE');
-       $interfaces .= "$netsettings{'ORANGE_DEV'} " if ($interfaces !~ /ipsec3/              && $lconfighash{$key}[26] eq 'ORANGE');
-    }
-    print CONF $interfaces . "\"\n";
-
-    my $plutodebug = '';                       # build debug list
-    map ($plutodebug .= $lvpnsettings{$_} eq 'on' ? lc (substr($_,4)).' ' : '',
-       ('DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-    $plutodebug = 'none' if $plutodebug eq '';  # if nothing selected, use 'none'.
-    #print CONF "\tklipsdebug=\"none\"\n";
-    print CONF "\tplutodebug=\"$plutodebug\"\n";
-    # deprecated in ipsec.conf version 2
-    #print CONF "\tplutoload=%search\n";
-    #print CONF "\tplutostart=%search\n";
-    print CONF "\tuniqueids=yes\n";
-    print CONF "\tnat_traversal=yes\n";
-    print CONF "\toverridemtu=$lvpnsettings{'VPN_OVERRIDE_MTU'}\n" if ($lvpnsettings{'VPN_OVERRIDE_MTU'} ne '');
-    print CONF "\tvirtual_private=%v4:10.0.0.0/8,%v4:172.16.0.0/12,%v4:192.168.0.0/16";
-    print CONF ",%v4:!$green_cidr";
-    if (length($netsettings{'ORANGE_DEV'}) > 2) {
-       print CONF ",%v4:!$orange_cidr";
-    }
-    if (length($netsettings{'BLUE_DEV'}) > 2) {
-       print CONF ",%v4:!$blue_cidr";
-    }
-    foreach my $key (keys %lconfighash) {
-       if ($lconfighash{$key}[3] eq 'net') {
-           print CONF ",%v4:!$lconfighash{$key}[11]";
-       }
-    }
-    print CONF "\n\n";
     print CONF "conn %default\n";
-    print CONF "\tkeyingtries=0\n";
-    #strongswan doesn't know this
-    #print CONF "\tdisablearrivalcheck=no\n";
+    print CONF "\tkeyingtries=%forever\n";
     print CONF "\n";
 
     # Add user includes to config file
@@ -329,7 +279,6 @@ sub writeipsecfiles {
 
        print CONF "conn $lconfighash{$key}[1]\n";
        print CONF "\tleft=$localside\n";
-       print CONF "\tleftnexthop=%defaultroute\n" if ($lconfighash{$key}[26] eq 'RED' && $lvpnsettings{'VPN_IP'} ne '%defaultroute');
        my $cidr_net=&General::ipcidr($lconfighash{$key}[8]);
        print CONF "\tleftsubnet=$cidr_net\n";
        print CONF "\tleftfirewall=yes\n";
@@ -339,7 +288,6 @@ sub writeipsecfiles {
        if ($lconfighash{$key}[3] eq 'net') {
            my $cidr_net=&General::ipcidr($lconfighash{$key}[11]);
            print CONF "\trightsubnet=$cidr_net\n";
-           print CONF "\trightnexthop=%defaultroute\n";
        } elsif ($lconfighash{$key}[10] eq '%any' && $lconfighash{$key}[14] eq 'on') { #vhost allowed for roadwarriors?
            print CONF "\trightsubnet=vhost:%no,%priv\n";
        }
@@ -354,6 +302,9 @@ sub writeipsecfiles {
        print CONF "\tleftid=\"$lconfighash{$key}[7]\"\n" if ($lconfighash{$key}[7]);
        print CONF "\trightid=\"$lconfighash{$key}[9]\"\n" if ($lconfighash{$key}[9]);
 
+       # Is PFS enabled?
+       my $pfs = $lconfighash{$key}[28] eq 'on' ? 'on' : 'off';
+
        # Algorithms
        if ($lconfighash{$key}[18] && $lconfighash{$key}[19] && $lconfighash{$key}[20]) {
            print CONF "\tike=";
@@ -379,11 +330,25 @@ sub writeipsecfiles {
            print CONF "\tesp=";
            my @encs   = split('\|', $lconfighash{$key}[21]);
            my @ints   = split('\|', $lconfighash{$key}[22]);
+           my @groups = split('\|', $lconfighash{$key}[20]);
            my $comma = 0;
            foreach my $i (@encs) {
                foreach my $j (@ints) {
-                   if ($comma != 0) { print CONF ","; } else { $comma = 1; }
-                   print CONF "$i-$j";
+                       my $modp = "";
+                       if ($pfs eq "on") {
+                               foreach my $k (@groups) {
+                                   if ($comma != 0) { print CONF ","; } else { $comma = 1; }
+                                   if ($pfs eq "on") {
+                                       $modp = "-modp$k";
+                                   } else {
+                                       $modp = "";
+                                   }
+                                   print CONF "$i-$j$modp";
+                               }
+                       } else {
+                               if ($comma != 0) { print CONF ","; } else { $comma = 1; }
+                               print CONF "$i-$j";
+                       }
                }
            }
            if ($lconfighash{$key}[24] eq 'on') {       #only proposed algorythms?
@@ -392,9 +357,6 @@ sub writeipsecfiles {
                print CONF "\n";
            }
        }
-       if ($lconfighash{$key}[23]) {
-           print CONF "\tpfsgroup=$lconfighash{$key}[23]\n";
-       }
 
        # IKE V1 or V2
        if (! $lconfighash{$key}[29]) {
@@ -414,9 +376,6 @@ sub writeipsecfiles {
        print CONF "\tdpdtimeout=120\n";
        print CONF "\tdpdaction=$lconfighash{$key}[27]\n";
 
-       # Disable pfs ?
-       print CONF "\tpfs=". ($lconfighash{$key}[28] eq 'on' ? "yes\n" : "no\n");
-
        # Build Authentication details:  LEFTid RIGHTid : PSK psk
        my $psk_line;
        if ($lconfighash{$key}[4] eq 'psk') {
@@ -450,6 +409,12 @@ sub writeipsecfiles {
     close(SECRETS);
 }
 
+# Hook to regenerate the configuration files.
+if ($ENV{"REMOTE_ADDR"} eq "") {
+       writeipsecfiles;
+       exit(0);
+}
+
 ###
 ### Save main settings
 ###
@@ -466,29 +431,13 @@ if ($cgiparams{'ACTION'} eq $Lang::tr{'save'} && $cgiparams{'TYPE'} eq '' && $cg
        goto SAVE_ERROR;
     }
 
-    unless ($cgiparams{'VPN_OVERRIDE_MTU'} =~ /^(|[0-9]{1,5})$/ ) { #allow 0-99999
-       $errormessage = $Lang::tr{'vpn mtu invalid'};
-       goto SAVE_ERROR;
-    }
-
-    unless ($cgiparams{'VPN_WATCH'} =~ /^(|off|on)$/ ) {
-       $errormessage = $Lang::tr{'invalid input'};
-       goto SAVE_ERROR;
-    }
-
     if ( $cgiparams{'RW_NET'} ne '' and !&General::validipandmask($cgiparams{'RW_NET'}) ) {
        $errormessage = $Lang::tr{'urlfilter invalid ip or mask error'};
        goto SAVE_ERROR;
     }
 
-    map ($vpnsettings{$_} = $cgiparams{$_},
-       ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-
     $vpnsettings{'VPN_IP'} = $cgiparams{'VPN_IP'};
     $vpnsettings{'VPN_DELAYED_START'} = $cgiparams{'VPN_DELAYED_START'};
-    $vpnsettings{'VPN_OVERRIDE_MTU'} = $cgiparams{'VPN_OVERRIDE_MTU'};
-    $vpnsettings{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'};
     $vpnsettings{'RW_NET'} = $cgiparams{'RW_NET'};
     &General::writehash("${General::swroot}/vpn/settings", \%vpnsettings);
     &writeipsecfiles();
@@ -1298,7 +1247,6 @@ END
        $cgiparams{'REMOTE'}            = $confighash{$cgiparams{'KEY'}}[10];
        $cgiparams{'REMOTE_SUBNET'}     = $confighash{$cgiparams{'KEY'}}[11];
        $cgiparams{'REMARK'}            = $confighash{$cgiparams{'KEY'}}[25];
-       $cgiparams{'INTERFACE'}         = $confighash{$cgiparams{'KEY'}}[26];
        $cgiparams{'DPD_ACTION'}        = $confighash{$cgiparams{'KEY'}}[27];
        $cgiparams{'IKE_VERSION'}       = $confighash{$cgiparams{'KEY'}}[29];
        $cgiparams{'IKE_ENCRYPTION'}    = $confighash{$cgiparams{'KEY'}}[18];
@@ -1801,7 +1749,7 @@ END
        $confighash{$key}[9] = $cgiparams{'REMOTE_ID'};
        $confighash{$key}[10] = $cgiparams{'REMOTE'};
        $confighash{$key}[25] = $cgiparams{'REMARK'};
-       $confighash{$key}[26] = $cgiparams{'INTERFACE'};
+       $confighash{$key}[26] = ""; # Formerly INTERFACE
        $confighash{$key}[27] = $cgiparams{'DPD_ACTION'};
        $confighash{$key}[29] = $cgiparams{'IKE_VERSION'};
 
@@ -1859,28 +1807,25 @@ END
            $cgiparams{'DPD_ACTION'} = 'restart';
        }
 
-       # Default IKE Version to V1
-       if (! $cgiparams{'IKE_VERSION'}) {
-           $cgiparams{'IKE_VERSION'} = 'ikev1';
+       # Default IKE Version to v2
+       if (!$cgiparams{'IKE_VERSION'}) {
+           $cgiparams{'IKE_VERSION'} = 'ikev2';
        }
 
-       # Default is yes for 'pfs'
-       $cgiparams{'PFS'}     = 'on';
-       
        # ID are empty
        $cgiparams{'LOCAL_ID'}  = '';
        $cgiparams{'REMOTE_ID'} = '';
 
        #use default advanced value
-       $cgiparams{'IKE_ENCRYPTION'} = 'aes128|3des';   #[18];
+       $cgiparams{'IKE_ENCRYPTION'} = 'aes256|aes128|3des';    #[18];
        $cgiparams{'IKE_INTEGRITY'}  = 'sha|md5';       #[19];
-       $cgiparams{'IKE_GROUPTYPE'}  = '1536|1024';     #[20];
+       $cgiparams{'IKE_GROUPTYPE'}  = '2048';          #[20];
        $cgiparams{'IKE_LIFETIME'}   = '1';             #[16];
-       $cgiparams{'ESP_ENCRYPTION'} = 'aes128|3des';   #[21];
+       $cgiparams{'ESP_ENCRYPTION'} = 'aes256|aes128|3des';    #[21];
        $cgiparams{'ESP_INTEGRITY'}  = 'sha1|md5';      #[22];
        $cgiparams{'ESP_GROUPTYPE'}  = '';              #[23];
        $cgiparams{'ESP_KEYLIFE'}    = '8';             #[17];
-       $cgiparams{'COMPRESSION'}    = 'off';           #[13];
+       $cgiparams{'COMPRESSION'}    = 'on';            #[13];
        $cgiparams{'ONLY_PROPOSED'}  = 'off';           #[24];
        $cgiparams{'PFS'}            = 'on';            #[28];
        $cgiparams{'VHOST'}          = 'on';            #[14];
@@ -1903,12 +1848,6 @@ END
     $checked{'AUTH'}{'auth-dn'} = '';
     $checked{'AUTH'}{$cgiparams{'AUTH'}} = "checked='checked'";
 
-    $selected{'INTERFACE'}{'RED'} = '';
-    $selected{'INTERFACE'}{'ORANGE'} = '';
-    $selected{'INTERFACE'}{'GREEN'} = '';
-    $selected{'INTERFACE'}{'BLUE'} = '';
-    $selected{'INTERFACE'}{$cgiparams{'INTERFACE'}} = "selected='selected'";
-
     $selected{'DPD_ACTION'}{'clear'} = '';
     $selected{'DPD_ACTION'}{'hold'} = '';
     $selected{'DPD_ACTION'}{'restart'} = '';
@@ -1975,22 +1914,24 @@ END
        $blob = "<img src='/blob.gif' alt='*' />";
     };
 
-    print "<tr><td>$Lang::tr{'host ip'}:</td>";
-    print "<td><select name='INTERFACE'>";
-    print "<option value='RED' $selected{'INTERFACE'}{'RED'}>RED ($vpnsettings{'VPN_IP'})</option>";
-    print "<option value='GREEN' $selected{'INTERFACE'}{'GREEN'}>GREEN ($netsettings{'GREEN_ADDRESS'})</option>";
-    print "<option value='BLUE' $selected{'INTERFACE'}{'BLUE'}>BLUE ($netsettings{'BLUE_ADDRESS'})</option>" if ($netsettings{'BLUE_DEV'} ne '');
-    print "<option value='ORANGE' $selected{'INTERFACE'}{'ORANGE'}>ORANGE ($netsettings{'ORANGE_ADDRESS'})</option>" if ($netsettings{'ORANGE_DEV'} ne '');
-    print "</select></td>";
     print <<END
+       <tr>
            <td class='boldbase'>$Lang::tr{'remote host/ip'}:&nbsp;$blob</td>
-           <td><input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' /></td>
-       </tr><tr>
-           <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
-           <td><input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' /></td>
+           <td>
+               <input type='text' name='REMOTE' value='$cgiparams{'REMOTE'}' size='30' />
+           </td>
            <td class='boldbase' nowrap='nowrap'>$Lang::tr{'remote subnet'}</td>
-           <td><input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' /></td>
-       </tr><tr>
+           <td>
+               <input $disabled type='text' name='REMOTE_SUBNET' value='$cgiparams{'REMOTE_SUBNET'}' size='30' />
+           </td>
+       </tr>
+       <tr>
+           <td class='boldbase' nowrap='nowrap'>$Lang::tr{'local subnet'}</td>
+           <td colspan='3'>
+               <input type='text' name='LOCAL_SUBNET' value='$cgiparams{'LOCAL_SUBNET'}' size='30' />
+           </td>
+       </tr>
+       <tr>
            <td class='boldbase'>$Lang::tr{'vpn local id'}:<br />($Lang::tr{'eg'} <tt>&#64;xy.example.com</tt>)</td>
            <td><input type='text' name='LOCAL_ID' value='$cgiparams{'LOCAL_ID'}' /></td>
            <td class='boldbase'>$Lang::tr{'vpn remote id'}:</td>
@@ -1999,22 +1940,18 @@ END
        </tr><td><br /></td><tr>
            <td>$Lang::tr{'vpn keyexchange'}:</td>
            <td><select name='IKE_VERSION'>
-               <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option>
                <option value='ikev2' $selected{'IKE_VERSION'}{'ikev2'}>IKEv2</option>
-               </select></a>
+               <option value='ikev1' $selected{'IKE_VERSION'}{'ikev1'}>IKEv1</option>
+               </select>
            </td>
            <td>$Lang::tr{'dpd action'}:</td>
            <td><select name='DPD_ACTION'>
                <option value='clear' $selected{'DPD_ACTION'}{'clear'}>clear</option>
                <option value='hold' $selected{'DPD_ACTION'}{'hold'}>hold</option>
                <option value='restart' $selected{'DPD_ACTION'}{'restart'}>restart</option>
-               </select>&nbsp; <a href='http://www.openswan.com/docs/local/README.DPD'>?</a>
+               </select>
            </td>
        </tr><tr>
-<!--http://www.openswan.com/docs/local/README.DPD
-    http://bugs.xelerance.com/view.php?id=156
-    restart = clear + reinitiate connection
--->
            <td class='boldbase'>$Lang::tr{'remark title'}&nbsp;<img src='/blob.gif' alt='*' /></td>
            <td colspan='3'><input type='text' name='REMARK' value='$cgiparams{'REMARK'}' size='55' maxlength='50' /></td>
        </tr>
@@ -2447,11 +2384,7 @@ EOF
     $cgiparams{'VPN_IP'} ='%defaultroute' if ($cgiparams{'VPN_IP'} eq '');
     
     $cgiparams{'VPN_DELAYED_START'} = 0 if (! defined ($cgiparams{'VPN_DELAYED_START'}));
-    $checked{'VPN_WATCH'} = $cgiparams{'VPN_WATCH'} eq 'on' ? "checked='checked'" : '' ;
-    map ($checked{$_} = $cgiparams{$_} eq 'on' ? "checked='checked'" : '',
-       ('ENABLED','DBG_CRYPT','DBG_PARSING','DBG_EMITTING','DBG_CONTROL',
-        'DBG_DNS'));
-
+    $checked{'ENABLED'} = $cgiparams{'ENABLED'} eq 'on' ? "checked='checked'" : '';
 
     &Header::showhttpheaders();
     &Header::openpage($Lang::tr{'vpn configuration main'}, 1, '');
@@ -2473,13 +2406,6 @@ EOF
        <td width='20%'><input type='text' name='VPN_IP' value='$cgiparams{'VPN_IP'}' /></td>
        <td width='20%' class='base'>$Lang::tr{'enabled'}<input type='checkbox' name='ENABLED' $checked{'ENABLED'} /></td>
     </tr>
-END
-    ;
-    print <<END
-    <tr>
-       <td class='base' nowrap='nowrap'>$Lang::tr{'override mtu'}:&nbsp;<img src='/blob.gif' alt='*' /></td>
-       <td ><input type='text' name='VPN_OVERRIDE_MTU' value='$cgiparams{'VPN_OVERRIDE_MTU'}' /></td>
-    </tr>
 END
     ;
 print <<END
@@ -2492,13 +2418,6 @@ print <<END
        <td ><input type='text' name='RW_NET' value='$cgiparams{'RW_NET'}' /></td>
     </tr>
  </table>
-<p>$Lang::tr{'vpn watch'}:<input type='checkbox' name='VPN_WATCH' $checked{'VPN_WATCH'} /></p>
-<p>PLUTO DEBUG&nbsp;=
-crypt:<input type='checkbox' name='DBG_CRYPT' $checked{'DBG_CRYPT'} />,&nbsp;
-parsing:<input type='checkbox' name='DBG_PARSING' $checked{'DBG_PARSING'} />,&nbsp;
-emitting:<input type='checkbox' name='DBG_EMITTING' $checked{'DBG_EMITTING'} />,&nbsp;
-control:<input type='checkbox' name='DBG_CONTROL' $checked{'DBG_CONTROL'} />,&nbsp;
-dns:<input type='checkbox' name='DBG_DNS' $checked{'DBG_DNS'} />&nbsp;
 <hr />
 <table width='100%'>
 <tr>
index 2bc07547340197df985c595905db7897a1ae192c..7360ac675ecee54f2784cfc72578cef194477c60 100644 (file)
@@ -96,6 +96,8 @@ endif
 #
 ifeq "$(ROOT)" ""
 define POSTBUILD
+       @echo "Updating linker cache..."
+       @type -p ldconfig >/dev/null && ldconfig || :
        @echo "Install done; saving file list to $(TARGET) ..."
        @$(FIND_FILES) > $(DIR_SRC)/lsalrnew
        @diff $(DIR_SRC)/lsalr $(DIR_SRC)/lsalrnew | grep '^> ' | sed 's/^> //' > $(TARGET)_diff
diff --git a/lfs/acpid b/lfs/acpid
new file mode 100644 (file)
index 0000000..ff85e1c
--- /dev/null
+++ b/lfs/acpid
@@ -0,0 +1,84 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 2.0.16
+
+THISAPP    = acpid-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+SUP_ARCH   = i586
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = d59fc02c9c34f0d5c137495302e2c074
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && make $(MAKETUNING) OPT="$(CFLAGS)"
+       cd $(DIR_APP) && make install
+
+       # Install configuration.
+       mkdir -pv /etc/acpi/{actions,events}
+       cp -vf $(DIR_SRC)/config/acpid/power /etc/acpi/events/
+       cp -vf $(DIR_SRC)/config/acpid/power.sh /etc/acpi/actions/
+       chmod 755 /etc/acpi/actions/power.sh
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index dadaa145e7ee0c4fffb8ad621fa48a24123b7186..54b898fc1dfb2ef24cbcba7c8c5758fe91904c3b 100644 (file)
--- a/lfs/alsa
+++ b/lfs/alsa
 include Config
 
 
-VER        = 1.0.24.1
-UVER       = 1.0.24.2
-FVER       = 1.0.24.1
-DVER       = 1.0.24
+VER        = 1.0.25
+UVER       = 1.0.25
+FVER       = 1.0.25
+DVER       = 1.0.25
 
 VERSUFIX   = ipfire$(KCFG)
 
@@ -37,7 +37,7 @@ DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 PROG       = alsa
-PAK_VER    = 9
+PAK_VER    = 10
 
 DEPS       = ""
 
@@ -59,10 +59,10 @@ alsa-utils-$(UVER).tar.bz2 = $(DL_FROM)/alsa-utils-$(UVER).tar.bz2
 alsa-firmware-$(FVER).tar.bz2 = $(DL_FROM)/alsa-firmware-$(FVER).tar.bz2
 alsa-driver-$(DVER).tar.bz2 = $(DL_FROM)/alsa-driver-$(DVER).tar.bz2
 
-$(DL_FILE)_MD5 = 7cc05f25e1d5b65da8fb3fdcd540f226
-alsa-utils-$(UVER).tar.bz2_MD5 = 8238cd57cb301d1c36bcf0ecb59ce6b2
-alsa-firmware-$(FVER).tar.bz2_MD5 = d37434dfcfececd8581d2f0bbe2fcf1b
-alsa-driver-$(DVER).tar.bz2_MD5 = a4ffd80745ce5098dfd48d83c2769e0e
+$(DL_FILE)_MD5 = 06fe5819020c6684b991dcffc5471304
+alsa-utils-$(UVER).tar.bz2_MD5 = f81f9dcb9a014fd32cb3a70066a5b9a9
+alsa-firmware-$(FVER).tar.bz2_MD5 = f1939da45b162c83a726c54a470ef139
+alsa-driver-$(DVER).tar.bz2_MD5 = ac56465c262ced60b5eb2d6492d7a923
 
 install : $(TARGET)
 
@@ -104,7 +104,7 @@ ifeq "$(KMOD)" "1"
        cd $(DIR_SRC)/alsa-driver-$(DVER) && make install
 else
        cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --enable-static
+       cd $(DIR_APP) && ./configure
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
        cd $(DIR_SRC) && tar xfj $(DIR_DL)/alsa-utils-$(UVER).tar.bz2
index db14e141786ccbe581659d1e8cf4ae38cba4a8a3..4e9137b111ed9a2fb74a4e551ac2059095810dcd 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
index afdb511f1373eef4b7035b22913dbebfe89ccbd9..34bf0753392331f2790b63aa3991f8957c36c265 100644 (file)
--- a/lfs/bash
+++ b/lfs/bash
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.1
+VER        = 3.2
 
 THISAPP    = bash-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -48,7 +48,7 @@ else
   EXTRA_INSTALL = 
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
 
 ###############################################################################
 # Top-level Rules
@@ -58,7 +58,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5         = ef5304c4b22aaa5088972c792ed45d72
+$(DL_FILE)_MD5         = 00bfa16d58e034e3c2aa27f390390d30
 
 install : $(TARGET)
 
@@ -88,8 +88,11 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fixes-8.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-login.patch
+
+       for i in $$(seq 1 51); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/bash/bash32-$$(printf "%03d" "$${i}") || exit 1; \
+       done
+
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
index 2ff84746e88adc10ae3845e739d1b8639c446a84..791483f218a7a6c0881c88a4a4f8a3a157ba24f8 100644 (file)
 
 include Config
 
-VER        = 2.18
+VER        = 2.22
 
 THISAPP    = binutils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-# XXX maybe we can remove that ugly MACHINE= by this
-#unexport MACHINE
-
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --enable-shared --disable-nls
+  EXTRA_CONFIG = \
+       --prefix=/usr \
+       --enable-shared \
+       --disable-nls
   EXTRA_MAKE = tooldir=/usr
   EXTRA_INSTALL = tooldir=/usr
 else
 ifeq "$(PASS)" "1"
+  CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+  CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-  EXTRA_CONFIG = --prefix=/tools --disable-nls --disable-werror --disable-gprof
-  #EXTRA_MAKE = LDFLAGS="-all-static"
+  EXTRA_CONFIG = \
+       --target=$(CROSSTARGET) \
+       --prefix=/tools \
+       --disable-nls \
+       --disable-werror
+  EXTRA_MAKE =
   EXTRA_INSTALL = 
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
-  EXTRA_CONFIG = --prefix=/tools --with-lib-path=/tools/lib --disable-nls
+  EXTRA_ENV = \
+       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       AR="$(CROSSTARGET)-ar" \
+       RANLIB="$(CROSSTARGET)-ranlib"
+  EXTRA_CONFIG = \
+       --host=$(BUILDTARGET) \
+       --build=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-lib-path=/tools/lib \
+       --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
-
 ifeq "$(MACHINE_TYPE)" "arm"
        EXTRA_CONFIG += \
                --with-abi=aapcs-linux \
@@ -71,7 +84,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 9d22ee4dafa3a194457caf4706f9cf01
+$(DL_FILE)_MD5 = ee0f10756c84979622b992a4a61ea3f5
 
 install : $(TARGET)
 
@@ -102,21 +115,17 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/binutils-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/binutils-build
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-configure-1.patch
-       cd $(DIR_SRC)/binutils-build && MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG)
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/binutils-build && make configure-host MAKEINFO=makeinfo MACHINE=
-endif
-       cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MAKEINFO=makeinfo MACHINE=
-       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MAKEINFO=makeinfo MACHINE=
+
+       # Prevent installing libiberty to lib64.
+       cd $(DIR_APP) && sed -i 's%\(^MULTIOSDIR = \).*%\1 ../lib%' libiberty/Makefile.in
+
+       cd $(DIR_SRC)/binutils-build && $(EXTRA_ENV) MACHINE= $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_MAKE) $(MAKETUNING) MACHINE=
+       cd $(DIR_SRC)/binutils-build && make $(EXTRA_INSTALL) install MACHINE=
 ifeq "$(ROOT)" ""
        cp -v $(DIR_APP)/include/libiberty.h /usr/include
 else
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
-       cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/tools/lib MACHINE=
-       cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
-else
+ifeq "$(PASS)" "2"
        cd $(DIR_SRC)/binutils-build && make -C ld clean MACHINE=
        cd $(DIR_SRC)/binutils-build && make -C ld LIB_PATH=/usr/lib:/lib MACHINE=
        cd $(DIR_SRC)/binutils-build && cp -v ld/ld-new /tools/bin
index 961b1e603823ab8189afaec3cc5fc2ea3fdd48ba..ca3176d0f9fdce9506196353ba1429922e01cf9c 100644 (file)
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = bluetooth
 PAK_VER    = 1
 
-DEPS       = "dbus glib"
+DEPS       = "dbus"
 
 ###############################################################################
 # Top-level Rules
diff --git a/lfs/cairo b/lfs/cairo
new file mode 100644 (file)
index 0000000..591549a
--- /dev/null
+++ b/lfs/cairo
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.10.2
+
+THISAPP    = cairo-$(VER)
+DL_FILE    = $(THISAPP).tar.gz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = f101a9e88b783337b20b2e26dfd26d5f
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-win32 --disable-os2 --disable-beos
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index 9546c43acbc8967059881e15c39d74fe16b126ae..b82c156e03c9066094e4d33e2276b5bad891413e 100644 (file)
@@ -76,6 +76,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/capiinit && make install
        cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux\/capi.h>/include <linux\/types.h>\n#include <linux\/capi.h>/' capidyn.c
        cd $(DIR_APP)/capi20 && sed -i -e 's/include <linux\/capi.h>/include <linux\/types.h>\n#include <linux\/capi.h>/' capi20.c
+       cd $(DIR_APP)/capi20 && sed -i "/include/a #include <stddef.h>" capi20.h
        cd $(DIR_APP)/capi20 && sed -i -e 's/-O2/$(CFLAGS)/' configure
        cd $(DIR_APP)/capi20 && SED=sed ./configure
        cd $(DIR_APP)/capi20 && SED=sed make $(MAKETUNING)
index b7cad8697d143be739ed38ecf1d66c33559ba517..44010f962248a3fba29b093880d004d8297a12e5 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 3.1.6
+VER        = 3.1.8
 
 THISAPP    = ccache-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,6 +32,14 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)-pass$(PASS)
 
+ifeq "$(PASS)" "1"
+       CFLAGS := $(patsubst -march=%,,$(CFLAGS))
+       CFLAGS := $(patsubst -mfloat-abi=%,,$(CFLAGS))
+endif
+
+# Set max cache size to 5GB
+CFLAGS += -DDEFAULT_MAXSIZE=5242880
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -40,7 +48,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 343dc9b642e1d2af1e6bd8e474dde92e
+$(DL_FILE)_MD5 = 0e0f25fb342dcb1196d9c2986a7323cf
 
 install : $(TARGET)
 
@@ -70,16 +78,28 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -p1 < $(DIR_SRC)/src/patches/$(THISAPP)-no_compiler_mtime.patch
-       cd $(DIR_APP) && CFLAGS="-O2 -static -DDEFAULT_MAXSIZE=2097152" ./configure --prefix=$(ROOT)/usr/local
+       cd $(DIR_APP) && ./configure --prefix=/tools
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
-       ln -sf ccache $(ROOT)/usr/local/bin/gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/g++
-       ln -sf ccache $(ROOT)/usr/local/bin/cc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc
-       $(ROOT)/usr/local/bin/ccache -z
+
+ifeq "$(PASS)" "1"
+       mkdir -pv /tools/ccache/bin
+       ln -svf ../../bin/ccache /tools/ccache/bin/gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/c++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(CROSSTARGET)-c++
+endif
+
+ifeq "$(PASS)" "2"
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-gcc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-g++
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-cc
+       ln -svf ../../bin/ccache /tools/ccache/bin/$(BUILDTARGET)-c++
+endif
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 306b781c2f97a5952302f6956c374c86692b3148..0b3252f9f4f23185f2696d32e88d1ad543f7f718 100644 (file)
@@ -52,30 +52,39 @@ md5 :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
 ifeq "$(PASS)" "1"
-       mv -v /tools/bin/{ld,ld-old}
-       mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
-       cp -v /tools/bin/{ld-new,ld}
-       ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs > /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       sed 's@/lib/ld-linux.so@/tools&@g' /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs > tempspecfile
-       mv -vf tempspecfile /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
-       find /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/* -maxdepth 0 -xtype d -exec rm -rvf '{}' \;
-       rm -vf `grep -l "DO NOT EDIT THIS FILE" /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/include/*`
+       SPECS=$$(dirname $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name))/specs; \
+       /tools/bin/$(CROSSTARGET)-gcc -dumpspecs | sed \
+               -e 's@/lib\(64\)\?/ld@/tools&@g' \
+               -e "/^\*cpp:$$/{n;s,$$, -isystem /tools/include,}" > $$SPECS
 endif
+
 ifeq "$(PASS)" "2"
-       -strip --strip-debug /tools/lib/*
-       -strip --strip-unneeded /tools/{,s}bin/*
-       rm -rfv /tools/{info,man} /usr/local/man
-       chown -R root:root /tools
+       # Remove the first cross compiler which is not needed anymore.
+       find /tools/ -name "$(CROSSTARGET)*" | xargs rm -rfv
+
+       # Remove man and info pages.
+       rm -rfv /tools/{,share}/{info,man}
+
+       # Strip all binaries.
+       STRIP="/usr/bin/strip" $(DIR_SRC)/src/stripper /tools/
+
+       # Fix ownership of the toolchain.
+       chown -R root:root /tools/
+
+       # Update/create linker cache.
+       /tools/sbin/ldconfig
 endif
+
 ifeq "$(PASS)" "3"
        mv -v /tools/bin/{ld,ld-old}
        mv -v /tools/$(BUILDTARGET)/bin/{ld,ld-old}
        mv -v /tools/bin/{ld-new,ld}
        ln -sv /tools/bin/ld /tools/$(BUILDTARGET)/bin/ld
-       gcc -dumpspecs | \
-       perl -p -e 's@/tools/lib/ld-linux.so@/lib/ld-linux.so@g;' \
-           -e 's@\*startfile_prefix_spec:\n@$$_/usr/lib/ @g;' > \
-           /tools/lib/gcc/$(BUILDTARGET)/$(GCC_VER)/specs
+
+       gcc -dumpspecs | sed \
+               -e 's@/tools@@g' \
+               -e '/\*startfile_prefix_spec:/{n;s@.*@/usr/lib/ @}' \
+               -e '/\*cpp:/{n;s@$$@ -isystem /usr/include@}' > \
+               $$(dirname $$(gcc -print-libgcc-file-name))/specs
 endif
        @$(POSTBUILD)
index 6b7aff61cef6c513094309478d1316bb6d7e06e3..587396538ddd929da40aef1be156ed42e75cd1fd 100644 (file)
--- a/lfs/cmake
+++ b/lfs/cmake
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./bootstrap
+       cd $(DIR_APP) && ./bootstrap --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index a8902f1c2ad6b4e8f5bac1d7438a24e6352f58c4..eab5cce1cb387ac330aceffed387caf9261db84e 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,7 +26,11 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = 3.0-2
+VER        = 3.5.3-2-snpc
+
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.59
+endif
 
 THISAPP    = compat-wireless-$(VER)
 DL_FILE    = compat-wireless-$(VER).tar.bz2
@@ -38,13 +42,13 @@ TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) asix-3.5.0a.tar.bz2
+objects = $(DL_FILE) asix-4.4.0.tar.xz
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-asix-3.5.0a.tar.bz2 = $(DL_FROM)/asix-3.5.0a.tar.bz2
+asix-4.4.0.tar.xz = $(DL_FROM)/asix-4.4.0.tar.xz
 
-$(DL_FILE)_MD5 = 7f2d0de30bf9c3e9a941d9e67971e9b3
-asix-3.5.0a.tar.bz2_MD5=cc57513505d3ad1a43b58add91d2bba7
+$(DL_FILE)_MD5 = cb4c857cf377cdb08dcd33a5971b8a67
+asix-4.4.0.tar.xz_MD5=633609e889de41554826e0e2cd7bffde
 
 install : $(TARGET)
 
@@ -78,6 +82,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # kfifo has no license info and taints kernel
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.39_kfifo_module_info.patch
 
+       # Codel patches
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch
+
+       # Build ath5k only if target has pci
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch
+
        # Copy USB-Net drivers from Kernel...
        mkdir $(DIR_APP)/drivers/net/usb/new
        cp $(DIR_APP)/drivers/net/usb/*.c $(DIR_APP)/drivers/net/usb/new
@@ -87,18 +97,22 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-2.6.34-usbnet_compile.patch
 
        # Build Updated asix usb-lan driver
-       cd $(DIR_APP)/drivers/net/usb && tar xvf $(DIR_DL)/asix-3.5.0a.tar.bz2
+       cd $(DIR_APP)/drivers/net/usb && tar xvJf $(DIR_DL)/asix-4.4.0.tar.xz
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       # B43+B44 driver doesn't build on arm
-#      cd $(DIR_APP) && sed -i -e "s|CONFIG_B43=m||g" config.mk
-#      cd $(DIR_APP) && sed -i -e "s|CONFIG_B44=m||g" config.mk
        # Add libartas uAP driver
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.0-libertas_uap.patch
-       cd $(DIR_APP)&& echo CONFIG_LIBERTAS_UAP=m >> config.mk
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/compat-wireless-3.5-libertas_uap.patch
+
+       # uAP will not build with xen-kernel (2.6)
+ifneq "$(KCFG)" "-xen"
+       cd $(DIR_APP) && echo export CONFIG_LIBERTAS_UAP=m >> config.mk
 endif
 
+       # Erase some modules that are obsolete or moved to other path
+       rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/net/bluetooth
+       rm -rf /lib/modules/$(KVER)-$(VERSUFIX)/kernel/drivers/net/wireless/wl12*
+
        cd $(DIR_APP) && make KLIB=/lib/modules/$(KVER)-$(VERSUFIX) \
+               KLIB_BUILD=/lib/modules/$(KVER)-$(VERSUFIX)/build \
                KMODPATH_ARG='INSTALL_MOD_PATH=' KMODDIR=kernel install-modules
 
        # Install firmware udev files...
index 7bdc0ecd380e31fbc9c807e06e8dd4fbf0b23e0f..c8b4d284b390f092eca454bd02df66ede42e2cfc 100644 (file)
@@ -45,7 +45,7 @@ else
   EXTRA_INSTALL = 
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
 
 ###############################################################################
 # Top-level Rules
@@ -86,6 +86,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-rename-tee.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/coreutils-5.96-futimes.patch
 ifeq "$(ROOT)" ""
 ifeq "$(MACHINE)" "i586"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-uname-1.patch
index 0c2f4863f87eb5f9299c272bac0842cbdd331809..261e27a6579e2da537babf02ac21f63e9bbea141 100644 (file)
 
 include Config
 
+ifeq "$(KCFG)" "-xen"
+       KVER = 2.6.32.59
+endif
+
 VERSUFIX=ipfire$(KCFG)
 
 VER        = 1.4
@@ -81,6 +85,5 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        -mkdir -pv /usr/include/crypto
        cd $(DIR_APP) && make install \
                KERNEL_DIR=/lib/modules/$(KVER)-$(VERSUFIX)/build
-#      ln -svf ../crypto/cryptodev.h /usr/include/linux/cryptodev.h
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 1f8282ef8557db76e0611f830386e3e0aa5a20ef..749011f26711a25e14aa26747da3a9357b89622d 100644 (file)
@@ -82,6 +82,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/cyrus-sasl-2.1.22-bad-elif.patch
        cd $(DIR_APP) && sed -i '/sasl_global/s/^static //' lib/client.c
        cd $(DIR_APP) && sed -i 's/cat8/man8/' saslauthd/Makefile.in
 
diff --git a/lfs/dahdi b/lfs/dahdi
deleted file mode 100644 (file)
index 0ae424c..0000000
--- a/lfs/dahdi
+++ /dev/null
@@ -1,144 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VERSUFIX=ipfire$(KCFG)
-
-VER        = 2.2.1
-TVER       = 2.2.1
-
-DL_FILE    = dahdi-linux-$(VER).tar.gz
-DL_FILE1   = dahdi-tools-$(TVER).tar.gz
-
-THISAPP    = dahdi-$(VER)
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/dahdi-linux-$(VER)
-DIR_APP1   = $(DIR_SRC)/dahdi-tools-$(TVER)
-
-PROG       = dahdi
-PAK_VER    = 2
-
-DEPS       = ""
-
-
-ifeq "$(KMOD)" "1"
-       TARGET = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE) $(DL_FILE1) dahdi-linux-2.2.1-firmware.tar.bz2
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE1) = $(DL_FROM)/$(DL_FILE1)
-dahdi-linux-2.2.1-firmware.tar.bz2 = $(DL_FROM)/dahdi-linux-2.2.1-firmware.tar.bz2
-
-$(DL_FILE)_MD5 = 46e4abbe743830045364fc716d293e88
-$(DL_FILE1)_MD5 = 04e7097929851f744f777400125180db
-dahdi-linux-2.2.1-firmware.tar.bz2_MD5 = ccc50ded1641cd619e8d3a4615a6ad19
-
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-       $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-
-       rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_SRC) && tar jxf $(DIR_DL)/dahdi-linux-2.2.1-firmware.tar.bz2
-       cd $(DIR_APP) && make $(MAKETUNING) clean all KVERS=$(KVER)
-
-ifeq "$(KMOD)" "1"
-       cd $(DIR_APP) && make install-modules KVERS=$(KVER)-$(VERSUFIX)
-       @rm -rf $(DIR_APP)
-else
-       cd $(DIR_APP) && make install-devices install-include \
-               install-firmware install-xpp-firm KVERS=$(KVER)-$(VERSUFIX)
-       @rm -rf $(DIR_APP)
-
-       # remove previous generated symlink (if this a rebuild)
-       rm -rf /etc/dahdi
-
-       rm -rf $(DIR_APP1) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE1)
-       cd $(DIR_APP1) && ./configure --sysconfdir=/var/ipfire/asterisk
-       cd $(DIR_APP1) && make $(MAKETUNING) clean all
-       cd $(DIR_APP1) && make install
-
-       # Supress Error output because this erase the log 
-       cd $(DIR_APP1) && make config 2>/dev/null
-
-       # remove build src
-       @rm -rf $(DIR_APP1)
-
-       # config stuff
-       ln -sf ../init.d/dahdi /etc/rc.d/rc0.d/K30dahdi
-       ln -sf ../init.d/dahdi /etc/rc.d/rc6.d/K30dahdi
-       ln -sf ../init.d/dahdi /etc/rc.d/rc3.d/S15dahdi
-       mv -f /etc/dahdi/genconf_parameters /var/ipfire/asterisk/dahdi/
-       mv -f /etc/dahdi/init.conf /var/ipfire/asterisk/dahdi/
-       mv -f /etc/dahdi/modules /var/ipfire/asterisk/dahdi/
-       rmdir /etc/dahdi
-       ln -s /var/ipfire/asterisk/dahdi /etc/dahdi
-
-       # make init.d-script work with ipfire
-       sed s/system=redhat/system=debian/ /etc/init.d/dahdi > /tmp/dahdi-temp
-       mv /tmp/dahdi-temp /etc/init.d/dahdi && chmod 755 /etc/init.d/dahdi
-
-       # add dummy-module (to get conference rooms work)
-       echo "#Dummy" >> /etc/dahdi/modules
-       echo "dahdi_dummy" >> /etc/dahdi/modules
-endif
-       @$(POSTBUILD)
-
index 818b89ea4058ca9e4137139e076b14a4253e4376..3a431066a10ff2685ac8271392790075d6f30e9a 100644 (file)
--- a/lfs/dbus
+++ b/lfs/dbus
@@ -77,6 +77,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_SRC)/dbus*
        cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dbus-1.0.3-compile-fix-1.patch
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
                                     --localstatedir=/var
        cd $(DIR_APP) && make $(MAKETUNING)
similarity index 94%
rename from lfs/iptstate
rename to lfs/dejavu-fonts-ttf
index ee503678edc06096e921b5660b2f68899c537055..cd31a2defe6d9b59c6bc2d2a8d3dfa6b53aaa01b 100644 (file)
 
 include Config
 
-VER        = 2.1
 
-THISAPP    = iptstate-$(VER)
+VER        = 2.33
+
+THISAPP    = dejavu-fonts-ttf-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = c99e19c66645689b44a871428e003ec7
+$(DL_FILE)_MD5 = 8b601e91725b6d69141b0fcf527948c0
 
 install : $(TARGET)
 
@@ -70,7 +71,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
+       mkdir -pv /usr/share/fonts
+       install -m 644 $(DIR_APP)/ttf/* /usr/share/fonts
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 816a75d8721a700ad54f7b2474c2d7dc822324f2..083c31fa1107bc70daf28789d5d386f4893b8891 100644 (file)
--- a/lfs/dhcp
+++ b/lfs/dhcp
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-remove-bind.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-errwarn-message.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-options.patch
@@ -81,11 +82,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-xen-checksum.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-manpages.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-paths.patch
-       # Has to be enabled after glibc update.
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-CLOEXEC.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-inherit-leases.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-garbage-chars.patch
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch
+       # ???
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-missing-ipv6-not-fatal.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.0-add_timeout_when_NULL.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.1-64_bit_lease_parse.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/dhcp-4.2.2-capability.patch
@@ -117,6 +118,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                        --enable-paranoia \
                        --enable-early-chroot \
                        --disable-dhcpv6
+
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
index e406af820688b97f4cb6348a591306ba00b220a3..34acb593e48f5b979a441ea69b4080bfa0c29b50 100644 (file)
@@ -79,6 +79,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/directfb-1.1.1-fix-mknod.patch
        cd $(DIR_APP) && sed -i "s/checkfor_matrox=yes/checkfor_matrox=no/g" configure
        cd $(DIR_APP) && sed -i "s/checkfor_cle266=no/checkfor_cle266=yes/g" configure
        cd $(DIR_APP) && sed -i "s/checkfor_omap=.*/checkfor_omap=no/g" configure
index 029bc380ddebf9015955e83ffd4688c507389fab..f2195a70b532a73c88f1df63594db96b4dc82c91 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -92,11 +92,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        # needed.
 
 ifeq "$(MACHINE_TYPE)" "arm"
-       # versatile kernel
-       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-versatile.img $(KVER)-ipfire-versatile
        # kirkwood kernel
        /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-kirkwood.img $(KVER)-ipfire-kirkwood
        cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-kirkwood.img uInit-ipfire-kirkwood
+       # omap kernel
+       /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER)-omap.img $(KVER3)-ipfire-omap
+       cd /boot && mkimage -A arm -T ramdisk -C lzma -d ipfirerd-$(KVER)-omap.img uInit-ipfire-omap
 else
        /sbin/dracut --force --verbose --strip /boot/ipfirerd-$(KVER).img $(KVER)-ipfire
 endif
index b724912538d1ea0e20b282a491feba06b1edebdf..978a90d9bc9c0db1e1250d514d07f9203ca237cf 100644 (file)
@@ -28,7 +28,7 @@ VER = 1.0
 
 THISAPP    = fake-environ
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-tools$(PASS)
+TARGET     = $(DIR_INFO)/$(THISAPP)-tools
 
 ###############################################################################
 # Top-level Rules
index 0d6fcf4693c6d1be944a414e9a7fb241cbd9664e..70a38e24df8aa3aee05ff1edfb670b3704268a73 100644 (file)
--- a/lfs/file
+++ b/lfs/file
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.17
+VER        = 5.11
 
 THISAPP    = file-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 50919c65e0181423d66bb25d7fe7b0fd
+$(DL_FILE)_MD5 = 16a407bd66d6c7a832f3a5c0d609c27b
 
 install : $(TARGET)
 
@@ -70,7 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index daf3ec1cc93477307f3032f8f557944fdb801e1d..e43d53eb27cce5046352bc162f87022da19e689a 100644 (file)
@@ -44,28 +44,25 @@ md5 :
 ###############################################################################
 # Installation Details
 ###############################################################################
-IMGinst  := /install/images/$(SNAME)-$(VERSION).2gb-ext2.$(MACHINE)-full-core$(CORE).img
-IMGinsts := /install/images/$(SNAME)-$(VERSION).2gb-ext2-scon.$(MACHINE)-full-core$(CORE).img
+IMGinst  := /install/images/$(SNAME)-$(VERSION).1gb-ext4.$(MACHINE)-full-core$(CORE).img
+IMGinsts := /install/images/$(SNAME)-$(VERSION).1gb-ext4-scon.$(MACHINE)-full-core$(CORE).img
 MNThdd   := /install/harddisk
 IMGpart  := /install/images/part_area
 IMGboot  := /install/images/bootfs
 # don't change SIZEboot this without checking Image size
-SIZEboot := 20
+SIZEboot := 64
 IMGroot  := /install/images/rootfs
-SIZEroot := 1400
-IMGvar   := /install/images/varfs
-SIZEvar  := 430
+SIZEroot := 600
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) && mkdir -p $(MNThdd)
+       rm -rf $(MNThdd) $(IMGinst) $(IMGpart) $(IMGboot) $(IMGroot) && mkdir -p $(MNThdd)
 
        # Create first 32 sectors of image
        dd bs=1k if=/dev/zero of=$(IMGpart) count=16
 
        # Create images for filesystems
-       dd bs=1K if=/dev/zero of=$(IMGboot) count=20464  # 20MB-16K
+       dd bs=1K if=/dev/zero of=$(IMGboot) count=65520  # 64MB-16K
        dd bs=1M if=/dev/zero of=$(IMGroot) count=$(SIZEroot)
-       dd bs=1M if=/dev/zero of=$(IMGvar) count=$(SIZEvar)
 
        # Format them
 ifeq "$(MACHINE_TYPE)" "arm"
@@ -73,8 +70,11 @@ ifeq "$(MACHINE_TYPE)" "arm"
 else
        mkfs.ext2 -F $(IMGboot)
 endif
-       mkfs.ext2 -F $(IMGroot)
-       mkfs.ext2 -F $(IMGvar)
+       mkfs.ext4 -O ^has_journal,extent -F $(IMGroot)
+
+       # Most systems that use Flashimages has no RTC at boot
+       # so the interval check should disables
+       tune2fs -i0 $(IMGroot)
 
        # Mount Images
        mount -o loop $(IMGroot) $(MNThdd)
@@ -82,7 +82,15 @@ endif
        mkdir $(MNThdd)/var
        mkdir $(MNThdd)/var/log
        mount -o loop $(IMGboot) $(MNThdd)/boot
-       mount -o loop $(IMGvar)  $(MNThdd)/var
+
+       # Install MLO and uboot first
+ifeq "$(MACHINE_TYPE)" "arm"
+       cp -v /boot/MLO $(MNThdd)/boot/
+       cp -v /boot/u-boot.bin $(MNThdd)/boot/
+       sync
+       umount $(MNThdd)/boot
+       mount -o loop $(IMGboot) $(MNThdd)/boot
+endif
 
        # Install IPFire
        tar -C $(MNThdd)/ -xvaf /install/cdrom/$(SNAME)-$(VERSION).tlz
@@ -102,8 +110,8 @@ ifeq "$(MACHINE_TYPE)" "arm"
 endif
        sed -i -e "s|DEVICE2|#DEVICE2|g" $(MNThdd)/etc/fstab
        sed -i -e "s|DEVICE3|UUID=$$(blkid -sUUID $(IMGroot) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|DEVICE4|UUID=$$(blkid -sUUID $(IMGvar) | cut -d'"' -f2)|g" $(MNThdd)/etc/fstab
-       sed -i -e "s|FSTYPE|ext2|g" $(MNThdd)/etc/fstab
+       sed -i -e "s|DEVICE4|#DEVICE4|g" $(MNThdd)/etc/fstab
+       sed -i -e "s|FSTYPE|ext4|g" $(MNThdd)/etc/fstab
 
 ifneq "$(MACHINE_TYPE)" "arm"
        sed -i -e "s|MOUNT|ro|g" $(MNThdd)/boot/grub/grub.conf
@@ -118,14 +126,13 @@ endif
        # Setup symlink for partresize at first boot...
        ln -sf ../init.d/partresize $(MNThdd)/etc/rc.d/rcsysinit.d/S25partresize
        # Setup symlink for fsresize at second boot...
-       ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S26fsresize
+       ln -sf ../init.d/fsresize $(MNThdd)/etc/rc.d/rcsysinit.d/S42fsresize
 
        # Unmount
        umount $(MNThdd)/proc
        umount $(MNThdd)/dev
        umount $(MNThdd)/sys
        umount $(MNThdd)/boot
-       umount $(MNThdd)/var
        umount $(MNThdd)
 
        # zerofree the ext2 images to get better compression
@@ -135,17 +142,20 @@ ifneq "$(MACHINE_TYPE)" "arm"
        fsck.ext2 -f -y $(IMGboot)
 endif
        zerofree $(IMGroot)
-       -fsck.ext2 -f -y  $(IMGroot)
-       fsck.ext2 -f -y  $(IMGroot)
-       zerofree $(IMGvar)
-       -fsck.ext2 -f -y  $(IMGvar)
-       fsck.ext2 -f -y  $(IMGvar)
+       -fsck.ext4 -f -y  $(IMGroot)
+       fsck.ext4 -f -y  $(IMGroot)
 
        # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinst)
+       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinst)
+
        # Write Partition table
-       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \
+ifneq "$(MACHINE_TYPE)" "arm"
+       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
+               | sfdisk -D -uM -H 64 -S 32 $(IMGinst)
+else
+       echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
                | sfdisk -D -uM -H 64 -S 32 $(IMGinst)
+endif
 
 ifneq "$(MACHINE_TYPE)" "arm"
        # Install grub
@@ -170,6 +180,10 @@ ifneq "$(MACHINE_TYPE)" "arm"
        sed -i -e "s|#serial|serial|g" $(MNThdd)/boot/grub/grub.conf
        sed -i -e "s|#terminal|terminal|g" $(MNThdd)/boot/grub/grub.conf
        sed -i -e "s| panic=10 | console=ttyS0,115200n8 panic=10 |g" $(MNThdd)/boot/grub/grub.conf
+else
+       sed -i -e "s| console=tty1 | console=ttyAMA0,115200n8 |g" $(MNThdd)/boot/cmdline.txt
+       sed -i -e "s| console=tty1 omapfb.mode=dvi:800x600MR-16@60 | console=ttyO2,115200n8 |g" $(MNThdd)/boot/boot.script
+       cd $(MNThdd)/boot && ./convert_bootscript
 endif
 
        sed -i -e "s|1:2345:respawn:|#1:2345:respawn:|g" $(MNThdd)/etc/inittab
@@ -190,18 +204,21 @@ ifneq "$(MACHINE_TYPE)" "arm"
        fsck.ext2 -f -y  $(IMGboot)
 endif
        zerofree $(IMGroot)
-       -fsck.ext2 -f -y  $(IMGroot)
-       fsck.ext2 -f -y  $(IMGroot)
-       zerofree $(IMGvar)
-       -fsck.ext2 -f -y  $(IMGvar)
-       fsck.ext2 -f -y  $(IMGvar)
+       -fsck.ext4 -f -y  $(IMGroot)
+       fsck.ext4 -f -y  $(IMGroot)
 
        # Cat to an image
-       cat $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar) > $(IMGinsts)
-       rm -vf $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar)
+       cat $(IMGpart) $(IMGboot) $(IMGroot) > $(IMGinsts)
+       rm -vf $(IMGpart) $(IMGboot) $(IMGroot)
+
        # Write Partition table
-       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,$(SIZEvar),L\n" \
+ifneq "$(MACHINE_TYPE)" "arm"
+       echo -e ",$(SIZEboot),L,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
                | sfdisk -D -uM -H 64 -S 32 $(IMGinsts)
+else
+       echo -e ",$(SIZEboot),c,*\n,0,0\n,$(SIZEroot),L\n,0,0\n" \
+               | sfdisk -D -uM -H 64 -S 32 $(IMGinsts)
+endif
 
 ifneq "$(MACHINE_TYPE)" "arm"
        # Install grub
@@ -216,5 +233,4 @@ endif
        # Compress Image
        gzip -f9 $(IMGinsts)
 
-       rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot) $(IMGvar)
-
+       rm -rf $(MNThdd) $(IMGpart) $(IMGboot) $(IMGroot)
index d5b020c09eca0e2ec3a9cd9eb20b259f42edf7be..6f0850be75c1153924ec4cf44860d504ad0322c1 100644 (file)
@@ -31,10 +31,6 @@ DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = fontconfig
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -54,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
index 7bf70446cb7536309a89a1e4ffe84d050324b398..66bbfac23e7280e10141348ccb225ce12b7b273d 100644 (file)
--- a/lfs/gawk
+++ b/lfs/gawk
@@ -45,6 +45,8 @@ else
   EXTRA_INSTALL = 
 endif
 
+EXTRA_CONFIG += ac_cv_func_working_mktime=yes
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
diff --git a/lfs/gcc b/lfs/gcc
index 785b965cf1410a9e3306a03cb11b193615ec4029..0bdecdaefbef03ba9b61241473409d1580e9fefe 100644 (file)
--- a/lfs/gcc
+++ b/lfs/gcc
 
 include Config
 
-VER        = 4.1.2
+VER        = 4.4.7
+
+GMP_VER    = 5.0.5
+MPFR_VER   = 2.4.2
 
 THISAPP    = gcc-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
+CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
+CFLAGS    := $(patsubst -mtune=%,,$(CFLAGS))
+CFLAGS    := $(patsubst -mfloat-abi=%,,$(CFLAGS))
+
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr \
-               --libexecdir=/usr/lib \
-               --enable-shared \
-               --enable-threads=posix \
-               --enable-__cxa_atexit \
-               --enable-clocale=gnu \
-               --enable-languages=c,c++ \
-               --disable-nls
+  EXTRA_CONFIG = \
+       --prefix=/usr \
+       --libexecdir=/usr/lib \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-__cxa_atexit \
+       --enable-clocale=gnu \
+       --enable-languages=c,c++ \
+       --disable-bootstrap \
+       --disable-nls
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
 ifeq "$(PASS)" "1"
   TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-  EXTRA_CONFIG = --prefix=/tools \
-               --with-local-prefix=/tools \
-               --disable-nls \
-               --enable-shared \
-               --enable-languages=c \
-               --disable-bootstrap
+  EXTRA_CONFIG = \
+       --target=$(CROSSTARGET) \
+       --prefix=/tools \
+       --disable-nls \
+       --disable-shared \
+       --disable-decimal-float \
+       --disable-threads \
+       --disable-libmudflap \
+       --disable-libssp \
+       --disable-libgomp \
+       --disable-libquadmath \
+       --with-newlib \
+       --without-headers \
+       --without-ppl \
+       --without-cloog \
+       --enable-languages=c
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools2
-  EXTRA_CONFIG = --prefix=/tools \
-               --with-local-prefix=/tools \
-               --enable-clocale=gnu \
-               --enable-shared \
-               --enable-threads=posix \
-               --enable-__cxa_atexit \
-               --enable-languages=c,c++ \
-               --disable-libstdcxx-pch
+  EXTRA_ENV = \
+       CC="$(CROSSTARGET)-gcc -B/tools/lib/" \
+       AR="$(CROSSTARGET)-ar" \
+       RANLIB="$(CROSSTARGET)-ranlib"
+  EXTRA_CONFIG = \
+       --host=$(BUILDTARGET) \
+       --build=$(BUILDTARGET) \
+       --target=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-local-prefix=/tools \
+       --enable-clocale=gnu \
+       --enable-shared \
+       --enable-threads=posix \
+       --enable-__cxa_atexit \
+       --enable-languages=c,c++ \
+       --disable-libstdcxx-pch \
+       --disable-bootstrap
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -73,34 +101,39 @@ endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        EXTRA_CONFIG += \
-               --build=$(BUILDTARGET) \
-               --host=$(BUILDTARGET) \
-               --target=$(BUILDTARGET) \
                --with-float=soft \
-               --disable-libmudflap \
-               --disable-libssp \
-               --disable-libgomp \
-               --enable-threads=posix \
-               --enable-long-long \
-               --enable-c99 \
-               --enable-__cxa_atexit \
-               --disable-multilib
-else
-       EXTRA_CONFIG += --build=$(BUILDTARGET) --host=$(BUILDTARGET) \
-               --target=$(BUILDTARGET)
+               --disable-sjlj-exceptions
+endif
+
+ifeq "$(MACHINE)" "i586"
+       EXTRA_CONFIG += \
+               --with-arch=i586 \
+               --with-tune=generic
 endif
 
+EXTRA_CONFIG += \
+       --with-bugurl=http://bugtracker.ipfire.org \
+       --disable-libunwind-exceptions \
+       --enable-gnu-unique-object
+
 export XCFLAGS = $(CFLAGS)
 export TCFLAGS = $(CFLAGS)
 
 ###############################################################################
 # Top-level Rules
 ###############################################################################
-objects = $(DL_FILE)
+
+objects = $(DL_FILE) \
+       gmp-$(GMP_VER).tar.bz2 \
+       mpfr-$(MPFR_VER).tar.bz2
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+gmp-$(GMP_VER).tar.bz2 = $(DL_FROM)/gmp-$(GMP_VER).tar.bz2
+mpfr-$(MPFR_VER).tar.bz2 = $(DL_FROM)/mpfr-$(MPFR_VER).tar.bz2
 
-$(DL_FILE)_MD5 = a4a3eb15c96030906d8494959eeda23c
+$(DL_FILE)_MD5                 = 295709feb4441b04e87dea3f1bab4281
+gmp-$(GMP_VER).tar.bz2_MD5     = 041487d25e9c230b0c42b106361055fe
+mpfr-$(MPFR_VER).tar.bz2_MD5   = 89e59fe665e2b3ad44a6789f40b059a0
 
 install : $(TARGET)
 
@@ -130,42 +163,71 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-fix_linker_version_detection.patch
        @mkdir $(DIR_SRC)/gcc-build
 
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-gcc_eh.patch
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.1.2-arm-linux-soft-float.patch
+       # Apply patches.
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-build-id.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-c++-builtin-redecl.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-i386-libgomp.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-libtool-no-rpath.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-no-add-needed.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-pr33763.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh330771.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh533181.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-rh610785.patch
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/gcc/gcc44-unwind-debug-hook.patch
+
+ifneq "$(ROOT)" ""
+       # Build gmp and mpfr internally in toolchain.
+       cd $(DIR_APP) && tar xfa $(DIR_DL)/gmp-$(GMP_VER).tar.bz2
+       cd $(DIR_APP) && mv -v gmp-$(GMP_VER) gmp
+       cd $(DIR_APP) && tar xfa $(DIR_DL)/mpfr-$(MPFR_VER).tar.bz2
+       cd $(DIR_APP) && mv -v mpfr-$(MPFR_VER) mpfr
+
+ifeq    "$(PASS)" "1"
+       # GCC does not detect stack protection correctly, which causes problems
+       # for the build of libresolv_pic.a.
+       cd $(DIR_APP) && sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure
+endif
 
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in
-       cd $(DIR_APP) && sed -i 's/^XCFLAGS =$$/& -fomit-frame-pointer/' gcc/Makefile.in
-       cd $(DIR_APP) && sed -i 's@\./fixinc\.sh@-c true@' gcc/Makefile.in
-       cd $(DIR_APP) && sed -i 's/@have_mktemp_command@/yes/' gcc/gccbug.in
+ifeq    "$(PASS)" "2"
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/gcc-4.4.3-startfiles_fix-1.patch
+
+       for file in $$(find $(DIR_APP)/gcc/config -name linux64.h -o -name linux.h \
+                       -o -name sysv4.h -o -name linux-eabi.h -o -name linux-elf.h); do \
+               echo "Processing $${file}..."; \
+               sed -i $${file} \
+                       -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
+                       -e 's@/usr@/tools@g'; \
+               echo '#undef STANDARD_INCLUDE_DIR' >> $${file}; \
+               echo '#define STANDARD_INCLUDE_DIR 0' >> $${file}; \
+               echo '#define STANDARD_STARTFILE_PREFIX_1 ""' >> $${file}; \
+               echo '#define STANDARD_STARTFILE_PREFIX_2 ""' >> $${file}; \
+       done
+endif
+endif
 
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && sed -i 's/install_to_$$(INSTALL_DEST) //' libiberty/Makefile.in
+       cd $(DIR_APP) && sed -i gcc/Makefile.in \
+               -e 's@\./fixinc\.sh@-c true@' \
+               -e 's/^T_CFLAGS =$$/& -fomit-frame-pointer/'
+
+       # The actual build.
+       cd $(DIR_SRC)/gcc-build && \
+               $(EXTRA_ENV) \
+               $(DIR_APP)/configure \
+                       $(EXTRA_CONFIG)
        cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
-       ln -sfv ../usr/bin/cpp /lib
-       ln -sfv gcc /usr/bin/cc
+
+ifeq "$(ROOT)" ""
+       ln -svf ../usr/bin/cpp /lib
+       ln -svf gcc /usr/bin/cc
 else
-ifeq "$(PASS)" "1"
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
-       cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
-       ln -sfv gcc /tools/bin/cc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-gcc
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-g++
-       ln -sf ccache $(ROOT)/usr/local/bin/$(BUILDTARGET)-cc
+ifeq    "$(PASS)" "1"
+       ln -svf libgcc.a $$(/tools/bin/$(CROSSTARGET)-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/')
 else
-       cd $(DIR_APP) && cp -v gcc/Makefile.in{,.orig}
-       cd $(DIR_APP) && sed 's@\./fixinc\.sh@-c true@' gcc/Makefile.in.orig > gcc/Makefile.in
-       cd $(DIR_APP) && cp -v gcc/Makefile.in{,.tmp}
-       cd $(DIR_APP) && sed 's/^XCFLAGS =$\/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
-                               > gcc/Makefile.in
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-specs-1.patch
-       cd $(DIR_SRC)/gcc-build && $(DIR_APP)/configure $(EXTRA_CONFIG)
-       cd $(DIR_SRC)/gcc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/gcc-build && make $(EXTRA_INSTALL) install
+       ln -svf gcc /tools/bin/cc
 endif
 endif
        @rm -rf $(DIR_APP) $(DIR_SRC)/gcc-build
index 43e7552f3cda7602ab3f41511d16ecb32e2c926d..b1ccbbebde4ade84bc7725d08cb8df2820a9911a 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.14.5
+VER        = 0.18.1.1
 
 THISAPP    = gettext-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,14 +34,10 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 # Normal build or /tools build.
 #
 ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL =
-endif
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-shared --disable-nls
@@ -57,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e2f6581626a22a0de66dce1d81d00de3
+$(DL_FILE)_MD5 = 3dd55b952826d2b32f51308f2f91aa89
 
 install : $(TARGET)
 
@@ -88,21 +84,12 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
 ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --libdir=/lib \
-                               --with-included-gettext --disable-rpath \
-                               --enable-relocatable --disable-shared
-       cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" -C intl/
-       cd $(DIR_APP)/gettext-runtime && make CFLAGS="-Os -fomit-frame-pointer" \
-                               DESTDIR=/opt/$(MACHINE)-uClibc -C intl/ install
-else
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-endif
 else
        cd $(DIR_APP)/gettext-tools && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP)/gettext-tools && make -C lib
+       cd $(DIR_APP)/gettext-tools && make -C gnulib-lib
        cd $(DIR_APP)/gettext-tools && make -C src msgfmt
        cd $(DIR_APP)/gettext-tools && cp -v src/msgfmt /tools/bin
 endif
index 2c41905d546f4cc7f7a7dd62e57d49f477c5e472..1b43287ac31a5f20dcde592e215f88459b078f84 100644 (file)
--- a/lfs/glib
+++ b/lfs/glib
 
 include Config
 
-VER        = 2.22.2
+VER        = 2.32.3
 
 THISAPP    = glib-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = glib
-PAK_VER    = 3
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +40,8 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 846a86c74b74d5b16826aa5508940f9b
+$(DL_FILE)_MD5 = 9bd3ac535c24b6c162be13b2c43c5adc
+
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -53,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -75,8 +69,9 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
+               --with-pcre=system
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index e2638b6e9e4316f4565da4afa96bba2636b02319..234a7ce11733179aa5c7c394869f53e8862f0404 100644 (file)
--- a/lfs/glibc
+++ b/lfs/glibc
 
 include Config
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       VER = 2.5
-else
-       VER = 2.3.6
-endif
+VER        = 2.12-2-gc4ccff1
+PORTS_VER  = 2.12.1
 
 THISAPP    = glibc-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -39,23 +36,33 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr \
-    --disable-profile --enable-add-ons \
-    --enable-kernel=2.6.0 --libexecdir=/usr/lib/glibc
+  EXTRA_CONFIG = \
+       --build=$(BUILDTARGET) \
+       --prefix=/usr \
+       --libexecdir=/usr/lib/glibc
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools \
-    --disable-profile --enable-add-ons \
-    --enable-kernel=2.6.0 --with-binutils=/tools/bin \
-    --without-gd --with-headers=/tools/include \
-    --without-selinux
+  EXTRA_CONFIG = \
+       --host=$(CROSSTARGET) \
+       --build=$(BUILDTARGET) \
+       --prefix=/tools \
+       --with-headers=/tools/include \
+       libc_cv_forced_unwind=yes \
+       libc_cv_ctors_header=yes \
+       libc_cv_c_cleanup=yes
   EXTRA_MAKE =
   EXTRA_INSTALL =
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+# Enable some extra optimization for the glibc code.
+CFLAGS = -O3 -DNDEBUG -fasynchronous-unwind-tables -fPIC -DPIC \
+       -DNO_CTORS_DTORS_SECTIONS
+
+ifeq "$(MACHINE)" "i586"
+       CFLAGS += -march=i586 -mtune=generic -mno-tls-direct-seg-refs
+endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        # Disable hardware FP for ARM.
@@ -63,29 +70,30 @@ ifeq "$(MACHINE_TYPE)" "arm"
                --without-fp
 endif
 
+# Add some general configuration flags
+EXTRA_CONFIG += \
+       --disable-profile \
+       --enable-kernel=2.6.0 \
+       --enable-add-ons \
+       --without-selinux \
+       --enable-experimental-malloc \
+       --enable-bind-now
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
 
-objects = $(DL_FILE) \
-       glibc-libidn-$(VER).tar.bz2
+objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-glibc-libidn-$(VER).tar.bz2 = $(DL_FROM)/glibc-libidn-$(VER).tar.bz2
 
-ifeq "$(MACHINE_TYPE)" "arm"
-       $(DL_FILE)_MD5 = 1fb29764a6a650a4d5b409dda227ac9f
-       glibc-libidn-$(VER).tar.bz2_MD5 = 8787868ba8962d9b125997ec2f25ac01
-else
-       $(DL_FILE)_MD5 = bfdce99f82d6dbcb64b7f11c05d6bc96
-       glibc-libidn-$(VER).tar.bz2_MD5 = 49dbe06ce830fc73874d6b38bdc5b4db
-endif
+$(DL_FILE)_MD5 = 450958ad3d3b5a432b356376904c96b0
 
 # ARM needs glibc-ports
 ifeq "$(MACHINE_TYPE)" "arm"
-       objects += glibc-ports-$(VER).tar.bz2
-       glibc-ports-$(VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(VER).tar.bz2
-       glibc-ports-$(VER).tar.bz2_MD5 = 183f6d46e8fa5e4b2aff240ab1586c2e
+       objects += glibc-ports-$(PORTS_VER).tar.bz2
+       glibc-ports-$(PORTS_VER).tar.bz2 = $(DL_FROM)/glibc-ports-$(PORTS_VER).tar.bz2
+       glibc-ports-$(PORTS_VER).tar.bz2_MD5 = cb01ab976180e98287cef5079e35359e
 endif
 
 install : $(TARGET)
@@ -117,25 +125,126 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/glibc-build && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        @mkdir $(DIR_SRC)/glibc-build
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(VER).tar.bz2
-       cd $(DIR_APP) && mv -v glibc-ports-$(VER) ports
 
-       cd $(DIR_APP)/ports && patch -Np1 -i $(DIR_SRC)/src/patches/glibc-ports-avoid-using-asm-procinfo.patch
+ifeq "$(MACHINE_TYPE)" "arm"
+       cd $(DIR_APP) && tar jxf $(DIR_DL)/glibc-ports-$(PORTS_VER).tar.bz2
+       cd $(DIR_APP) && mv -v glibc-ports-$(PORTS_VER) ports
 
-       # asm/page.h should not be included in sysdeps/unix/sysv/linux/arm/ioperm.c.
-       cd $(DIR_APP) && sed "/asm\/page.h/d" -i ports/sysdeps/unix/sysv/linux/arm/ioperm.c
-else
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-dont_use_origin_on_privil_exec.patch
+       # http://sourceware.org/bugzilla/show_bug.cgi?id=12354
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-cfi-entry-not-closed.patch
 endif
 
+       # Apply all patches.
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-aliasing.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-fedora.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-getlogin-r.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-localedata.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-recvmmsg.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh580498.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh582738.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh587360.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593396.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh593686.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh601686.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607010.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh607461.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615090.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh615701.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh621959.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh623187.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh625893.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh630801.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh631011.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh641128.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh642584.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh643822.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh645672.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh646954.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh647448.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh652661.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656014.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh656530.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh657572.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh661982.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh667974.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676076.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh676591.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh681054.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688720.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh688980.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh689471.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692177.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh692838.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh694386.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695595.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh695963.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh696472.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh697421.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh699724.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh700507.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703480.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh703481.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh705465.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711927.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh711987.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh712248.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh713134.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh714823.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh718057.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh726517.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh730379.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh731042.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh736346.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh737778.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738665.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh738763.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739184.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh739971.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh740506-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh749188.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh750531.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh751750.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh752122.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh757888.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh766513.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767146.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767693-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh767746.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh771342.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh782585.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh784402.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh785984.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh788959-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789189.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789209.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh789238-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh794817-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh795498.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh797094-2.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804630.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh804689.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808337.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh808545.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh809602.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh833716.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc/glibc-rh837026.patch
+
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-resolv-stack_chk_fail.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-remove-ctors-dtors-output-sections.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-nss_test1.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/glibc-test-installation.pl-libgcc_s.patch
+
+       # Fixes:
+       #   Makefile:235: *** mixed implicit and normal rules.  Stop.
+       cd $(DIR_APP) && sed -i 's/ot \$$/ot:\n\ttouch $$@\n$$/' manual/Makefile
+
 ifeq "$(ROOT)" ""
-ifeq "$(MACHINE)" "i586"
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-linux_types-1.patch
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/$(THISAPP)-inotify-1.patch
-endif
-       # This locale causes a loop on bash login - exclude it
-       cd $(DIR_APP) && sed -i '/vi_VN.TCVN/d' localedata/SUPPORTED
 ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && sed -i 's|libs -o|libs -L/usr/lib -Wl,-dynamic-linker=/lib/ld-linux.so.3 -o|' \
                scripts/test-installation.pl
@@ -144,24 +253,16 @@ else
                scripts/test-installation.pl
 endif
 endif
-       cd $(DIR_SRC)/glibc-build && CFLAGS="$(CFLAGS)" $(DIR_APP)/configure $(EXTRA_CONFIG)
 
-ifeq "$(ROOT)" ""
-       touch /etc/ld.so.conf
-       cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE)
+       cd $(DIR_SRC)/glibc-build && \
+               CFLAGS="$(CFLAGS) -fno-asynchronous-unwind-tables" \
+               $(DIR_APP)/configure $(EXTRA_CONFIG)
+       cd $(DIR_SRC)/glibc-build && make PARALLELMFLAGS=$(MAKETUNING) \
+               CFLAGS="$(CFLAGS)" CXXFLAGS="$(CXXFLAGS)"
        cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
-ifeq "$(MACHINE)" "i586"
-       cp -v $(DIR_APP)/sysdeps/unix/sysv/linux/inotify.h /usr/include/sys
-endif
-else
-       -mkdir /tools/etc
-       touch /tools/etc/ld.so.conf
-       cd $(DIR_SRC)/glibc-build && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_SRC)/glibc-build && make $(EXTRA_INSTALL) install
-endif
 
-       # Creating the locales
 ifeq "$(ROOT)" ""
+       # Creating the locales
        mkdir -p /usr/lib/locale
        cd $(DIR_SRC)/glibc-build && localedef -i en_US -f ISO-8859-1 en_US
        cd $(DIR_SRC)/glibc-build && localedef -i en_US -f UTF-8      en_US.utf8
diff --git a/lfs/gmp b/lfs/gmp
index 5b50081500103ab182c74dcdf770e3d28a2d97c6..cf5227671155965897c0bc8c6d3416fc287f4e62 100644 (file)
--- a/lfs/gmp
+++ b/lfs/gmp
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.2.4
+VER        = 5.0.5
 
 THISAPP    = gmp-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fc1e3b3a2a5038d4d74138d0b9cf8dbe
+$(DL_FILE)_MD5 = 041487d25e9c230b0c42b106361055fe
 
 install : $(TARGET)
 
similarity index 88%
rename from lfs/splix
rename to lfs/gmp-compat
index c9e8e47e123212b7068b70d2af48440eb1a9b3ce..3d20e889a013f3eec690f9dbc2c1f5edc7073c88 100644 (file)
--- a/lfs/splix
 
 include Config
 
-VER        = 2.0.0-rc2
+VER        = 4.3.2
 
-THISAPP    = splix-$(VER)
+THISAPP    = gmp-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = splix
-PAK_VER    = 2
 
-DEPS       = "cups"
+ifeq "$(MACHINE)" "i586"
+       CONFIGURE_ARGS = ABI=32
+endif
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4381ccf9a38b08012dbdc3c0f28414fd
+$(DL_FILE)_MD5 = dd60683d7057917e34630b4a787932e8
 
 install : $(TARGET)
 
@@ -54,9 +54,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -77,10 +74,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP) && sed -e "s/ceill/ceil/g" -i src/*.cpp
-endif
-       cd $(DIR_APP) && make DISABLE_JBIG=1 $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP) && make install
+       cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
+               --enable-cxx --enable-mpbsd --disable-nls
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && install -m 644 .libs/libgmp.so.3.5.2 /usr/lib
+       ln -svf libgmp.so.3.5.2 /usr/lib/libgmp.so.3
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c596a5fe442f2cce3d652d9ee6112fe288b2bba5..5e5ead919a3d1d563fb72c7626342e6f203f856d 100644 (file)
--- a/lfs/gnupg
+++ b/lfs/gnupg
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4.5
+VER        = 1.4.12
 
 THISAPP    = gnupg-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 811525965b4c0987e6418a7729a6444d
+$(DL_FILE)_MD5 = ce3742e5c7912559cab7894ad8ba7f6b
 
 install : $(TARGET)
 
index 4b3e1e1bbd9038e8db6db98e8d95945f53572567..e9b0b18d4db801dc629b81ccd7caf1751023bb79 100644 (file)
--- a/lfs/grep
+++ b/lfs/grep
 
 include Config
 
-VER        = 2.5.1a
+VER        = 2.14
 
 THISAPP    = grep-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
@@ -41,7 +41,7 @@ ifeq "$(ROOT)" ""
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls \
-    --disable-perl-regexp
+    --disable-perl-regexp --without-included-regex
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -54,7 +54,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 52202fe462770fa6be1bb667bd6cf30c
+$(DL_FILE)_MD5 = d4a3f03849d1e17ce56ab76aa5a24cab
 
 install : $(TARGET)
 
@@ -83,11 +83,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-redhat_fixes-2.patch
-       cd $(DIR_APP) && chmod +x tests/fmbtest.sh
-endif
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
index ad6e304aa61382257c0a6c786320410c80ec6635..76315fa37e67fdd4d3859699d99e88be4a58e23d 100644 (file)
--- a/lfs/grub
+++ b/lfs/grub
@@ -73,54 +73,14 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-disk_geometry-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-append.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.90-symlinkmenulst.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.91-splashimagehelp.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-configfile.patch
-       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/grub-0.93-endedit.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-graphics-bootterm.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.93-special-device-names.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-i2o.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-graphics.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-hiddenmenu-tweak.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-rework.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-md-mbr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-moreraid.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-nonmbr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-odirect.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-recheck-bad.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-staticcurses.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-xpmjunk.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-cmdline-size.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-datadir.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-partition-names.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-install.in.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mactel-kbd.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mpath.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nxstack.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-nx-multiinstall.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-once.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.95-splash-error-term.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.94-installcopyonly.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-prototypes.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-stderr.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-bz429187-cciss.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-dmraid-recheck-bad.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97-mdadm-path.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch
-
-       # XXX Does not work anymore
-       #cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-0.97_grub-install_virtio.patch
-
-       cd $(DIR_APP) && perl -pi -e 's,/usr/lib/grub/i386-pc,/usr/share/grub/i386-pc,' docs/grub.texi
-       cd $(DIR_APP) && sed -i 's/AM_INIT_AUTOMAKE/&\nAM_PROG_AS/' configure.ac
-
-       cd $(DIR_APP) && aclocal && autoheader && autoconf && automake --add-missing
-       cd $(DIR_APP) && CFLAGS="-Os -s -fno-strict-aliasing" ./configure --prefix=/usr
 
+       # Applying patches.
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/grub-fedora-18.patch
+       cd $(DIR_APP) && autoreconf
+       cd $(DIR_APP) && autoconf
+
+       # Build.
+       cd $(DIR_APP) && CFLAGS="$(CFLAGS)" ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
index 1f86586371f61e09722007613de6a55b5e093fec..cfcdeef5412da22f54f6ad1f35f65498c90ec131 100644 (file)
--- a/lfs/hplip
+++ b/lfs/hplip
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.7.10
+VER        = 3.12.6
 
 THISAPP    = hplip-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = hplip
-PAK_VER    = 1
+PAK_VER    = 2
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = eafb815ca4b4bb5a2f35a76ee3c2dc72
+$(DL_FILE)_MD5 = 5303938e8630775ea6fb383af85775e5
 
 install : $(TARGET)
 
index 6716a9569620f0c356f890e442fb646d1856496a..6804849a893b708cdca9699147920275e91dfe38 100644 (file)
@@ -27,11 +27,7 @@ include Config
 VER        = ipfire
 
 THISAPP    = hwdata
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -53,11 +49,6 @@ md5 :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-ifeq "$(LFS_PASS)" "install"
-       -mkdir -p -m 755 /install/initrd/usr/share/hwdata
-       install -m 644 $(DIR_SRC)/src/hwdata/*.ids /install/initrd/usr/share/hwdata
-else
        -mkdir -p -m 755 /usr/share/hwdata
        install -m 644 $(DIR_SRC)/src/hwdata/*.ids /usr/share/hwdata
-endif
        @$(POSTBUILD)
index 092211bc8c9b8398fd2ce8f8a3b4a4dca990e0fe..51654c5ad6db6c40025f06cfc6703ff9eff55e02 100644 (file)
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_SRC)/imspector && sed -e "s/^SSL_LIBS.*/& -lcrypto/" -i Makefile
        cd $(DIR_SRC)/imspector && make install
        -mv /usr/etc/imspector /etc/imspector
        -mv /etc/imspector/imspector /etc/imspector
index c1d51cef12859f63e2d4cef6bc8481391fef145d..468c2af32f5cf7600787da6b5c93f76e20cc1137 100644 (file)
@@ -72,6 +72,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-3.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-daemon_fixes-1.patch
+       cd $(DIR_APP) && sed -i '/#include/a #include <stdlib.h>' libicmp/icmp_timestamp.c
        cd $(DIR_APP) && ./configure --prefix=/usr --libexecdir=/usr/sbin \
                                --sysconfdir=/etc --localstatedir=/var \
                                --mandir=/usr/share/man --infodir=/usr/share/info \
index 50ccf40df3014209153c13f5460aaca6770595b6..42a8184d6bd476a79abc4deac1157ebf5526b83e 100644 (file)
 
 include Config
 
-VER        = 2.6.16-060323
+VER        = 3.5.1
 
 THISAPP    = iproute2-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -35,13 +35,12 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 ###############################################################################
 # Top-level Rules
 ###############################################################################
-objects = $(DL_FILE) htb3.6-020525.tgz
+
+objects = $(DL_FILE)
 
 $(DL_FILE)             = $(DL_FROM)/$(DL_FILE)
-htb3.6-020525.tgz      = $(DL_FROM)/htb3.6-020525.tgz
 
-$(DL_FILE)_MD5         = f31d4516b35bbfeaa72c762f5959e97c
-htb3.6-020525.tgz_MD5  = 3064fd8642ce6a7e155a29c5205b99d4
+$(DL_FILE)_MD5         = d4425b44edd5eacd6099e672e4baacbf
 
 install : $(TARGET)
 
@@ -70,9 +69,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-#      cd $(DIR_APP) && tar xfz $(DIR_DL)/htb3.6-020525.tgz *.diff
-#      cd $(DIR_APP) && for i in htb3*tc.diff ; do patch -Np1 < $$i; done
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make $(MAKETUNING) SBINDIR=/sbin
        cd $(DIR_APP) && make SBINDIR=/sbin install
        cd $(DIR_APP) && mv -v /sbin/arpd /usr/sbin
index 6d369909bc2a9e6913138a1208a6d5ed9eb1eba5..33a00e4a4eb46034ea463cbca8efeda7599ddcef 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4.6
+VER        = 1.4.14
 
 THISAPP    = iptables-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -45,7 +45,7 @@ netfilter-layer7-v2.22.tar.gz                 = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
 libnfnetlink-1.0.0.tar.bz2             = $(URL_IPFIRE)/libnfnetlink-1.0.0.tar.bz2
 libnetfilter_queue-0.0.17.tar.bz2      = $(URL_IPFIRE)/libnetfilter_queue-0.0.17.tar.bz2
 
-$(DL_FILE)_MD5 = c67cf30e281a924def6426be0973df56
+$(DL_FILE)_MD5 = 5ab24ad683f76689cfe7e0c73f44855d
 netfilter-layer7-v2.22.tar.gz_MD5 = 98dff8a3d5a31885b73341633f69501f
 libnfnetlink-1.0.0.tar.bz2_MD5 = 016fdec8389242615024c529acc1adb8
 libnetfilter_queue-0.0.17.tar.bz2_MD5 = 2cde35e678ead3a8f9eb896bf807a159
@@ -89,11 +89,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
                         ./extensions/
 
        # ipp2p 0.8.2-pomng
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
 
        # imq
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.6-imq_test1.patch
-       chmod +x $(DIR_APP)/extensions/.IMQ-test*
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/iptables-1.4.12-IMQ-test4.diff
+#      chmod +x $(DIR_APP)/extensions/.IMQ-test*
 
        cd $(DIR_APP) && ./configure  --prefix=/usr --with-ksource=/usr/src/linux \
                                    --libdir=/lib --includedir=/usr/include --enable-libipq \
diff --git a/lfs/kbd b/lfs/kbd
index 72e509f0d0e0d5a9e02e8aa76031f6eaab6fb713..1c9924279826e38c26702ad116da225d09b8c34c 100644 (file)
--- a/lfs/kbd
+++ b/lfs/kbd
@@ -30,11 +30,7 @@ THISAPP    = kbd-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -78,21 +74,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-more-programs-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-backspace-1.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-gcc4_fixes-1.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure --disable-nls
-       cd $(DIR_APP)/src && make CFLAGS="-Os -fomit-frame-pointer" DATA_DIR=/lib/kbd BINDIR=/bin setfont kbd_mode dumpkeys loadkeys loadunimap showconsolefont
-       cd $(DIR_APP)/src && install -m 0755 setfont loadunimap kbd_mode dumpkeys loadkeys showconsolefont unicode_start unicode_stop /install/initrd/bin
-       mkdir -p /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat0-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat1-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat2-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/lat5-16.psfu /install/initrd/lib/kbd/consolefonts
-       cd $(DIR_APP) && install -m 0644 data/consolefonts/iso07u-16.psfu /install/initrd/lib/kbd/consolefonts
-else
        cd $(DIR_APP) && ./configure --datadir=/lib/kbd --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        mv -v /usr/bin/{kbd_mode,openvt,setfont} /bin
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/kqemu b/lfs/kqemu
deleted file mode 100644 (file)
index 6e5ecfa..0000000
--- a/lfs/kqemu
+++ /dev/null
@@ -1,84 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VERSUFIX=ipfire$(KCFG)
-
-VER        = 1.4.0pre1
-
-THISAPP    = kqemu-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-SUP_ARCH   = i586
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = d738d8ca7332211ab716ec3213d82ee1
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-       $(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --kernel-path=/usr/src/linux
-       cd $(DIR_APP) && make $(MAKETUNING)
-       -mkdir -p /lib/modules/$(KVER)-$(VERSUFIX)/misc/
-       cd $(DIR_APP) && install -m 644 kqemu.ko /lib/modules/$(KVER)-$(VERSUFIX)/misc/
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index f66c3252ffc7a7925d488c919e7f83f78eb519a6..bc5ed020bb58d2a4d0f998d9565a35f73cefdf63 100644 (file)
--- a/lfs/kudzu
+++ b/lfs/kudzu
@@ -30,11 +30,7 @@ THISAPP    = kudzu-$(VER)
 DL_FILE    = kudzu-$(VER).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -75,18 +71,9 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/kudzu-usbnet.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && patch -N < $(DIR_SRC)/src/patches/kudzu-link-lintl.diff
-       cd $(DIR_APP) && make RPM_OPT_FLAGS="-O2 -I/opt/$(MACHINE)-uClibc/include" \
-               ARCH=$(MACHINE)
-       cd $(DIR_APP) && install -m 0755 kudzu /install/initrd/bin/kudzu
-       #cd $(DIR_APP) && install -m 0644 libkudzu.a /install/initrd/lib
-       #cd $(DIR_APP) && install -m 0644 libkudzu_loader.a /install/initrd/lib
-else
        rm -rf /usr/sbin/kudzu
        cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make
        cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install
        cd $(DIR_APP) && ARCH=$(MACHINE) RPM_OPT_FLAGS="$(CFLAGS)" make install-program
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 0a4833f37af32ac7e54c98d64cb42adf8365420e..d9680c87382cb6543e7cee86b41f185d5fc5b1d6 100644 (file)
--- a/lfs/less
+++ b/lfs/less
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 394
+VER        = 443
 
 THISAPP    = less-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = a9f072ccefa0d315b325f3e9cdbd4b97
+$(DL_FILE)_MD5 = 47db098fb3cdaf847b3c4be05ee954fc
 
 install : $(TARGET)
 
similarity index 93%
rename from lfs/centerim
rename to lfs/libffi
index 8e874a7a0083c3476140f370ca9e2e53ddb1a6d7..0e94b3177fca473b4a5b438fae3d6d6241b0044b 100644 (file)
 
 include Config
 
-VER        = 4.22.1
+VER        = 3.0.11
 
-THISAPP    = centerim-$(VER)
+THISAPP    = libffi-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = centerim
-PAK_VER    = 1
-
-DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
@@ -44,8 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d128b54e3cc04a6ee651c51682a497a9
-
+$(DL_FILE)_MD5 = f69b9693227d976835b4857b1ba7d0e3
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -55,7 +50,7 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 md5 : $(subst %,%_MD5,$(objects))
 
 dist: 
-       $(PAK)
+       @$(PAK)
 
 ###############################################################################
 # Downloading, checking, md5sum
@@ -77,7 +72,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index 548374da07c86b0adfb2ecbc49582620dd449f6e..ea0491e6dbb6c1a637397bb7610e735ea8996b42 100644 (file)
@@ -77,6 +77,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libmad-0.15.1b-cflags-O2.patch
+       cd $(DIR_APP) && autoconf
+
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
index d1747752eeb3766c1bf53905ef509fc17eac5adf..ea557d9132f5c2b6dace8842d514f715ae4e0cd1 100644 (file)
--- a/lfs/libnl
+++ b/lfs/libnl
@@ -73,6 +73,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libnl-1.1-ULONG_MAX.patch
        cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/if_vlan.h \
                                              include/linux/if_vlan.h
        cd $(DIR_APP) && ln -s /usr/src/linux/include/linux/netfilter/nf_conntrack_common.h \
index bd9c02256e6a7df9c144ba83e46a148b897b7ef0..41a1c7f0cf6b837d549185e57f3dac43a6af86fe 100644 (file)
 
 include Config
 
-VER        = 1.1.4
+VER        = 1.3.0
 
 THISAPP    = libogg-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libogg
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 10200ec22543841d9d1c23e0aed4e5e9
+$(DL_FILE)_MD5 = 84a35715170f2cd4c77a4448772b95d5
 
 install : $(TARGET)
 
@@ -76,7 +76,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
diff --git a/lfs/libsafe b/lfs/libsafe
deleted file mode 100644 (file)
index 24c398c..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 2.0-16
-
-THISAPP    = libsafe_$(VER)
-DL_FILE    = $(THISAPP).orig.tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/libsafe-$(VER)
-TARGET     = $(DIR_INFO)/$(THISAPP)
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 6b7b6e6df84d4afb469ccc66d04fc24d
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-functioncaching.diff
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsafe-alpha.diff
-       cd $(DIR_APP) && make libsafe $(MAKETUNING)
-       cd $(DIR_APP) && yes | make install
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 3635c6ee98132e899b2130e8d35e996f3afdcccd..0d90f4c7711318e43928708a88f1d9db62d703c7 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 2.0.17
+VER        = 2.0.18
 
 THISAPP    = libsigc++-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = fde0ee69e3125e982746d9fe005763e1
+$(DL_FILE)_MD5 = ddebf5aafc8525d10366a8724abc9f28
 
 install : $(TARGET)
 
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/libsigc++-gcc43.patch
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
index b602095caa894e18d7e733d1b316017034f580d2..7651be7507be5fcafa11988886c69eea098918d9 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 0.0.0-0db9d7f
+VER        = 0.0.0-c02d759
 
 THISAPP    = libsolv-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 
 PROG       = libsolv
 DEPS       = ""
-PAK_VER    = 1
+PAK_VER    = 2
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ba95c404d807bc71297c508a7127a3d9
+$(DL_FILE)_MD5 = a8ba49ca49c309d61836fe78b0e0f83a
 
 install : $(TARGET)
 
@@ -86,26 +86,15 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && sed "/examples/d" -i CMakeLists.txt
        cd $(DIR_APP) && sed "/tools/d" -i CMakeLists.txt
 
-       # Make sure that libsatsolverext is linked properly to all needed
-       # libraries.
-       cd $(DIR_APP) && echo "TARGET_LINK_LIBRARIES(libsolvext libsolv \$${EXPAT_LIBRARY} \$${ZLIB_LIBRARY})" \
-               >> ext/CMakeLists.txt
-
-       # Remove the RPM stuff when we build with -DFEDORA=1 because we
-       # do not support RPM.
-       cd $(DIR_APP) && sed -e "s/DEBIAN/FEDORA/g" -i ext/CMakeLists.txt
-
-       # Our version of glibc has no __qsort_r
-       cd $(DIR_APP) && echo "#define USE_OWN_QSORT" >> src/util.h
-
        cd $(DIR_APP) && mkdir build
-       cd $(DIR_APP)/build && cmake .. -DFEDORA=1 \
+       cd $(DIR_APP)/build && cmake .. \
                -DCMAKE_INSTALL_PREFIX=/usr \
                -DCMAKE_BUILD_TYPE=Release \
-               -DCMAKE_SKIP_RPATH=1
+               -DCMAKE_SKIP_RPATH=1 \
+               -DENABLE_PERL=0 \
+               -DENABLE_PYTHON=0 \
+               -DENABLE_RUBY=0
        cd $(DIR_APP)/build && make $(PARALELLISMFLAGS)
-
        cd $(DIR_APP)/build && make install
-
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 3b6d0f9d28558745f25cb2d205afaa59939daa79..8213e3991d95da50d0e89b570bb808b8aaaa1042 100644 (file)
 
 include Config
 
-VER        = 1.2.3
+VER        = 1.3.3
 
 THISAPP    = libvorbis-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = libvorbis
-PAK_VER    = 3
+PAK_VER    = 4
 
 DEPS       = "libogg"
 
@@ -44,7 +44,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 67beb237faf97d74782ec7071756b2b6
+$(DL_FILE)_MD5 = 71b649d3e08e63ece16649df906ce8b9
 
 install : $(TARGET)
 
@@ -76,11 +76,9 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
-       #cd $(DIR_APP) && sed -i.bak -e 's/-mno-ieee-fp//' lib/Makefile
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && install -v -m644 doc/Vorbis* /usr/share/doc/libvorbis-1.2.3
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b8d0dd8bec2d632468bf0bb614f2f929d61f92e6..b481e65b5536d50e5c8d056f4eaabf6d664bae35 100644 (file)
--- a/lfs/linux
+++ b/lfs/linux
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 
 include Config
 
-PATCHLEVEL = .45
-VER        = 2.6.32.45
+VER           = 3.2.30
+
+RPI_PATCHES = linux-3.2.27-807223a
 
 THISAPP    = linux-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
+DL_FILE    = linux-$(VER).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 CFLAGS     =
 CXXFLAGS   =
 
-PAK_VER    = 19
+PAK_VER    = 20
 DEPS      = ""
 
-# Normal build or XEN build.
-#
-
 VERSUFIX=ipfire$(KCFG)
 
 ifeq "$(HEADERS)" "1"
@@ -71,22 +69,14 @@ endif
 # Top-level Rules
 ###############################################################################
 objects =$(DL_FILE) \
-       netfilter-layer7-v2.22.tar.gz \
-       patch-2.6.16-nath323-1.3.bz2 \
-       reiser4-for-2.6.32.patch.bz2 \
-       xen-patches-2.6.32-2f.tar.bz2
+       rpi-patches-$(RPI_PATCHES).patch.xz
+
 
 $(DL_FILE)                             = $(URL_IPFIRE)/$(DL_FILE)
-netfilter-layer7-v2.22.tar.gz          = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
-patch-2.6.16-nath323-1.3.bz2           = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2
-reiser4-for-2.6.32.patch.bz2           = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2
-xen-patches-2.6.32-2f.tar.bz2          = $(URL_IPFIRE)/xen-patches-2.6.32-2f.tar.bz2
+rpi-patches-$(RPI_PATCHES).patch.xz    = $(URL_IPFIRE)/rpi-patches-$(RPI_PATCHES).patch.xz
 
-$(DL_FILE)_MD5                         = d41f1c7e704cc95fdfc3374367b6fd64
-netfilter-layer7-v2.22.tar.gz_MD5      = 98dff8a3d5a31885b73341633f69501f
-patch-2.6.16-nath323-1.3.bz2_MD5       = f926409ff703a307baf54b57ab75d138
-reiser4-for-2.6.32.patch.bz2_MD5       = 3246397973d9271eb8e6d7c97c5d2d91
-xen-patches-2.6.32-2f.tar.bz2_MD5      = b59d6f89e11accb9d40354418e13f31b
+$(DL_FILE)_MD5                         = d899e65520424a27661009ea43b28103
+rpi-patches-$(RPI_PATCHES).patch.xz_MD5        = b072ccb2534ff910fd5867fc0da1b24a
 
 install : $(TARGET)
 
@@ -117,59 +107,45 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/linux && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
 
        ln -svf linux-$(VER) $(DIR_SRC)/linux
 
-ifeq "$(KCFG)" "-xen"
-       # Apply gentoo Xen patches
-       mkdir -p $(DIR_SRC)/xen-patches
-       cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2f.tar.bz2
-
-       for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \
-               echo "*********** [Patch: $$x]"; \
-               cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \
-       done
-       rm -rf $(DIR_SRC)/xen-patches
-
        # Linux Intermediate Queueing Device
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch
-else
-       # Linux Intermediate Queueing Device
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch
-endif
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-imq.patch
 
-       # Not report deprecated syscall 1.23 (for kudzu)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
-
-       # Reiser4 (don't check if fail (some patches are already in xen patchset)
-       -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1
-
-       # ipp2p 0.8.2-pomng
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch
+       # ipp2p 0.8.2-ipfire
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
 
        # Layer7-patch
-       cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22
-       cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
-
-       # Add some more LED triggers
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch
-
-       # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/netfilter_layer7_2.22_kernel3.0.patch
 
        # Fix uevent PHYSDEVDRIVER
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch
+#      cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
 
 ifeq "$(KCFG)" "-kirkwood"
        # Add dreamplug,guruplug and icy 62x0  support on ARM-kirkwood
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2.25-arm_kirkwood_setups.patch
 endif
 
 ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
+
+       # Reverse some asm optimizations that are incompatible with older gcc
+       cd $(DIR_APP) && patch -p1 -R < $(DIR_SRC)/src/patches/linux-2.6-arm-asm-constraint.patch
+endif
+
+ifeq "$(KCFG)" "-omap"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0001-panda-wlan-fix.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-0002-panda-i2c.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-3.2-panda-reboot.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch
+endif
+
+ifeq "$(KCFG)" "-rpi"
+       # Apply Raspberry Pi kernel patches.
+       cd $(DIR_APP) && xzcat $(DIR_DL)/rpi-patches-$(RPI_PATCHES).patch.xz | patch -Np1
 endif
 
 ifeq "$(HEADERS)" "1"
@@ -188,20 +164,22 @@ else
        cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
        cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
        cd $(DIR_APP) && make CC="$(KGCC)" clean
-       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile
+       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ -$(VERSUFIX)/' Makefile
 
-ifeq "$(KCFG)" "-xen"
-       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz
-       cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX)
-else
 ifeq "$(KCFG)" "-kirkwood"
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
        cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
        cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
 else
-ifeq "$(KCFG)" "-versatile"
+ifeq "$(KCFG)" "-omap"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
+else
+ifeq "$(KCFG)" "-rpi"
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" zImage
-       cd $(DIR_APP) && cp -v arch/arm/boot/zImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd /boot  && cat first32k.bin $(DIR_APP)/arch/arm/boot/Image > kernel.img
+       cd $(DIR_APP) && cp -v /boot/kernel.img /boot/vmlinuz-$(VER)-$(VERSUFIX)
 else
        cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage
        cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
@@ -242,10 +220,6 @@ ifeq "$(LASTKERNEL)" "1"
        echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6
 endif
 
-       # Remove mISDN modules
-       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN
-       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN
-
 ifneq "$(MACHINE_TYPE)" "arm"
        # Disable geode_aes modul
        mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \
diff --git a/lfs/linux-libc-header b/lfs/linux-libc-header
deleted file mode 100644 (file)
index a2ff9d3..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 2.6.12.0
-
-THISAPP    = linux-libc-headers-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools1
-endif
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-objects = $(DL_FILE)
-
-$(DL_FILE)                             = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5                         = eae2f562afe224ad50f65a6acfb4252c
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       -mkdir -p /opt/$(MACHINE)-uClibc
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch
-       cd $(DIR_APP) && install -dv /opt/$(MACHINE)-uClibc/usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/asm-i386/* /opt/$(MACHINE)-uClibc/usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /opt/$(MACHINE)-uClibc/usr/include
-       cd $(DIR_APP) && chown -Rv root:root /opt/$(MACHINE)-uClibc/usr/include/{asm,linux}
-       cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type d -exec chmod -v 755 {} \;
-       cd $(DIR_APP) && find /opt/$(MACHINE)-uClibc/usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;
-else
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-inotify-3.patch
-       cd $(DIR_APP) && install -dv /usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/asm-i386/* /usr/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /usr/include
-       cd $(DIR_APP) && chown -Rv root:root /usr/include/{asm,linux}
-       cd $(DIR_APP) && find /usr/include/{asm,linux} -type d -exec chmod -v 755 {} \;
-       cd $(DIR_APP) && find /usr/include/{asm,linux} -type f -exec chmod -v 644 {} \;
-endif
-else
-       cd $(DIR_APP) && cp -Rv include/asm-i386 /tools/include/asm
-       cd $(DIR_APP) && cp -Rv include/linux /tools/include
-endif
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index 356fc8f84cb8ce53cd27d26a770f526f762daae9..39f19a82f3c2f59b527a6ead15e2e2c22a3f84ee 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team <info@ipfire.org>                           #
+# Copyright (C) 2007-2012  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,7 +26,7 @@ include Config
 
 VER       = kernel
 
-include linux
+include linux2
 
 PROG      = linux-xen
 SUP_ARCH   = i586
diff --git a/lfs/linux2 b/lfs/linux2
new file mode 100644 (file)
index 0000000..7f8b76b
--- /dev/null
@@ -0,0 +1,255 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007-2012  IPFire Team <info@ipfire.org>                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+PATCHLEVEL = .59
+VER        = 2.6.32.59
+
+THISAPP    = linux-$(VER)
+DL_FILE    = $(THISAPP).tar.bz2
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+CFLAGS     =
+CXXFLAGS   =
+
+PAK_VER    = 20
+DEPS      = ""
+
+# Normal build or XEN build.
+#
+
+VERSUFIX=ipfire$(KCFG)
+
+ifeq "$(HEADERS)" "1"
+ifeq "$(TOOLS)" "1"
+       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)-tools
+       HEADERS_PREFIX = /tools
+else
+       TARGET = $(DIR_INFO)/linux-libc-headers-$(VER)-$(VERSUFIX)
+       HEADERS_PREFIX = /usr
+endif
+else
+       TARGET = $(DIR_INFO)/linux-$(VER)-$(VERSUFIX)
+endif
+
+ifeq "$(MACHINE_TYPE)" "arm"
+       HEADERS_ARCH=arm
+else
+       HEADERS_ARCH=x86
+endif
+
+ifeq "$(KCFG)" ""
+LASTKERNEL=1
+endif
+ifeq "$(KCFG)" "-kirkwood"
+LASTKERNEL=1
+endif
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+objects =$(DL_FILE) \
+       netfilter-layer7-v2.22.tar.gz \
+       patch-2.6.16-nath323-1.3.bz2 \
+       reiser4-for-2.6.32.patch.bz2 \
+       xen-patches-2.6.32-2g.tar.bz2
+
+$(DL_FILE)                             = $(URL_IPFIRE)/$(DL_FILE)
+netfilter-layer7-v2.22.tar.gz          = $(URL_IPFIRE)/netfilter-layer7-v2.22.tar.gz
+patch-2.6.16-nath323-1.3.bz2           = $(URL_IPFIRE)/patch-2.6.16-nath323-1.3.bz2
+reiser4-for-2.6.32.patch.bz2           = $(URL_IPFIRE)/reiser4-for-2.6.32.patch.bz2
+xen-patches-2.6.32-2g.tar.bz2          = $(URL_IPFIRE)/xen-patches-2.6.32-2g.tar.bz2
+
+$(DL_FILE)_MD5                         = 69c68c4a8eb0f04b051a7dbcff16f6d0
+netfilter-layer7-v2.22.tar.gz_MD5      = 98dff8a3d5a31885b73341633f69501f
+patch-2.6.16-nath323-1.3.bz2_MD5       = f926409ff703a307baf54b57ab75d138
+reiser4-for-2.6.32.patch.bz2_MD5       = 3246397973d9271eb8e6d7c97c5d2d91
+xen-patches-2.6.32-2g.tar.bz2_MD5      = d259a847c9aa73cd6e5c3605d9657d66
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+dist:
+       @$(PAK)
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) $(DIR_SRC)/linux $(DIR_SRC)/linux-*-suse_xen_patches $(DIR_SRC)/xen-* && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+
+       ln -svf linux-$(VER) $(DIR_SRC)/linux
+
+ifeq "$(KCFG)" "-xen"
+       # Apply gentoo Xen patches
+       mkdir -p $(DIR_SRC)/xen-patches
+       cd $(DIR_SRC)/xen-patches && tar jxf $(DIR_DL)/xen-patches-2.6.32-2g.tar.bz2
+
+       for x in `ls -1 $(DIR_SRC)/xen-patches/*.patch1`; do \
+               echo "*********** [Patch: $$x]"; \
+               cd $(DIR_APP) && pwd && patch -Np1 < $$x || exit 1; \
+       done
+       rm -rf $(DIR_SRC)/xen-patches
+
+       # Linux Intermediate Queueing Device
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-xen-imq-test2.patch
+else
+       # Linux Intermediate Queueing Device
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-imq-test2.patch
+endif
+
+       # Not report deprecated syscall 1.23 (for kudzu)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.25.18-not_report_sysctl_1.23.patch
+
+       # Reiser4 (don't check if fail (some patches are already in xen patchset)
+       -cd $(DIR_APP) && bzcat $(DIR_DL)/reiser4-for-2.6.32.patch.bz2 | patch -Np1
+
+       # ipp2p 0.8.2-pomng
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.8-ipp2p-0.8.2-pomng.patch
+
+       # Layer7-patch
+       cd $(DIR_SRC) && rm -rf $(DIR_SRC)/netfilter-layer7-v2.22
+       cd $(DIR_SRC) && tar xzf $(DIR_DL)/netfilter-layer7-v2.22.tar.gz
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/netfilter-layer7-v2.22/kernel-2.6.25-2.6.28-layer7-2.22.patch
+
+       # Add some more LED triggers
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.11-netdev-1.patch
+
+       # Huawei Android Phones (Vodafone V845, T-Mobile Pulse/mini ...)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.15-option_add_huawei_android.patch
+
+       # Fix uevent PHYSDEVDRIVER
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_ipg-fix-driver-name.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.27_mcs7830-fix-driver-name.patch
+
+       # Fix mv_cesa
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32-crypto-mv_cesa.patch
+
+ifeq "$(KCFG)" "-kirkwood"
+       # Add dreamplug,guruplug and icy 62x0  support on ARM-kirkwood
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.57-arm_kirkwood_setups.patch
+endif
+
+ifeq "$(MACHINE_TYPE)" "arm"
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/linux-2.6.32.45_align_ssb_modtable_32bit_boundary.patch
+endif
+
+ifeq "$(HEADERS)" "1"
+       # Install the header files
+       cd $(DIR_APP) && make ARCH=$(HEADERS_ARCH) INSTALL_HDR_PATH=dest headers_install
+       -mkdir -pv $(BUILDROOT)/$(HEADERS_PREFIX)/include
+       cd $(DIR_APP) && find dest/include \( -name .install -o -name ..install.cmd \) -delete
+       cd $(DIR_APP) && cp -rv dest/include/* $(BUILDROOT)/$(HEADERS_PREFIX)/include
+else
+
+       # Install ipfire logo
+       cd $(DIR_APP) && cp -vf $(DIR_SRC)/config/kernel/ipfire_logo.ppm \
+               drivers/video/logo/logo_linux_clut224.ppm
+
+       # Cleanup kernel source
+       cp $(DIR_SRC)/config/kernel/kernel.config.$(MACHINE)-$(VERSUFIX) $(DIR_APP)/.config
+       cd $(DIR_APP) && make CC="$(KGCC)" oldconfig
+       cd $(DIR_APP) && make CC="$(KGCC)" clean
+       cd $(DIR_APP) && sed -i -e 's/EXTRAVERSION\ =.*/EXTRAVERSION\ =\ $(PATCHLEVEL)-$(VERSUFIX)/' Makefile
+
+ifeq "$(KCFG)" "-xen"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" vmlinuz
+       cd $(DIR_APP) && cp -v arch/i386/boot/vmlinuz /boot/vmlinuz-$(VER)-$(VERSUFIX)
+else
+ifeq "$(KCFG)" "-kirkwood"
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" uImage
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+       cd $(DIR_APP) && cp -v arch/arm/boot/uImage /boot/uImage-$(VERSUFIX)
+else
+       cd $(DIR_APP) && make $(MAKETUNING) CC="$(KGCC)" bzImage
+       cd $(DIR_APP) && cp -v arch/i386/boot/bzImage /boot/vmlinuz-$(VER)-$(VERSUFIX)
+endif
+endif
+       cd $(DIR_APP) && cp -v System.map /boot/System.map-$(VER)-$(VERSUFIX)
+       cd $(DIR_APP) && cp -v .config /boot/config-$(VER)-$(VERSUFIX)
+       ln -sf vmlinuz-$(VER)-$(VERSUFIX) /boot/vmlinuz-$(VERSUFIX)
+       ln -sf System.map-$(VER)-$(VERSUFIX) /boot/System.map-$(VERSUFIX)
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) modules_install
+       cd $(DIR_APP) && make CC="$(KGCC)" $(MAKETUNING) firmware_install
+
+ifeq "$(LASTKERNEL)" "1"
+       # Only do this once
+       cd $(DIR_APP) && install -m 755 usr/gen_init_cpio /sbin/
+
+       # Blacklist matroxfb_base
+       echo "blacklist matroxfb_base" >> /etc/modprobe.d/framebuffer
+       # Blacklist old framebuffer modules
+       for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/video -name *fb.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \
+       done
+       # Blacklist new drm framebuffer modules
+       for f in $$(ls -1 /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/gpu/drm/*/*.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/framebuffer ; \
+       done
+       sed -i -e "s|.ko||g" /etc/modprobe.d/framebuffer
+
+       # Blacklist isdn modules
+       for f in $$(find /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn -name *.ko); do \
+               echo "blacklist $$(basename $$f)" >> /etc/modprobe.d/isdn ; \
+       done
+       sed -i -e "s|.ko||g" /etc/modprobe.d/isdn
+
+       # Disable ipv6 at runtime
+       echo "options ipv6 disable_ipv6=1" > /etc/modprobe.d/ipv6
+endif
+
+       # Remove mISDN modules
+       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/mISDN
+       rm -rvf /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/isdn/hardware/mISDN
+
+ifneq "$(MACHINE_TYPE)" "arm"
+       # Disable geode_aes modul
+       mv /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko \
+           /lib/modules/$(VER)-$(VERSUFIX)/kernel/drivers/crypto/geode-aes.ko.off
+endif
+endif
+
+       @rm -rf $(DIR_SRC)/patch-o-matic* $(DIR_SRC)/iptables* $(DIR_SRC)/squashfs* $(DIR_SRC)/netfilter-layer7-*
+       @$(POSTBUILD)
diff --git a/lfs/m4 b/lfs/m4
index df4b6a9470aff719fe08da28cb46a00cdc429b6d..462022195999eb83e21ca4ff961b588a751eaf61 100644 (file)
--- a/lfs/m4
+++ b/lfs/m4
@@ -36,13 +36,11 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_LDFLAGS = -static
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
        @rm -rf $(DIR_APP)
diff --git a/lfs/madwifi b/lfs/madwifi
deleted file mode 100644 (file)
index 2d3f97e..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VERSUFIX=ipfire$(KCFG)
-
-VER        = hal-0.10.5.6-r4119-20100201
-
-THISAPP    = madwifi-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
-SUP_ARCH   = i586
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 937cf8f185ddd39b95e7ce026f9fba63
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar xzf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && make $(MAKETUNING) KERNELPATH=/usr/src/linux
-       cd $(DIR_APP) && make KERNELPATH=/usr/src/linux BINDIR=/usr/bin \
-                               MANDIR=/usr/man install
-       cp -f $(DIR_SRC)/config/madwifi/madwifi.conf /etc/
-       ln -sf $(DIR_APP) $(DIR_SRC)/madwifi 
-
-       # Add comment to set CountryCode to germany because some cards
-       # are not detected without cc but others doesn't like this
-       echo '#options ath_pci countrycode=276' > /etc/modprobe.d/madwifi
-       # Blacklist ath5k or madwifi for switching between the drivers
-       echo 'blacklist ath_pci' >> /etc/modprobe.d/madwifi
-       echo '#blacklist ath5k' >> /etc/modprobe.d/madwifi
-       echo '#blacklist ath9k' >> /etc/modprobe.d/madwifi
-
-       # create madwifi symlink for hostapd build
-       cd $(DIR_SRC) && ln -sf $(THISAPP) madwifi
-
-       @$(POSTBUILD)
index ba34283df3a6efd947e8d69aff89ad0647b03938..5650230f9353368b8ea03db5d1bee21a8555e3e9 100644 (file)
--- a/lfs/make
+++ b/lfs/make
@@ -43,12 +43,16 @@ ifeq "$(ROOT)" ""
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools-pass$(PASS)
+  TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
 
+ifeq "$(PASS)" "1"
+  CFLAGS =
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
diff --git a/lfs/man b/lfs/man
index c5f847f06e82e30fb2b62f48f4fd834e711a9d20..04aed20aceba7fba6c494bc914604e41007bbf58 100644 (file)
--- a/lfs/man
+++ b/lfs/man
@@ -74,6 +74,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && mv man/es{_ES.88591,}
        cd $(DIR_APP) && mv man/it{_IT.88591,}
        cd $(DIR_APP) && mv man/ja{_JP.eucJP,}
+       cd $(DIR_APP) && sed -i "s/-I-//g" {lib,src}/Makefile*
        cd $(DIR_APP) && sed -i 's,\*_\*,??,' man/Makefile.in
        cd $(DIR_APP) && sed -i '/\t\/usr\/man/d' src/man_db.conf.in
        cd $(DIR_APP) && echo -e "#define WEB_BROWSER \"exec /usr/bin/lynx\"" >> include/manconfig.h.in
diff --git a/lfs/mbr b/lfs/mbr
index 077efa7b754b1f3907e8c43c801bb2ecd5b28a49..c43f2fdb28292d192d570de219e8284500232fad 100644 (file)
--- a/lfs/mbr
+++ b/lfs/mbr
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.1.8
+VER        = 1.1.11
 
 THISAPP    = mbr-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -41,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = da195c75b26bd45ecbb113b317996f9a
+$(DL_FILE)_MD5 = 4e406ded185f94c2d2bf5fc793ac1842
 
 install : $(TARGET)
 
@@ -71,7 +71,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure
+       cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
diff --git a/lfs/mc b/lfs/mc
index 25a949eda356e8e1e1ad34e377257da2e446b487..895b2d49c296fb0f2c89f703200476ae296e9eae 100644 (file)
--- a/lfs/mc
+++ b/lfs/mc
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mc
 PAK_VER    = 5
 
-DEPS       = "glib"
+DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
index e2c1d21926b9645d0cd525af3105f83946b7342d..26ec3dd0087ed71f7601eb3f06adf88363a847f3 100644 (file)
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i '/include/a #include <limits.h>/' metadata.c
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
 
index 470fc28cbe5b0e66da70be41e26b69b39dcf39b6..7129ed58a3a6c213578c50dd73ba0a999301d46e 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.4
+VER        = 1.7
 
 THISAPP    = miniupnpd-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = miniupnpd
-PAK_VER    = 0
+PAK_VER    = 1
 
 ###############################################################################
 # Top-level Rules
@@ -42,7 +42,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = ffa33d4ed8732c662bdb7d511e86db76
+$(DL_FILE)_MD5 = 5af9e8332d34a7b490d0d2ed3e674196
 
 install : $(TARGET)
 
@@ -75,10 +75,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/miniupnpd-iptcrdr.patch
        cd $(DIR_APP) && make -f Makefile.linux \
                CFLAGS="$(CFLAGS) -DIPTABLES_143 -I/usr/src/linux/include"
-
        cd $(DIR_APP) && install -m 755 miniupnpd /usr/sbin
        -mkdir -pv /etc/miniupnpd
        cp -vf $(DIR_SRC)/config/miniupnpd/miniupnpd.conf /etc/miniupnpd/miniupnpd.conf
index e59b305992d8e7477ef168fa325d338d1db48f52..6902ccac19165116982fce88e9e8bb5dc93a1bcc 100644 (file)
@@ -28,11 +28,7 @@ VER = ipfire
 
 THISAPP    = misc-progs
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -53,10 +49,6 @@ md5 :
 $(TARGET) :
        @$(PREBUILD)
        @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup && cp -R $(DIR_SRC)/src/misc-progs/ $(DIR_SRC)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make CFLAGS="-Os -fomit-frame-pointer" iowrap
-       cd $(DIR_APP) && install -m 0755 iowrap /install/initrd/bin
-else
        cp -R $(DIR_SRC)/src/install+setup/ $(DIR_SRC)
        for i in $(DIR_SRC)/langs/*/install/lang_*.c ; do \
            cp $$i $(DIR_SRC)/install+setup/libsmooth; \
@@ -67,6 +59,5 @@ else
             -DSLOGAN='\"$(SLOGAN)\"' -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"'" 
        cd $(DIR_APP) && make CFLAGS="$(CFLAGS) -Wall -DCONFIG_ROOT='\"$(CONFIG_ROOT)\"' -DSNAME='\"$(SNAME)\"'"
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP) $(DIR_SRC)/install+setup
        @$(POSTBUILD)
diff --git a/lfs/mpd b/lfs/mpd
index ca82ad2e44ac6074ffad5f4d64f4e9722463c89b..1f57f18980f52e4003d7ee59bd11fc01c48aa27d 100644 (file)
--- a/lfs/mpd
+++ b/lfs/mpd
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = mpd
 PAK_VER    = 14
 
-DEPS       = "alsa faad2 ffmpeg-libs glib lame libmad libshout libogg libid3tag libvorbis"
+DEPS       = "alsa faad2 ffmpeg-libs lame libmad libshout libogg libid3tag libvorbis"
 
 ###############################################################################
 # Top-level Rules
similarity index 93%
rename from lfs/reiser4progs
rename to lfs/mpfr
index 99cbb84342fdb3dcc2c9f49517aff19c869892eb..de5e006dc1185cd02bcbb9abfea9f37f06ff49a5 100644 (file)
+++ b/lfs/mpfr
@@ -24,9 +24,9 @@
 
 include Config
 
-VER        = 1.0.6
+VER        = 2.4.2
 
-THISAPP    = reiser4progs-$(VER)
+THISAPP    = mpfr-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = d408cfeac40c266623bd51afa008caf6
+$(DL_FILE)_MD5 = 89e59fe665e2b3ad44a6789f40b059a0
 
 install : $(TARGET)
 
@@ -70,7 +70,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin --enable-static
+       cd $(DIR_APP) && $(CONFIGURE_ARGS) ./configure --prefix=/usr \
+               --enable-thread-safe --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index bbaed79e1bc7153302fec1ddc336a0a26990234f..c2affea31abf142286f08944f22628ed78bcbf49 100644 (file)
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = nagios
 PAK_VER    = 2
 
-DEPS       = "glib traceroute libtool"
+DEPS       = "traceroute libtool"
 
 ###############################################################################
 # Top-level Rules
index 0b7bbb7860244b48b9e6ba002c7e2bb4b17df207..1c0fb04271b87bb1209b2f43a3fe1796069232e0 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.5
+VER        = 5.9
 
 THISAPP    = ncurses-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -35,20 +35,25 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 #
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
-  EXTRA_CONFIG = --prefix=/usr --with-shared \
-       --without-debug --enable-widec --disable-nls
-  EXTRA_MAKE =
-  EXTRA_INSTALL =
+  PREFIX = /usr
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
-  EXTRA_CONFIG = --prefix=/tools --with-shared \
-    --without-debug --without-ada --enable-overwrite \
-    --disable-nls
-  EXTRA_MAKE = 
-  EXTRA_INSTALL = 
+  PREFIX = /tools
 endif
 
-EXTRA_CONFIG += --build=$(BUILDTARGET)
+EXTRA_CONFIG += \
+       --prefix=$(PREFIX) \
+       --with-shared \
+       --without-debug \
+       --without-ada \
+       --with-ospeed=unsigned \
+       --with-chtype=long \
+       --enable-hard-tabs \
+       --enable-xmc-glitch \
+       --enable-colorfgbg \
+       --enable-overwrite \
+       --with-termlib=tinfo \
+       --disable-nls
 
 ###############################################################################
 # Top-level Rules
@@ -58,7 +63,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = e73c1ac10b4bfc46db43b2ddfd6244ef
+$(DL_FILE)_MD5 = 8cb9c412e5f2d96bc6f459aa8c6282a1
 
 install : $(TARGET)
 
@@ -88,25 +93,35 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/ncurses-5.5-fixes-1.patch
-       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
-       cd $(DIR_APP) && make $(EXTRA_MAKE)  #$(MAKETUNING) # Causes an error!
-       cd $(DIR_APP) && make $(EXTRA_INSTALL) install
-ifeq "$(ROOT)" ""
-       chmod -v 755 /usr/lib/*.5.5
-       chmod -v 644 /usr/lib/libncurses++w.a
-       mv -v /usr/lib/libncursesw.so.5* /lib
-       ln -sfv ../../lib/libncursesw.so.5 /usr/lib/libncursesw.so
-       cd $(DIR_APP) && for lib in curses ncurses form panel menu ; do \
-           rm -vf /usr/lib/lib$${lib}.so ; \
-           echo "INPUT(-l$${lib}w)" >/usr/lib/lib$${lib}.so ; \
-           ln -sfv lib$${lib}w.a /usr/lib/lib$${lib}.a ; \
+       cd $(DIR_APP) && mkdir -pv narrowc widec
+
+       # Build narrowc version.
+       cd $(DIR_APP)/narrowc && ln -svf ../configure .
+       cd $(DIR_APP)/narrowc && ./configure $(EXTRA_CONFIG) --with-ticlib
+       cd $(DIR_APP)/narrowc && make libs
+       cd $(DIR_APP)/narrowc && make -C progs
+
+       # Build widec version.
+       cd $(DIR_APP)/widec && ln -svf ../configure .
+       cd $(DIR_APP)/widec && ./configure $(EXTRA_CONFIG) \
+               --enable-widec --without-progs
+       cd $(DIR_APP)/widec && make libs
+
+       # Install everything.
+       cd $(DIR_APP) && make -C narrowc install.{libs,progs,data}
+       rm -vf $(PREFIX)/lib/libtinfo.*
+       cd $(DIR_APP) && make -C widec install.{libs,includes,man}
+
+       # don't require -ltinfo when linking with --no-add-needed
+       for l in $(PREFIX)/lib/libncurses{,w}.so; do \
+               soname=$$(basename $$(readlink $$l)); \
+               rm -f $$l; \
+               echo "INPUT($$soname -ltinfo)" > $$l; \
        done
-       ln -sfv libncurses++w.a /usr/lib/libncurses++.a4
-       echo "INPUT(-lncursesw)" >/usr/lib/libcursesw.so
-       ln -sfv libncurses.so /usr/lib/libcurses.so
-       ln -sfv libncursesw.a /usr/lib/libcursesw.a
-       ln -sfv libncurses.a /usr/lib/libcurses.a
-endif
+
+       rm -vf $(PREFIX)/lib/libcurses{,w}.so
+       echo "INPUT(-lncurses)" > $(PREFIX)/lib/libcurses.so
+       echo "INPUT(-lncursesw)" > $(PREFIX)/lib/libcursesw.so
+       echo "INPUT(-ltinfo)" > $(PREFIX)/lib/libtermcap.so
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 7ee4a196b5e71a113aef575673e6f278d840cc78..5af5e47c718b8f672477d792b614bb7f99871dee 100644 (file)
@@ -77,6 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP)/converter && patch -Np1 < $(DIR_SRC)/src/patches/netpbm-10.26.46-getline.patch
        cp $(DIR_SRC)/config/netpbm/Makefile.config $(DIR_APP)
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make package PKGDIR=/usr/local/netpbm
index 34b0f69afa6e966bca2fc081d0c6dc5e34bc5403..b5c57d0d6b017bc6b8c9f41589814b964b551c49 100644 (file)
--- a/lfs/newt
+++ b/lfs/newt
@@ -30,11 +30,7 @@ THISAPP    = newt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -75,20 +71,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/newt-0.51.6-if1close.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --without-gpm-support --host $(MACHINE)-uclibc
-       cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = -Os -fomit-frame-pointer -Wall -D_GNU_SOURCE -DUTF8 -I/opt/i586-uClibc/include%' Makefile
-       cd $(DIR_APP) && make libnewt.a
-       -mkdir -p /opt/$(MACHINE)-uClibc/{include,lib}
-       cd $(DIR_APP) && install -m 0644 libnewt.a /opt/$(MACHINE)-uClibc/lib/libnewt.a
-       cd $(DIR_APP) && install -m 0644 newt.h /opt/$(MACHINE)-uClibc/include/newt.h
-else
        cd $(DIR_APP) && ./configure --without-gpm-support
        cd $(DIR_APP) && sed -i 's%^CFLAGS.*$$%CFLAGS = $(CFLAGS) -Wall -D_GNU_SOURCE%' Makefile
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
        cd $(DIR_APP) && install -m 0644 newt.h /usr/include
        ln -sf libnewt.so.0.51 /usr/lib/libnewt.so
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 9771ae44108b758fb3bf2eabea658ebeb904c0d7..a18d7e16200c48f22b9c6ea48f54e18216ec4cb2 100644 (file)
@@ -32,10 +32,12 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = openldap
-PAK_VER    = 2
+PAK_VER    = 3
 
 DEPS       = ""
 
+export CPPFLAGS = -D_GNU_SOURCE
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -77,23 +79,24 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr \
-                           --libexecdir=/usr/sbin \
-                           --sysconfdir=/etc \
-                           --localstatedir=/srv/ldap \
-                           --disable-debug \
-                           --enable-dynamic \
-                           --enable-crypt \
-                           --enable-modules \
-                           --enable-ldap \
-                           --enable-ldbm \
-                           --enable-dyngroup \
-                           --enable-dynlist \
-                           --enable-ppolicy \
-                           --enable-valsort
-       cd $(DIR_APP) && make depend
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/openldap-gcc44-fixes.patch
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --libexecdir=/usr/lib \
+               --sysconfdir=/etc \
+               --localstatedir=/srv/ldap \
+               --with-threads=posix \
+               --disable-perl \
+               --enable-dynamic \
+               --enable-crypt \
+               --enable-modules \
+               --enable-rlookups \
+               --enable-backends=mod \
+               --enable-overlays=mod \
+               --enable-sql=no \
+               --enable-ndb=no \
+               --disable-static
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make install
-       chmod -v 755 /usr/lib/libl*-2.3.so.0.2.8
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index d8a7c482b09eacd7875ed715c83ad2f0ecc01118..229ed8f8f8c3a8dbc40aa7abc1b0c9c793c2a32d 100644 (file)
@@ -34,7 +34,8 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 SUP_ARCH   = i586
 PROG       = openvmtools
 PAK_VER    = 1
-DEPS       = "glib"
+
+DEPS       = ""
 
 ###############################################################################
 # Top-level Rules
diff --git a/lfs/pango b/lfs/pango
new file mode 100644 (file)
index 0000000..bd5d5f8
--- /dev/null
+++ b/lfs/pango
@@ -0,0 +1,77 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 1.30.1
+
+THISAPP    = pango-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+DIR_APP    = $(DIR_SRC)/$(THISAPP)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = ec3c1f236ee9bd4a982a5f46fcaff7b9
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && make install
+       @rm -rf $(DIR_APP)
+       @$(POSTBUILD)
index ce604c1325609a1b9d1a8e71eaffc0fd2d7e7776..164a02747a095a23f7c250ff29014b2a075e98f6 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2012  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -30,11 +30,7 @@ THISAPP    = pciutils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -83,15 +79,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.1.99-gcc4.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-multilib.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/pciutils-2.2.3-sata.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" ./configure
-       cd $(DIR_APP)/lib && CFLAGS="-Os -fomit-frame-pointer" make $(MAKETUNING)
-       -mkdir -p /opt/$(MACHINE)-uClibc/include/pci
-       cd $(DIR_APP) && install -m 0644 lib/libpci.a /opt/$(MACHINE)-uClibc/lib
-       cd $(DIR_APP) && install -m 0644 lib/*.h /opt/$(MACHINE)-uClibc/include/pci
-else
 ifeq "$(MACHINE_TYPE)" "arm"
-       cd $(DIR_APP)/lib && ./configure
+       cd $(DIR_APP)/lib && ./configure /usr/share/hwdata $(VER)
        cd $(DIR_APP)/lib && sed -e "s/^#error.*$$/#define CPU_ARCH_ARM/" -i config.h
 endif
        cd $(DIR_APP) && make PREFIX=/usr $(MAKETUNING)
@@ -99,6 +88,5 @@ endif
        cd $(DIR_APP) && install -v -m 755 -d /usr/include/pci
        cd $(DIR_APP) && install -v -m 644 lib/libpci.a /usr/lib
        cd $(DIR_APP) && install -v -m 644 lib/*.h /usr/include/pci
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 67ad5601fb8be7b273e49e01fe6a334f0ba7f18b..c80208e7036a7eb50bb4a952b3af767712f61f16 100644 (file)
@@ -30,13 +30,7 @@ THISAPP    = pcmciautils-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-ifeq "$(LFS_PASS)" "install"
-    TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-    TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-
+TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = pcmciautils
 PAK_VER    = 1
 DEPS       = ""
@@ -82,21 +76,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-
-ifeq "$(LFS_PASS)" "install"
-       ln -f -s ../../../../../include/sysfs /opt/$(MACHINE)-uClibc/lib/gcc/$(MACHINE)-linux-uclibc/4.0.4/include/sysfs
-       cd $(DIR_APP) && make
-       cd $(DIR_APP) && install -m 755 pccardctl /install/initrd/sbin/
-       ln -f -s pccardctl /install/initrd/sbin/lspcmcia
-       cd $(DIR_APP) && install -m 755 pcmcia-check-broken-cis /install/initrd/sbin/
-       cd $(DIR_APP) && install -m 755 pcmcia-socket-startup /install/initrd/sbin/
-       cp -f /etc/udev/rules.d/60-pcmcia.rules /install/initrd/etc/udev/rules.d/60-pcmcia.rules
-       mkdir -p /install/initrd/etc/pcmcia
-       cp -f /etc/pcmcia/config.opts /install/initrd/etc/pcmcia/config.opts
-else
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
        @sed -i -e 's/ MODALIAS=="?[*]",//g' /etc/udev/rules.d/60-pcmcia.rules
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f99abf3783a007af91047e8288e8d02e72929248..5aa40bd20d08d41253f4cd21326061dff376542f 100644 (file)
--- a/lfs/pcre
+++ b/lfs/pcre
 
 include Config
 
-VER        = 7.7
+VER        = 8.31
 
 THISAPP    = pcre-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b
+$(DL_FILE)_MD5 = fab1bb3b91a4c35398263a5c1e0858c1
 
 install : $(TARGET)
 
@@ -69,11 +69,14 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-static \
+               --enable-utf8 \
+               --enable-jit \
+               --enable-unicode-properties
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && mv -v /usr/lib/libpcre.so.* /lib/
-       cd $(DIR_APP) && ln -v -sf ../../lib/libpcre.so.0 /usr/lib/libpcre.so
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 91%
rename from lfs/hddtemp
rename to lfs/pcre-compat
index 9533f67f85a588e4179dae8c4d7452f9be09d968..6b20bca741925f6eeb8f23f877847e64c432f183 100644 (file)
@@ -24,9 +24,9 @@
 
 include Config
 
-VER        = 0.3-beta14
+VER        = 7.7
 
-THISAPP    = hddtemp-$(VER)
+THISAPP    = pcre-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = bbf8be4539495e18bec54af77511a680
+$(DL_FILE)_MD5 = 4b2e9cde1f7227448dddba59843efa0b
 
 install : $(TARGET)
 
@@ -70,7 +70,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr --with-db-path=/etc/hddtemp.db
-       cd $(DIR_APP) && make $(MAKETUNING) && make install
+       cd $(DIR_APP) && ./configure --prefix=/usr --enable-utf8
+       cd $(DIR_APP) && make $(MAKETUNING)
+
+       install -m 755 $(DIR_APP)/.libs/libpcre.so.0.0.1 /lib
+       ln -svf libpcre.so.0.0.1 /lib/libpcre.so.0
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/php b/lfs/php
index 503ddcc44303ed909163f3a5e81dbad8ef643982..58f442ce4c839dba7c381cb4345f660b151dfba4 100644 (file)
--- a/lfs/php
+++ b/lfs/php
@@ -32,6 +32,10 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+ifeq "$(MACHINE_TYPE)" "arm"
+       CFLAGS    := $(patsubst -march=%,,$(CFLAGS))
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
similarity index 96%
rename from lfs/libaal
rename to lfs/pixman
index 08d8ac1efb339b29f41fd5b2d5c5cde638c38156..1cb2a08df46887ce7bc6ad412b6a84ef5884efdd 100644 (file)
@@ -24,9 +24,9 @@
 
 include Config
 
-VER      = 1.0.5
+VER        = 0.26.0
 
-THISAPP    = libaal-$(VER)
+THISAPP    = pixman-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6c55201acd2a2c0a1f46addf248da6a2
+$(DL_FILE)_MD5 = 6563b6400b9fa23b47fd52105faf72b4
 
 install : $(TARGET)
 
index 25fcc69cbb2a3605335e812b4335504cb3fa9988..ee4c3f914c35ccdac3ba8b26abff8cebf04d3bff 100644 (file)
--- a/lfs/popt
+++ b/lfs/popt
@@ -30,11 +30,7 @@ THISAPP    = popt-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,16 +70,9 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --disable-nls
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install
-else
        cd $(DIR_APP) && sed -i -e "/*origOptString ==/c 0)" popt.c
-       cd $(DIR_APP) && autoreconf -f -i
        cd $(DIR_APP) && ./configure --prefix=/usr --disable-nls
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index bbb9b0ca41250d259c3f8f685849e16a3e919b31..5866b97d85ac01cae96f6ecbd8c00fcce4e1fc65 100644 (file)
@@ -36,6 +36,9 @@ PAK_VER    = 6
 
 DEPS       = "amavisd mysql"
 
+# Fake kernel release
+export UTS_RELEASE = 2.6.32-ipfire
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
index e3237c34a94fecf0710a9afba473dc05731308ee..8edb89b6c60879ad5c0a2481c0c68c6bebba3ce6 100644 (file)
--- a/lfs/pptp
+++ b/lfs/pptp
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/pptp-1.7.2-compat.patch
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index da2ea34ba24421d9c12d52497dd54bd3cfc79c24..d68b97d1e5667a66320706b962c576f742886222 100644 (file)
--- a/lfs/qemu
+++ b/lfs/qemu
@@ -78,12 +78,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-
-       cd $(DIR_APP) && sed -i -e 's|CFLAGS+="-march=i486"|CFLAGS+=""|g' configure
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-0.15.0_missing_definitions_hack.patch
-
        cd $(DIR_APP) && ./configure --prefix=/usr --sysconfdir=/etc \
-               --target-list="i386-linux-user i386-softmmu arm-softmmu"
+               --target-list="i386-linux-user i386-softmmu arm-softmmu" \
+               --extra-cflags="$(CFLAGS)"
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
diff --git a/lfs/qemu-kqemu b/lfs/qemu-kqemu
deleted file mode 100644 (file)
index c2b6b33..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-###############################################################################
-#                                                                             #
-# IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
-#                                                                             #
-# This program is free software: you can redistribute it and/or modify        #
-# it under the terms of the GNU General Public License as published by        #
-# the Free Software Foundation, either version 3 of the License, or           #
-# (at your option) any later version.                                         #
-#                                                                             #
-# This program is distributed in the hope that it will be useful,             #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
-# GNU General Public License for more details.                                #
-#                                                                             #
-# You should have received a copy of the GNU General Public License           #
-# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
-#                                                                             #
-###############################################################################
-
-###############################################################################
-# Definitions
-###############################################################################
-
-include Config
-
-VER        = 0.11.1
-
-THISAPP    = qemu-$(VER)
-DL_FILE    = $(THISAPP).tar.gz
-DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
-TARGET     = $(DIR_INFO)/$(THISAPP)-kqemu
-SUP_ARCH   = i586
-PROG       = qemu-kqemu
-PAK_VER    = 3
-
-DEPS       = "sdl qemu"
-
-###############################################################################
-# Top-level Rules
-###############################################################################
-
-objects = $(DL_FILE)
-
-$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-
-$(DL_FILE)_MD5 = 193285b0bcf655a7f7577d05ffcb82b1
-
-install : $(TARGET)
-
-check : $(patsubst %,$(DIR_CHK)/%,$(objects))
-
-download :$(patsubst %,$(DIR_DL)/%,$(objects))
-
-md5 : $(subst %,%_MD5,$(objects))
-
-dist: 
-       @$(PAK)
-
-###############################################################################
-# Downloading, checking, md5sum
-###############################################################################
-
-$(patsubst %,$(DIR_CHK)/%,$(objects)) :
-       @$(CHECK)
-
-$(patsubst %,$(DIR_DL)/%,$(objects)) :
-       @$(LOAD)
-
-$(subst %,%_MD5,$(objects)) :
-       @$(MD5)
-
-###############################################################################
-# Installation Details
-###############################################################################
-
-$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
-       @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/qemu-kqemu_change-default-kqemu-bios.patch
-       cd $(DIR_APP) && ./configure --prefix=/usr \
-               --target-list="i386-softmmu"
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && cp -f i386-softmmu/qemu /usr/bin/qemu-kqemu
-       cd $(DIR_APP) && cp -f pc-bios/bios.bin /usr/share/qemu/bios-kqemu.bin
-       @rm -rf $(DIR_APP)
-       @$(POSTBUILD)
index e2d6248fab6702d8a0389e0c20256761089dc42d..7b88adff2c6c6aaed1416eb7469c7dc73425eee9 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 5.1
+VER        = 6.2
 
 THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7ee5a692db88b30ca48927a13fd60e46
+$(DL_FILE)_MD5 = 67948acb2ca081f23359d0256e9a271c
 
 install : $(TARGET)
 
@@ -70,16 +70,15 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/readline-5.1-fixes-3.patch
-       cd $(DIR_APP) && sed -i '/MV.*old/d' Makefile.in
-       cd $(DIR_APP) && sed -i '/{OLDSUFF}/c:' support/shlib-install
-       cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib
+
+       for i in $$(seq 1 4); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline62-$$(printf "%03d" "$${i}") || exit 1; \
+       done
+
+       cd $(DIR_APP) && ./configure --prefix=/usr --disable-static
        cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses
        cd $(DIR_APP) && make install
-       chmod -v 755 /lib/lib{readline,history}.so*
-       mv -v /lib/lib{readline,history}.a /usr/lib
-       rm -v /lib/lib{readline,history}.so
-       ln -sfv ../../lib/libreadline.so.5 /usr/lib/libreadline.so
-       ln -sfv ../../lib/libhistory.so.5 /usr/lib/libhistory.so
+
+       rm -rfv /usr/share/readline
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
similarity index 82%
rename from lfs/applejuice
rename to lfs/readline-compat
index 12e58a681eb38cf1b68e492e60210d843b63eb9e..2f4388c028f6aea7ee24d35031861ae31730c3ff 100644 (file)
 #                                                                             #
 ###############################################################################
 
-
 ###############################################################################
 # Definitions
 ###############################################################################
 
 include Config
 
-VER        = 0.31
+VER        = 5.2
 
-THISAPP    = applejuice-$(VER)
+THISAPP    = readline-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
-PROG       = applejuice
-PAK_VER    = 2
-
-DEPS       = "java"
 
 ###############################################################################
 # Top-level Rules
@@ -45,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = dc4ac444ff9ec9e1e841e856564d0234
+$(DL_FILE)_MD5 = e39331f32ad14009b9ff49cc10c5e751
 
 install : $(TARGET)
 
@@ -55,9 +50,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       @$(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -78,13 +70,17 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && mkdir -p /opt/applejuice && mv -fv ajcore.jar /opt/applejuice
-       cd $(DIR_APP) && mv -fv libajnetmask.so /opt/applejuice
-       ln -svf ../../opt/applejuice/libajnetmask.so /usr/lib
-       cd $(DIR_APP) && cp -afv phpaj /srv/web
-       chown nobody.nobody /srv/web/phpaj -Rv
-       -mkdir /var/ipfire/applejuice
-       echo "RAMSIZE=64M" > /var/ipfire/applejuice/settings
-       chown nobody.nobody /var/ipfire/applejuice -Rv
+
+       for i in $$(seq 1 14); do \
+               cd $(DIR_APP) && patch -Np0 < $(DIR_SRC)/src/patches/readline/readline52-$$(printf "%03d" "$${i}") || exit 1; \
+       done
+
+       cd $(DIR_APP) && ./configure --prefix=/usr --libdir=/lib --disable-static
+       cd $(DIR_APP) && make $(MAKETUNING) SHLIB_LIBS=-lncurses
+
+       cd $(DIR_APP)/shlib && install -m 755 libreadline.so.$(VER) /lib
+       cd $(DIR_APP)/shlib && install -m 755 libhistory.so.$(VER) /lib
+       ln -svf libreadline.so.$(VER) /lib/libreadline.so.5
+       ln -svf libhistory.so.$(VER) /lib/libhistory.so.5
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index b78baefbfd46fc04cb6c0cb8690c585436e602b7..402753ee02597d9cef162fead7cc96cda0df0675 100644 (file)
@@ -30,11 +30,7 @@ THISAPP    = reiserfsprogs-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,16 +70,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --sbindir=/sbin
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && install -v -m 755 mkreiserfs/mkreiserfs /install/initrd/sbin/mkreiserfs
-else
        cd $(DIR_APP) && ./configure --prefix=/usr --sbindir=/sbin
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        ln -svf reiserfsck /sbin/fsck.reiserfs
        ln -svf mkreiserfs /sbin/mkfs.reiserfs
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/rpi-firmware b/lfs/rpi-firmware
new file mode 100644 (file)
index 0000000..2143d23
--- /dev/null
@@ -0,0 +1,74 @@
+###############################################################################
+#                                                                             #
+# IPFire.org - A linux based firewall                                         #
+# Copyright (C) 2012  IPFire Team  <info@ipfire.org>                          #
+#                                                                             #
+# This program is free software: you can redistribute it and/or modify        #
+# it under the terms of the GNU General Public License as published by        #
+# the Free Software Foundation, either version 3 of the License, or           #
+# (at your option) any later version.                                         #
+#                                                                             #
+# This program is distributed in the hope that it will be useful,             #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of              #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the               #
+# GNU General Public License for more details.                                #
+#                                                                             #
+# You should have received a copy of the GNU General Public License           #
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
+#                                                                             #
+###############################################################################
+
+###############################################################################
+# Definitions
+###############################################################################
+
+include Config
+
+VER        = 9f7cff0
+THISAPP    = rpi-firmware-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
+DL_FROM    = $(URL_IPFIRE)
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+SUP_ARCH   = armv5tel
+
+###############################################################################
+# Top-level Rules
+###############################################################################
+
+objects = $(DL_FILE)
+
+$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
+
+$(DL_FILE)_MD5 = 4de4db529fc2c0000d381d016675e115
+
+install : $(TARGET)
+
+check : $(patsubst %,$(DIR_CHK)/%,$(objects))
+
+download :$(patsubst %,$(DIR_DL)/%,$(objects))
+
+md5 : $(subst %,%_MD5,$(objects))
+
+###############################################################################
+# Downloading, checking, md5sum
+###############################################################################
+
+$(patsubst %,$(DIR_CHK)/%,$(objects)) :
+       @$(CHECK)
+
+$(patsubst %,$(DIR_DL)/%,$(objects)) :
+       @$(LOAD)
+
+$(subst %,%_MD5,$(objects)) :
+       @$(MD5)
+
+###############################################################################
+# Installation Details
+###############################################################################
+
+$(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
+       @$(PREBUILD)
+       @cd / && tar axf $(DIR_DL)/$(DL_FILE)
+       cp $(DIR_SRC)/config/rpi-firmware/config.txt /boot
+       @$(POSTBUILD)
index db44716093ea8a79c24a607fa11a0a5742916d39..0237b89f2e48d5dff2f1c7a3c218f342b3e27809 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 1.2.30
+VER        = 1.4.7
 
 THISAPP    = rrdtool-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -40,7 +40,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 19b24f7184a8dbf7b48c1bbb565ad9fb
+$(DL_FILE)_MD5 = ffe369d8921b4dfdeaaf43812100c38f
 
 install : $(TARGET)
 
@@ -70,13 +70,16 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr/share/$(THISAPP) \
-           --exec-prefix=/usr --mandir=/usr/share/man --enable-perl-site-install \
-           --enable-local-libpng --enable-local-zlib --with-pic --enable-latin2 \
-           --disable-python --disable-tcl
+       cd $(DIR_APP) && ./configure \
+               --prefix=/usr \
+               --disable-rrdcgi \
+               --enable-perl \
+               --enable-perl-site-install \
+               --disable-tcl \
+               --disable-ruby \
+               --disable-python
        cd $(DIR_APP) && make
        cd $(DIR_APP) && make install
-       cd $(DIR_APP) && make site-perl-install
        -mkdir -p /srv/web/ipfire/html/graphs/
        chmod 777 /srv/web/ipfire/html/graphs/
        -mkdir -p /var/log/rrd/
index eef5862624c4b8bf05a49ee2a0ed4ed8bfbe3734..b94d62e6ebc3515e9fa20f4c1c974496ab04adc2 100644 (file)
@@ -70,6 +70,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/screen-4.0.3-stropts.patch
        cd $(DIR_APP) && ./configure --prefix=/usr --with-socket-dir=/var/run/screen --with-sys-screenrc=/etc/screenrc
        cd $(DIR_APP) && sed -i -e "s%/usr/local/etc/screenrc%/etc/screenrc%" {etc,doc}/*
        cd $(DIR_APP) && make $(MAKETUNING)
diff --git a/lfs/sdl b/lfs/sdl
index 2716f3fbc6eaf369fccf255417cd0dfe4a1a59db..5f5ecdcef48b455f4bda3203f316443b70a709a5 100644 (file)
--- a/lfs/sdl
+++ b/lfs/sdl
@@ -77,10 +77,8 @@ dist:
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(MACHINE_TYPE)" "arm"
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/SDL-1.2.11-asm-page.h.patch
        cd $(DIR_APP) && sed "/asm\/page.h/d" -i src/video/fbcon/SDL_fbvideo.c
-endif
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
diff --git a/lfs/sed b/lfs/sed
index 22b820407feb8e986473b3c4e278b588d3c84bb3..8904fd42906aa2837ddb2a210894cbe2f2d0b152 100644 (file)
--- a/lfs/sed
+++ b/lfs/sed
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.1.5
+VER        = 4.2.1
 
 THISAPP    = sed-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -36,13 +36,11 @@ DIR_APP    = $(DIR_SRC)/$(THISAPP)
 ifeq "$(ROOT)" ""
   TARGET = $(DIR_INFO)/$(THISAPP)
   EXTRA_CONFIG = --prefix=/usr --bindir=/bin --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE =
   EXTRA_INSTALL =
 else
   TARGET = $(DIR_INFO)/$(THISAPP)-tools
   EXTRA_CONFIG = --prefix=/tools --disable-nls
-  EXTRA_LDFLAGS =
   EXTRA_MAKE = 
   EXTRA_INSTALL = 
 endif
@@ -55,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 7a1cbbbb3341287308e140bd4834c3ba
+$(DL_FILE)_MD5 = f0fd4d7da574d4707e442285fd2d3b86
 
 install : $(TARGET)
 
@@ -85,7 +83,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && LDFLAGS="$(EXTRA_LDFLAGS)" ./configure $(EXTRA_CONFIG)
+       cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
        @rm -rf $(DIR_APP)
index 542d32ff100aa07f34ae22b0ad724b675e7ee1e0..e6c8cc88d3d2f90d746240c120067f8ebdb65f60 100644 (file)
--- a/lfs/slang
+++ b/lfs/slang
@@ -30,11 +30,7 @@ THISAPP    = slang-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -78,13 +74,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-acs.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.5-utf8-segv.patch
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-utf8-fix.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/slang-1.4.9-uclibc.patch
-       cd $(DIR_APP) && ./configure --prefix=""
-       cd $(DIR_APP)/src && make $(MAKETUNING) $(EXTRA_MAKE)
-       cd $(DIR_APP)/src && make install DESTDIR="/opt/$(MACHINE)-uClibc"
-       ln -sf libslang-utf8.a /opt/$(MACHINE)-uClibc/lib/libslang.a
-else
        perl -p -i -e 's/(ELF_CFLAGS=\"[^\"]*)-O2([^\"]*\".*)/$1'"$(CFLAGS)"' $2/gs' configure
        cd $(DIR_APP) && ./configure --prefix=/usr
        cd $(DIR_APP) && make elf all
@@ -92,6 +81,5 @@ else
        ln -sf libslang-utf8.so.1.4.9 /usr/lib/libslang-utf8.so.1
        ln -sf libslang-utf8.so /usr/lib/libslang.so
        ln -sf libslang-utf8.a /usr/lib/libslang.a
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 5f038c325024f8fa25295aea1179d9dea84be707..04291d6e47cb97b3de78ea497c384bbbf288be41 100644 (file)
@@ -63,9 +63,11 @@ $(TARGET) :
        
        # Symlinks
        # for this reason, stage2 rebuild will broke the iso:perl, grubbatch
-       -ln -sv /tools/bin/{bash,cat,grep,pwd,stty} /bin
+       -ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
        -ln -sv /tools/bin/perl /usr/bin
        -ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
+       -ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
+       sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la
        -ln -sv bash /bin/sh
 
        # Config files
index 9ef65af0b26455cc92a2372b27e996137a9d15fa..4e30f8b714b44721a45bbfedbfcd6e27d5c64139 100644 (file)
@@ -34,7 +34,7 @@ TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = streamripper
 PAK_VER    = 1
 
-DEPS       = "glib libmad libogg libvorbis faad2"
+DEPS       = "libmad libogg libvorbis faad2"
 
 ###############################################################################
 # Top-level Rules
index 169419e8a8291368e2764da46d547c351c45ba24..30cb9b33b47703ce3a4a1dfce25baba267f3af19 100644 (file)
--- a/lfs/strip
+++ b/lfs/strip
@@ -46,25 +46,5 @@ md5 :
 ###############################################################################
 
 $(TARGET) :
-
-ifeq "$(LFS_PASS)" "toolchain"
-       -find $(TOOLS_DIR)/lib -type f -exec $(TOOLS_DIR)/bin/strip --strip-debug '{}' ';'
-       -find $(TOOLS_DIR)/{bin,sbin,libexec} -type f -exec $(TOOLS_DIR)/bin/strip --strip-all '{}' ';'
-       rm -rf $(TOOLS_DIR)/{,share/}{doc,info,man}
-endif
-
-ifeq "$(LFS_PASS)" "install"
-       # Add -ls before -exec if you want to verify what files are in the path to be stripped
-       # A running binary can't be stripped, so use the version from /tools
-       # It may fail (signal 11) under circonstance not identified by me (Gilles),
-       # to strip libc again so ignore the error now. Probably need a static strip for libc
-       # Don't use --strip-all on libraries, or they'll be destroyed. Don't use --strip-unneeded, either.
-       -/tools/bin/find /lib /usr/lib /usr/share/rrdtool-* /install/initrd/lib \
-               -type f \( -name '*.so' -o -name '*.so[\.0-9]*' \) \
-               -exec /tools/bin/strip --strip-debug {} \; 2>/dev/null
-
-       -/tools/bin/strip --strip-all /{,usr/}{,local/}{bin,sbin}/* /install/{initrd,misc}/bin/* /usr/lib/cyrus/* 2>/dev/null
-       -/tools/bin/strip --strip-all /usr/lib/awk/{grcat,pwcat} 2>/dev/null
-       -/tools/bin/strip --strip-all /usr/lib/gcc/*-linux-gnu/4.0.4/{cc1*,collect2} 2>/dev/null
-endif
-
+       STRIP="/tools/bin/strip" $(DIR_SRC)/src/stripper / \
+               --exclude=/usr/src --exclude=/tools
index d0d533d11da7e1642c5ac1eb502d7ea13cce5f3f..3d220862d9d97589a7d0a894a5c2598828e6f6fc 100644 (file)
@@ -24,7 +24,7 @@
 
 include Config
 
-VER        = 4.6.4
+VER        = 5.0.0
 
 THISAPP    = strongswan-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
@@ -32,6 +32,12 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+ifeq "$(MACHINE)" "i586"
+       PADLOCK = --enable-padlock
+else
+       PADLOCK = --disable-padlock
+endif
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -40,7 +46,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 4c0999c42faa0860ae0afc4f8efd9d04
+$(DL_FILE)_MD5 = c8b861305def7c0abae04f7bbefec212
 
 install : $(TARGET)
 
@@ -73,18 +79,19 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/strongswan-4.5.3_ipfire.patch
 
-       # Customize the welcome banner.
-       sed -i $(DIR_APP)/src/pluto/modecfg.c \
-               -e 's/^#define.*DEFAULT_UNITY_BANNER.*/#define DEFAULT_UNITY_BANNER "Welcome to IPFire - An Open Source Firewall Solution.\\n"/'
-
-       cd $(DIR_APP) && ./configure --prefix="/usr" --sysconfdir="/etc" \
-                                       --enable-cisco-quirks \
-                                       --enable-curl \
-                                       --enable-nat-transport
+       cd $(DIR_APP) && ./configure \
+               --prefix="/usr" \
+               --sysconfdir="/etc" \
+               --enable-curl \
+               --enable-openssl \
+               $(PADLOCK)
 
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
 
+       # Remove all library files we don't want or need.
+       rm -vf /usr/lib/ipsec/plugins/*.{,l}a
+
        -rm -rfv /etc/rc*.d/*ipsec
        cd $(DIR_SRC) && cp src/initscripts/init.d/ipsec /etc/rc.d/init.d/ipsec
        rm -f /etc/ipsec.conf /etc/ipsec.secrets
index 297f7708ba48b594901af7e4f653ac8292d9dfd9..4980f5e178f2f71e7eb2d864ea5ae62d97494c2f 100644 (file)
@@ -31,11 +31,7 @@ DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-ifeq "$(LFS_PASS)" "install"
-       TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -75,15 +71,8 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix="" --disable-shared
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make DESTDIR=/opt/$(MACHINE)-uClibc install
-       mv -v /opt/$(MACHINE)-uClibc/usr/include/sysfs /opt/$(MACHINE)-uClibc/include
-else
        cd $(DIR_APP) && ./configure --prefix=""
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 2167b99789840ba7f21afc11d894c306044f05e6..3f16dd9815ebcbbec99b0f4637a6252d0b5c8f05 100644 (file)
@@ -30,11 +30,7 @@ THISAPP    = sysvinit-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,16 +70,10 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP)/src && sed -i s'/-O2/-Os\ -fomit-frame-pointer/' Makefile
-       cd $(DIR_APP)/src && make killall5
-       cd $(DIR_APP)/src && install -m 0755 killall5 /install/initrd/bin
-else
        cd $(DIR_APP) && cp src/init.c{,.backup}
        cd $(DIR_APP) && sed -i 's@Sending processes@& started by init@g' \
                                src/init.c
        cd $(DIR_APP) && make $(MAKETUNING) -C src 
        cd $(DIR_APP) && make -C src install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 0ead581c79287ff4d02cac360266a5487c45f92b..4ac591ed1b577dd850fd40893583f24209bf4205 100644 (file)
 
 include Config
 
-VER        = 4.8
+VER        = 4.13a
 
 THISAPP    = texinfo-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
-DIR_APP    = $(DIR_SRC)/$(THISAPP)
+DIR_APP    = $(DIR_SRC)/texinfo-4.13
 
 # Normal build or /tools build.
 #
@@ -53,7 +53,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 6ba369bbfe4afaa56122e65b3ee3a68c
+$(DL_FILE)_MD5 = 71ba711519209b5fb583fed2b3d86fcb
 
 install : $(TARGET)
 
@@ -82,11 +82,7 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(ROOT)" ""
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-multibyte-1.patch
-       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/$(THISAPP)-tempfile_fix-2.patch
-endif
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && ./configure $(EXTRA_CONFIG)
        cd $(DIR_APP) && make $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make $(EXTRA_INSTALL) install
index 83214328195ac7c76365903199425f8d07e3b3cc..2aa4064e816739ab016f784d1a9a9ee12b3bf6e7 100644 (file)
@@ -24,6 +24,7 @@
 
 include Config
 
+VER        = 2011n
 TZDATA_VER = 2011n
 TZCODE_VER = 2011i
 
index 6fbd888ebc991342cd856cbee40605190240e485..551fea5269d536970e432df50266cc97f300df90 100644 (file)
 
 include Config
 
-VER        = 2011.06
+VER        = 2011.12
+# Linare version: git clone git://git.linaro.org/boot/u-boot-linaro-stable.git
+# Branch: origin/Linaro-u-boot-2011.12
 
-THISAPP    = u-boot-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+THISAPP    = uboot-panda-$(VER)
+DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
@@ -41,7 +43,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 0cc5026aad02f218a9b9ac56b301c97a
+$(DL_FILE)_MD5 = 19975e9bb4b10d8e67db84e51fcaa43b
 
 install : $(TARGET)
 
@@ -73,8 +75,13 @@ dist:
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && make tools $(MAKETUNING)
        cd $(DIR_APP) && install tools/mkimage /usr/bin/
+       cd $(DIR_APP) && make omap4_panda_config
+       cd $(DIR_APP) && make $(MAKETUNING)
+       cd $(DIR_APP) && install MLO /boot/
+       cd $(DIR_APP) && install u-boot.bin /boot/
+       cp -vf $(DIR_SRC)/config/u-boot/* /boot/
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index c7cba71387079ebdad7fd58148a20283dbc8aeff..6e31c90750ca4a3a72e9ce4d7ac4ba2efb781663 100644 (file)
--- a/lfs/udev
+++ b/lfs/udev
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2005-2010  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -30,11 +30,7 @@ THISAPP    = udev-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-       TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-       TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -77,33 +73,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-netif_rename.patch
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev
-       cd $(DIR_APP) && make DESTDIR=/install/initrd sbindir=/sbin udevdir=/dev install
-       rm -f /install/initrd/sbin/udev* /install/initrd/usr/sbin/udev* /install/initrd/usr/bin/udev*
-       cd $(DIR_APP) && install udevadm udevd /install/initrd/sbin
-       cd $(DIR_APP) && make $(MAKETUNING) EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id"
-       cd $(DIR_APP) && make DESTDIR=/install/initrd EXTRAS="extras/ata_id extras/cdrom_id extras/edd_id \
-                                       extras/firmware extras/floppy extras/path_id \
-                                       extras/scsi_id extras/usb_id extras/volume_id" install
-       cd /install/initrd/usr/share && rm -rf man
-       -mkdir -pv /install/initrd/dev
-       cd /install/initrd/dev && rm -f console
-       cd /install/initrd/dev && mknod -m 0600 console c 5 1
-       cd /install/initrd/dev && rm -f null
-       cd /install/initrd/dev && mknod -m 0777 null c 1 3
-       cd /install/initrd/dev && rm -f tty*
-       cd /install/initrd/dev && mknod -m 0600 tty1 c 4 1
-       cd /install/initrd/dev && mknod -m 0600 tty2 c 4 2
-       cd /install/initrd/dev && mknod -m 0600 tty3 c 4 3
-       cd /install/initrd/dev && mknod -m 0600 tty4 c 4 4
-       cd /install/initrd/dev && mknod -m 0600 tty5 c 4 5
-       cd /install/initrd/dev && mknod -m 0600 tty6 c 4 6
-       cp -f /etc/udev/rules.d/55-scsi-cdrom.rules /install/initrd/etc/udev/rules.d/55-scsi-cdrom.rules
-
-else
+       cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/udev-125-ext4_wo_journal.patch
        rm -rf /lib/udev/devices
        cd $(DIR_APP) && tar jxf $(DIR_DL)/udev-config-6.2.tar.bz2
        cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/udev-config-6.2_persistent-storage-fix.patch
@@ -131,6 +101,11 @@ else
        chmod 755 /etc/udev/dvb.sh
        touch /etc/udev/rules.d/30-persistent-network.rules
        cp -vf $(DIR_SRC)/config/udev/blacklist /etc/modprobe.d/blacklist
-endif
+
+       # Install codel rules.
+       install -v -m 644 $(DIR_SRC)/config/udev/99-codel.rules \
+               /lib/udev/rules.d
+       install -m 755 $(DIR_SRC)/config/udev/enable_codel \
+               /lib/udev/enable_codel
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 4c5e716b03871e19f8404337175f76a3af39eacb..30a14757741186ee3c3eaa575ff552a2df14f97c 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2010  IPFire Team  <info@ipfire.org>                          #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -92,7 +92,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        COUNT=$$((`du -k -s $(IMGfs) | awk '{print $$1}'` + 32 )); \
        dd bs=1k if=/dev/zero of=$(IMGhdd) count=$$COUNT
        # write mbr before partitioning save a 'not msdos fs' warning from sfdisk
-       /usr/local/sbin/install-mbr -f $(IMGhdd)
+       /usr/sbin/install-mbr -f $(IMGhdd)
        echo -e "0,,6,*\n;\n;\n;" | sfdisk -qLD -H 64 -S 32 $(IMGhdd)
        # copy the entire partition, make the fs and dd back
        dd if=$(IMGfs) of=$(IMGhdd) bs=512 seek=32
index 3dac54d8692e40f075ceb19adcc29761d703b5cd..a39416601dc95d633a078e03e1446e8b6da3a34b 100644 (file)
@@ -30,18 +30,7 @@ THISAPP    = util-linux-$(VER)
 DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-
-# Normal build or /tools build.
-#
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-  TARGET = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)
-endif
-else
-  TARGET = $(DIR_INFO)/$(THISAPP)-tools
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -82,16 +71,6 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
        cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/util-linux-2.12r-umount-no-special.patch
-ifeq "$(ROOT)" ""
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && CFLAGS="-Os -fomit-frame-pointer" ./configure
-       cd $(DIR_APP) && echo "HAVE_SLANG=yes" >> make_include
-       cd $(DIR_APP) && echo "SLANGFLAGS=-I/opt/$(MACHINE)-uClibc/include" >> make_include
-       cd $(DIR_APP)/fdisk && make cfdisk
-       cd $(DIR_APP)/fdisk && make sfdisk
-       cd $(DIR_APP)/fdisk && install -m 0755 cfdisk /install/initrd/bin
-       cd $(DIR_APP)/fdisk && install -m 0755 sfdisk /install/initrd/bin
-else
        cd $(DIR_APP) && sed -i 's@etc/adjtime@var/lib/hwclock/adjtime@g' \
                                hwclock/hwclock.c
        -mkdir -p /var/lib/hwclock
@@ -100,14 +79,5 @@ else
        cd $(DIR_APP) && ./configure
        cd $(DIR_APP) && make $(MAKETUNING) HAVE_KILL=yes HAVE_SLN=yes
        cd $(DIR_APP) && make HAVE_KILL=yes HAVE_SLN=yes install
-endif
-else
-       cd $(DIR_APP) && sed -i 's@/usr/include@/tools/include@g' configure
-       cd $(DIR_APP) && ./configure
-       cd $(DIR_APP) && make $(MAKETUNING) -C lib
-       cd $(DIR_APP) && make $(MAKETUNING) -C mount mount umount
-       cd $(DIR_APP) && make $(MAKETUNING) -C text-utils more
-       cd $(DIR_APP) && cp mount/{,u}mount text-utils/more /tools/bin
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index 730173efd7b22c624c152a95b5561fa529fc8db1..cde3efc820672fa2481f3572b430f8b81f6ba048 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team <info@ipfire.org>                      #
+# Copyright (C) 2007-2012  IPFire Team <info@ipfire.org>                      #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -26,15 +26,19 @@ include Config
 
 VERSUFIX=ipfire$(KCFG)
 
-VER        = git20110427
-
+VER        = 20120916
 THISAPP    = v4l-dvb-$(VER)
 DL_FILE    = $(THISAPP).tar.xz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-PAK_VER    = 2
 TARGET     = $(DIR_INFO)/$(THISAPP)-kmod-$(KVER)-$(VERSUFIX)
 
+ifeq "$(KCFG)" "-xen"
+       XVER = 2.6.32
+       KVER = 2.6.32.59
+else
+       XVER = 3.2.0
+endif
 ###############################################################################
 # Top-level Rules
 ###############################################################################
@@ -43,7 +47,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5 = 8b83a89332fe8468ebffd516a4a47128
+$(DL_FILE)_MD5 = 7824fdd540605c54584df0d16f0e923b
 
 install : $(TARGET)
 
@@ -53,9 +57,6 @@ download :$(patsubst %,$(DIR_DL)/%,$(objects))
 
 md5 : $(subst %,%_MD5,$(objects))
 
-dist: 
-       $(PAK)
-
 ###############################################################################
 # Downloading, checking, md5sum
 ###############################################################################
@@ -76,8 +77,22 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar Jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32
-       cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=2.6.32
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch
+       cd $(DIR_APP) && make allyesconfig KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
+ifeq "$(KCFG)" "-omap"
+       # Disable failing OMAP2 Video Out and IR RX51 driver
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_VIDEO_OMAP2_VOUT=m|# CONFIG_VIDEO_OMAP2_VOUT is not set|g" \
+               v4l/.config
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_IR_RX51=m|# CONFIG_IR_RX51 is not set|g" \
+               v4l/.config
+endif
+       # Disable Radio Shark (missing tuner module)
+       cd $(DIR_APP) && sed -i -e \
+               "s|^CONFIG_RADIO_SHARK=m|# CONFIG_RADIO_SHARK is not set|g" \
+               v4l/.config
+       cd $(DIR_APP) && make all KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
+       cd $(DIR_APP) && make install KERNELRELEASE=$(KVER)-$(VERSUFIX) VER=$(XVER)
        ln -sf $(DIR_APP)/ /usr/src/v4l-dvb
-#      @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/lfs/vdr b/lfs/vdr
index af5b92150b1edf2be7264fe83f7acceb384e2c17..6907e00e3f6e150c1b2f93c3db5c3403d03459dd 100644 (file)
--- a/lfs/vdr
+++ b/lfs/vdr
@@ -104,6 +104,10 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        cd $(DIR_APP)/PLUGINS/src && tar xvf $(DIR_DL)/$(DL_FILE4)
        cd $(DIR_APP)/PLUGINS/src && ln -s epgsearch-0.9.24 epgsearch
        cd $(DIR_APP) && patch -Np1 -i PLUGINS/src/epgsearch/patches/MainMenuHooks-v1_0.patch 
+       cd $(DIR_APP)/PLUGINS/src/epgsearch && sed -i '/include/a #include <langinfo.h>/' \
+               epgsearch.c
+       cd $(DIR_APP)/PLUGINS/src/epgsearch && patch -Np1 < $(DIR_SRC)/src/patches/vdr-plugin-epgsearch-gcc44.patch
+       cd $(DIR_APP) && patch -Np1 < $(DIR_SRC)/src/patches/vdr-1.6.0-gcc44-fixes.patch
        cd $(DIR_APP) && make VIDEODIR=/var/video plugins $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make VIDEODIR=/var/video vdr $(MAKETUNING) $(EXTRA_MAKE)
        cd $(DIR_APP) && make DFB_SUPPORT=1  FB_SUPPORT=1  VIDIX_SUPPORT=1  $(MAKETUNING) $(EXTRA_MAKE)
index 0c29155f00c42ce855a97810806d6daaea611a4a..ce55e76f051626726a4ca3437a62d04042f80578 100644 (file)
--- a/lfs/wget
+++ b/lfs/wget
@@ -30,11 +30,7 @@ THISAPP    = wget-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
+TARGET     = $(DIR_INFO)/$(THISAPP)
 
 ###############################################################################
 # Top-level Rules
@@ -74,15 +70,9 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/ --disable-nls --disable-ipv6
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP)/src && install -m 755 wget /install/initrd/bin
-else
        cd $(DIR_APP) && ./configure --prefix=/usr --with-ssl \
                                        --disable-nls --disable-ipv6
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-endif
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index f60820692b091d7def5a36856e65b1b4a96f6e7c..177caf9e8bf964aa0448b576968dc0539f8e417a 100644 (file)
@@ -80,6 +80,6 @@ ifeq "$(MACHINE_TYPE)" "arm"
 endif
        cd $(DIR_APP)/wpa_supplicant && sed -e "s/wpa_cli\ dynamic_eap_methods/wpa_cli\ #dynamic_eap_methods/" -i Makefile
        cd $(DIR_APP)/wpa_supplicant && sed -e "s@/usr/local@/usr@g" -i Makefile
-       cd $(DIR_APP)/wpa_supplicant && CFLAGS+=-I/usr/src/linux/include make && make install
+       cd $(DIR_APP)/wpa_supplicant && make && make install
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
index bd46b641ae6098f56abec891ae2aecc75852b637..3bfeb11c516650e097b83ce62011f7f3109ceb68 100644 (file)
@@ -1,7 +1,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007-2011  IPFire Team  <info@ipfire.org>                     #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -29,6 +29,8 @@ VER = ipfire
 THISAPP    = xen-image
 TARGET     = $(DIR_INFO)/$(THISAPP)
 
+KVER = `grep "^VER " $(DIR_SRC)/lfs/linux2 | sed "s| ||g" | cut -d"=" -f2`
+
 ###############################################################################
 # Top-level Rules
 ###############################################################################
index 0dd83d33afa052e3f854c14d8b17de0755e9b59a..2a548be832f76a448098b0cb4db36d4aeba7f179 100644 (file)
@@ -77,6 +77,9 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && sed -i "/include/a #include <sys\/stat.h>" \
+               libxfs/xfs_ialloc.c quota/quot.c mdrestore/xfs_mdrestore.c \
+               rtcp/xfs_rtcp.c
        cd $(DIR_APP) && make DEBUG=-DNDEBUG INSTALL_USER=root INSTALL_GROUP=root \
                                                                                                LOCAL_CONFIGURE_OPTIONS="--enable-readline=yes"
        cd $(DIR_APP) && make install
diff --git a/lfs/xz b/lfs/xz
index 4845227c8d2145ee99b4f333ef538d8a9d928b76..cff9bb3ded1caa8fccf420da6fb5afb267ec6800 100644 (file)
--- a/lfs/xz
+++ b/lfs/xz
@@ -31,7 +31,13 @@ DL_FILE    = $(THISAPP).tar.bz2
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 
-TARGET = $(DIR_INFO)/$(THISAPP)
+ifeq "$(ROOT)" ""
+       PREFIX = /usr
+       TARGET = $(DIR_INFO)/$(THISAPP)
+else
+       PREFIX = /tools
+       TARGET = $(DIR_INFO)/$(THISAPP)-tools
+endif
 
 ###############################################################################
 # Top-level Rules
@@ -43,7 +49,6 @@ $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
 $(DL_FILE)_MD5 = cc4044fcc073b8bcf3164d1d0df82161
 
-
 install : $(TARGET)
 
 check : $(patsubst %,$(DIR_CHK)/%,$(objects))
@@ -72,7 +77,7 @@ $(subst %,%_MD5,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
        @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-       cd $(DIR_APP) && ./configure --prefix=/usr
+       cd $(DIR_APP) && ./configure --prefix=$(PREFIX)
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
        @rm -rf $(DIR_APP)
index a5a6849acb7211535a22f8dcf459dfc6ca2a3136..5337c7724a00d71314459fb932c75ba0816fb070 100644 (file)
--- a/lfs/zlib
+++ b/lfs/zlib
 
 include Config
 
-VER        = 1.2.3
+VER        = 1.2.7
 
 THISAPP    = zlib-$(VER)
-DL_FILE    = $(THISAPP).tar.bz2
+DL_FILE    = $(THISAPP).tar.gz
 DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
-ifeq "$(LFS_PASS)" "install"
-  TARGET     = $(DIR_INFO)/$(THISAPP)-install
-else
-  TARGET     = $(DIR_INFO)/$(THISAPP)
-endif
-CFLAGS    += -fPIC
+TARGET     = $(DIR_INFO)/$(THISAPP)
+
+CFLAGS    += -fPIC -DPIC
 
 ###############################################################################
 # Top-level Rules
@@ -44,7 +41,7 @@ objects = $(DL_FILE)
 
 $(DL_FILE)                           = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_MD5                       = dee233bf288ee795ac96a98cc2e369b6
+$(DL_FILE)_MD5                       = 60df6a37c56e7c1366cca812414f7b85
 
 install : $(TARGET)
 
@@ -73,23 +70,14 @@ $(subst %,%_MD5,$(objects)) :
 
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
        @$(PREBUILD)
-       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar jxf $(DIR_DL)/$(DL_FILE)
-ifeq "$(LFS_PASS)" "install"
-       cd $(DIR_APP) && ./configure --prefix=/opt/$(MACHINE)-uClibc    
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       chmod -v 644 /opt/$(MACHINE)-uClibc/lib/libz.a
-else
-       cd $(DIR_APP) && ./configure --prefix=/usr --shared --libdir=/lib
+       @rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar axf $(DIR_DL)/$(DL_FILE)
+       cd $(DIR_APP) && ./configure --prefix=/usr --shared
        cd $(DIR_APP) && make $(MAKETUNING)
        cd $(DIR_APP) && make install
-       rm -v /lib/libz.so
-       ln -sfv ../../lib/libz.so.1.2.3 /usr/lib/libz.so
-       cd $(DIR_APP) && make clean
-       cd $(DIR_APP) && ./configure --prefix=/usr
-       cd $(DIR_APP) && make $(MAKETUNING)
-       cd $(DIR_APP) && make install
-       chmod -v 644 /usr/lib/libz.a
-endif
+
+       mv -v /usr/lib/libz.so.$(VER) /lib/libz.so.$(VER)
+       ln -svf libz.so.$(VER) /lib/libz.so.1
+       rm -vf /usr/lib/libz.so.1
+
        @rm -rf $(DIR_APP)
        @$(POSTBUILD)
diff --git a/make.sh b/make.sh
index 773da6629287c837c76f654e3c7ba0bd9753c661..92e5762f80ead393843af14a149c08d179268007 100755 (executable)
--- a/make.sh
+++ b/make.sh
@@ -24,7 +24,7 @@
 
 NAME="IPFire"                                                  # Software name
 SNAME="ipfire"                                                 # Short name
-VERSION="2.11"                                                 # Version number
+VERSION="2.13"                                                 # Version number
 CORE="63"                                                      # Core Level (Filename)
 PAKFIRE_CORE="62"                                              # Core Level (PAKFIRE)
 GIT_BRANCH=`git status | head -n1 | cut -d" " -f4`             # Git Branch
@@ -37,12 +37,11 @@ KVER=`grep --max-count=1 VER lfs/linux | awk '{ print $3 }'`
 MACHINE=`uname -m`
 GIT_TAG=$(git tag | tail -1)                                   # Git Tag
 GIT_LASTCOMMIT=$(git log | head -n1 | cut -d" " -f2 |head -c8) # Last commit
-TOOLCHAINVER=3
+TOOLCHAINVER=5
 
 BUILDMACHINE=$MACHINE
     if [ "$MACHINE" = "x86_64" ]; then
         BUILDMACHINE="i686";
-        linux32="linux32";
     fi
 
 
@@ -214,15 +213,10 @@ prepareenv() {
     mount --bind $BASEDIR/log    $BASEDIR/build/usr/src/log
     mount --bind $BASEDIR/src    $BASEDIR/build/usr/src/src
 
-    # This is a temporary hack!!!
-    if [ ! -f /tools/bin/hostname ]; then
-      cp -f /bin/hostname /tools/bin/hostname 2>/dev/null
-    fi
-
     # Run LFS static binary creation scripts one by one
     export CCACHE_DIR=$BASEDIR/ccache
     export CCACHE_COMPRESS=1
-    export CCACHE_HASHDIR=1
+    export CCACHE_COMPILERCHECK="none"
 
     # Remove pre-install list of installed files in case user erase some files before rebuild
     rm -f $BASEDIR/build/usr/src/lsalr 2>/dev/null
@@ -232,7 +226,7 @@ buildtoolchain() {
     local error=false
     case "${MACHINE}:$(uname -m)" in
         # x86
-        i586:i586|i586:i686)
+        i586:i586|i586:i686|i586:x86_64)
             # These are working.
             ;;
         i586:*)
@@ -240,7 +234,7 @@ buildtoolchain() {
             ;;
 
         # ARM
-        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv7l)
+        armv5tel:armv5tel|armv5tel:armv5tejl|armv5tel:armv6l|armv5tel:armv7l)
             # These are working.
             ;;
         armv5tel:*)
@@ -251,34 +245,28 @@ buildtoolchain() {
     ${error} && \
         exiterror "Cannot build ${MACHINE} toolchain on $(uname -m). Please use the download if any."
 
-    if [ "$(uname -r | grep ipfire)" ]; then
-        exiterror "Cannot build toolchain on ipfire. Please use the download."
+    local gcc=$(type -p gcc)
+    if [ -z "${gcc}" ]; then
+        exiterror "Could not find GCC. You will need a working build enviroment in order to build the toolchain."
     fi
 
     LOGFILE="$BASEDIR/log/_build.toolchain.log"
     export LOGFILE
-    NATIVEGCC=`gcc --version | grep GCC | awk {'print $3'}`
-    export NATIVEGCC GCCmajor=${NATIVEGCC:0:1} GCCminor=${NATIVEGCC:2:1} GCCrelease=${NATIVEGCC:4:1}
-    ORG_PATH=$PATH
-    lfsmake1 ccache    PASS=1
-    lfsmake1 make      PASS=1
-    lfsmake1 binutils  PASS=1
-    lfsmake1 gcc               PASS=1
-    export PATH=$BASEDIR/build/usr/local/bin:$BASEDIR/build/tools/bin:$PATH
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake1 linux TOOLS=1 HEADERS=1
-    else
-        lfsmake1 linux-libc-header
-    fi
+
+    local ORG_PATH=$PATH
+    export PATH="/tools/ccache/bin:/tools/bin:$PATH"
+    lfsmake1 ccache                    PASS=1
+    lfsmake1 binutils                  PASS=1
+    lfsmake1 gcc                       PASS=1
+    lfsmake1 linux2                    TOOLS=1 HEADERS=1
     lfsmake1 glibc
-    lfsmake1 cleanup-toolchain PASS=1
-    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=1
+    lfsmake1 binutils                  PASS=2
+    lfsmake1 gcc                       PASS=2
+    lfsmake1 ccache                    PASS=2
     lfsmake1 tcl
     lfsmake1 expect
     lfsmake1 dejagnu
-    lfsmake1 gcc               PASS=2
-    lfsmake1 binutils  PASS=2
-    lfsmake1 ccache    PASS=2
     lfsmake1 ncurses
     lfsmake1 bash
     lfsmake1 bzip2
@@ -290,15 +278,15 @@ buildtoolchain() {
     lfsmake1 grep
     lfsmake1 gzip
     lfsmake1 m4
-    lfsmake1 make      PASS=2
+    lfsmake1 make
     lfsmake1 patch
     lfsmake1 perl
     lfsmake1 sed
     lfsmake1 tar
     lfsmake1 texinfo
-    lfsmake1 util-linux
-    lfsmake1 strip
-    lfsmake1 cleanup-toolchain PASS=2
+    lfsmake1 xz
+    lfsmake1 fake-environ
+    lfsmake1 cleanup-toolchain         PASS=2
     export PATH=$ORG_PATH
 }
 
@@ -306,17 +294,19 @@ buildbase() {
     LOGFILE="$BASEDIR/log/_build.base.log"
     export LOGFILE
     lfsmake2 stage2
-    if [ "${MACHINE_TYPE}" = "arm" ]; then
-        lfsmake2 linux HEADERS=1
-    else
-        lfsmake2 linux-libc-header
-    fi
+    lfsmake2 linux2                    HEADERS=1
     lfsmake2 man-pages
     lfsmake2 glibc
     lfsmake2 tzdata
-    lfsmake2 cleanup-toolchain PASS=3
+    lfsmake2 cleanup-toolchain         PASS=3
+    lfsmake2 zlib
     lfsmake2 binutils
+    lfsmake2 gmp
+    lfsmake2 gmp-compat
+    lfsmake2 mpfr
+    lfsmake2 file
     lfsmake2 gcc
+    lfsmake2 sed
     lfsmake2 berkeley
     lfsmake2 coreutils
     lfsmake2 iana-etc
@@ -324,11 +314,12 @@ buildbase() {
     lfsmake2 bison
     lfsmake2 ncurses
     lfsmake2 procps
-    lfsmake2 sed
     lfsmake2 libtool
     lfsmake2 perl
     lfsmake2 readline
-    lfsmake2 zlib
+    lfsmake2 readline-compat
+    lfsmake2 pcre
+    lfsmake2 pcre-compat
     lfsmake2 autoconf
     lfsmake2 automake
     lfsmake2 bash
@@ -336,7 +327,6 @@ buildbase() {
     lfsmake2 diffutils
     lfsmake2 e2fsprogs
     lfsmake2 ed
-    lfsmake2 file
     lfsmake2 findutils
     lfsmake2 flex
     lfsmake2 gawk
@@ -348,7 +338,6 @@ buildbase() {
     lfsmake2 iproute2
     lfsmake2 kbd
     lfsmake2 less
-    lfsmake2 libaal
     lfsmake2 make
     lfsmake2 man
     lfsmake2 mktemp
@@ -356,7 +345,6 @@ buildbase() {
     lfsmake2 net-tools
     lfsmake2 patch
     lfsmake2 psmisc
-    lfsmake2 reiser4progs
     lfsmake2 shadow
     lfsmake2 sysklogd
     lfsmake2 sysvinit
@@ -365,6 +353,7 @@ buildbase() {
     lfsmake2 udev
     lfsmake2 util-linux
     lfsmake2 vim
+    lfsmake2 xz
     lfsmake2 grub
 }
 
@@ -382,93 +371,96 @@ buildipfire() {
   ipfiremake pptp
   ipfiremake unzip
   ipfiremake which
-  ipfiremake xz
   ipfiremake linux-firmware
   ipfiremake zd1211-firmware
+  ipfiremake rpi-firmware
   ipfiremake fw_ath9k_htc
   ipfiremake u-boot
 
   # The xen and PAE kernels are only available for x86
   if [ "${MACHINE_TYPE}" != "arm" ]; then
-    ipfiremake linux                   KCFG="-xen"
-    ipfiremake kqemu                   KCFG="-xen"
+    ipfiremake linux2                  KCFG="-xen"
     ipfiremake v4l-dvb                 KCFG="-xen"
-    ipfiremake madwifi                 KCFG="-xen"
-    ipfiremake mISDN                   KCFG="-xen"
-    ipfiremake dahdi                   KCFG="-xen" KMOD=1
+#    ipfiremake mISDN                  KCFG="-xen"
     ipfiremake cryptodev               KCFG="-xen"
     ipfiremake compat-wireless         KCFG="-xen"
-    ipfiremake r8169                   KCFG="-xen"
-    ipfiremake r8168                   KCFG="-xen"
-    ipfiremake r8101                   KCFG="-xen"
-    ipfiremake e1000                   KCFG="-xen"
-    ipfiremake e1000e                  KCFG="-xen"
-    ipfiremake igb                     KCFG="-xen"
+#    ipfiremake r8169                  KCFG="-xen"
+#    ipfiremake r8168                  KCFG="-xen"
+#    ipfiremake r8101                  KCFG="-xen"
+#    ipfiremake e1000                  KCFG="-xen"
+#    ipfiremake e1000e                 KCFG="-xen"
+#    ipfiremake igb                    KCFG="-xen"
+
     ipfiremake linux                   KCFG="-pae"
-    ipfiremake kqemu                   KCFG="-pae"
-    ipfiremake kvm-kmod                        KCFG="-pae"
+#    ipfiremake kvm-kmod                       KCFG="-pae"
     ipfiremake v4l-dvb                 KCFG="-pae"
-    ipfiremake madwifi                 KCFG="-pae"
     ipfiremake alsa                    KCFG="-pae" KMOD=1
-    ipfiremake mISDN                   KCFG="-pae"
-    ipfiremake dahdi                   KCFG="-pae" KMOD=1
+#    ipfiremake mISDN                  KCFG="-pae"
     ipfiremake cryptodev               KCFG="-pae"
     ipfiremake compat-wireless         KCFG="-pae"
 #    ipfiremake r8169                  KCFG="-pae"
 #    ipfiremake r8168                  KCFG="-pae"
 #    ipfiremake r8101                  KCFG="-pae"
-    ipfiremake e1000                   KCFG="-pae"
-    ipfiremake e1000e                  KCFG="-pae"
-    ipfiremake igb                     KCFG="-pae"
+#    ipfiremake e1000                  KCFG="-pae"
+#    ipfiremake e1000e                 KCFG="-pae"
+#    ipfiremake igb                    KCFG="-pae"
+
     ipfiremake linux                   KCFG=""
+#    ipfiremake kvm-kmod                       KCFG=""
     ipfiremake v4l-dvb                 KCFG=""
-    ipfiremake kqemu                   KCFG=""
-    ipfiremake kvm-kmod                        KCFG=""
-    ipfiremake madwifi                 KCFG=""
     ipfiremake alsa                    KCFG="" KMOD=1
-    ipfiremake mISDN                   KCFG=""
-    ipfiremake dahdi                   KCFG="" KMOD=1
+#    ipfiremake mISDN                  KCFG=""
     ipfiremake cryptodev               KCFG=""
     ipfiremake compat-wireless         KCFG=""
 #    ipfiremake r8169                  KCFG=""
 #    ipfiremake r8168                  KCFG=""
 #    ipfiremake r8101                  KCFG=""
-    ipfiremake e1000                   KCFG=""
-    ipfiremake e1000e                  KCFG=""
-    ipfiremake igb                     KCFG=""
+#    ipfiremake e1000                  KCFG=""
+#    ipfiremake e1000e                 KCFG=""
+#    ipfiremake igb                    KCFG=""
+
   else
-    # arm-versatile kernel build
-    ipfiremake linux                   KCFG="-versatile"
-    ipfiremake v4l-dvb                 KCFG="-versatile"
-    ipfiremake kqemu                   KCFG="-versatile"
-    ipfiremake kvm-kmod                        KCFG="-versatile"
-    ipfiremake madwifi                 KCFG="-versatile"
-    ipfiremake mISDN                   KCFG="-versatile"
-    ipfiremake dahdi                   KCFG="-versatile" KMOD=1
-    ipfiremake cryptodev               KCFG="-versatile"
-    ipfiremake compat-wireless         KCFG="-versatile"
-#  ipfiremake r8169                    KCFG="-versatile"
-#  ipfiremake r8168                    KCFG="-versatile"
-#  ipfiremake r8101                    KCFG="-versatile"
-    ipfiremake e1000                   KCFG="-versatile"
-    ipfiremake e1000e                  KCFG="-versatile"
-    ipfiremake igb                     KCFG="-versatile"
+    # arm-omap kernel build
+    ipfiremake linux                   KCFG="-rpi"
+    ipfiremake v4l-dvb                 KCFG="-rpi"
+#    ipfiremake kvm-kmod                       KCFG="-rpi"
+#    ipfiremake mISDN                  KCFG="-rpi"
+    ipfiremake cryptodev               KCFG="-rpi"
+    ipfiremake compat-wireless         KCFG="-rpi"
+#    ipfiremake r8169                  KCFG="-rpi"
+#    ipfiremake r8168                  KCFG="-rpi"
+#    ipfiremake r8101                  KCFG="-rpi"
+#    ipfiremake e1000                  KCFG="-rpi"
+#    ipfiremake e1000e                 KCFG="-rpi"
+#    ipfiremake igb                    KCFG="-rpi"
+
+    ipfiremake linux                   KCFG="-omap"
+    ipfiremake v4l-dvb                 KCFG="-omap"
+#    ipfiremake kvm-kmod                       KCFG="-omap"
+#    ipfiremake mISDN                  KCFG="-omap"
+    ipfiremake cryptodev               KCFG="-omap"
+    ipfiremake compat-wireless         KCFG="-omap"
+#    ipfiremake r8169                  KCFG="-omap"
+#    ipfiremake r8168                  KCFG="-omap"
+#    ipfiremake r8101                  KCFG="-omap"
+#    ipfiremake e1000                  KCFG="-omap"
+#    ipfiremake e1000e                 KCFG="-omap"
+#    ipfiremake igb                    KCFG="-omap"
+
     # arm-kirkwood kernel build
     ipfiremake linux                   KCFG="-kirkwood"
     ipfiremake v4l-dvb                 KCFG="-kirkwood"
-    ipfiremake kqemu                   KCFG="-kirkwood"
-    ipfiremake kvm-kmod                        KCFG="-kirkwood"
-    ipfiremake madwifi                 KCFG="-kirkwood"
-    ipfiremake mISDN                   KCFG="-kirkwood"
-    ipfiremake dahdi                   KCFG="-kirkwood" KMOD=1
+#    ipfiremake kvm-kmod                       KCFG="-kirkwood"
+#    ipfiremake mISDN                  KCFG="-kirkwood"
     ipfiremake cryptodev               KCFG="-kirkwood"
     ipfiremake compat-wireless         KCFG="-kirkwood"
-#  ipfiremake r8169                    KCFG="-kirkwood"
-#  ipfiremake r8168                    KCFG="-kirkwood"
-#  ipfiremake r8101                    KCFG="-kirkwood"
-    ipfiremake e1000                   KCFG="-kirkwood"
-    ipfiremake e1000e                  KCFG="-kirkwood"
-    ipfiremake igb                     KCFG="-kirkwood"
+#    ipfiremake r8169                  KCFG="-kirkwood"
+#    ipfiremake r8168                  KCFG="-kirkwood"
+#    ipfiremake r8101                  KCFG="-kirkwood"
+#    ipfiremake e1000                  KCFG="-kirkwood"
+#    ipfiremake e1000e                 KCFG="-kirkwood"
+#    ipfiremake igb                    KCFG="-kirkwood"
+
   fi
   ipfiremake pkg-config
   ipfiremake linux-atm
@@ -476,7 +468,6 @@ buildipfire() {
   ipfiremake dracut
   ipfiremake expat
   ipfiremake gdbm
-  ipfiremake gmp
   ipfiremake pam
   ipfiremake openssl
   ipfiremake curl
@@ -537,7 +528,6 @@ buildipfire() {
   ipfiremake iptables
   ipfiremake libupnp
   ipfiremake ipaddr
-  ipfiremake iptstate
   ipfiremake iputils
   ipfiremake l7-protocols
   ipfiremake mISDNuser
@@ -579,12 +569,19 @@ buildipfire() {
   ipfiremake python-mechanize
   ipfiremake python-feedparser
   ipfiremake python-rssdler
+  ipfiremake libffi
   ipfiremake glib
   ipfiremake GeoIP
   ipfiremake fwhits
   ipfiremake noip_updater
   ipfiremake ntp
   ipfiremake openssh
+  ipfiremake fontconfig
+  ipfiremake dejavu-fonts-ttf
+  ipfiremake freefont
+  ipfiremake pixman
+  ipfiremake cairo
+  ipfiremake pango
   ipfiremake rrdtool
   ipfiremake setserial
   ipfiremake setup
@@ -599,7 +596,6 @@ buildipfire() {
   ipfiremake traceroute
   ipfiremake vlan
   ipfiremake wireless
-  ipfiremake libsafe
   ipfiremake pakfire
   ipfiremake spandsp
   ipfiremake lzo
@@ -615,7 +611,6 @@ buildipfire() {
   ipfiremake wget
   ipfiremake bridge-utils
   ipfiremake screen
-  ipfiremake hddtemp
   ipfiremake smartmontools
   ipfiremake htop
   ipfiremake postfix
@@ -642,7 +637,6 @@ buildipfire() {
   ipfiremake cmake
   ipfiremake gnump3d
   ipfiremake libsigc++
-  ipfiremake applejuice
   ipfiremake libtorrent
   ipfiremake rtorrent
   ipfiremake ipfireseeder
@@ -661,7 +655,6 @@ buildipfire() {
   ipfiremake vsftpd
   ipfiremake strongswan
   ipfiremake lsof
-  ipfiremake centerim
   ipfiremake br2684ctl
   ipfiremake pcmciautils
   ipfiremake lm_sensors
@@ -673,7 +666,6 @@ buildipfire() {
   ipfiremake fbset
   ipfiremake sdl
   ipfiremake qemu
-  ipfiremake qemu-kqemu
   ipfiremake sane
   ipfiremake netpbm
   ipfiremake phpSANE
@@ -681,8 +673,6 @@ buildipfire() {
   ipfiremake nagios
   ipfiremake nagios_nrpe
   ipfiremake ebtables
-  ipfiremake fontconfig
-  ipfiremake freefont
   ipfiremake directfb
   ipfiremake dfb++
   ipfiremake faad2
@@ -715,7 +705,6 @@ buildipfire() {
   ipfiremake netcat
   ipfiremake 7zip
   ipfiremake lynis
-  ipfiremake splix
   ipfiremake streamripper
   ipfiremake sshfs
   ipfiremake taglib
@@ -737,7 +726,6 @@ buildipfire() {
   ipfiremake nut
   ipfiremake watchdog
   ipfiremake libpri
-  ipfiremake dahdi
   ipfiremake asterisk
   ipfiremake lcr
   ipfiremake usb_modeswitch
@@ -770,6 +758,7 @@ buildipfire() {
   ipfiremake mtr
   ipfiremake tcpick
   ipfiremake minidlna
+  ipfiremake acpid
   ipfiremake fping
   ipfiremake telnet
   echo Build on $HOSTNAME > $BASEDIR/build/var/ipfire/firebuild
@@ -796,7 +785,6 @@ buildinstaller() {
   ipfiremake mbr
   ipfiremake memtest
   ipfiremake installer
-  cp -f $BASEDIR/doc/COPYING $BASEDIR/build/install/initrd/
   installmake strip
   ipfiremake initrd
 }
@@ -1038,9 +1026,7 @@ toolchain)
        echo "`date -u '+%b %e %T'`: Create toolchain tar.gz for $MACHINE" | tee -a $LOGFILE
        test -d $BASEDIR/cache/toolchains || mkdir -p $BASEDIR/cache/toolchains
        cd $BASEDIR && tar -zc --exclude='log/_build.*.log' -f cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
-               build/{bin,etc,usr/bin,usr/local} \
-               build/tools/{bin,etc,*-linux-gnu*,include,lib,libexec,sbin,share,var} \
-               log >> $LOGFILE
+               build/tools build/bin/sh log >> $LOGFILE
        md5sum cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.tar.gz \
                > cache/toolchains/$SNAME-$VERSION-toolchain-$TOOLCHAINVER-$MACHINE.md5
        stdumount
index a75bdf27f971713fb449477caa1450e2732b4aa9..3c3a3b42aeb579065d949f2f719f17f9969a699c 100644 (file)
@@ -19,7 +19,7 @@ all: $(LIB)
        $(CC) $(CFLAGS) -o $@ -c $<
 
 $(LIB): $(OBJECTS)
-       $(CC) $(CFLAGS) -shared -o $@ $? -ldl
+       $(CC) $(CFLAGS) -shared -o $@ $? -ldl -static-libgcc
 
 .PHONY: install
 install: all
index 8913eb991e7f831f55cd9162f7f6bff5a661c0ce..3dbd1addd50230fed436e5d919ccc1b7f9ac779b 100644 (file)
@@ -2,11 +2,11 @@
 ########################################################################
 # Begin $rc_base/init.d/fsresize
 #
-# Description : Resize the /var filesystem
+# Description : Resize the root filesystem in the background
 #
 # Authors     : Arne Fitzenreiter - arne_f@ipfire.org
 #
-# Version     : 1.00
+# Version     : 1.01
 #
 # Notes       :
 #
 
 case "${1}" in
        start)
-               boot_mesg "Mounting root file system in read/write mode ..."
-               mount -o remount,rw / > /dev/null
-               evaluate_retval
-
-               boot_mesg "Autoresize /var partition to use the whole drive ..."
+               boot_mesg "Background Autoresize root partition to use the whole drive"
                # Detect device
                ROOT=`mount | grep -m1 " / " | cut -d" " -f1`;
                DRV=${ROOT::`expr length $ROOT`-1}
-               boot_mesg " * check filesystem on ${DRV}4 before resize ..."
-               fsck -f -y ${DRV}4
 
-               boot_mesg " * resize ${DRV}4 ..."
-               resize2fs -p ${DRV}4
-               evaluate_retval
+               boot_mesg "resize ${DRV}3 ..."
+               nice -n 19 $0 background ${DRV}3 > /dev/null &
+               ;;
+       background)
+               resize2fs -p $2
 
                # Erase symlink, it should run only once
-               rm -f /etc/rc.d/rcsysinit.d/S26fsresize
+               rm -f /etc/rc.d/rcsysinit.d/S42fsresize
                sync
-
                exit 0;
+
                ;;
+
        *)
                echo "Usage: ${0} {start}"
                exit 1
index 8eddc46c373a456c1661700bd32fad348ba55b26..33b56266a403289b181ed8ede518a5c372c94afb 100644 (file)
@@ -2,11 +2,11 @@
 ########################################################################
 # Begin $rc_base/init.d/partresize
 #
-# Description : Resize the /var partition to the drivesize
+# Description : Resize the root partition to the drivesize
 #
 # Authors     : Arne Fitzenreiter - arne_f@ipfire.org
 #
-# Version     : 1.00
+# Version     : 1.01
 #
 # Notes       :
 #
@@ -24,10 +24,14 @@ case "${1}" in
 
                # Detect device
                ROOT=`mount | grep -m1 " / " | cut -d" " -f1`;
-               DRV=${ROOT::`expr length $ROOT`-1}
-
-               boot_mesg "Change Partition 4 to all free space ..."
-               echo -e 'd\n4\nn\np\n4\n\n\nw\nq\n' | fdisk ${DRV}
+               if [ "${ROOT:`expr length $ROOT`-2:1}" == "p" ]; then
+                       DRV=${ROOT::`expr length $ROOT`-2}
+               else
+                       DRV=${ROOT::`expr length $ROOT`-1}
+               fi
+
+               boot_mesg "Change Partition ${DRV}3 to all free space ..."
+               echo -e 'd\n3\nn\np\n3\n\n\nw\nq\n' | fdisk ${DRV}
 
                # Erase symlink, it should run only once
                rm -f /etc/rc.d/rcsysinit.d/S25partresize
index 0e5a1e1e46b7839d61f42808a45699192cde0def..848dec6ad4ff0fc55a97b644517576ad41128af1 100644 (file)
@@ -43,10 +43,6 @@ case "$1" in
                        mkdir -p /var/run/mysql
                        chown mysql:mysql /var/run/mysql
                fi
-               if [ ! -e /var/run/pluto ]; then
-                       mkdir -p /var/run/pluto
-                       chmod 700 /var/run/pluto
-               fi
                if [ ! -e /var/run/saslauthd ]; then
                        mkdir -p /var/run/saslauthd
                fi
index a3c95f7515b0f29e71742a12555e5ebae1e7c08e..89106de2280311a9e462bd2e592007963d6e8684 100644 (file)
 
 CC      = gcc 
 CFLAGS  = -Os -Wall
-INCLUDE = -I/opt/i586-uClibc/include
+INCLUDE =
 
 LD      = gcc
-LDFLAGS = -L/install/lib
+LDFLAGS =
 LIBS    = -lnewt -lslang -lpci
 
 COMPILE = $(CC) -c $(INCLUDE) $(CFLAGS)
index daa1c3f26f2aa92787b390464895b234eb257923..319dfded7ea8c1489b736d9a00feef7788bcac19 100644 (file)
@@ -14,6 +14,7 @@
  
 #define INST_FILECOUNT 10700
 #define UNATTENDED_CONF "/cdrom/boot/unattended.conf"
+#define LICENSE_FILE   "/cdrom/COPYING"
 
 #define EXT2 0
 #define EXT3 1
@@ -120,19 +121,9 @@ int main(int argc, char *argv[])
                }
        }
 
-       // Read gpl ...
-       if (! (copying = fopen("/COPYING", "r")))
-       {
-               fprintf(flog,      "Couldn't open gpl (/COPYING)\n");
-               sprintf(discl_msg, "Couldn't open gpl (/COPYING)\n");
-       } else {
-               fread(discl_msg, 1, 40000, copying);
-               fclose(copying);
-       }
-
        // Load common modules
        mysystem("/sbin/modprobe iso9660"); // CDROM
-       mysystem("/sbin/modprobe ext2"); // Boot patition
+//     mysystem("/sbin/modprobe ext2"); // Boot patition
        mysystem("/sbin/modprobe vfat"); // USB key
        
        /* German is the default */
@@ -157,11 +148,6 @@ int main(int argc, char *argv[])
        if (!unattended) {
                sprintf(message, ctr[TR_WELCOME], NAME);
                newtWinMessage(title, ctr[TR_OK], message);
-
-               if (disclaimerbox(discl_msg)==0) {
-                       errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
-                       goto EXIT;
-               }
        }
 
        mysystem("/bin/mountsource.sh");
@@ -178,7 +164,23 @@ int main(int argc, char *argv[])
        fgets(sourcedrive, 5, handle);
        fprintf(flog, "Source drive: %s\n", sourcedrive);
        fclose(handle);
-       
+
+       if (!unattended) {
+               // Read the license file.
+               if (!(copying = fopen(LICENSE_FILE, "r"))) {
+                       sprintf(discl_msg, "Could not open license file: %s\n", LICENSE_FILE);
+                       fprintf(flog, discl_msg);
+               } else {
+                       fread(discl_msg, 1, 40000, copying);
+                       fclose(copying);
+
+                       if (disclaimerbox(discl_msg)==0) {
+                               errorbox(ctr[TR_LICENSE_NOT_ACCEPTED]);
+                               goto EXIT;
+                       }
+               }
+       }
+
        i = 0;
        while (found == 0) {
                i++;
@@ -373,18 +375,18 @@ int main(int argc, char *argv[])
                errorbox(ctr[TR_UNABLE_TO_PARTITION]);
                goto EXIT;
        }
-       
+
        if (fstype == EXT2) {
-               mysystem("/sbin/modprobe ext2");
+//             mysystem("/sbin/modprobe ext2");
                sprintf(mkfscommand, "/sbin/mke2fs -T ext2");
        } else if (fstype == REISERFS) {
                mysystem("/sbin/modprobe reiserfs");
                sprintf(mkfscommand, "/sbin/mkreiserfs -f");
        } else if (fstype == EXT3) {
-               mysystem("/sbin/modprobe ext3");
+//             mysystem("/sbin/modprobe ext3");
                sprintf(mkfscommand, "/sbin/mke2fs -T ext3");
        } else if (fstype == EXT4) {
-               mysystem("/sbin/modprobe ext4");
+//             mysystem("/sbin/modprobe ext4");
                sprintf(mkfscommand, "/sbin/mke2fs -T ext4");
        }
 
@@ -510,6 +512,15 @@ int main(int argc, char *argv[])
 
        system("/bin/sed -e 's#/harddisk#/#g' -e 's#//#/#g'  < /proc/mounts > /harddisk/etc/mtab");
 
+       /*
+        * Generate device.map to help grub finding the device to install itself on.
+        */
+       FILE *f = NULL;
+       if (f = fopen("/harddisk/boot/grub/device.map", "w")) {
+               fprintf(f, "(hd0) %s\n", hdparams.devnode_disk);
+               fclose(f);
+       }
+
        snprintf(commandstring, STRING_SIZE, 
                 "/usr/sbin/chroot /harddisk /usr/sbin/grub-install --no-floppy %s", hdparams.devnode_disk);
        if (runcommandwithstatus(commandstring, ctr[TR_INSTALLING_GRUB])) {
index 00243a99b2066b1794491502e9f986348bb563b3..749d4fa5e8df8ee10280eae4d7f07dcb1756d031 100644 (file)
@@ -1,8 +1,7 @@
-#!/bin/sh
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
 #                                                                             #
 ###############################################################################
 
+# Set histchars to an empty string so we are able to replace an
+# exclamation mark.
+histchars=
+
 echo "Scanning for possible destination drives"
 
-# scan IDE devices
-echo "--> IDE"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b IDE | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is empty - SKIP"
-                       continue
-               fi
-               mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}1 is source drive - SKIP"
-                       continue
-               else
-                       umount /harddisk 2> /dev/null
-                       echo -n "$DEVICE" > /tmp/dest_device
-                       echo "${DEVICE} - yes, it is our destination"
-                       exit 0 # IDE / use DEVICE for grub
-               fi
-done
+function _mount() {
+       local what=${1}
+
+       # Don't mount if the device does not exist.
+       [ -e "${what}" ] || return 1
+
+       mount ${what} /harddisk 2>/dev/null
+}
+
+function _umount() {
+       umount -l /harddisk 2>/dev/null
+}
+
+function check_source_drive() {
+       local device="/dev/${1}"
+
+       local ret=1
+       local dev
+       for dev in ${device} ${device}1; do
+               # Mount the device (if possible).
+               _mount ${dev} || continue
 
-# scan USB/SCSI devices
-echo "--> USB/SCSI"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b SCSI | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is empty - SKIP"
-                       continue
-               fi
-               mount /dev/${DEVICE} /harddisk 2> /dev/null
                if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE} is source drive - SKIP"
-                       continue
-               else
-                       umount /harddisk 2> /dev/null
-                       mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE}1 is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               echo -n "$DEVICE" > /tmp/dest_device
-                               echo "${DEVICE} - yes, it is our destination"
-                               exit 1 # SCSI/USB (always use /dev/sda as bootdevicename)
-                       fi
+                       ret=0
                fi
-done
 
-# scan RAID devices
-echo "--> RAID"
-for DEVICE in $(kudzu -qps -t 30 -c HD -b RAID | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               if [ "$(grep ${DEVICE}p1 /proc/partitions)" = "" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}p1 is empty - SKIP"
+               _umount
+
+               # Stop if the device has been detected as a source drive.
+               [ "${ret}" = "0" ] && break
+       done
+
+       return ${ret}
+}
+
+for path in /sys/block/*; do
+       device=$(basename ${path})
+
+       # Skip devices which cannot be used.
+       case "${device}" in
+               # Virtual devices.
+               loop*|ram*)
                        continue
-               fi
-               mount /dev/${DEVICE}p1 /harddisk 2> /dev/null
-               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                       umount /harddisk 2> /dev/null
-                       echo "${DEVICE}p1 is source drive - SKIP"
+                       ;;
+               # Floppy.
+               fd*)
                        continue
-               else
-                       umount /harddisk 2> /dev/null
-                       if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is empty - SKIP"
-                               continue
-                       fi
-                       mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE}1 is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               mount /dev/${DEVICE} /harddisk 2> /dev/null
-                               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                                       umount /harddisk 2> /dev/null
-                                       echo "${DEVICE} is source drive - SKIP"
-                                       continue
-                               else
-                                       echo -n "$DEVICE" > /tmp/dest_device
-                                       echo "${DEVICE} - yes, it is our destination"
-                                       exit 2 # Raid ( /dev/device/diskx )
-                               fi
-                       fi
-               fi
-done
+                       ;;
+       esac
 
-# Virtio devices
-echo "--> Virtio"
-for DEVICE in vda vdb vdc vdd; do
-               if [ ! -e /dev/${DEVICE} ]; then
-                       continue
-               else
-                       if [ "$(grep ${DEVICE} /proc/partitions)" = "" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is empty - SKIP"
-                               continue
-                       fi
-                       mount /dev/${DEVICE} /harddisk 2> /dev/null
-                       if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                               umount /harddisk 2> /dev/null
-                               echo "${DEVICE} is source drive - SKIP"
-                               continue
-                       else
-                               umount /harddisk 2> /dev/null
-                               mount /dev/${DEVICE}1 /harddisk 2> /dev/null
-                               if [ -n "$(ls /harddisk/ipfire-*.tlz 2>/dev/null)" ]; then
-                                       umount /harddisk 2> /dev/null
-                                       echo "${DEVICE}1 is source drive - SKIP"
-                                       continue
-                               else
-                                       umount /harddisk 2> /dev/null
-                                       echo -n "$DEVICE" > /tmp/dest_device
-                                       echo "${DEVICE} - yes, it is our destination"
-                                       exit 0 # like ide / use device for grub
-                               fi
-                       fi
+       # Replace any exclamation marks (e.g. cciss!c0d0).
+       device=${device//!/\/}
+
+       # Guess if this could be a raid device.
+       for dev in ${device} ${device}p1; do
+               if [ -e "/dev/${dev}" ]; then
+                       device=${dev}
+                       break
                fi
-done
+       done
 
+       echo "Checking ${device}"
+       if check_source_drive ${device}; then
+               echo "  is source drive - skipping"
+               continue
+       fi
+
+       # Found it.
+       echo "  OK, this is it..."
+       echo -n "${device}" > /tmp/dest_device
+
+       # Exit code table:
+       #  1: sda
+       #  2: RAID
+       # 10: nothing found
+       case "${device}" in
+               *p1|*c0d0)
+                       exit 2
+                       ;;
+               *)
+                       exit 1
+                       ;;
+       esac
+done
 
-exit 10 # Nothing found
+# Nothing found.
+exit 10
index 6813758778da4ff93b586ba43c8e3a8e7dede357..fbaec7e6e4ad806424cbc0160ada4564e7fd0c71 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2007  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2007-2012  IPFire Team  <info@ipfire.org>                     #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -21,8 +21,9 @@
 
 echo "Scanning source media"
 
-# scan CDROM devices
-for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sort | uniq); do
+# scan all Block devices
+for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
+do
                mount /dev/${DEVICE} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
                        echo -n ${DEVICE} > /tmp/source_device
@@ -34,9 +35,10 @@ for DEVICE in $(kudzu -qps -t 30 -c CDROM | grep device: | cut -d ' ' -f 2 | sor
                umount /cdrom 2> /dev/null
 done
 
-# scan HD device part1 (usb sticks, etc.)
-for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-       for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///");do
+# scan all Partitions on block devices
+for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
+do
+       for DEVICEP in $(ls /dev/${DEVICE}? | sed "s/\/dev\///" 2> /dev/null);do
                mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
                        echo -n ${DEVICEP} > /tmp/source_device
@@ -49,17 +51,20 @@ for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort |
        done
 done
 
-# scan HD device unpart (usb sticks, etc.)
-for DEVICE in $(kudzu -qps -t 30 -c HD | grep device: | cut -d ' ' -f 2 | sort | uniq); do
-               mount /dev/${DEVICE} /cdrom 2> /dev/null
+# scan all Partitions on raid/mmc devices
+for DEVICE in `find /sys/block/* -maxdepth 0 ! -name fd* ! -name loop* ! -name ram* -exec basename {} \;`
+do
+       for DEVICEP in $(ls /dev/${DEVICE}p? | sed "s/\/dev\///");do
+               mount /dev/${DEVICEP} /cdrom 2> /dev/null
                if [ -n "$(ls /cdrom/ipfire-*.tlz 2>/dev/null)" ]; then
-                       echo -n ${DEVICE} > /tmp/source_device
-                       echo "Found tarball on ${DEVICE}"
+                       echo -n ${DEVICEP} > /tmp/source_device
+                       echo "Found tarball on ${DEVICEP}"
                        exit 0
                else
-                       echo "Found no tarballs on ${DEVICE} - SKIP"
+                       echo "Found no tarballs on ${DEVICEP} - SKIP"
                fi
                umount /cdrom 2> /dev/null
+       done
 done
 
 exit 10
index 3072b0186058a4ef6e02e323947da7caca60479a..fb428cc49a335b3664965638d7396dc4c2a22eb7 100644 (file)
@@ -2,7 +2,7 @@
 ###############################################################################
 #                                                                             #
 # IPFire.org - A linux based firewall                                         #
-# Copyright (C) 2009  Michael Tremer & Christian Schmidt                      #
+# Copyright (C) 2011  IPFire Team  <info@ipfire.org>                          #
 #                                                                             #
 # This program is free software: you can redistribute it and/or modify        #
 # it under the terms of the GNU General Public License as published by        #
@@ -40,10 +40,10 @@ for card in `ls /sys/class/net`; do
                                if [ ! "$hwaddr" == "00:00:00:00:00:00" ];then
                                if [ ! "$hwaddr" == "ff:ff:ff:ff:ff:ff" ];then
 
-                                       driver=`grep PHYSDEVDRIVER= /sys/class/net/$card/uevent | cut -d"=" -f2`
-                                       type=`grep PHYSDEVBUS= /sys/class/net/$card/uevent | cut -d"=" -f2`
+                                       driver=`grep DRIVER= /sys/class/net/$card/device/uevent | cut -d"=" -f2`
+                                       type=`grep MODALIAS= /sys/class/net/$card/device/uevent | cut -d"=" -f2 | cut -d":" -f1`
 
-                                       #Default if not avaiable in /sys/class/net
+                                       #Default if not available in /sys/class/net
                                        if [ "a$type" == "a" ]; then
                                                type="???"
                                        fi
index bc09aa62379c362160f99e35cc80dbdaf9933703..5ce869a5f57b3afd6fae8a20c4f3113ceffea019 100644 (file)
@@ -20,7 +20,7 @@
 
 CC      = gcc
 CFLAGS  = -O2 -Wall
-INCLUDE = -I/opt/i586-uClibc/include
+INCLUDE =
 
 LD      = ld
 LDFLAGS = -i
index 300e9ecbb244caabd7fb447a82259b92d764d6e8..33d1d667e2fa72f3ef98ebe9dddb554b942de0e4 100644 (file)
@@ -29,7 +29,7 @@ SUID_PROGS = setdmzholes setportfw setxtaccess \
        ipsecctrl timectrl dhcpctrl snortctrl \
        applejuicectrl rebuildhosts backupctrl \
        logwatch openvpnctrl outgoingfwctrl \
-       wirelessctrl getipstat getiptstate qosctrl launch-ether-wake \
+       wirelessctrl getipstat qosctrl launch-ether-wake \
        redctrl syslogdctrl extrahdctrl sambactrl upnpctrl tripwirectrl \
        smartctrl clamavctrl addonctrl pakfire mpfirectrl wlanapctrl \
        setaliases urlfilterctrl updxlratorctrl fireinfoctrl rebuildroutes \
diff --git a/src/misc-progs/getiptstate.c b/src/misc-progs/getiptstate.c
deleted file mode 100644 (file)
index 338b531..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* IPFire helper program - IPStat
- *
- * Get the list from IPTABLES -L
- * 
- */
-         
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <sys/types.h>
-#include <fcntl.h>
-#include "setuid.h"
-
-
-int main(void)
-{
-       if (!(initsetuid()))
-               exit(1);
-       
-       safe_system("/usr/sbin/iptstate -1rbt");
-       return 0;
-}
-
index 0b0517713d031d1e481559d7148aeb54c562aaee..65a96e01c8945a6eff25f97d7b7af47c0c30dfd6 100644 (file)
@@ -78,7 +78,6 @@ void ipsec_norules() {
         safe_system("/sbin/iptables -F IPSECINPUT");
         safe_system("/sbin/iptables -F IPSECFORWARD");
         safe_system("/sbin/iptables -F IPSECOUTPUT");
-
 }
 
 /*
@@ -87,8 +86,7 @@ void ipsec_norules() {
 int decode_line (char *s, 
                 char **key,
                 char **name,
-                char **type,
-                char **interface
+                char **type
                 ) {
         int count = 0;
         *key = NULL;
@@ -108,8 +106,6 @@ int decode_line (char *s,
                         *name = result;
                 if (count == 4)
                         *type = result;
-                if (count == 27)
-                        *interface = result;
                 count++;
                 result = strsep(&s, ",");
         }
@@ -128,11 +124,6 @@ int decode_line (char *s,
                 return 0;
         }
 
-        if (! (strcmp(*interface, "RED") == 0 || strcmp(*interface, "GREEN") == 0 ||
-                strcmp(*interface, "ORANGE") == 0 || strcmp(*interface, "BLUE") == 0)) {
-                fprintf(stderr, "Bad interface name: %s\n", *interface);
-                return 0;
-        }
         //it's a valid & active line
         return 1;
 }
@@ -140,69 +131,48 @@ int decode_line (char *s,
 /*
     issue ipsec commmands to turn on connection 'name'
 */
-void turn_connection_on (char *name, char *type) {
-/*
-       Rename the connection and run ipsec update and rename it back to readd
-       a deleted connection. Because ipsec update ignores connection that have
-       not changed since last load.
-*/
+void turn_connection_on(char *name, char *type) {
+       /*
+        * To bring up a connection, we need to reload the configuration
+        * and issue ipsec up afterwards. To make sure the connection
+        * is not established from the start, we bring it down in advance.
+        */
         char command[STRING_SIZE];
-        memset(command, 0, STRING_SIZE);
-        snprintf(command, STRING_SIZE - 1, 
-                "sed -i -e 's|^conn %s$|conn %s-renamed|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name);
-        safe_system(command);
 
-       // Down and delete IKEv2 Tunnel before ipsec update
+       // Bring down the connection (if established).
         snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s >/dev/null", name);
+                "/usr/sbin/ipsec down %s >/dev/null", name);
         safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s >/dev/null", name);
-        safe_system(command);
-
-        safe_system("/etc/rc.d/init.d/ipsec update >/dev/null");
 
-       sleep(1);
+       // Reload the configuration into the daemon.
+       safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
 
-       // Back to original name
-       snprintf(command, STRING_SIZE - 1, 
-                "sed -i -e 's|^conn %s-renamed$|conn %s|g' /var/ipfire/vpn/ipsec.conf >/dev/null", name, name);
-        safe_system(command);
-
-       // Down and delete IKEv2 Tunnel before ipsec update
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s-renamed >/dev/null", name);
-        safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s-renamed >/dev/null", name);
-        safe_system(command);
-
-        safe_system("/etc/rc.d/init.d/ipsec update >/dev/null");
+       // Bring the connection up again.
+       snprintf(command, STRING_SIZE - 1,
+               "/usr/sbin/ipsec up %s >/dev/null", name);
+       safe_system(command);
 }
+
 /*
     issue ipsec commmands to turn off connection 'name'
 */
 void turn_connection_off (char *name) {
+       /*
+        * To turn off a connection, all SAs must be turned down.
+        * After that, the configuration must be reloaded.
+        */
         char command[STRING_SIZE];
-        memset(command, 0, STRING_SIZE);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec whack --delete --name %s >/dev/null", name);
-        safe_system(command);
-        snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke down %s >/dev/null", name);
-        safe_system(command);
+
+       // Bring down the connection.
         snprintf(command, STRING_SIZE - 1, 
-                "/usr/sbin/ipsec stroke delete %s >/dev/null", name);
+                "/usr/sbin/ipsec down %s >/dev/null", name);
         safe_system(command);
 
-        safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
-        safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
-
+       // Reload, so the connection is dropped.
+        safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
 }
 
-
 int main(int argc, char *argv[]) {
-
         char configtype[STRING_SIZE];
         char redtype[STRING_SIZE] = "";
         struct keyvalue *kv = NULL;
@@ -218,26 +188,15 @@ int main(int argc, char *argv[]) {
                 
 
         if (strcmp(argv[1], "I") == 0) {
-                safe_system("/usr/sbin/ipsec whack --status");
-                safe_system("/usr/sbin/ipsec stroke status");
+                safe_system("/usr/sbin/ipsec status");
                 exit(0);
         }
 
         if (strcmp(argv[1], "R") == 0) {
-                safe_system("/usr/sbin/ipsec whack --rereadall >/dev/null");
-                safe_system("/usr/sbin/ipsec stroke rereadall >/dev/null");
+                safe_system("/usr/sbin/ipsec reload >/dev/null 2>&1");
                 exit(0);
         }
 
- /* Get vpnwatch pid */
-
-
-       if ((argc == 2) && (file = fopen("/var/run/vpn-watch.pid", "r"))) {
-           safe_system("kill -9 $(cat /var/run/vpn-watch.pid)");
-           safe_system("unlink /var/run/vpn-watch.pid");
-           close(file);
-       }
         /* FIXME: workaround for pclose() issue - still no real idea why
          * this is happening */
         signal(SIGCHLD, SIG_DFL);
@@ -245,16 +204,10 @@ int main(int argc, char *argv[]) {
         /* handle operations that doesn't need start the ipsec system */
         if (argc == 2) {
                 if (strcmp(argv[1], "D") == 0) {
-                        /* Only shutdown pluto if it really is running */
-                        /* Get pluto pid */
-                        if (file = fopen("/var/run/pluto.pid", "r")) {
-                                safe_system("/etc/rc.d/init.d/ipsec stop 2> /dev/null >/dev/null");
-                                close(file);
-                        }
+                        safe_system("/usr/sbin/ipsec stop >/dev/null 2>&1");
                         ipsec_norules();
                         exit(0);
                 }
-
         }
 
         /* read vpn config */
@@ -300,97 +253,69 @@ int main(int argc, char *argv[]) {
         char if_blue[STRING_SIZE] = "";
         char s[STRING_SIZE];
 
-        if (!(file = fopen(CONFIG_ROOT "/vpn/config", "r"))) {
-                fprintf(stderr, "Couldn't open vpn settings file");
-                exit(1);
-        }
-        while (fgets(s, STRING_SIZE, file) != NULL) {
-                char *key;
-                char *name;
-                char *type;
-                char *interface;
-                if (!decode_line(s,&key,&name,&type,&interface))
-                    continue;
-                /* search interface */
-                if (!enable_red && strcmp (interface, "RED") == 0) {
-                        // when RED is up, find interface name in special file
-                        FILE *ifacefile = NULL;
-                        if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) {
-                            if (fgets(if_red, STRING_SIZE, ifacefile)) {
-                                if (if_red[strlen(if_red) - 1] == '\n')
-                                        if_red[strlen(if_red) - 1] = '\0';
-                            }
-                            fclose (ifacefile);
-
-                            if (VALID_DEVICE(if_red))
-                                enable_red+=2;                  // present and running
-                        }
-                }
-
-                if (!enable_green && strcmp (interface, "GREEN") == 0) {
-                        enable_green = 1;
-                        findkey(kv, "GREEN_DEV", if_green);
-                        if (VALID_DEVICE(if_green))
-                            enable_green++;
-                        else
-                            fprintf(stderr, "IPSec enabled on green but green interface is invalid or not found\n");
+        // when RED is up, find interface name in special file
+        FILE *ifacefile = NULL;
+        if ((ifacefile = fopen(CONFIG_ROOT "/red/iface", "r"))) {
+                if (fgets(if_red, STRING_SIZE, ifacefile)) {
+                        if (if_red[strlen(if_red) - 1] == '\n')
+                                if_red[strlen(if_red) - 1] = '\0';
                 }
+                fclose (ifacefile);
 
-                if (!enable_orange && strcmp (interface, "ORANGE") == 0) {
-                        enable_orange = 1;
-                        findkey(kv, "ORANGE_DEV", if_orange);
-                        if (VALID_DEVICE(if_orange))
-                            enable_orange++;
-                        else
-                            fprintf(stderr, "IPSec enabled on orange but orange interface is invalid or not found\n");
-                }
+                if (VALID_DEVICE(if_red))
+                        enable_red++;
+        }
 
-                if (!enable_blue && strcmp (interface, "BLUE") == 0) {
-                        enable_blue++;
-                        findkey(kv, "BLUE_DEV", if_blue);
-                        if (VALID_DEVICE(if_blue))
-                            enable_blue++;
-                        else
-                            fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n");
+       // Check if GREEN is enabled.
+        findkey(kv, "GREEN_DEV", if_green);
+        if (VALID_DEVICE(if_green))
+                enable_green++;
+        else
+                fprintf(stderr, "IPSec enabled on green but green interface is invalid or not found\n");
+
+       // Check if ORANGE is enabled.
+        findkey(kv, "ORANGE_DEV", if_orange);
+        if (VALID_DEVICE(if_orange))
+                enable_orange++;
+        else
+                fprintf(stderr, "IPSec enabled on orange but orange interface is invalid or not found\n");
+
+       // Check if BLUE is enabled.
+        findkey(kv, "BLUE_DEV", if_blue);
+        if (VALID_DEVICE(if_blue))
+                enable_blue++;
+        else
+                fprintf(stderr, "IPSec enabled on blue but blue interface is invalid or not found\n");
 
-                }
-        }
-        fclose(file);
         freekeyvalues(kv);
 
-        // do nothing if something is in error condition
-        if ((enable_red==1) || (enable_green==1) || (enable_orange==1) || (enable_blue==1) )
-            exit(1);
-
         // exit if nothing to do
-        if ( (enable_red+enable_green+enable_orange+enable_blue) == 0 )
+        if ((enable_red+enable_green+enable_orange+enable_blue) == 0)
             exit(0);
 
         // open needed ports
-        // todo: read a nat_t indicator to allow or not openning UDP/4500
-        if (enable_red==2)
+        if (enable_red > 0)
                 open_physical(if_red, 4500);
 
-        if (enable_green==2)
+        if (enable_green > 0)
                 open_physical(if_green, 4500);
 
-        if (enable_orange==2)
+        if (enable_orange > 0)
                 open_physical(if_orange, 4500);
 
-        if (enable_blue==2)
+        if (enable_blue > 0)
                 open_physical(if_blue, 4500);
 
         // start the system
         if ((argc == 2) && strcmp(argv[1], "S") == 0) {
-               safe_system("/etc/rc.d/init.d/ipsec restart >/dev/null");
-               safe_system("/usr/local/bin/vpn-watch &");
+               safe_system("/usr/sbin/ipsec restart >/dev/null");
                 exit(0);
         }
 
         // it is a selective start or stop
         // second param is only a number 'key'
         if ((argc == 2) || strspn(argv[2], NUMBERS) != strlen(argv[2])) {
-                fprintf(stderr, "Bad arg\n");
+                fprintf(stderr, "Bad arg: %s\n", argv[2]);
                 usage();
                 exit(1);
         }
@@ -404,26 +329,17 @@ int main(int argc, char *argv[]) {
                 char *key;
                 char *name;
                 char *type;
-                char *interface;
-                if (!decode_line(s,&key,&name,&type,&interface))
+                if (!decode_line(s,&key,&name,&type))
                         continue;
 
-                // start/stop a vpn if belonging to specified interface
-                if (strcmp(argv[1], interface) == 0 ) {
-                            if (strcmp(argv[2], "0")==0)
-                                turn_connection_off (name);
-                            else
-                                turn_connection_on (name, type);
-                        continue;
-                }
                 // is it the 'key' requested ?
                 if (strcmp(argv[2], key) != 0)
                         continue;
+
                 // Start or Delete this Connection
                 if (strcmp(argv[1], "S") == 0)
                         turn_connection_on (name, type);
-                else
-                if (strcmp(argv[1], "D") == 0)
+                else if (strcmp(argv[1], "D") == 0)
                         turn_connection_off (name);
                 else {
                         fprintf(stderr, "Bad command\n");
@@ -431,5 +347,6 @@ int main(int argc, char *argv[]) {
                 }
         }
         fclose(file);
+
         return 0;
 }
diff --git a/src/paks/applejuice/install.sh b/src/paks/applejuice/install.sh
deleted file mode 100644 (file)
index 92cd67f..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# IPFire is free software; you can redistribute it and/or modify           #
-# it under the terms of the GNU General Public License as published by     #
-# the Free Software Foundation; either version 2 of the License, or        #
-# (at your option) any later version.                                      #
-#                                                                          #
-# IPFire is distributed in the hope that it will be useful,                #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
-# GNU General Public License for more details.                             #
-#                                                                          #
-# You should have received a copy of the GNU General Public License        #
-# along with IPFire; if not, write to the Free Software                    #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-extract_files
-sleep 60 && /etc/init.d/applejuice start &
-ln -svf ../init.d/applejuice /etc/rc.d/rc0.d/K05applejuice
-ln -svf ../init.d/applejuice /etc/rc.d/rc3.d/S98applejuice
-ln -svf ../init.d/applejuice /etc/rc.d/rc6.d/K05applejuice
-/etc/init.d/apache reload
diff --git a/src/paks/applejuice/update.sh b/src/paks/applejuice/update.sh
deleted file mode 100644 (file)
index 89c40d0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-############################################################################
-#                                                                          #
-# This file is part of the IPFire Firewall.                                #
-#                                                                          #
-# IPFire is free software; you can redistribute it and/or modify           #
-# it under the terms of the GNU General Public License as published by     #
-# the Free Software Foundation; either version 2 of the License, or        #
-# (at your option) any later version.                                      #
-#                                                                          #
-# IPFire is distributed in the hope that it will be useful,                #
-# but WITHOUT ANY WARRANTY; without even the implied warranty of           #
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            #
-# GNU General Public License for more details.                             #
-#                                                                          #
-# You should have received a copy of the GNU General Public License        #
-# along with IPFire; if not, write to the Free Software                    #
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA #
-#                                                                          #
-# Copyright (C) 2007 IPFire-Team <info@ipfire.org>.                        #
-#                                                                          #
-############################################################################
-#
-. /opt/pakfire/lib/functions.sh
-./uninstall.sh
-./install.sh
index 70efa9db7e4b8016a9794ab6a78ab48a9a08ae28..179d607615302967e15068729b1deb688f5732aa 100644 (file)
@@ -24,7 +24,7 @@
 . /opt/pakfire/lib/functions.sh
 extract_files
 #
-KVER=xxxKVERxxx
+KVER=2.6.32.59
 ROOT=`mount | grep " / " | cut -d" " -f1`
 ROOTUUID=`blkid -c /dev/null -sUUID $ROOT | cut -d'"' -f2`
 if [ ! -z $ROOTUUID ]; then
diff --git a/src/patches/bash-3.1-fixes-8.patch b/src/patches/bash-3.1-fixes-8.patch
deleted file mode 100644 (file)
index 449f076..0000000
+++ /dev/null
@@ -1,723 +0,0 @@
-Submitted By: Jeremy Huntwork (jhuntwork at linuxfromscratch dot org)
-Date: 2006-04-11
-Initial Package Version: 3.1
-Origin: http://ftp.gnu.org/gnu/bash/bash-3.1-patches/
-Upstream Status: From Upstream
-Description: Contains patches 001-017 from upstream
-
-diff -Naur bash-3.1.orig/arrayfunc.c bash-3.1/arrayfunc.c
---- bash-3.1.orig/arrayfunc.c  2005-07-04 17:25:58.000000000 -0700
-+++ bash-3.1/arrayfunc.c       2006-04-19 15:59:29.000000000 -0700
-@@ -592,11 +592,7 @@
-   exp = (char *)xmalloc (len);
-   strncpy (exp, s, len - 1);
-   exp[len - 1] = '\0';
--#if 0
--  t = expand_string_to_string (exp, 0);
--#else 
--  t = expand_string_to_string (exp, Q_DOUBLE_QUOTES);
--#endif
-+  t = expand_arith_string (exp, 0);
-   this_command_name = (char *)NULL;
-   val = evalexp (t, &expok);
-   free (t);
-diff -Naur bash-3.1.orig/doc/bash.1 bash-3.1/doc/bash.1
---- bash-3.1.orig/doc/bash.1   2005-10-12 08:40:52.000000000 -0700
-+++ bash-3.1/doc/bash.1        2006-04-19 15:58:34.000000000 -0700
-@@ -6,12 +6,12 @@
- .\"   Case Western Reserve University
- .\"   chet@po.cwru.edu
- .\"
--.\"   Last Change: Sat Aug 27 13:28:44 EDT 2005
-+.\"   Last Change: Wed Dec 28 19:58:45 EST 2005
- .\"
- .\" bash_builtins, strip all but Built-Ins section
- .if \n(zZ=1 .ig zZ
- .if \n(zY=1 .ig zY
--.TH BASH 1 "2005 Aug 27" "GNU Bash-3.1-beta1"
-+.TH BASH 1 "2005 Dec 28" "GNU Bash-3.1"
- .\"
- .\" There's some problem with having a `@'
- .\" in a tagged paragraph with the BSD man macros.
-@@ -677,8 +677,8 @@
- .B nocasematch
- is enabled, the match is performed without regard to the case
- of alphabetic characters.
--The return value is 0 if the string matches or does not match
--the pattern, respectively, and 1 otherwise.
-+The return value is 0 if the string matches (\fB==\fP) or does not match
-+(\fB!=\fP) the pattern, and 1 otherwise.
- Any part of the pattern may be quoted to force it to be matched as a
- string.
- .if t .sp 0.5
-@@ -807,6 +807,12 @@
- as for pathname expansion (see
- .B Pathname Expansion
- below).
-+The \fIword\fP is expanded using tilde
-+expansion, parameter and variable expansion, arithmetic substituion,
-+command substitution, process substitution and quote removal.
-+Each \fIpattern\fP examined is expanded using tilde
-+expansion, parameter and variable expansion, arithmetic substituion,
-+command substitution, and process substitution.
- If the shell option
- .B nocasematch
- is enabled, the match is performed without regard to the case
-@@ -8484,7 +8490,7 @@
- returns true if any of the arguments are found, false if
- none are found.
- .TP
--\fBulimit\fP [\fB\-SHacdflmnpstuv\fP [\fIlimit\fP]]
-+\fBulimit\fP [\fB\-SHacdfilmnpqstuvx\fP [\fIlimit\fP]]
- Provides control over the resources available to the shell and to
- processes started by it, on systems that allow such control.
- The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is
-@@ -8523,6 +8529,9 @@
- .B \-f
- The maximum size of files created by the shell
- .TP
-+.B \-i
-+The maximum number of pending signals
-+.TP
- .B \-l
- The maximum size that may be locked into memory
- .TP
-@@ -8536,6 +8545,9 @@
- .B \-p
- The pipe size in 512-byte blocks (this may not be set)
- .TP
-+.B \-q
-+The maximum number of bytes in POSIX message queues
-+.TP
- .B \-s
- The maximum stack size
- .TP
-@@ -8547,6 +8559,9 @@
- .TP
- .B \-v
- The maximum amount of virtual memory available to the shell
-+.TP
-+.B \-x
-+The maximum number of file locks
- .PD
- .PP
- If
-diff -Naur bash-3.1.orig/doc/bashref.texi bash-3.1/doc/bashref.texi
---- bash-3.1.orig/doc/bashref.texi     2005-10-03 12:07:21.000000000 -0700
-+++ bash-3.1/doc/bashref.texi  2006-04-19 15:58:34.000000000 -0700
-@@ -961,8 +961,8 @@
- (see the description of @code{shopt} in @ref{Bash Builtins})
- is enabled, the match is performed without regard to the case
- of alphabetic characters.
--The return value is 0 if the string matches or does not match
--the pattern, respectively, and 1 otherwise.
-+The return value is 0 if the string matches (@samp{==}) or does not
-+match (@samp{!=})the pattern, and 1 otherwise.
- Any part of the pattern may be quoted to force it to be matched as a
- string.
-@@ -2598,7 +2598,7 @@
- Builtin commands are necessary to implement functionality impossible
- or inconvenient to obtain with separate utilities.
--This section briefly the builtins which Bash inherits from
-+This section briefly describes the builtins which Bash inherits from
- the Bourne Shell, as well as the builtin commands which are unique
- to or have been extended in Bash.
-@@ -3833,7 +3833,7 @@
- @item ulimit
- @btindex ulimit
- @example
--ulimit [-acdflmnpstuvSH] [@var{limit}]
-+ulimit [-acdfilmnpqstuvxSH] [@var{limit}]
- @end example
- @code{ulimit} provides control over the resources available to processes
- started by the shell, on systems that allow such control.  If an
-@@ -3857,6 +3857,9 @@
- @item -f
- The maximum size of files created by the shell.
-+@item -i
-+The maximum number of pending signals.
-+
- @item -l
- The maximum size that may be locked into memory.
-@@ -3869,6 +3872,9 @@
- @item -p
- The pipe buffer size.
-+@item -q
-+The maximum number of bytes in POSIX message queues.
-+
- @item -s
- The maximum stack size.
-@@ -3881,6 +3887,9 @@
- @item -v
- The maximum amount of virtual memory available to the process.
-+@item -x
-+The maximum number of file locks.
-+
- @end table
- If @var{limit} is given, it is the new value of the specified resource;
-@@ -4089,8 +4098,8 @@
- Print shell input lines as they are read.
- @item -x
--Print a trace of simple commands, \fBfor\fP commands, \fBcase\fP
--commands, \fBselect\fP commands, and arithmetic \fBfor\fP commands
-+Print a trace of simple commands, @code{for} commands, @code{case}
-+commands, @code{select} commands, and arithmetic @code{for} commands
- and their arguments or associated word lists after they are
- expanded and before they are executed.  The value of the @env{PS4}
- variable is expanded and the resultant value is printed before
-diff -Naur bash-3.1.orig/doc/version.texi bash-3.1/doc/version.texi
---- bash-3.1.orig/doc/version.texi     2005-09-20 11:52:56.000000000 -0700
-+++ bash-3.1/doc/version.texi  2006-04-19 15:58:34.000000000 -0700
-@@ -2,9 +2,9 @@
- Copyright (C) 1988-2005 Free Software Foundation, Inc.
- @end ignore
--@set LASTCHANGE Mon Sep  5 11:47:04 EDT 2005
-+@set LASTCHANGE Fri Dec 30 10:50:51 EST 2005
--@set EDITION 3.1-beta1
--@set VERSION 3.1-beta1
--@set UPDATED 5 September 2005
--@set UPDATED-MONTH September 2005
-+@set EDITION 3.1
-+@set VERSION 3.1
-+@set UPDATED 30 December 2005
-+@set UPDATED-MONTH December 2005
-diff -Naur bash-3.1.orig/jobs.c bash-3.1/jobs.c
---- bash-3.1.orig/jobs.c       2005-11-11 20:13:27.000000000 -0800
-+++ bash-3.1/jobs.c    2006-04-19 15:58:34.000000000 -0700
-@@ -619,8 +619,11 @@
-          * once in the parent and once in each child.  This is where
-          * the parent gives it away.
-          *
-+         * Don't give the terminal away if this shell is an asynchronous
-+         * subshell.
-+         *
-          */
--        if (job_control && newjob->pgrp)
-+        if (job_control && newjob->pgrp && (subshell_environment&SUBSHELL_ASYNC) == 0)
-           give_terminal_to (newjob->pgrp, 0);
-       }
-     }
-@@ -844,9 +847,10 @@
- realloc_jobs_list ()
- {
-   sigset_t set, oset;
--  int nsize, i, j;
-+  int nsize, i, j, ncur, nprev;
-   JOB **nlist;
-+  ncur = nprev = NO_JOB;
-   nsize = ((js.j_njobs + JOB_SLOTS - 1) / JOB_SLOTS);
-   nsize *= JOB_SLOTS;
-   i = js.j_njobs % JOB_SLOTS;
-@@ -854,17 +858,51 @@
-     nsize += JOB_SLOTS;
-   BLOCK_CHILD (set, oset);
--  nlist = (JOB **) xmalloc (nsize * sizeof (JOB *));
-+  nlist = (js.j_jobslots == nsize) ? jobs : (JOB **) xmalloc (nsize * sizeof (JOB *));
-+
-   for (i = j = 0; i < js.j_jobslots; i++)
-     if (jobs[i])
--      nlist[j++] = jobs[i];
-+      {
-+      if (i == js.j_current)
-+        ncur = j;
-+      if (i == js.j_previous)
-+        nprev = j;
-+      nlist[j++] = jobs[i];
-+      }
-+
-+#if defined (DEBUG)
-+  itrace ("realloc_jobs_list: resize jobs list from %d to %d", js.j_jobslots, nsize);
-+  itrace ("realloc_jobs_list: j_lastj changed from %d to %d", js.j_lastj, (j > 0) ? j - 1 : 0);
-+  itrace ("realloc_jobs_list: j_njobs changed from %d to %d", js.j_njobs, (j > 0) ? j - 1 : 0);
-+#endif
-   js.j_firstj = 0;
--  js.j_lastj = (j > 0) ? j - 1: 0;
-+  js.j_lastj = (j > 0) ? j - 1 : 0;
-+  js.j_njobs = j;
-   js.j_jobslots = nsize;
--  free (jobs);
--  jobs = nlist;
-+  /* Zero out remaining slots in new jobs list */
-+  for ( ; j < nsize; j++)
-+    nlist[j] = (JOB *)NULL;
-+
-+  if (jobs != nlist)
-+    {
-+      free (jobs);
-+      jobs = nlist;
-+    }
-+
-+  if (ncur != NO_JOB)
-+    js.j_current = ncur;
-+  if (nprev != NO_JOB)
-+    js.j_previous = nprev;
-+
-+  /* Need to reset these */
-+  if (js.j_current == NO_JOB || js.j_previous == NO_JOB || js.j_current > js.j_lastj || js.j_previous > js.j_lastj)
-+    reset_current ();
-+
-+#ifdef DEBUG
-+  itrace ("realloc_jobs_list: reset js.j_current (%d) and js.j_previous (%d)", js.j_current, js.j_previous);
-+#endif
-   UNBLOCK_CHILD (oset);
- }
-@@ -1655,7 +1693,7 @@
-            In this case, we don't want to give the terminal to the
-            shell's process group (we could be in the middle of a
-            pipeline, for example). */
--        if (async_p == 0 && pipeline_pgrp != shell_pgrp)
-+        if (async_p == 0 && pipeline_pgrp != shell_pgrp && ((subshell_environment&SUBSHELL_ASYNC) == 0))
-           give_terminal_to (pipeline_pgrp, 0);
- #if defined (PGRP_PIPE)
-@@ -2198,7 +2236,11 @@
-   /* This is possibly a race condition -- should it go in stop_pipeline? */
-   wait_sigint_received = 0;
-   if (job_control == 0)
--    old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
-+    {
-+      old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
-+      if (old_sigint_handler == SIG_IGN)
-+      set_signal_handler (SIGINT, old_sigint_handler);
-+    }
-   termination_state = last_command_exit_value;
-diff -Naur bash-3.1.orig/lib/glob/glob.c bash-3.1/lib/glob/glob.c
---- bash-3.1.orig/lib/glob/glob.c      2005-03-24 09:42:27.000000000 -0800
-+++ bash-3.1/lib/glob/glob.c   2006-04-19 15:58:34.000000000 -0700
-@@ -360,6 +360,7 @@
-   count = lose = skip = 0;
-   firstmalloc = 0;
-+  nalloca = 0;
-   /* If PAT is empty, skip the loop, but return one (empty) filename. */
-   if (pat == 0 || *pat == '\0')
-@@ -546,6 +547,8 @@
-               firstmalloc = 0;
-             tmplink = lastlink;
-           }
-+        else
-+          tmplink = 0;
-         free (lastlink->name);
-         lastlink = lastlink->next;
-         FREE (tmplink);
-diff -Naur bash-3.1.orig/lib/glob/sm_loop.c bash-3.1/lib/glob/sm_loop.c
---- bash-3.1.orig/lib/glob/sm_loop.c   2005-10-16 18:21:04.000000000 -0700
-+++ bash-3.1/lib/glob/sm_loop.c        2006-04-19 15:58:34.000000000 -0700
-@@ -638,12 +638,13 @@
-   CHAR *psub;                 /* pointer to sub-pattern */
-   CHAR *pnext;                        /* pointer to next sub-pattern */
-   CHAR *srest;                        /* pointer to rest of string */
--  int m1, m2;
-+  int m1, m2, xflags;         /* xflags = flags passed to recursive matches */
- #if DEBUG_MATCHING
- fprintf(stderr, "extmatch: xc = %c\n", xc);
- fprintf(stderr, "extmatch: s = %s; se = %s\n", s, se);
- fprintf(stderr, "extmatch: p = %s; pe = %s\n", p, pe);
-+fprintf(stderr, "extmatch: flags = %d\n", flags);
- #endif
-   prest = PATSCAN (p + (*p == L('(')), pe, 0); /* ) */
-@@ -677,8 +678,12 @@
-                string matches the rest of the pattern.  Also handle
-                multiple matches of the pattern. */
-             if (m1)
--              m2 = (GMATCH (srest, se, prest, pe, flags) == 0) ||
--                    (s != srest && GMATCH (srest, se, p - 1, pe, flags) == 0);
-+              {
-+                /* if srest > s, we are not at start of string */
-+                xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-+                m2 = (GMATCH (srest, se, prest, pe, xflags) == 0) ||
-+                      (s != srest && GMATCH (srest, se, p - 1, pe, xflags) == 0);
-+              }
-             if (m1 && m2)
-               return (0);
-           }
-@@ -704,8 +709,10 @@
-         srest = (prest == pe) ? se : s;
-         for ( ; srest <= se; srest++)
-           {
-+            /* if srest > s, we are not at start of string */
-+            xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-             if (GMATCH (s, srest, psub, pnext - 1, flags) == 0 &&
--                GMATCH (srest, se, prest, pe, flags) == 0)
-+                GMATCH (srest, se, prest, pe, xflags) == 0)
-               return (0);
-           }
-         if (pnext == prest)
-@@ -726,7 +733,9 @@
-             if (pnext == prest)
-               break;
-           }
--        if (m1 == 0 && GMATCH (srest, se, prest, pe, flags) == 0)
-+        /* if srest > s, we are not at start of string */
-+        xflags = (srest > s) ? (flags & ~FNM_PERIOD) : flags;
-+        if (m1 == 0 && GMATCH (srest, se, prest, pe, xflags) == 0)
-           return (0);
-       }
-       return (FNM_NOMATCH);
-diff -Naur bash-3.1.orig/lib/readline/display.c bash-3.1/lib/readline/display.c
---- bash-3.1.orig/lib/readline/display.c       2005-11-30 11:05:02.000000000 -0800
-+++ bash-3.1/lib/readline/display.c    2006-04-19 15:58:34.000000000 -0700
-@@ -1983,11 +1983,15 @@
-      int pchar;
- {
-   int len;
--  char *pmt;
-+  char *pmt, *p;
-   rl_save_prompt ();
--  if (saved_local_prompt == 0)
-+  /* We've saved the prompt, and can do anything with the various prompt
-+     strings we need before they're restored.  We want the unexpanded
-+     portion of the prompt string after any final newline. */
-+  p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
-+  if (p == 0)
-     {
-       len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
-       pmt = (char *)xmalloc (len + 2);
-@@ -1998,19 +2002,17 @@
-     }
-   else
-     {
--      len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
-+      p++;
-+      len = strlen (p);
-       pmt = (char *)xmalloc (len + 2);
-       if (len)
--      strcpy (pmt, saved_local_prompt);
-+      strcpy (pmt, p);
-       pmt[len] = pchar;
-       pmt[len+1] = '\0';
--      local_prompt = savestring (pmt);
--      prompt_last_invisible = saved_last_invisible;
--      prompt_visible_length = saved_visible_length + 1;
--    }
-+    }  
-+  /* will be overwritten by expand_prompt, called from rl_message */
-   prompt_physical_chars = saved_physical_chars + 1;
--
-   return pmt;
- }
-diff -Naur bash-3.1.orig/lib/readline/readline.c bash-3.1/lib/readline/readline.c
---- bash-3.1.orig/lib/readline/readline.c      2005-07-04 19:29:35.000000000 -0700
-+++ bash-3.1/lib/readline/readline.c   2006-04-19 15:58:34.000000000 -0700
-@@ -282,6 +282,7 @@
- {
-   FREE (rl_prompt);
-   rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-+  rl_display_prompt = rl_prompt ? rl_prompt : "";
-   rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
-   return 0;
-diff -Naur bash-3.1.orig/lib/readline/terminal.c bash-3.1/lib/readline/terminal.c
---- bash-3.1.orig/lib/readline/terminal.c      2005-11-12 17:46:54.000000000 -0800
-+++ bash-3.1/lib/readline/terminal.c   2006-04-19 15:58:34.000000000 -0700
-@@ -122,7 +122,7 @@
- static char *_rl_visible_bell;
- /* Non-zero means the terminal can auto-wrap lines. */
--int _rl_term_autowrap;
-+int _rl_term_autowrap = -1;
- /* Non-zero means that this terminal has a meta key. */
- static int term_has_meta;
-@@ -274,6 +274,9 @@
- _rl_set_screen_size (rows, cols)
-      int rows, cols;
- {
-+  if (_rl_term_autowrap == -1)
-+    _rl_init_terminal_io (rl_terminal_name);
-+
-   if (rows > 0)
-     _rl_screenheight = rows;
-   if (cols > 0)
-diff -Naur bash-3.1.orig/parse.y bash-3.1/parse.y
---- bash-3.1.orig/parse.y      2005-11-11 20:14:18.000000000 -0800
-+++ bash-3.1/parse.y   2006-04-19 15:58:34.000000000 -0700
-@@ -2716,6 +2716,7 @@
- #define P_ALLOWESC    0x02
- #define P_DQUOTE      0x04
- #define P_COMMAND     0x08    /* parsing a command, so look for comments */
-+#define P_BACKQUOTE   0x10    /* parsing a backquoted command substitution */
- static char matched_pair_error;
- static char *
-@@ -2725,12 +2726,12 @@
-      int *lenp, flags;
- {
-   int count, ch, was_dollar, in_comment, check_comment;
--  int pass_next_character, nestlen, ttranslen, start_lineno;
-+  int pass_next_character, backq_backslash, nestlen, ttranslen, start_lineno;
-   char *ret, *nestret, *ttrans;
-   int retind, retsize, rflags;
-   count = 1;
--  pass_next_character = was_dollar = in_comment = 0;
-+  pass_next_character = backq_backslash = was_dollar = in_comment = 0;
-   check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
-   /* RFLAGS is the set of flags we want to pass to recursive calls. */
-@@ -2742,11 +2743,8 @@
-   start_lineno = line_number;
-   while (count)
-     {
--#if 0
--      ch = shell_getc ((qc != '\'' || (flags & P_ALLOWESC)) && pass_next_character == 0);
--#else
--      ch = shell_getc (qc != '\'' && pass_next_character == 0);
--#endif
-+      ch = shell_getc (qc != '\'' && pass_next_character == 0 && backq_backslash == 0);
-+
-       if (ch == EOF)
-       {
-         free (ret);
-@@ -2771,9 +2769,16 @@
-         continue;
-       }
-       /* Not exactly right yet */
--      else if (check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind -1])))
-+      else if MBTEST(check_comment && in_comment == 0 && ch == '#' && (retind == 0 || ret[retind-1] == '\n' || whitespace (ret[retind - 1])))
-       in_comment = 1;
-+      /* last char was backslash inside backquoted command substitution */
-+      if (backq_backslash)
-+      {
-+        backq_backslash = 0;
-+        /* Placeholder for adding special characters */
-+      }
-+
-       if (pass_next_character)                /* last char was backslash */
-       {
-         pass_next_character = 0;
-@@ -2814,6 +2819,8 @@
-       {
-         if MBTEST((flags & P_ALLOWESC) && ch == '\\')
-           pass_next_character++;
-+        else if MBTEST((flags & P_BACKQUOTE) && ch == '\\')
-+          backq_backslash++;
-         continue;
-       }
-@@ -2898,7 +2905,11 @@
-       }
-       else if MBTEST(qc == '`' && (ch == '"' || ch == '\'') && in_comment == 0)
-       {
--        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags);
-+        /* Add P_BACKQUOTE so backslash quotes the next character and
-+           shell_getc does the right thing with \<newline>.  We do this for
-+           a measure  of backwards compatibility -- it's not strictly the
-+           right POSIX thing. */
-+        nestret = parse_matched_pair (0, ch, ch, &nestlen, rflags|P_BACKQUOTE);
-         goto add_nestret;
-       }
-       else if MBTEST(was_dollar && (ch == '(' || ch == '{' || ch == '['))     /* ) } ] */
-@@ -2907,7 +2918,7 @@
-         if (open == ch)       /* undo previous increment */
-           count--;
-         if (ch == '(')                /* ) */
--          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags);
-+          nestret = parse_matched_pair (0, '(', ')', &nestlen, rflags & ~P_DQUOTE);
-         else if (ch == '{')           /* } */
-           nestret = parse_matched_pair (0, '{', '}', &nestlen, P_FIRSTCLOSE|rflags);
-         else if (ch == '[')           /* ] */
-@@ -3578,7 +3589,7 @@
-             FREE (ttok);
-             all_digit_token = 0;
-             compound_assignment = 1;
--#if 0
-+#if 1
-             goto next_character;
- #else
-             goto got_token;           /* ksh93 seems to do this */
-@@ -3695,7 +3706,9 @@
-       struct builtin *b;
-       b = builtin_address_internal (token, 0);
-       if (b && (b->flags & ASSIGNMENT_BUILTIN))
--        parser_state |= PST_ASSIGNOK;
-+      parser_state |= PST_ASSIGNOK;
-+      else if (STREQ (token, "eval") || STREQ (token, "let"))
-+      parser_state |= PST_ASSIGNOK;
-     }
-   yylval.word = the_word;
-@@ -4686,18 +4699,21 @@
-      int *retlenp;
- {
-   WORD_LIST *wl, *rl;
--  int tok, orig_line_number, orig_token_size;
-+  int tok, orig_line_number, orig_token_size, orig_last_token, assignok;
-   char *saved_token, *ret;
-   saved_token = token;
-   orig_token_size = token_buffer_size;
-   orig_line_number = line_number;
-+  orig_last_token = last_read_token;
-   last_read_token = WORD;     /* WORD to allow reserved words here */
-   token = (char *)NULL;
-   token_buffer_size = 0;
-+  assignok = parser_state&PST_ASSIGNOK;               /* XXX */
-+
-   wl = (WORD_LIST *)NULL;     /* ( */
-   parser_state |= PST_COMPASSIGN;
-@@ -4740,7 +4756,7 @@
-       jump_to_top_level (DISCARD);
-     }
--  last_read_token = WORD;
-+  last_read_token = orig_last_token;          /* XXX - was WORD? */
-   if (wl)
-     {
-       rl = REVERSE_LIST (wl, WORD_LIST *);
-@@ -4752,6 +4768,10 @@
-   if (retlenp)
-     *retlenp = (ret && *ret) ? strlen (ret) : 0;
-+
-+  if (assignok)
-+    parser_state |= PST_ASSIGNOK;
-+
-   return ret;
- }
-diff -Naur bash-3.1.orig/patchlevel.h bash-3.1/patchlevel.h
---- bash-3.1.orig/patchlevel.h 2005-07-20 10:58:20.000000000 -0700
-+++ bash-3.1/patchlevel.h      2006-04-19 15:59:29.000000000 -0700
-@@ -25,6 +25,6 @@
-    regexp `^#define[  ]*PATCHLEVEL', since that's what support/mkversion.sh
-    looks for to find the patch level (for the sccs version string). */
--#define PATCHLEVEL 0
-+#define PATCHLEVEL 17
- #endif /* _PATCHLEVEL_H_ */
-diff -Naur bash-3.1.orig/subst.c bash-3.1/subst.c
---- bash-3.1.orig/subst.c      2005-10-24 06:51:13.000000000 -0700
-+++ bash-3.1/subst.c   2006-04-19 15:59:29.000000000 -0700
-@@ -2187,7 +2187,7 @@
-   if (mklocal && variable_context)
-     {
-       v = find_variable (name);
--      if (v == 0 || array_p (v) == 0)
-+      if (v == 0 || array_p (v) == 0 || v->context != variable_context)
-         v = make_local_array_variable (name);
-       v = assign_array_var_from_string (v, value, flags);
-     }
-@@ -2575,6 +2575,13 @@
-   return (expand_string_to_string_internal (string, quoted, expand_string_assignment));
- }
-+char *
-+expand_arith_string (string, quoted)
-+     char *string;
-+{
-+  return (expand_string_if_necessary (string, quoted, expand_string));
-+}
-+
- #if defined (COND_COMMAND)
- /* Just remove backslashes in STRING.  Returns a new string. */
- char *
-@@ -5248,7 +5255,7 @@
-   else
-     t = (char *)0;
--  temp1 = expand_string_if_necessary (substr, Q_DOUBLE_QUOTES, expand_string);
-+  temp1 = expand_arith_string (substr, Q_DOUBLE_QUOTES);
-   *e1p = evalexp (temp1, &expok);
-   free (temp1);
-   if (expok == 0)
-@@ -5293,7 +5300,7 @@
-     {
-       t++;
-       temp2 = savestring (t);
--      temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
-+      temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
-       free (temp2);
-       t[-1] = ':';
-       *e2p = evalexp (temp1, &expok);
-@@ -6435,7 +6442,7 @@
-         temp2[t_index] = '\0';
-         /* Expand variables found inside the expression. */
--        temp1 = expand_string_if_necessary (temp2, Q_DOUBLE_QUOTES, expand_string);
-+        temp1 = expand_arith_string (temp2, Q_DOUBLE_QUOTES);
-         free (temp2);
- arithsub:
-@@ -6477,7 +6484,7 @@
-       zindex = t_index;
-        /* Do initial variable expansion. */
--      temp1 = expand_string_if_necessary (temp, Q_DOUBLE_QUOTES, expand_string);
-+      temp1 = expand_arith_string (temp, Q_DOUBLE_QUOTES);
-       goto arithsub;
-@@ -6795,6 +6802,12 @@
-         if (temp && *temp && t_index > 0)
-           {
-             temp1 = bash_tilde_expand (temp, tflag);
-+            if  (temp1 && *temp1 == '~' && STREQ (temp, temp1))
-+              {
-+                FREE (temp);
-+                FREE (temp1);
-+                goto add_character;           /* tilde expansion failed */
-+              }
-             free (temp);
-             temp = temp1;
-             sindex += t_index;
-diff -Naur bash-3.1.orig/subst.h bash-3.1/subst.h
---- bash-3.1.orig/subst.h      2004-11-07 12:12:28.000000000 -0800
-+++ bash-3.1/subst.h   2006-04-19 15:59:29.000000000 -0700
-@@ -151,6 +151,9 @@
- extern char *expand_string_unsplit_to_string __P((char *, int));
- extern char *expand_assignment_string_to_string __P((char *, int));
-+/* Expand an arithmetic expression string */
-+extern char *expand_arith_string __P((char *, int));
-+
- /* De-quoted quoted characters in STRING. */
- extern char *dequote_string __P((char *));
-diff -Naur bash-3.1.orig/variables.c bash-3.1/variables.c
---- bash-3.1.orig/variables.c  2005-11-12 18:22:37.000000000 -0800
-+++ bash-3.1/variables.c       2006-04-19 15:58:34.000000000 -0700
-@@ -860,9 +860,11 @@
- {
-   char val[INT_STRLEN_BOUND(int) + 1], *v;
-+#if defined (READLINE)
-   /* If we are currently assigning to LINES or COLUMNS, don't do anything. */
-   if (winsize_assignment)
-     return;
-+#endif
-   v = inttostr (lines, val, sizeof (val));
-   bind_variable ("LINES", v, 0);
diff --git a/src/patches/bash-3.1-login.patch b/src/patches/bash-3.1-login.patch
deleted file mode 100644 (file)
index 8e950ba..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
---- bash-3.1/shell.c.login     2006-01-13 16:52:14.000000000 +0000
-+++ bash-3.1/shell.c   2006-01-13 16:52:15.000000000 +0000
-@@ -1543,9 +1543,10 @@
-      any startup files; just try to be more like /bin/sh. */
-   shell_name = argv0 ? base_pathname (argv0) : PROGRAM;
--  if (*shell_name == '-')
-+  if (argv0 && *argv0 == '-')
-     {
--      shell_name++;
-+      if (*shell_name == '-')
-+        shell_name++;
-       login_shell++;
-     }
diff --git a/src/patches/bash/bash32-001 b/src/patches/bash/bash32-001
new file mode 100644 (file)
index 0000000..b7d1f1e
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-001
+
+Bug-Reported-by:       Greg Schafer <gschafer@zip.com.au>
+Bug-Reference-ID:      <20061012084940.GA15768@tigers.local>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00046.html
+
+Bug-Description:
+
+When using historical ``-style command substitution, bash incorrectly attempts
+to interpret shell comments while scanning for the closing backquote.
+
+Patch:
+
+*** ../bash-3.2/parse.y        Tue Sep 19 16:37:21 2006
+--- parse.y    Thu Oct 12 10:30:57 2006
+***************
+*** 2736,2740 ****
+    count = 1;
+    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+!   check_comment = (flags & P_COMMAND) && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+  
+    /* RFLAGS is the set of flags we want to pass to recursive calls. */
+--- 2736,2740 ----
+    count = 1;
+    pass_next_character = backq_backslash = was_dollar = in_comment = 0;
+!   check_comment = (flags & P_COMMAND) && qc != '`' && qc != '\'' && qc != '"' && (flags & P_DQUOTE) == 0;
+  
+    /* RFLAGS is the set of flags we want to pass to recursive calls. */
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 0
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 1
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-002 b/src/patches/bash/bash32-002
new file mode 100644 (file)
index 0000000..b934df9
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-002
+
+Bug-Reported-by:       Jim Gifford <jim@jg555.com>
+Bug-Reference-ID:      <12j2pc3aq35mb04@corp.supernews.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00082.html
+
+Bug-Description:
+
+An incorrect encoding specification in the Content-Type header causes msgfmt
+to fail, which causes `make install' to fail.
+
+Patch:
+
+*** ../bash-3.2/po/ru.po        Tue Jan 10 17:51:03 2006
+--- po/ru.po    Mon Oct 16 15:13:23 2006
+***************
+*** 13,17 ****
+  "Language-Team: Russian <ru@li.org>\n"
+  "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=UTF-8\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+--- 13,17 ----
+  "Language-Team: Russian <ru@li.org>\n"
+  "MIME-Version: 1.0\n"
+! "Content-Type: text/plain; charset=KOI8-R\n"
+  "Content-Transfer-Encoding: 8bit\n"
+  "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 1
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 2
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-003 b/src/patches/bash/bash32-003
new file mode 100644 (file)
index 0000000..922041b
--- /dev/null
@@ -0,0 +1,147 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-003
+
+Bug-Reported-by:       John Gatewood Ham <zappaman@buraphalinux.org>
+Bug-Reference-ID:      <Pine.LNX.4.64.0610121334140.15558@www.buraphalinux.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00045.html
+
+Bug-Description:
+
+When using the conditional command's `=~' operator to match regular
+expressions, the parser did not skip over shell metacharacters in the
+regular expression, leading to syntax errors.
+
+Patch:
+
+*** ../bash-3.2-patched/parse.y        Tue Oct 17 11:45:20 2006
+--- parse.y    Sat Oct 14 14:56:16 2006
+***************
+*** 1029,1034 ****
+--- 1029,1035 ----
+  #define PST_CMDTOKEN 0x1000          /* command token OK - unused */
+  #define PST_COMPASSIGN       0x2000          /* parsing x=(...) compound assignment */
+  #define PST_ASSIGNOK 0x4000          /* assignment statement ok in this context */
++ #define PST_REGEXP   0x8000          /* parsing an ERE/BRE as a single word */
+  
+  /* Initial size to allocate for tokens, and the
+     amount to grow them by. */
+***************
+*** 2591,2596 ****
+--- 2592,2600 ----
+        return (character);
+      }
+  
++   if (parser_state & PST_REGEXP)
++     goto tokword;
++ 
+    /* Shell meta-characters. */
+    if MBTEST(shellmeta (character) && ((parser_state & PST_DBLPAREN) == 0))
+      {
+***************
+*** 2698,2703 ****
+--- 2702,2708 ----
+    if MBTEST(character == '-' && (last_read_token == LESS_AND || last_read_token == GREATER_AND))
+      return (character);
+  
++ tokword:
+    /* Okay, if we got this far, we have to read a word.  Read one,
+       and then check it against the known ones. */
+    result = read_token_word (character);
+***************
+*** 3202,3209 ****
+        if (tok == WORD && test_binop (yylval.word->word))
+       op = yylval.word;
+  #if defined (COND_REGEXP)
+!       else if (tok == WORD && STREQ (yylval.word->word,"=~"))
+!      op = yylval.word;
+  #endif
+        else if (tok == '<' || tok == '>')
+       op = make_word_from_token (tok);  /* ( */
+--- 3207,3217 ----
+        if (tok == WORD && test_binop (yylval.word->word))
+       op = yylval.word;
+  #if defined (COND_REGEXP)
+!       else if (tok == WORD && STREQ (yylval.word->word, "=~"))
+!      {
+!        op = yylval.word;
+!        parser_state |= PST_REGEXP;
+!      }
+  #endif
+        else if (tok == '<' || tok == '>')
+       op = make_word_from_token (tok);  /* ( */
+***************
+*** 3234,3239 ****
+--- 3242,3248 ----
+  
+        /* rhs */
+        tok = read_token (READ);
++       parser_state &= ~PST_REGEXP;
+        if (tok == WORD)
+       {
+         tright = make_cond_node (COND_TERM, yylval.word, (COND_COM *)NULL, (COND_COM *)NULL);
+***************
+*** 3419,3427 ****
+         goto next_character;
+       }
+  
+  #ifdef EXTENDED_GLOB
+        /* Parse a ksh-style extended pattern matching specification. */
+!       if (extended_glob && PATTERN_CHAR (character))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+--- 3428,3461 ----
+         goto next_character;
+       }
+  
++ #ifdef COND_REGEXP
++       /* When parsing a regexp as a single word inside a conditional command,
++       we need to special-case characters special to both the shell and
++       regular expressions.  Right now, that is only '(' and '|'. */ /*)*/
++       if MBTEST((parser_state & PST_REGEXP) && (character == '(' || character == '|'))               /*)*/
++         {
++           if (character == '|')
++             goto got_character;
++ 
++        push_delimiter (dstack, character);
++        ttok = parse_matched_pair (cd, '(', ')', &ttoklen, 0);
++        pop_delimiter (dstack);
++        if (ttok == &matched_pair_error)
++          return -1;          /* Bail immediately. */
++        RESIZE_MALLOCED_BUFFER (token, token_index, ttoklen + 2,
++                                token_buffer_size, TOKEN_DEFAULT_GROW_SIZE);
++        token[token_index++] = character;
++        strcpy (token + token_index, ttok);
++        token_index += ttoklen;
++        FREE (ttok);
++        dollar_present = all_digit_token = 0;
++        goto next_character;
++         }
++ #endif /* COND_REGEXP */
++ 
+  #ifdef EXTENDED_GLOB
+        /* Parse a ksh-style extended pattern matching specification. */
+!       if MBTEST(extended_glob && PATTERN_CHAR (character))
+       {
+         peek_char = shell_getc (1);
+         if MBTEST(peek_char == '(')           /* ) */
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 2
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
+
diff --git a/src/patches/bash/bash32-004 b/src/patches/bash/bash32-004
new file mode 100644 (file)
index 0000000..cd2accf
--- /dev/null
@@ -0,0 +1,96 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-004
+
+Bug-Reported-by:       Stuart Shelton <srcshelton@gmail.com>
+Bug-Reference-ID:      <619141e40610261203y6cda5aa6i23cb24c7aeba996e@mail.gmail.com>
+Bug-Reference-URL:     
+
+Bug-Description:
+
+A bug in the parameter pattern substitution implementation treated a pattern
+whose first character was `/' (after expansion) as specifying global
+replacement.
+
+Patch:
+
+*** ../bash-3.2/subst.c        Tue Sep 19 08:35:09 2006
+--- subst.c    Thu Oct 26 09:17:50 2006
+***************
+*** 5707,5712 ****
+--- 5707,5717 ----
+    vtype &= ~VT_STARSUB;
+  
+    mflags = 0;
++   if (patsub && *patsub == '/')
++     {
++       mflags |= MATCH_GLOBREP;
++       patsub++;
++     }
+  
+    /* Malloc this because expand_string_if_necessary or one of the expansion
+       functions in its call chain may free it on a substitution error. */
+***************
+*** 5741,5753 ****
+      }
+  
+    /* ksh93 doesn't allow the match specifier to be a part of the expanded
+!      pattern.  This is an extension. */
+    p = pat;
+!   if (pat && pat[0] == '/')
+!     {
+!       mflags |= MATCH_GLOBREP|MATCH_ANY;
+!       p++;
+!     }
+    else if (pat && pat[0] == '#')
+      {
+        mflags |= MATCH_BEG;
+--- 5746,5757 ----
+      }
+  
+    /* ksh93 doesn't allow the match specifier to be a part of the expanded
+!      pattern.  This is an extension.  Make sure we don't anchor the pattern
+!      at the beginning or end of the string if we're doing global replacement,
+!      though. */
+    p = pat;
+!   if (mflags & MATCH_GLOBREP)
+!     mflags |= MATCH_ANY;
+    else if (pat && pat[0] == '#')
+      {
+        mflags |= MATCH_BEG;
+*** ../bash-3.2/tests/new-exp.right    Thu Aug 10 12:00:00 2006
+--- tests/new-exp.right        Sun Oct 29 16:03:36 2006
+***************
+*** 430,436 ****
+  Case06---1---A B C::---
+  Case07---3---A:B:C---
+  Case08---3---A:B:C---
+! ./new-exp.tests: line 506: /${$(($#-1))}: bad substitution
+  argv[1] = <a>
+  argv[2] = <b>
+  argv[3] = <c>
+--- 430,436 ----
+  Case06---1---A B C::---
+  Case07---3---A:B:C---
+  Case08---3---A:B:C---
+! ./new-exp.tests: line 506: ${$(($#-1))}: bad substitution
+  argv[1] = <a>
+  argv[2] = <b>
+  argv[3] = <c>
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-005 b/src/patches/bash/bash32-005
new file mode 100644 (file)
index 0000000..903ec58
--- /dev/null
@@ -0,0 +1,223 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-005
+
+Bug-Reported-by:       Stuart Shelton <stuart@openobjects.com>
+Bug-Reference-ID:      <453F7CC8.6030907@openobjects.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-10/msg00127.html
+
+Bug-Description:
+
+A missing extern declaration for `asprintf' caused `double' arguments to be
+passed as `0', leading to incorrect results.  Additionally, a bug in the
+replacement asprintf/snprintf function caused an infinite loop when passed
+0 arguments to the floating point conversions under some circumstances.
+
+Patch:
+
+*** ../bash-3.2/builtins/printf.def    Mon Sep 18 08:48:42 2006
+--- builtins/printf.def        Tue Oct 31 08:19:44 2006
+***************
+*** 49,54 ****
+--- 49,60 ----
+  #  define INT_MIN            (-2147483647-1)
+  #endif
+  
++ #if defined (PREFER_STDARG)
++ #  include <stdarg.h>
++ #else
++ #  include <varargs.h>
++ #endif
++ 
+  #include <stdio.h>
+  #include <chartypes.h>
+  
+***************
+*** 151,156 ****
+--- 157,166 ----
+  #define SKIP1 "#'-+ 0"
+  #define LENMODS "hjlLtz"
+  
++ #ifndef HAVE_ASPRINTF
++ extern int asprintf __P((char **, const char *, ...)) __attribute__((__format__ (printf, 2, 3)));
++ #endif
++ 
+  static void printf_erange __P((char *));
+  static int printstr __P((char *, char *, int, int, int));
+  static int tescape __P((char *, char *, int *));
+
+
+*** ../bash-3.2/lib/sh/snprintf.c      Thu Apr  6 09:48:40 2006
+--- lib/sh/snprintf.c  Sat Oct 28 00:00:13 2006
+***************
+*** 471,476 ****
+--- 476,483 ----
+         10^x ~= r
+   * log_10(200) = 2;
+   * log_10(250) = 2;
++  *
++  * NOTE: do not call this with r == 0 -- an infinite loop results.
+   */
+  static int
+  log_10(r)
+***************
+*** 576,583 ****
+      { 
+        integral_part[0] = '0';
+        integral_part[1] = '\0';
+!       fraction_part[0] = '0';
+!       fraction_part[1] = '\0';
+        if (fract)
+       *fract = fraction_part;
+        return integral_part;
+--- 583,593 ----
+      { 
+        integral_part[0] = '0';
+        integral_part[1] = '\0';
+!       /* The fractional part has to take the precision into account */
+!       for (ch = 0; ch < precision-1; ch++)
+!      fraction_part[ch] = '0';
+!       fraction_part[ch] = '0';
+!       fraction_part[ch+1] = '\0';
+        if (fract)
+       *fract = fraction_part;
+        return integral_part;
+***************
+*** 805,810 ****
+--- 815,821 ----
+        PUT_CHAR(*tmp, p);
+        tmp++;
+      }
++ 
+    PAD_LEFT(p);
+  }
+  
+***************
+*** 972,982 ****
+    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
+      tmp = t;
+  
+    /* calculate the padding. 1 for the dot */
+    p->width = p->width -
+           ((d > 0. && p->justify == RIGHT) ? 1:0) -
+           ((p->flags & PF_SPACE) ? 1:0) -
+!          strlen(tmp) - p->precision - 1;
+    PAD_RIGHT(p);  
+    PUT_PLUS(d, p, 0.);
+    PUT_SPACE(d, p, 0.);
+--- 983,1003 ----
+    if ((p->flags & PF_THOUSANDS) && grouping && (t = groupnum (tmp)))
+      tmp = t;
+  
++   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
++     {
++       /* smash the trailing zeros unless altform */
++       for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
++         tmp2[i] = '\0'; 
++       if (tmp2[0] == '\0')
++      p->precision = 0;
++     }
++ 
+    /* calculate the padding. 1 for the dot */
+    p->width = p->width -
+           ((d > 0. && p->justify == RIGHT) ? 1:0) -
+           ((p->flags & PF_SPACE) ? 1:0) -
+!          strlen(tmp) - p->precision -
+!          ((p->precision != 0 || (p->flags & PF_ALTFORM)) ? 1 : 0);   /* radix char */
+    PAD_RIGHT(p);  
+    PUT_PLUS(d, p, 0.);
+    PUT_SPACE(d, p, 0.);
+***************
+*** 991,1001 ****
+    if (p->precision != 0 || (p->flags & PF_ALTFORM))
+      PUT_CHAR(decpoint, p);  /* put the '.' */
+  
+-   if ((*p->pf == 'g' || *p->pf == 'G') && (p->flags & PF_ALTFORM) == 0)
+-     /* smash the trailing zeros unless altform */
+-     for (i = strlen(tmp2) - 1; i >= 0 && tmp2[i] == '0'; i--)
+-       tmp2[i] = '\0'; 
+- 
+    for (; *tmp2; tmp2++)
+      PUT_CHAR(*tmp2, p); /* the fraction */
+    
+--- 1012,1017 ----
+***************
+*** 1011,1024 ****
+    char *tmp, *tmp2;
+    int j, i;
+  
+!   if (chkinfnan(p, d, 1) || chkinfnan(p, d, 2))
+      return;  /* already printed nan or inf */
+  
+    GETLOCALEDATA(decpoint, thoussep, grouping);
+    DEF_PREC(p);
+!   j = log_10(d);
+!   d = d / pow_10(j);  /* get the Mantissa */
+!   d = ROUND(d, p);             
+    tmp = dtoa(d, p->precision, &tmp2);
+  
+    /* 1 for unit, 1 for the '.', 1 for 'e|E',
+--- 1027,1045 ----
+    char *tmp, *tmp2;
+    int j, i;
+  
+!   if (d != 0 && (chkinfnan(p, d, 1) || chkinfnan(p, d, 2)))
+      return;  /* already printed nan or inf */
+  
+    GETLOCALEDATA(decpoint, thoussep, grouping);
+    DEF_PREC(p);
+!   if (d == 0.)
+!     j = 0;
+!   else
+!     {
+!       j = log_10(d);
+!       d = d / pow_10(j);  /* get the Mantissa */
+!       d = ROUND(d, p);                 
+!     }
+    tmp = dtoa(d, p->precision, &tmp2);
+  
+    /* 1 for unit, 1 for the '.', 1 for 'e|E',
+***************
+*** 1076,1081 ****
+--- 1097,1103 ----
+         PUT_CHAR(*tmp, p);
+         tmp++;
+       }
++ 
+     PAD_LEFT(p);
+  }
+  #endif
+***************
+*** 1358,1364 ****
+               STAR_ARGS(data);
+               DEF_PREC(data);
+               d = GETDOUBLE(data);
+!              i = log_10(d);
+               /*
+                * for '%g|%G' ANSI: use f if exponent
+                * is in the range or [-4,p] exclusively
+--- 1380,1386 ----
+               STAR_ARGS(data);
+               DEF_PREC(data);
+               d = GETDOUBLE(data);
+!              i = (d != 0.) ? log_10(d) : -1;
+               /*
+                * for '%g|%G' ANSI: use f if exponent
+                * is in the range or [-4,p] exclusively
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-006 b/src/patches/bash/bash32-006
new file mode 100644 (file)
index 0000000..589db9e
--- /dev/null
@@ -0,0 +1,45 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-006
+
+Bug-Reported-by:       ebb9@byu.net
+Bug-Reference-ID:      <45540862.9030900@byu.net>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
+                       http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
+
+Bug-Description:
+
+In some cases, code that is intended to be used in the presence of multibyte
+characters is called when no such characters are present, leading to incorrect
+display position calculations and incorrect redisplay.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
+--- lib/readline/display.c     Mon Nov 13 17:55:57 2006
+***************
+*** 2381,2384 ****
+--- 2409,2414 ----
+    if (end <= start)
+      return 0;
++   if (MB_CUR_MAX == 1 || rl_byte_oriented)
++     return (end - start);
+  
+    memset (&ps, 0, sizeof (mbstate_t));
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-007 b/src/patches/bash/bash32-007
new file mode 100644 (file)
index 0000000..9b86f4a
--- /dev/null
@@ -0,0 +1,55 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-007
+
+Bug-Reported-by:       jidanni@jidanni.org
+Bug-Reference-ID:      <E1Gkg12-00017D-Fm@jidanni.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00039.html
+
+Bug-Description:
+
+When removing the current or previous job from the jobs list, bash incorrectly
+resets the current job under some circumstances.
+
+Patch:
+
+*** ../bash-3.2-patched/jobs.c Sat Jul 29 16:40:48 2006
+--- jobs.c     Fri Nov 24 14:50:01 2006
+***************
+*** 985,990 ****
+    if (temp == 0)
+      return;
+-   if (job_index == js.j_current || job_index == js.j_previous)
+-     reset_current ();
+  
+    if ((dflags & DEL_NOBGPID) == 0)
+--- 985,988 ----
+***************
+*** 1029,1032 ****
+--- 1027,1033 ----
+    else if (jobs[js.j_firstj] == 0 || jobs[js.j_lastj] == 0)
+      reset_job_indices ();
++ 
++   if (job_index == js.j_current || job_index == js.j_previous)
++     reset_current ();
+  }
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
+
+  
diff --git a/src/patches/bash/bash32-008 b/src/patches/bash/bash32-008
new file mode 100644 (file)
index 0000000..7ec07ff
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-008
+
+Bug-Reported-by:       Linda Walsh <bash@tlinx.org>
+Bug-Reference-ID:      <456041FD.8000605@tlinx.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00040.html
+
+Bug-Description:
+
+When checking pathnames from the command hash table (e.g., when the `checkhash'
+shell option is enabled), a bug causes bash to delete and re-lookup each
+command.
+
+Patch:
+
+*** ../bash-3.2-patched/findcmd.c      Wed Aug 17 16:49:54 2005
+--- findcmd.c  Fri Nov 24 10:48:37 2006
+***************
+*** 309,313 ****
+      {
+        st = file_status (hashed_file);
+!       if ((st ^ (FS_EXISTS | FS_EXECABLE)) != 0)
+       {
+         phash_remove (pathname);
+--- 309,313 ----
+      {
+        st = file_status (hashed_file);
+!       if ((st & (FS_EXISTS|FS_EXECABLE)) != (FS_EXISTS|FS_EXECABLE))
+       {
+         phash_remove (pathname);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-009 b/src/patches/bash/bash32-009
new file mode 100644 (file)
index 0000000..9cfd16e
--- /dev/null
@@ -0,0 +1,61 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-009
+
+Bug-Reported-by:       James.M.Botte@lowes.com
+Bug-Reference-ID:      <BA9FF90F7E5B424998F98EDA9F1F94BE01FA9853@msexchdb01.lowes.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00000.html
+
+Bug-Description:
+
+When using its built-in replacement for snprintf/asprintf, bash does not
+treat the %x, %X, and %o format specifiers as unsigned numbers.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/sh/snprintf.c      Mon Nov 13 08:58:52 2006
+--- lib/sh/snprintf.c  Wed Dec  6 11:15:04 2006
+***************
+*** 669,673 ****
+  
+    sd = d;    /* signed for ' ' padding in base 10 */
+!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+    if (*p->pf == 'X')
+      flags |= FL_HEXUPPER;
+--- 674,679 ----
+  
+    sd = d;    /* signed for ' ' padding in base 10 */
+!   flags = 0;
+!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+    if (*p->pf == 'X')
+      flags |= FL_HEXUPPER;
+***************
+*** 739,743 ****
+  
+    sd = d;    /* signed for ' ' padding in base 10 */
+!   flags = (*p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+    if (*p->pf == 'X')
+      flags |= FL_HEXUPPER;
+--- 745,749 ----
+  
+    sd = d;    /* signed for ' ' padding in base 10 */
+!   flags = (*p->pf == 'x' || *p->pf == 'X' || *p->pf == 'o' || *p->pf == 'u' || *p->pf == 'U') ? FL_UNSIGNED : 0;
+    if (*p->pf == 'X')
+      flags |= FL_HEXUPPER;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 9
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-010 b/src/patches/bash/bash32-010
new file mode 100644 (file)
index 0000000..88de575
--- /dev/null
@@ -0,0 +1,207 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-010
+
+Bug-Reported-by:       Ryan Waldron <rew@erebor.com>
+Bug-Reference-ID:      <20070119065603.546D011E9C@kansas.erebor.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00059.html
+
+Bug-Description:
+
+The glibc implementation of regcomp/regexec does not allow backslashes to
+escape "ordinary" pattern characters when matching.  Bash used backslashes
+to quote all characters when the pattern argument to the [[ special
+command's =~ operator was quoted.  This caused the match to fail on Linux
+and other systems using GNU libc.
+
+Patch:
+
+*** ../bash-3.2.9/pathexp.h    Sat Feb 19 17:23:18 2005
+--- pathexp.h  Wed Jan 31 22:53:16 2007
+***************
+*** 1,5 ****
+  /* pathexp.h -- The shell interface to the globbing library. */
+  
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+  /* pathexp.h -- The shell interface to the globbing library. */
+  
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 33,36 ****
+--- 33,37 ----
+  #define QGLOB_CVTNULL        0x01    /* convert QUOTED_NULL strings to '\0' */
+  #define QGLOB_FILENAME       0x02    /* do correct quoting for matching filenames */
++ #define QGLOB_REGEXP 0x04    /* quote an ERE for regcomp/regexec */
+  
+  #if defined (EXTENDED_GLOB)
+*** ../bash-3.2.9/pathexp.c    Mon May  6 13:43:05 2002
+--- pathexp.c  Mon Feb 26 16:59:23 2007
+***************
+*** 1,5 ****
+  /* pathexp.c -- The shell interface to the globbing library. */
+  
+! /* Copyright (C) 1995-2002 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+  /* pathexp.c -- The shell interface to the globbing library. */
+  
+! /* Copyright (C) 1995-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 111,114 ****
+--- 111,141 ----
+  }
+  
++ /* Return 1 if C is a character that is `special' in a POSIX ERE and needs to
++    be quoted to match itself. */
++ static inline int
++ ere_char (c)
++      int c;
++ {
++   switch (c)
++     {
++     case '.':
++     case '[':
++     case '\\':
++     case '(':
++     case ')':
++     case '*':
++     case '+':
++     case '?':
++     case '{':
++     case '|':
++     case '^':
++     case '$':
++       return 1;
++     default: 
++       return 0;
++     }
++   return (0);
++ }
++ 
+  /* PATHNAME can contain characters prefixed by CTLESC; this indicates
+     that the character is to be quoted.  We quote it here in the style
+***************
+*** 143,146 ****
+--- 170,175 ----
+         if ((qflags & QGLOB_FILENAME) && pathname[i+1] == '/')
+           continue;
++        if ((qflags & QGLOB_REGEXP) && ere_char (pathname[i+1]) == 0)
++          continue;
+         temp[j++] = '\\';
+         i++;
+*** ../bash-3.2.9/subst.c      Tue Nov  7 16:14:41 2006
+--- subst.c    Wed Jan 31 23:09:58 2007
+***************
+*** 5,9 ****
+       beauty, but, hey, you're alright.'' */
+  
+! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 5,9 ----
+       beauty, but, hey, you're alright.'' */
+  
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 2647,2655 ****
+  /* This needs better error handling. */
+  /* Expand W for use as an argument to a unary or binary operator in a
+!    [[...]] expression.  If SPECIAL is nonzero, this is the rhs argument
+     to the != or == operator, and should be treated as a pattern.  In
+!    this case, we quote the string specially for the globbing code.  The
+!    caller is responsible for removing the backslashes if the unquoted
+!    words is needed later. */   
+  char *
+  cond_expand_word (w, special)
+--- 2647,2656 ----
+  /* This needs better error handling. */
+  /* Expand W for use as an argument to a unary or binary operator in a
+!    [[...]] expression.  If SPECIAL is 1, this is the rhs argument
+     to the != or == operator, and should be treated as a pattern.  In
+!    this case, we quote the string specially for the globbing code.  If
+!    SPECIAL is 2, this is an rhs argument for the =~ operator, and should
+!    be quoted appropriately for regcomp/regexec.  The caller is responsible
+!    for removing the backslashes if the unquoted word is needed later. */   
+  char *
+  cond_expand_word (w, special)
+***************
+*** 2659,2662 ****
+--- 2660,2664 ----
+    char *r, *p;
+    WORD_LIST *l;
++   int qflags;
+  
+    if (w->word == 0 || w->word[0] == '\0')
+***************
+*** 2673,2678 ****
+        else
+       {
+         p = string_list (l);
+!        r = quote_string_for_globbing (p, QGLOB_CVTNULL);
+         free (p);
+       }
+--- 2675,2683 ----
+        else
+       {
++        qflags = QGLOB_CVTNULL;
++        if (special == 2)
++          qflags |= QGLOB_REGEXP;
+         p = string_list (l);
+!        r = quote_string_for_globbing (p, qflags);
+         free (p);
+       }
+*** ../bash-3.2.9/execute_cmd.c        Sat Aug 26 00:23:17 2006
+--- execute_cmd.c      Wed Jan 31 23:12:06 2007
+***************
+*** 1,5 ****
+  /* execute_cmd.c -- Execute a COMMAND structure. */
+  
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+  /* execute_cmd.c -- Execute a COMMAND structure. */
+  
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 2547,2551 ****
+        if (arg1 == 0)
+       arg1 = nullstr;
+!       arg2 = cond_expand_word (cond->right->op, patmatch||rmatch);
+        if (arg2 == 0)
+       arg2 = nullstr;
+--- 2547,2551 ----
+        if (arg1 == 0)
+       arg1 = nullstr;
+!       arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
+        if (arg2 == 0)
+       arg2 = nullstr;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 9
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-011 b/src/patches/bash/bash32-011
new file mode 100644 (file)
index 0000000..c021f52
--- /dev/null
@@ -0,0 +1,138 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-011
+
+Bug-Reported-by: Petr Sumbera <Petr.Sumbera@Sun.COM>
+Bug-Reference-ID: <45AF5F4B.1020800@sun.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-01/msg00049.html
+
+Bug-Description:
+
+Under certain circumstances (loopback mounts), the bash getcwd does not
+return correct results.  This patch allows the use of the Solaris libc
+getcwd even though it doesn't dynamically allocate memory.
+
+Run `touch configure' to make sure make doesn't try to run autoconf.
+Then run configure with whatever options you like.
+
+Patch:
+
+*** ../bash-3.2-patched/configure.in   Tue Sep 26 11:05:45 2006
+--- configure.in       Wed Jan 31 09:48:00 2007
+***************
+*** 6,10 ****
+  dnl Process this file with autoconf to produce a configure script.
+  
+! # Copyright (C) 1987-2006 Free Software Foundation, Inc.
+  
+  # This program is free software; you can redistribute it and/or modify
+--- 6,10 ----
+  dnl Process this file with autoconf to produce a configure script.
+  
+! # Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+  # This program is free software; you can redistribute it and/or modify
+***************
+*** 992,996 ****
+  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
+  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
+--- 992,997 ----
+  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
+! solaris2*)   LOCAL_CFLAGS=-DSOLARIS ;;
+  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
+*** ../bash-3.2-patched/config-bot.h   Tue Sep 12 16:43:04 2006
+--- config-bot.h       Tue Mar  6 10:41:31 2007
+***************
+*** 2,6 ****
+  /* modify settings or make new ones based on what autoconf tells us. */
+  
+! /* Copyright (C) 1989-2002 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 2,6 ----
+  /* modify settings or make new ones based on what autoconf tells us. */
+  
+! /* Copyright (C) 1989-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 71,77 ****
+  #endif
+  
+! /* If we have a getcwd(3), but it calls popen(), #undef HAVE_GETCWD so
+!    the replacement in getcwd.c will be built. */
+! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN)
+  #  undef HAVE_GETCWD
+  #endif
+--- 71,79 ----
+  #endif
+  
+! /* If we have a getcwd(3), but one that does not dynamically allocate memory,
+!    #undef HAVE_GETCWD so the replacement in getcwd.c will be built.  We do
+!    not do this on Solaris, because their implementation of loopback mounts
+!    breaks the traditional file system assumptions that getcwd uses. */
+! #if defined (HAVE_GETCWD) && defined (GETCWD_BROKEN) && !defined (SOLARIS)
+  #  undef HAVE_GETCWD
+  #endif
+*** ../bash-3.2-patched/builtins/common.c      Thu Jul 27 09:39:51 2006
+--- builtins/common.c  Tue Mar  6 10:43:27 2007
+***************
+*** 1,3 ****
+! /* Copyright (C) 1987-2005 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,3 ----
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 476,480 ****
+--- 476,484 ----
+    if (the_current_working_directory == 0)
+      {
++ #if defined (GETCWD_BROKEN)
++       the_current_working_directory = getcwd (0, PATH_MAX);
++ #else
+        the_current_working_directory = getcwd (0, 0);
++ #endif
+        if (the_current_working_directory == 0)
+       {
+*** ../bash-3.2-patched/configure      Tue Sep 26 11:06:01 2006
+--- configure  Tue Mar  6 10:59:20 2007
+***************
+*** 27317,27321 ****
+  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS=-DSunOS5 ;;
+  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
+--- 27317,27322 ----
+  sco3.2*)     LOCAL_CFLAGS=-DMUST_UNBLOCK_CHLD ;;
+  sunos4*)     LOCAL_CFLAGS=-DSunOS4 ;;
+! solaris2.5*) LOCAL_CFLAGS="-DSunOS5 -DSOLARIS" ;;
+! solaris2*)   LOCAL_CFLAGS=-DSOLARIS ;;
+  lynxos*)     LOCAL_CFLAGS=-DRECYCLES_PIDS ;;
+  linux*)              LOCAL_LDFLAGS=-rdynamic          # allow dynamic loading
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 10
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-012 b/src/patches/bash/bash32-012
new file mode 100644 (file)
index 0000000..8d669d2
--- /dev/null
@@ -0,0 +1,96 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-012
+
+Bug-Reported-by: John Wyman <JohnWyman@celink.com>
+Bug-Reference-ID: <5E7DEFC094C35044B87FAE761D9F0EE20143A3B7@exchange2k.celink.com>
+Bug-Reference-URL: 
+
+Bug-Description:
+
+Some systems (AIX 4.x) don't implement the PRI_xxx macros correctly,
+causing syntax errors when attempting to compile bash on those systems.
+This patch adds support for the PRI_MACROS_BROKEN define.
+
+You will need to re-run `configure' after applying the patch.  Run
+`touch configure' so make doesn't try to run autoconf.
+
+Patch:
+
+*** ../bash-3.2.11/config.h.in Tue Sep 12 16:00:54 2006
+--- config.h.in        Tue Mar  6 11:17:55 2007
+***************
+*** 1,5 ****
+  /* config.h -- Configuration file for bash. */
+  
+! /* Copyright (C) 1987-2006 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+--- 1,5 ----
+  /* config.h -- Configuration file for bash. */
+  
+! /* Copyright (C) 1987-2007 Free Software Foundation, Inc.
+  
+     This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 414,417 ****
+--- 414,419 ----
+  #undef HAVE_DECL_STRTOLD
+  
++ #undef PRI_MACROS_BROKEN
++ 
+  #undef STRTOLD_BROKEN
+  
+***************
+*** 1007,1010 ****
+--- 1009,1015 ----
+  #undef HAVE_DCGETTEXT
+  
++ /* Define if you have the `localeconv' function. */
++ #undef HAVE_LOCALECONV
++ 
+  /* Define if your system has a working `malloc' function. */
+  /* #undef HAVE_MALLOC */
+*** ../bash-3.2.11/builtins/printf.def Mon Nov 13 08:58:52 2006
+--- builtins/printf.def        Sun Feb  4 13:58:59 2007
+***************
+*** 2,6 ****
+  It implements the builtin "printf" in Bash.
+  
+! Copyright (C) 1997-2005 Free Software Foundation, Inc.
+  
+  This file is part of GNU Bash, the Bourne Again SHell.
+--- 2,6 ----
+  It implements the builtin "printf" in Bash.
+  
+! Copyright (C) 1997-2007 Free Software Foundation, Inc.
+  
+  This file is part of GNU Bash, the Bourne Again SHell.
+***************
+*** 71,74 ****
+--- 71,78 ----
+  #include "common.h"
+  
++ #if defined (PRI_MACROS_BROKEN)
++ #  undef PRIdMAX
++ #endif
++ 
+  #if !defined (PRIdMAX)
+  #  if HAVE_LONG_LONG
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 11
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 12
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-013 b/src/patches/bash/bash32-013
new file mode 100644 (file)
index 0000000..d47bc1a
--- /dev/null
@@ -0,0 +1,65 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-013
+
+Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
+Bug-Reference-ID: <45BDC44D.80609@mysql.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
+
+Bug-Description:
+
+Readline neglects to reallocate the array it uses to keep track of wrapped
+screen lines when increasing its size.  This will eventually result in
+segmentation faults when given sufficiently long input.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c Thu Sep 14 14:20:12 2006
+--- lib/readline/display.c     Fri Feb  2 20:23:17 2007
+***************
+*** 561,574 ****
+--- 561,586 ----
+        wrap_offset = prompt_invis_chars_first_line = 0;
+      }
+  
++ #if defined (HANDLE_MULTIBYTE)
+  #define CHECK_INV_LBREAKS() \
+        do { \
+       if (newlines >= (inv_lbsize - 2)) \
+         { \
+           inv_lbsize *= 2; \
+           inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++          _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
+         } \
+        } while (0)
++ #else
++ #define CHECK_INV_LBREAKS() \
++       do { \
++      if (newlines >= (inv_lbsize - 2)) \
++        { \
++          inv_lbsize *= 2; \
++          inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++        } \
++       } while (0)
++ #endif /* HANDLE_MULTIBYTE */
+  
+  #if defined (HANDLE_MULTIBYTE)         
+  #define CHECK_LPOS() \
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 12
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-014 b/src/patches/bash/bash32-014
new file mode 100644 (file)
index 0000000..b706505
--- /dev/null
@@ -0,0 +1,307 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-014
+
+Bug-Reported-by: Brett Stahlman <brettstahlman@comcast.net>
+Bug-Reference-ID: <000701c72d29$a227e0e0$5ec7cf47@computerroom>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2006-12/msg00065.html
+
+Bug-Description:
+
+Bash mishandles word splitting under certain circumstances when IFS is
+null (IFS=).  Constructs affected include ${param/pat/sub} and others
+when expanding arrays (array[@]).
+
+Patch:
+
+*** ../bash-3.2-patched/array.c        Wed Jun  1 16:39:22 2005
+--- array.c    Mon Jan 15 22:58:00 2007
+***************
+*** 121,125 ****
+  }
+  
+- #ifdef INCLUDE_UNUSED
+  /*
+   * Make and return a new array composed of the elements in array A from
+--- 121,124 ----
+***************
+*** 142,146 ****
+               n = array_create_element (element_index(p), element_value(p));
+               ADD_BEFORE(a->head, n);
+!              mi = element_index(ae);
+       }
+       a->num_elements = i;
+--- 141,145 ----
+               n = array_create_element (element_index(p), element_value(p));
+               ADD_BEFORE(a->head, n);
+!              mi = element_index(n);
+       }
+       a->num_elements = i;
+***************
+*** 148,152 ****
+       return a;
+  }
+- #endif
+  
+  /*
+--- 147,150 ----
+***************
+*** 301,304 ****
+--- 299,319 ----
+  }
+  
++ ARRAY        *
++ array_quote_escapes(array)
++ ARRAY        *array;
++ {
++      ARRAY_ELEMENT   *a;
++      char    *t;
++ 
++      if (array == 0 || array_head(array) == 0 || array_empty(array))
++              return (ARRAY *)NULL;
++      for (a = element_forw(array->head); a != array->head; a = element_forw(a)) {
++              t = quote_escapes (a->value);
++              FREE(a->value);
++              a->value = t;
++      }
++      return array;
++ }
++ 
+  /*
+   * Return a string whose elements are the members of array A beginning at
+***************
+*** 312,318 ****
+  int  starsub, quoted;
+  {
+       ARRAY_ELEMENT   *h, *p;
+       arrayind_t      i;
+!      char            *ifs, sep[2];
+  
+       p = a ? array_head (a) : 0;
+--- 327,334 ----
+  int  starsub, quoted;
+  {
++      ARRAY           *a2;
+       ARRAY_ELEMENT   *h, *p;
+       arrayind_t      i;
+!      char            *ifs, sep[2], *t;
+  
+       p = a ? array_head (a) : 0;
+***************
+*** 337,340 ****
+--- 353,363 ----
+               ;
+  
++      a2 = array_slice(a, h, p);
++ 
++      if (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))
++              array_quote(a2);
++      else
++              array_quote_escapes(a2);
++ 
+       if (starsub && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT))) {
+               ifs = getifs();
+***************
+*** 344,348 ****
+       sep[1] = '\0';
+  
+!      return (array_to_string_internal (h, p, sep, quoted));
+  }
+  
+--- 367,374 ----
+       sep[1] = '\0';
+  
+!      t = array_to_string (a2, sep, 0);
+!      array_dispose(a2);
+! 
+!      return t;
+  }
+  
+***************
+*** 368,372 ****
+  
+       if (mflags & MATCH_QUOTED)
+!              array_quote (a2);
+       if (mflags & MATCH_STARSUB) {
+               ifs = getifs();
+--- 394,400 ----
+  
+       if (mflags & MATCH_QUOTED)
+!              array_quote(a2);
+!      else
+!              array_quote_escapes(a2);
+       if (mflags & MATCH_STARSUB) {
+               ifs = getifs();
+*** ../bash-3.2-patched/array.h        Sun Jun  1 15:50:30 2003
+--- array.h    Mon Jan 15 22:35:35 2007
+***************
+*** 56,59 ****
+--- 56,60 ----
+  extern int   array_shift_element __P((ARRAY *, char *));
+  extern ARRAY *array_quote __P((ARRAY *));
++ extern ARRAY *array_quote_escapes __P((ARRAY *));
+  
+  extern char  *array_subrange __P((ARRAY *, arrayind_t, arrayind_t, int, int));
+*** ../bash-3.2-patched/subst.c        Fri Mar  2 16:20:50 2007
+--- subst.c    Tue Mar  6 11:40:55 2007
+***************
+*** 1888,1892 ****
+--- 1889,1899 ----
+  #endif
+  
++   /* XXX -- why call quote_list if ifs == 0?  we can get away without doing
++      it now that quote_escapes quotes spaces */
++ #if 0
+    tlist = ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || (ifs && *ifs == 0))
++ #else
++   tlist = (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))
++ #endif
+               ? quote_list (list)
+               : list_quote_escapes (list);
+***************
+*** 2922,2926 ****
+  /* Quote escape characters in string s, but no other characters.  This is
+     used to protect CTLESC and CTLNUL in variable values from the rest of
+!    the word expansion process after the variable is expanded. */
+  char *
+  quote_escapes (string)
+--- 2935,2944 ----
+  /* Quote escape characters in string s, but no other characters.  This is
+     used to protect CTLESC and CTLNUL in variable values from the rest of
+!    the word expansion process after the variable is expanded.  If IFS is
+!    null, we quote spaces as well, just in case we split on spaces later
+!    (in the case of unquoted $@, we will eventually attempt to split the
+!    entire word on spaces).  Corresponding code exists in dequote_escapes.
+!    Even if we don't end up splitting on spaces, quoting spaces is not a
+!    problem. */
+  char *
+  quote_escapes (string)
+***************
+*** 2930,2933 ****
+--- 2948,2952 ----
+    size_t slen;
+    char *result, *send;
++   int quote_spaces;
+    DECLARE_MBSTATE; 
+  
+***************
+*** 2935,2938 ****
+--- 2954,2958 ----
+    send = string + slen;
+  
++   quote_spaces = (ifs_value && *ifs_value == 0);
+    t = result = (char *)xmalloc ((slen * 2) + 1);
+    s = string;
+***************
+*** 2940,2944 ****
+    while (*s)
+      {
+!       if (*s == CTLESC || *s == CTLNUL)
+       *t++ = CTLESC;
+        COPY_CHAR_P (t, s, send);
+--- 2960,2964 ----
+    while (*s)
+      {
+!       if (*s == CTLESC || *s == CTLNUL || (quote_spaces && *s == ' '))
+       *t++ = CTLESC;
+        COPY_CHAR_P (t, s, send);
+***************
+*** 2982,2985 ****
+--- 3002,3006 ----
+    size_t slen;
+    char *result, *send;
++   int quote_spaces;
+    DECLARE_MBSTATE;
+  
+***************
+*** 2996,3002 ****
+      return (strcpy (result, s));
+  
+    while (*s)
+      {
+!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL))
+       {
+         s++;
+--- 3017,3024 ----
+      return (strcpy (result, s));
+  
++   quote_spaces = (ifs_value && *ifs_value == 0);
+    while (*s)
+      {
+!       if (*s == CTLESC && (s[1] == CTLESC || s[1] == CTLNUL || (quote_spaces && s[1] == ' ')))
+       {
+         s++;
+***************
+*** 4462,4466 ****
+        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
+  
+!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || c == CTLESC || c == CTLNUL)
+       istring[istring_index++] = CTLESC;
+  
+--- 4498,4510 ----
+        RESIZE_MALLOCED_BUFFER (istring, istring_index, 2, istring_size, DEFAULT_ARRAY_SIZE);
+  
+!       /* This is essentially quote_string inline */
+!       if ((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) /* || c == CTLESC || c == CTLNUL */)
+!      istring[istring_index++] = CTLESC;
+!       /* Escape CTLESC and CTLNUL in the output to protect those characters
+!       from the rest of the word expansions (word splitting and globbing.)
+!       This is essentially quote_escapes inline. */
+!       else if (c == CTLESC)
+!      istring[istring_index++] = CTLESC;
+!       else if (c == CTLNUL || (c == ' ' && (ifs_value && *ifs_value == 0)))
+       istring[istring_index++] = CTLESC;
+  
+***************
+*** 5552,5555 ****
+--- 5610,5616 ----
+        rely on array_subrange to understand how to deal with them). */
+        tt = array_subrange (array_cell (v), e1, e2, starsub, quoted);
++ #if 0
++       /* array_subrange now calls array_quote_escapes as appropriate, so the
++       caller no longer needs to. */
+        if ((quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)) == 0)
+       {
+***************
+*** 5558,5561 ****
+--- 5619,5623 ----
+       }
+        else
++ #endif
+       temp = tt;
+        break;
+***************
+*** 5808,5811 ****
+--- 5870,5876 ----
+      case VT_ARRAYVAR:
+        temp = array_patsub (array_cell (v), p, rep, mflags);
++ #if 0
++       /* Don't need to do this anymore; array_patsub calls array_quote_escapes
++       as appropriate before adding the space separators. */
+        if (temp && (mflags & MATCH_QUOTED) == 0)
+       {
+***************
+*** 5814,5817 ****
+--- 5879,5883 ----
+         temp = tt;
+       }
++ #endif
+        break;
+  #endif
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 13
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-015 b/src/patches/bash/bash32-015
new file mode 100644 (file)
index 0000000..d887f6e
--- /dev/null
@@ -0,0 +1,95 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-015
+
+Bug-Reported-by:
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under certain circumstances, when using FIFOs for process substitution,
+bash fails to unlink the FIFOs.  This leaves open file descriptors that
+can cause the shell to hang and litters the file system.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c  Fri Mar  2 16:20:50 2007
+--- execute_cmd.c      Wed Jan 31 23:12:06 2007
+***************
+*** 3051,3054 ****
+--- 3051,3059 ----
+      command_line = savestring (the_printed_command_except_trap);
+  
++ #if defined (PROCESS_SUBSTITUTION)
++   if ((subshell_environment & SUBSHELL_COMSUB) && (simple_command->flags & CMD_NO_FORK) && fifos_pending() > 0)
++     simple_command->flags &= ~CMD_NO_FORK;
++ #endif
++ 
+    execute_disk_command (words, simple_command->redirects, command_line,
+                       pipe_in, pipe_out, async, fds_to_close,
+*** ../bash-3.2-patched/subst.c        Fri Mar  2 16:20:50 2007
+--- subst.c    Tue Mar  6 11:40:55 2007
+***************
+*** 4129,4132 ****
+--- 4151,4160 ----
+  }
+  
++ int
++ fifos_pending ()
++ {
++   return nfifo;
++ }
++ 
+  static char *
+  make_named_pipe ()
+***************
+*** 4178,4181 ****
+--- 4206,4215 ----
+  }
+  
++ int
++ fifos_pending ()
++ {
++   return 0;  /* used for cleanup; not needed with /dev/fd */
++ }
++ 
+  void
+  unlink_fifo_list ()
+***************
+*** 4671,4674 ****
+--- 4719,4725 ----
+        last_command_exit_value = rc;
+        rc = run_exit_trap ();
++ #if defined (PROCESS_SUBSTITUTION)
++       unlink_fifo_list ();
++ #endif
+        exit (rc);
+      }
+*** ../bash-3.2-patched/subst.h        Tue Sep 19 08:34:41 2006
+--- subst.h    Wed Jan 10 09:46:47 2007
+***************
+*** 223,226 ****
+--- 223,227 ----
+  extern char *pat_subst __P((char *, char *, char *, int));
+  
++ extern int fifos_pending __P((void));
+  extern void unlink_fifo_list __P((void));
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 14
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-016 b/src/patches/bash/bash32-016
new file mode 100644 (file)
index 0000000..a0f065a
--- /dev/null
@@ -0,0 +1,52 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-016
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
+
+Bug-Description:
+
+When moving the cursor, bash sometimes misplaces the cursor when the prompt
+contains two or more multibyte characters.  The particular circumstance that
+uncovered the problem was having the (multibyte) current directory name in
+the prompt string.
+
+Patch:
+
+*** ../bash-3.2/lib/readline/display.c Fri Jan 19 13:34:50 2007
+--- lib/readline/display.c     Sat Mar 10 17:25:44 2007
+***************
+*** 1745,1749 ****
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       if (dpos > prompt_last_invisible)              /* XXX - don't use woff here */
+       {
+         dpos -= woff;
+--- 1745,1752 ----
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       /* Use NEW when comparing against the last invisible character in the
+!       prompt string, since they're both buffer indices and DPOS is a
+!       desired display position. */
+!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
+       {
+         dpos -= woff;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 15
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-017 b/src/patches/bash/bash32-017
new file mode 100644 (file)
index 0000000..99e5e70
--- /dev/null
@@ -0,0 +1,85 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-017
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
+
+Bug-Description:
+
+When restoring the original prompt after finishing an incremental search,
+bash sometimes places the cursor incorrectly if the primary prompt contains
+invisible characters.
+
+Patch:
+
+*** ../bash-3.2.16/lib/readline/display.c      Fri Apr 20 13:30:16 2007
+--- lib/readline/display.c     Fri Apr 20 15:17:01 2007
+***************
+*** 1599,1604 ****
+         if (temp > 0)
+           {
+             _rl_output_some_chars (nfd, temp);
+!            _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
+           }
+       }
+--- 1599,1618 ----
+         if (temp > 0)
+           {
++            /* If nfd begins at the prompt, or before the invisible
++               characters in the prompt, we need to adjust _rl_last_c_pos
++               in a multibyte locale to account for the wrap offset and
++               set cpos_adjusted accordingly. */
+             _rl_output_some_chars (nfd, temp);
+!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+!              {
+!                   _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
+!                   if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
+!                  {
+!                    _rl_last_c_pos -= wrap_offset;
+!                    cpos_adjusted = 1;
+!                  }
+!              }
+!               else
+!                 _rl_last_c_pos += temp;
+           }
+       }
+***************
+*** 1608,1613 ****
+--- 1622,1639 ----
+         if (temp > 0)
+           {
++            /* If nfd begins at the prompt, or before the invisible
++               characters in the prompt, we need to adjust _rl_last_c_pos
++               in a multibyte locale to account for the wrap offset and
++               set cpos_adjusted accordingly. */
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;               /* XXX */
++            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
++              {
++                if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
++                  {
++                    _rl_last_c_pos -= wrap_offset;
++                    cpos_adjusted = 1;
++                  }
++              }
+           }
+         lendiff = (oe - old) - (ne - new);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 16
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 17
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-018 b/src/patches/bash/bash32-018
new file mode 100644 (file)
index 0000000..d729aaf
--- /dev/null
@@ -0,0 +1,98 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-018
+
+Bug-Reported-by:       osicka@post.cz
+Bug-Reference-ID:      <228.177-19682-1132061412-1179356692@post.cz>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00061.html
+
+Bug-Description:
+
+In certain cases, bash can lose the saved status of a background job, though
+it should still be reported by `wait'.  Bash can also loop infinitely after
+creating and waiting for 4096 jobs.
+
+Patch:
+
+*** ../bash-20070510/jobs.c    Thu Mar  8 16:05:50 2007
+--- jobs.c     Fri May 18 11:40:14 2007
+***************
+*** 784,792 ****
+      {
+        old = js.j_firstj++;
+        while (js.j_firstj != old)
+       {
+         if (js.j_firstj >= js.j_jobslots)
+           js.j_firstj = 0;
+!        if (jobs[js.j_firstj])
+           break;
+         js.j_firstj++;
+--- 784,794 ----
+      {
+        old = js.j_firstj++;
++       if (old >= js.j_jobslots)
++      old = js.j_jobslots - 1;
+        while (js.j_firstj != old)
+       {
+         if (js.j_firstj >= js.j_jobslots)
+           js.j_firstj = 0;
+!        if (jobs[js.j_firstj] || js.j_firstj == old)  /* needed if old == 0 */
+           break;
+         js.j_firstj++;
+***************
+*** 798,806 ****
+      {
+        old = js.j_lastj--;
+        while (js.j_lastj != old)
+       {
+         if (js.j_lastj < 0)
+           js.j_lastj = js.j_jobslots - 1;
+!        if (jobs[js.j_lastj])
+           break;
+         js.j_lastj--;
+--- 800,810 ----
+      {
+        old = js.j_lastj--;
++       if (old < 0)
++      old = 0;
+        while (js.j_lastj != old)
+       {
+         if (js.j_lastj < 0)
+           js.j_lastj = js.j_jobslots - 1;
+!        if (jobs[js.j_lastj] || js.j_lastj == old)    /* needed if old == js.j_jobslots */
+           break;
+         js.j_lastj--;
+***************
+*** 964,968 ****
+    realloc_jobs_list ();
+  
+!   return (js.j_lastj);
+  }
+  
+--- 975,983 ----
+    realloc_jobs_list ();
+  
+! #ifdef DEBUG
+!   itrace("compact_jobs_list: returning %d", (js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+! #endif
+! 
+!   return ((js.j_lastj || jobs[js.j_lastj]) ? js.j_lastj + 1 : 0);
+  }
+  
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 17
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 18
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-019 b/src/patches/bash/bash32-019
new file mode 100644 (file)
index 0000000..647bd1f
--- /dev/null
@@ -0,0 +1,343 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-019
+
+Bug-Reported-by:       Thomas Loeber <ifp@loeber1.de>
+Bug-Reference-ID:      <200703082223.08919.ifp@loeber1.de>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
+
+Bug-Description:
+
+When rl_read_key returns -1, indicating that bash's controlling terminal
+has been invalidated for some reason (e.g., receiving a SIGHUP), the error
+status was not reported correctly to the caller.  This could cause input
+loops. 
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/complete.c        Fri Jul 28 11:35:49 2006
+--- lib/readline/complete.c    Tue Mar 13 08:50:16 2007
+***************
+*** 429,433 ****
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+!       if (c == ABORT_CHAR)
+       _rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+--- 440,444 ----
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+!       if (c == ABORT_CHAR || c < 0)
+       _rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+*** ../bash-3.2-patched/lib/readline/input.c   Wed Aug 16 15:15:16 2006
+--- lib/readline/input.c       Wed May  2 16:07:59 2007
+***************
+*** 514,518 ****
+       int size;
+  {
+!   int mb_len = 0;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+--- 522,526 ----
+       int size;
+  {
+!   int mb_len, c;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+***************
+*** 521,531 ****
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+!   
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       mbchar[mb_len++] = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+--- 529,545 ----
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+! 
+!   mb_len = 0;  
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       c = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++       if (c < 0)
++      break;
++ 
++       mbchar[mb_len++] = c;
++ 
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+***************
+*** 565,569 ****
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; i < mlen; i++)
+      {
+        mb[i] = (char)c;
+--- 579,583 ----
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; c >= 0 && i < mlen; i++)
+      {
+        mb[i] = (char)c;
+*** ../bash-3.2-patched/lib/readline/isearch.c Mon Dec 26 17:18:53 2005
+--- lib/readline/isearch.c     Fri Mar  9 14:30:59 2007
+***************
+*** 328,333 ****
+  
+    f = (rl_command_func_t *)NULL;
+!  
+!  /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+--- 328,340 ----
+  
+    f = (rl_command_func_t *)NULL;
+! 
+!   if (c < 0)
+!     {
+!       cxt->sflags |= SF_FAILED;
+!       cxt->history_pos = cxt->last_found_line;
+!       return -1;
+!     }
+! 
+!   /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+*** ../bash-3.2-patched/lib/readline/misc.c    Mon Dec 26 17:20:46 2005
+--- lib/readline/misc.c        Fri Mar  9 14:44:11 2007
+***************
+*** 147,150 ****
+--- 147,152 ----
+         rl_clear_message ();
+         RL_UNSETSTATE(RL_STATE_NUMERICARG);
++        if (key < 0)
++          return -1;
+         return (_rl_dispatch (key, _rl_keymap));
+       }
+*** ../bash-3.2-patched/lib/readline/readline.c        Wed Aug 16 15:00:36 2006
+--- lib/readline/readline.c    Fri Mar  9 14:47:24 2007
+***************
+*** 646,649 ****
+--- 669,677 ----
+      {
+        nkey = _rl_subseq_getchar (cxt->okey);
++       if (nkey < 0)
++      {
++        _rl_abort_internal ();
++        return -1;
++      }
+        r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+        cxt->flags |= KSEQ_DISPATCHED;
+*** ../bash-3.2-patched/lib/readline/text.c    Fri Jul 28 11:55:27 2006
+--- lib/readline/text.c        Sun Mar 25 13:41:38 2007
+***************
+*** 858,861 ****
+--- 864,870 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_SIGNALS)
+    if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
+***************
+*** 1521,1524 ****
+--- 1530,1536 ----
+    mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
+  
++   if (mb_len <= 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
+***************
+*** 1537,1540 ****
+--- 1549,1555 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, c));
+*** ../bash-3.2-patched/lib/readline/vi_mode.c Sat Jul 29 16:42:28 2006
+--- lib/readline/vi_mode.c     Fri Mar  9 15:02:11 2007
+***************
+*** 887,890 ****
+--- 887,897 ----
+    c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ 
++   if (c < 0)
++     {
++       *nextkey = 0;
++       return -1;
++     }
++ 
+    *nextkey = c;
+  
+***************
+*** 903,906 ****
+--- 910,918 ----
+         c = rl_read_key ();   /* real command */
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
++        if (c < 0)
++          {
++            *nextkey = 0;
++            return -1;
++          }
+         *nextkey = c;
+       }
+***************
+*** 1225,1236 ****
+       _rl_callback_generic_arg *data;
+  {
+  #if defined (HANDLE_MULTIBYTE)
+!   _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   _rl_vi_last_search_char = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+--- 1243,1262 ----
+       _rl_callback_generic_arg *data;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+!   c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
++   if (c <= 0)
++     return -1;
++ 
++ #if !defined (HANDLE_MULTIBYTE)
++   _rl_vi_last_search_char = c;
++ #endif
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1248,1251 ****
+--- 1274,1278 ----
+       int count, key;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+    static char *target;
+***************
+*** 1294,1302 ****
+       {
+  #if defined (HANDLE_MULTIBYTE)
+!        _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+         RL_SETSTATE(RL_STATE_MOREINPUT);
+!        _rl_vi_last_search_char = rl_read_key ();
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+       }
+--- 1321,1335 ----
+       {
+  #if defined (HANDLE_MULTIBYTE)
+!        c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+!        if (c <= 0)
+!          return -1;
+!        _rl_vi_last_search_mblen = c;
+  #else
+         RL_SETSTATE(RL_STATE_MOREINPUT);
+!        c = rl_read_key ();
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
++        if (c < 0)
++          return -1;
++        _rl_vi_last_search_char = c;
+  #endif
+       }
+***************
+*** 1468,1471 ****
+--- 1501,1507 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_MULTIBYTE)
+    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+***************
+*** 1486,1489 ****
+--- 1522,1528 ----
+    _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1517,1520 ****
+--- 1556,1562 ----
+      _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    return (_rl_vi_change_char (count, c, mb));
+  }
+***************
+*** 1651,1655 ****
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1693,1697 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 0 || ch < 'a' || ch > 'z')        /* make test against 0 explicit */
+      {
+        rl_ding ();
+***************
+*** 1703,1707 ****
+        return 0;
+      }
+!   else if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1745,1749 ----
+        return 0;
+      }
+!   else if (ch < 0 || ch < 'a' || ch > 'z')   /* make test against 0 explicit */
+      {
+        rl_ding ();
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 18
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 19
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-020 b/src/patches/bash/bash32-020
new file mode 100644 (file)
index 0000000..8c7e328
--- /dev/null
@@ -0,0 +1,183 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-020
+
+Bug-Reported-by:       Ian A Watson <WATSON_IAN_A@LILLY.COM>
+Bug-Reference-ID:      <OFEC551808.69D02C7F-ON8525729A.0045708D-8525729A.0046150B@EliLilly.lilly.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+In some cases of error processing, a jump back to the top-level processing
+loop from a builtin command  would leave the shell in an inconsistent state.
+
+Patch:
+
+*** ../bash-3.2-patched/sig.c  Wed Jan 25 14:57:59 2006
+--- sig.c      Sat Mar 10 11:11:30 2007
+***************
+*** 351,354 ****
+--- 351,373 ----
+  #undef XHANDLER
+  
++ /* Run some of the cleanups that should be performed when we run
++    jump_to_top_level from a builtin command context.  XXX - might want to
++    also call reset_parser here. */
++ void
++ top_level_cleanup ()
++ {
++   /* Clean up string parser environment. */
++   while (parse_and_execute_level)
++     parse_and_execute_cleanup ();
++ 
++ #if defined (PROCESS_SUBSTITUTION)
++   unlink_fifo_list ();
++ #endif /* PROCESS_SUBSTITUTION */
++ 
++   run_unwind_protects ();
++   loop_level = continuing = breaking = 0;
++   return_catch_flag = 0;
++ }
++ 
+  /* What to do when we've been interrupted, and it is safe to handle it. */
+  void
+*** ../bash-3.2-patched/sig.h  Wed Jan 25 14:50:27 2006
+--- sig.h      Sat Mar 10 11:14:18 2007
+***************
+*** 122,125 ****
+--- 122,126 ----
+  extern void initialize_terminating_signals __P((void));
+  extern void reset_terminating_signals __P((void));
++ extern void top_level_cleanup __P((void));
+  extern void throw_to_top_level __P((void));
+  extern void jump_to_top_level __P((int)) __attribute__((__noreturn__));
+*** ../bash-3.2-patched/builtins/common.c      Tue Apr  3 16:47:13 2007
+--- builtins/common.c  Mon Apr 30 15:01:33 2007
+***************
+*** 132,135 ****
+--- 132,136 ----
+      {
+        builtin_error (_("too many arguments"));
++       top_level_cleanup ();
+        jump_to_top_level (DISCARD);
+      }
+***************
+*** 396,400 ****
+           throw_to_top_level ();
+         else
+!          jump_to_top_level (DISCARD);
+       }
+        no_args (list->next);
+--- 410,417 ----
+           throw_to_top_level ();
+         else
+!          {
+!            top_level_cleanup ();
+!            jump_to_top_level (DISCARD);
+!          }
+       }
+        no_args (list->next);
+*** ../bash-3.2-patched/subst.c        Tue Apr  3 16:47:19 2007
+--- subst.c    Tue Jul 17 09:45:11 2007
+***************
+*** 1279,1283 ****
+        if (no_longjmp_on_fatal_error == 0)
+       {                       /* { */
+!        report_error ("bad substitution: no closing `%s' in %s", "}", string);
+         last_command_exit_value = EXECUTION_FAILURE;
+         exp_jump_to_top_level (DISCARD);
+--- 1290,1294 ----
+        if (no_longjmp_on_fatal_error == 0)
+       {                       /* { */
+!        report_error (_("bad substitution: no closing `%s' in %s"), "}", string);
+         last_command_exit_value = EXECUTION_FAILURE;
+         exp_jump_to_top_level (DISCARD);
+***************
+*** 7662,7665 ****
+--- 7706,7711 ----
+    expand_no_split_dollar_star = 0;   /* XXX */
+    expanding_redir = 0;
++ 
++   top_level_cleanup ();                      /* from sig.c */
+  
+    jump_to_top_level (v);
+***************
+*** 7880,7884 ****
+           {
+             report_error (_("no match: %s"), tlist->word->word);
+!            jump_to_top_level (DISCARD);
+           }
+         else if (allow_null_glob_expansion == 0)
+--- 7927,7931 ----
+           {
+             report_error (_("no match: %s"), tlist->word->word);
+!            exp_jump_to_top_level (DISCARD);
+           }
+         else if (allow_null_glob_expansion == 0)
+*** ../bash-3.2-patched/arrayfunc.c    Thu Jul 27 09:37:59 2006
+--- arrayfunc.c        Thu May 31 11:55:46 2007
+***************
+*** 619,622 ****
+--- 619,624 ----
+      {
+        last_command_exit_value = EXECUTION_FAILURE;
++ 
++       top_level_cleanup ();      
+        jump_to_top_level (DISCARD);
+      }
+*** ../bash-3.2-patched/expr.c Wed Dec 28 17:47:03 2005
+--- expr.c     Tue Apr 24 14:17:59 2007
+***************
+*** 930,933 ****
+--- 930,934 ----
+       {
+         expr_unwind ();
++        top_level_cleanup ();
+         jump_to_top_level (DISCARD);
+       }
+*** ../bash-3.2-patched/variables.c    Fri Sep  8 13:33:32 2006
+--- variables.c        Tue Jul 17 09:54:59 2007
+***************
+*** 1822,1830 ****
+         lval = evalexp (oval, &expok);        /* ksh93 seems to do this */
+         if (expok == 0)
+!          jump_to_top_level (DISCARD);
+       }
+        rval = evalexp (value, &expok);
+        if (expok == 0)
+!      jump_to_top_level (DISCARD);
+        if (flags & ASS_APPEND)
+       rval += lval;
+--- 1855,1869 ----
+         lval = evalexp (oval, &expok);        /* ksh93 seems to do this */
+         if (expok == 0)
+!          {
+!            top_level_cleanup ();
+!            jump_to_top_level (DISCARD);
+!          }
+       }
+        rval = evalexp (value, &expok);
+        if (expok == 0)
+!      {
+!        top_level_cleanup ();
+!        jump_to_top_level (DISCARD);
+!      }
+        if (flags & ASS_APPEND)
+       rval += lval;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 19
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 20
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-021 b/src/patches/bash/bash32-021
new file mode 100644 (file)
index 0000000..003489c
--- /dev/null
@@ -0,0 +1,72 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-021
+
+Bug-Reported-by:       BAGSHAW Paul RD-TECH-REN <paul.bagshaw@orange-ftgroup.com>
+Bug-Reference-ID:      <941BA0BF46DB8F4983FF7C8AFE800BC205EA7D4B@ftrdmel3.rd.francetelecom.fr>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00065.html
+
+Bug-Description:
+
+When the parser read a backslash-escaped character that would be treated
+internally as an escape, it would double the number of escape characters.
+
+Patch:
+
+*** ../bash-3.2-patched/parse.y        Mon Oct 30 17:22:00 2006
+--- parse.y    Sat Mar 24 17:13:20 2007
+***************
+*** 3377,3381 ****
+       {
+         pass_next_character = 0;
+!        goto got_character;
+       }
+  
+--- 3377,3381 ----
+       {
+         pass_next_character = 0;
+!        goto got_escaped_character;
+       }
+  
+***************
+*** 3651,3660 ****
+      got_character:
+  
+-       all_digit_token &= DIGIT (character);
+-       dollar_present |= character == '$';
+- 
+        if (character == CTLESC || character == CTLNUL)
+       token[token_index++] = CTLESC;
+  
+        token[token_index++] = character;
+  
+--- 3651,3662 ----
+      got_character:
+  
+        if (character == CTLESC || character == CTLNUL)
+       token[token_index++] = CTLESC;
+  
++     got_escaped_character:
++ 
++       all_digit_token &= DIGIT (character);
++       dollar_present |= character == '$';
++ 
+        token[token_index++] = character;
+  
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 20
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 21
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-022 b/src/patches/bash/bash32-022
new file mode 100644 (file)
index 0000000..d3679e6
--- /dev/null
@@ -0,0 +1,126 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-022
+
+Bug-Reported-by:       Chet Ramey <chet.ramey@cwru.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+POSIX specifies that the `read' builtin invoked from an interative shell
+must prompt with $PS2 when a line is continued using a backslash while
+reading from a terminal.
+
+Patch:
+
+*** ../bash-3.2-patched/builtins/read.def      Tue Sep 19 08:45:48 2006
+--- builtins/read.def  Thu May 24 16:03:30 2007
+***************
+*** 128,133 ****
+  {
+    register char *varname;
+!   int size, i, nr, pass_next, saw_escape, eof, opt, retval, code;
+!   int input_is_tty, input_is_pipe, unbuffered_read;
+    int raw, edit, nchars, silent, have_timeout, fd;
+    unsigned int tmout;
+--- 131,136 ----
+  {
+    register char *varname;
+!   int size, i, nr, pass_next, saw_escape, eof, opt, retval, code, print_ps2;
+!   int input_is_tty, input_is_pipe, unbuffered_read, skip_ctlesc, skip_ctlnul;
+    int raw, edit, nchars, silent, have_timeout, fd;
+    unsigned int tmout;
+***************
+*** 135,139 ****
+    char c;
+    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+!   char *e, *t, *t1;
+    struct stat tsb;
+    SHELL_VAR *var;
+--- 138,142 ----
+    char c;
+    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+!   char *e, *t, *t1, *ps2;
+    struct stat tsb;
+    SHELL_VAR *var;
+***************
+*** 149,152 ****
+--- 152,156 ----
+    USE_VAR(i);
+    USE_VAR(pass_next);
++   USE_VAR(print_ps2);
+    USE_VAR(saw_escape);
+    USE_VAR(input_is_pipe);
+***************
+*** 164,167 ****
+--- 168,172 ----
+  #endif
+    USE_VAR(list);
++   USE_VAR(ps2);
+  
+    i = 0;             /* Index into the string that we are reading. */
+***************
+*** 387,391 ****
+  #endif
+  
+!   for (eof = retval = 0;;)
+      {
+  #if defined (READLINE)
+--- 394,399 ----
+  #endif
+  
+!   ps2 = 0;
+!   for (print_ps2 = eof = retval = 0;;)
+      {
+  #if defined (READLINE)
+***************
+*** 413,416 ****
+--- 421,433 ----
+  #endif
+  
++       if (print_ps2)
++      {
++        if (ps2 == 0)
++          ps2 = get_string_value ("PS2");
++        fprintf (stderr, "%s", ps2 ? ps2 : "");
++        fflush (stderr);
++        print_ps2 = 0;
++      }
++ 
+        if (unbuffered_read)
+       retval = zread (fd, &c, 1);
+***************
+*** 441,445 ****
+         pass_next = 0;
+         if (c == '\n')
+!          i--;                /* back up over the CTLESC */
+         else
+           goto add_char;
+--- 458,466 ----
+         pass_next = 0;
+         if (c == '\n')
+!          {
+!            i--;              /* back up over the CTLESC */
+!            if (interactive && input_is_tty && raw == 0)
+!              print_ps2 = 1;
+!          }
+         else
+           goto add_char;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 21
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 22
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-023 b/src/patches/bash/bash32-023
new file mode 100644 (file)
index 0000000..34a6394
--- /dev/null
@@ -0,0 +1,51 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-023
+
+Bug-Reported-by:       Chet Ramey <chet.ramey@cwru.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+When an error occurs during the pattern removal word expansion, the shell
+can free unallocated memory or free memory multiple times.
+
+Patch:
+
+*** ../bash-3.2-patched/subst.c        Tue Apr  3 16:47:19 2007
+--- subst.c    Tue Jul 17 09:45:11 2007
+***************
+*** 3975,3979 ****
+      patstr++;
+  
+!   pattern = getpattern (patstr, quoted, 1);
+  
+    temp1 = (char *)NULL;              /* shut up gcc */
+--- 4008,4016 ----
+      patstr++;
+  
+!   /* Need to pass getpattern newly-allocated memory in case of expansion --
+!      the expansion code will free the passed string on an error. */
+!   temp1 = savestring (patstr);
+!   pattern = getpattern (temp1, quoted, 1);
+!   free (temp1);
+  
+    temp1 = (char *)NULL;              /* shut up gcc */
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 22
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 23
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-024 b/src/patches/bash/bash32-024
new file mode 100644 (file)
index 0000000..1575f37
--- /dev/null
@@ -0,0 +1,77 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-024
+
+Bug-Reported-by:       Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID:      <1178376645.9063.25.camel@localhost>
+Bug-Reference-URL:     http://bugs.gentoo.org/177095
+
+Bug-Description:
+
+The readline display code miscalculated the screen position when performing
+a redisplay in which the new text occupies more screen space that the old,
+but takes fewer bytes to do so (e.g., when replacing a shorter string
+containing multibyte characters with a longer one containing only ASCII).
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c Thu Apr 26 11:38:22 2007
+--- lib/readline/display.c     Thu Jul 12 23:10:10 2007
+***************
+*** 1519,1527 ****
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
+        /* Sometimes it is cheaper to print the characters rather than
+        use the terminal's capabilities.  If we're growing the number
+        of lines, make sure we actually cause the new line to wrap
+        around on auto-wrapping terminals. */
+!       if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+       {
+         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+--- 1568,1596 ----
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
++       /* If col_lendiff is > 0, implying that the new string takes up more
++       screen real estate than the old, but lendiff is < 0, meaning that it
++       takes fewer bytes, we need to just output the characters starting
++       from the first difference.  These will overwrite what is on the
++       display, so there's no reason to do a smart update.  This can really
++       only happen in a multibyte environment. */
++       if (lendiff < 0)
++      {
++        _rl_output_some_chars (nfd, temp);
++        _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
++        /* If nfd begins before any invisible characters in the prompt,
++           adjust _rl_last_c_pos to account for wrap_offset and set
++           cpos_adjusted to let the caller know. */
++        if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++          {
++            _rl_last_c_pos -= wrap_offset;
++            cpos_adjusted = 1;
++          }
++        return;
++      }
+        /* Sometimes it is cheaper to print the characters rather than
+        use the terminal's capabilities.  If we're growing the number
+        of lines, make sure we actually cause the new line to wrap
+        around on auto-wrapping terminals. */
+!       else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+       {
+         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 23
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 24
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-025 b/src/patches/bash/bash32-025
new file mode 100644 (file)
index 0000000..4d53d89
--- /dev/null
@@ -0,0 +1,79 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-025
+
+Bug-Reported-by:       Tom Bjorkholm <tom.bjorkholm@ericsson.com>
+Bug-Reference-ID:      <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
+
+Bug-Description:
+
+An off-by-one error in readline's input buffering caused readline to drop
+each 511th character of buffered input (e.g., when pasting a large amount
+of data into a terminal window).
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/input.c   Wed Aug 16 15:15:16 2006
+--- lib/readline/input.c       Tue Jul 17 09:24:21 2007
+***************
+*** 134,139 ****
+  
+    *key = ibuffer[pop_index++];
+! 
+    if (pop_index >= ibuffer_len)
+      pop_index = 0;
+  
+--- 134,142 ----
+  
+    *key = ibuffer[pop_index++];
+! #if 0
+    if (pop_index >= ibuffer_len)
++ #else
++   if (pop_index > ibuffer_len)
++ #endif
+      pop_index = 0;
+  
+***************
+*** 251,255 ****
+       {
+         k = (*rl_getc_function) (rl_instream);
+!        rl_stuff_char (k);
+         if (k == NEWLINE || k == RETURN)
+           break;
+--- 254,259 ----
+       {
+         k = (*rl_getc_function) (rl_instream);
+!        if (rl_stuff_char (k) == 0)
+!          break;                      /* some problem; no more room */
+         if (k == NEWLINE || k == RETURN)
+           break;
+***************
+*** 374,378 ****
+--- 378,386 ----
+      }
+    ibuffer[push_index++] = key;
++ #if 0
+    if (push_index >= ibuffer_len)
++ #else
++   if (push_index > ibuffer_len)
++ #endif
+      push_index = 0;
+  
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 24
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 25
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-026 b/src/patches/bash/bash32-026
new file mode 100644 (file)
index 0000000..ba7de50
--- /dev/null
@@ -0,0 +1,82 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-026
+
+Bug-Reported-by:       Chet Ramey <chet.ramey@case.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+This keeps the Apple linker from attempting to link bash against Apple's
+readline library "replacement" rather than the one shipped with bash.  It
+extends the configure workaround to Mac OS X Leopard (10.5).
+
+As a side effect, the patch updates the copyright date displayed in the
+version string.
+
+You must re-run configure after applying the patch, and before rebuilding
+bash.
+
+Patch:
+
+*** ../bash-3.2-patched/configure.in   2007-03-06 11:07:38.000000000 -0500
+--- configure.in       2007-11-23 15:37:41.000000000 -0500
+***************
+*** 519,523 ****
+               # dynamic version
+               case "${host_os}" in
+!              darwin8*)       READLINE_LIB='${READLINE_LIBRARY}' ;;
+               *)              READLINE_LIB=-lreadline ;;
+               esac
+--- 519,523 ----
+               # dynamic version
+               case "${host_os}" in
+!              darwin[[89]]*)  READLINE_LIB='${READLINE_LIBRARY}' ;;
+               *)              READLINE_LIB=-lreadline ;;
+               esac
+*** ../bash-3.2-patched/configure      2007-03-24 14:51:22.000000000 -0400
+--- configure  2007-11-23 15:46:15.000000000 -0500
+***************
+*** 4872,4876 ****
+               # dynamic version
+               case "${host_os}" in
+!              darwin8*)       READLINE_LIB='${READLINE_LIBRARY}' ;;
+               *)              READLINE_LIB=-lreadline ;;
+               esac
+--- 4872,4876 ----
+               # dynamic version
+               case "${host_os}" in
+!              darwin[89]*)    READLINE_LIB='${READLINE_LIBRARY}' ;;
+               *)              READLINE_LIB=-lreadline ;;
+               esac
+*** ../bash-3.2-patched/version.c      2005-05-16 11:58:34.000000000 -0400
+--- version.c  2007-11-23 16:03:40.000000000 -0500
+***************
+*** 80,83 ****
+    printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
+    if (extended)
+!     printf (_("Copyright (C) 2005 Free Software Foundation, Inc.\n"));
+  }
+--- 80,83 ----
+    printf ("GNU bash, version %s (%s)\n", shell_version_string (), MACHTYPE);
+    if (extended)
+!     printf (_("Copyright (C) 2007 Free Software Foundation, Inc.\n"));
+  }
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 25
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 26
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-027 b/src/patches/bash/bash32-027
new file mode 100644 (file)
index 0000000..5e110cb
--- /dev/null
@@ -0,0 +1,85 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-027
+
+Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID:      <4702ED8A.5000503@thequod.de>
+Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
+
+Bug-Description:
+
+When updating the display after displaying, for instance, a list of possible
+completions, readline will place the cursor at the wrong position if the
+prompt contains invisible characters and a newline.
+
+Patch:
+
+*** ../bash-3.2.25/lib/readline/display.c      Mon Aug  6 14:26:29 2007
+--- lib/readline/display.c     Wed Oct 10 22:43:58 2007
+***************
+*** 1049,1053 ****
+             else
+               tx = nleft;
+!            if (_rl_last_c_pos > tx)
+               {
+                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
+--- 1049,1053 ----
+             else
+               tx = nleft;
+!            if (tx >= 0 && _rl_last_c_pos > tx)
+               {
+                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
+***************
+*** 1205,1209 ****
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+--- 1205,1209 ----
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+***************
+*** 1466,1469 ****
+--- 1466,1471 ----
+      }
+  
++   o_cpos = _rl_last_c_pos;
++ 
+    /* When this function returns, _rl_last_c_pos is correct, and an absolute
+       cursor postion in multibyte mode, but a buffer index when not in a
+***************
+*** 1475,1479 ****
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
+--- 1477,1483 ----
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && 
+!       (_rl_last_c_pos > 0 || o_cpos > 0) &&
+!       _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 26
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 27
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-028 b/src/patches/bash/bash32-028
new file mode 100644 (file)
index 0000000..e818294
--- /dev/null
@@ -0,0 +1,60 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-028
+
+Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under some circumstances, readline will incorrectly display a prompt string
+containing invisible characters after the final newline.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
+--- lib/readline/display.c     2007-11-10 17:51:29.000000000 -0500
+***************
+*** 392,396 ****
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+                                      &prompt_last_invisible,
+!                                     (int *)NULL,
+                                      &prompt_physical_chars);
+        c = *t; *t = '\0';
+--- 420,424 ----
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+                                      &prompt_last_invisible,
+!                                     &prompt_invis_chars_first_line,
+                                      &prompt_physical_chars);
+        c = *t; *t = '\0';
+***************
+*** 399,403 ****
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+                                                  (int *)NULL,
+!                                                 &prompt_invis_chars_first_line,
+                                                  (int *)NULL);
+        *t = c;
+--- 427,431 ----
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+                                                  (int *)NULL,
+!                                                 (int *)NULL,
+                                                  (int *)NULL);
+        *t = c;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 27
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 28
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-029 b/src/patches/bash/bash32-029
new file mode 100644 (file)
index 0000000..9de2085
--- /dev/null
@@ -0,0 +1,52 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-029
+
+Bug-Reported-by:       Tomas Janousek <tjanouse@redhat.com>
+Bug-Reference-ID:      <20071102104034.GA26893@redhat.com>
+Bug-Reference-URL:     https://bugzilla.redhat.com/show_bug.cgi?id=286861
+
+Bug-Description:
+
+When the bash arithmetic expression evaluator has temporarily turned off
+evalation, such as when parsing a pre- or post-decrement or -increment
+operator, and an error occurs, evaluation is not re-enabled.
+
+Patch:
+
+*** ../bash-3.2-patched/expr.c 2007-08-25 13:47:05.000000000 -0400
+--- expr.c     2007-10-18 08:08:44.000000000 -0400
+***************
+*** 287,290 ****
+--- 287,292 ----
+      }
+    free (expr_stack[expr_depth]);     /* free the allocated EXPR_CONTEXT */
++ 
++   noeval = 0;        /* XXX */
+  }
+  
+***************
+*** 320,323 ****
+--- 322,326 ----
+  
+    val = 0;
++   noeval = 0;
+  
+    FASTCOPY (evalbuf, oevalbuf, sizeof (evalbuf));
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 28
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 29
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-030 b/src/patches/bash/bash32-030
new file mode 100644 (file)
index 0000000..3f12c28
--- /dev/null
@@ -0,0 +1,50 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-030
+
+Bug-Reported-by:       Paul Eggert <eggert@cs.ucla.edu> Andreas Schwab <schwab@suse.de>
+Bug-Reference-ID:      <877il0nu84.fsf_-_@penguin.cs.ucla.edu> <m28x5gparz.fsf@igel.home>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00023.html http://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.htmlhttp://lists.gnu.org/archive/html/bug-bash/2007-11/msg00022.html
+
+Bug-Description:
+
+If redirections attached to a compound command fail, bash does not set the
+command's exit status correctly.  This only happens when the command is the
+first in a sequential list.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c  2007-03-24 14:51:05.000000000 -0400
+--- execute_cmd.c      2007-11-05 22:31:14.000000000 -0500
+***************
+*** 615,619 ****
+        redirection_undo_list = (REDIRECT *)NULL;
+        dispose_exec_redirects ();
+!       return (EXECUTION_FAILURE);
+      }
+  
+--- 620,624 ----
+        redirection_undo_list = (REDIRECT *)NULL;
+        dispose_exec_redirects ();
+!       return (last_command_exit_value = EXECUTION_FAILURE);
+      }
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 29
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 30
+  
+  #endif /* _PATCHLEVEL_H_ */
+
+  
diff --git a/src/patches/bash/bash32-031 b/src/patches/bash/bash32-031
new file mode 100644 (file)
index 0000000..6c96fb9
--- /dev/null
@@ -0,0 +1,62 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-031
+
+Bug-Reported-by:       Miroslav Lichvar <mlichvar@redhat.com>
+Bug-Reference-ID:      Fri, 02 Nov 2007 14:07:45 +0100
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
+
+Bug-Description:
+
+In certain cases when outputting characters at the end of the line,
+e.g., when displaying the prompt string, readline positions the cursor
+incorrectly if the prompt string contains invisible characters and the
+text being drawn begins before the last invisible character in the line.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c 2007-08-25 13:47:08.000000000 -0400
+--- lib/readline/display.c     2007-11-10 17:51:29.000000000 -0500
+***************
+*** 1566,1574 ****
+         else
+           {
+-            /* We have horizontal scrolling and we are not inserting at
+-               the end.  We have invisible characters in this line.  This
+-               is a dumb update. */
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;
+             return;
+           }
+--- 1619,1632 ----
+         else
+           {
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;
++            /* If nfd begins before any invisible characters in the prompt,
++               adjust _rl_last_c_pos to account for wrap_offset and set
++               cpos_adjusted to let the caller know. */
++            if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++              {
++                _rl_last_c_pos -= wrap_offset;
++                cpos_adjusted = 1;
++              }
+             return;
+           }
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 30
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 31
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-032 b/src/patches/bash/bash32-032
new file mode 100644 (file)
index 0000000..5e53e29
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-032
+
+Bug-Reported-by:       Uwe Doering <gemini@geminix.org>
+Bug-Reference-ID:      <46F3DD72.2090801@geminix.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
+
+Bug-Description:
+
+There is an off-by-one error in the code that buffers characters received
+very quickly in succession, causing characters to be dropped.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/input.c   2007-08-25 13:47:10.000000000 -0400
+--- lib/readline/input.c       2007-10-12 22:55:25.000000000 -0400
+***************
+*** 155,159 ****
+        pop_index--;
+        if (pop_index < 0)
+!      pop_index = ibuffer_len - 1;
+        ibuffer[pop_index] = key;
+        return (1);
+--- 155,159 ----
+        pop_index--;
+        if (pop_index < 0)
+!      pop_index = ibuffer_len;
+        ibuffer[pop_index] = key;
+        return (1);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 31
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 32
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-033 b/src/patches/bash/bash32-033
new file mode 100644 (file)
index 0000000..0d69810
--- /dev/null
@@ -0,0 +1,88 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-033
+
+Bug-Reported-by:       Christophe Martin <schplurtz@free.fr>
+Bug-Reference-ID:      <465ABA4A.3030805@free.fr>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-05/msg00104.html
+
+Bug-Description:
+
+References made within a function to an uninitialized local array variable
+using the [*] subscript in a double-quoted string  can result in spurious
+ASCII 127 characters in the expanded value.
+
+Patch:
+
+*** ../bash-3.2-patched/arrayfunc.c    2007-08-25 13:47:05.000000000 -0400
+--- arrayfunc.c        2007-05-31 11:55:46.000000000 -0400
+***************
+*** 723,727 ****
+      {
+        if (rtype)
+!      *rtype = 1;
+        if (allow_all == 0)
+       {
+--- 723,727 ----
+      {
+        if (rtype)
+!      *rtype = (t[0] == '*') ? 1 : 2;
+        if (allow_all == 0)
+       {
+*** ../bash-3.2-patched/subst.c        2007-08-25 13:47:08.000000000 -0400
+--- subst.c    2007-11-14 15:43:00.000000000 -0500
+***************
+*** 4908,4915 ****
+    intmax_t arg_index;
+    SHELL_VAR *var;
+!   int atype;
+  
+    ret = 0;
+    temp = 0;
+  
+    /* Handle multiple digit arguments, as in ${11}. */  
+--- 4973,4981 ----
+    intmax_t arg_index;
+    SHELL_VAR *var;
+!   int atype, rflags;
+  
+    ret = 0;
+    temp = 0;
++   rflags = 0;
+  
+    /* Handle multiple digit arguments, as in ${11}. */  
+***************
+*** 4944,4947 ****
+--- 5010,5015 ----
+                 ? quote_string (temp)
+                 : quote_escapes (temp);
++       else if (atype == 1 && temp && QUOTED_NULL (temp) && (quoted & (Q_DOUBLE_QUOTES|Q_HERE_DOCUMENT)))
++      rflags |= W_HASQUOTEDNULL;
+      }
+  #endif
+***************
+*** 4971,4974 ****
+--- 5039,5043 ----
+        ret = alloc_word_desc ();
+        ret->word = temp;
++       ret->flags |= rflags;
+      }
+    return ret;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 32
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 33
+  
+  #endif /* _PATCHLEVEL_H_ */
+
diff --git a/src/patches/bash/bash32-034 b/src/patches/bash/bash32-034
new file mode 100644 (file)
index 0000000..4f08162
--- /dev/null
@@ -0,0 +1,74 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-034
+
+Bug-Reported-by:       Ian Campbell <ian.campbell@xensource.com>
+Bug-Reference-ID:      <EXCHPAFExU3l5bhn1ow00001dfe@rpc.xensource.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-10/msg00060.html
+
+Bug-Description:
+
+The bash getcwd replacement will write past the end of allocated memory
+when it allocates the buffer itself if it uses the buffer size passed as
+an argument, and that size is less than the length of the pathname.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/sh/getcwd.c        2004-07-21 17:15:19.000000000 -0400
+--- lib/sh/getcwd.c    2007-12-31 19:26:36.000000000 -0500
+***************
+*** 252,268 ****
+    {
+      size_t len = pathbuf + pathsize - pathp;
+      if (buf == NULL)
+        {
+!      if (len < (size_t) size)
+!        len = size;
+!      buf = (char *) malloc (len);
+       if (buf == NULL)
+         goto lose2;
+        }
+!     else if ((size_t) size < len)
+!       {
+!      errno = ERANGE;
+!      goto lose2;
+!       }
+      (void) memcpy((PTR_T) buf, (PTR_T) pathp, len);
+    }
+--- 287,305 ----
+    {
+      size_t len = pathbuf + pathsize - pathp;
++     if (buf == NULL && size <= 0)
++       size = len;
++ 
++     if ((size_t) size < len)
++       {
++      errno = ERANGE;
++      goto lose2;
++       }
+      if (buf == NULL)
+        {
+!      buf = (char *) malloc (size);
+       if (buf == NULL)
+         goto lose2;
+        }
+! 
+      (void) memcpy((PTR_T) buf, (PTR_T) pathp, len);
+    }
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 33
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 34
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-035 b/src/patches/bash/bash32-035
new file mode 100644 (file)
index 0000000..55506ba
--- /dev/null
@@ -0,0 +1,159 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-035
+
+Bug-Reported-by:       Ingo Molnar <mingo@elte.hu>
+Bug-Reference-ID:      <20071205202901.GA25202@elte.hu>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-12/msg00014.html
+
+Bug-Description:
+
+Bash incorrectly puts the second and subsequent children spawned by a
+shell forked to run a command substitution in the wrong process group.
+
+Patch:
+
+*** ../bash-3.2-patched/subst.c        2007-12-13 22:31:21.000000000 -0500
+--- subst.c    2008-01-17 22:48:15.000000000 -0500
+***************
+*** 4621,4627 ****
+  
+  #if defined (JOB_CONTROL)
+    set_sigchld_handler ();
+    stop_making_children ();
+!   pipeline_pgrp = old_pipeline_pgrp;
+  #else
+    stop_making_children ();
+--- 4721,4728 ----
+  
+  #if defined (JOB_CONTROL)
+    set_sigchld_handler ();
+    stop_making_children ();
+!   if (pid != 0)
+!     pipeline_pgrp = old_pipeline_pgrp;
+  #else
+    stop_making_children ();
+*** ../bash-3.2-patched/jobs.c 2007-08-25 13:46:59.000000000 -0400
+--- jobs.c     2007-12-08 16:47:43.000000000 -0500
+***************
+*** 251,254 ****
+--- 251,255 ----
+  static int set_job_status_and_cleanup __P((int));
+  
++ static WAIT job_signal_status __P((int));
+  static WAIT raw_job_exit_status __P((int));
+  
+***************
+*** 2220,2223 ****
+--- 2238,2261 ----
+  }
+  
++ static WAIT
++ job_signal_status (job)
++      int job;
++ {
++   register PROCESS *p;
++   WAIT s;
++ 
++   p = jobs[job]->pipe;
++   do
++     {
++       s = p->status;
++       if (WIFSIGNALED(s) || WIFSTOPPED(s))
++      break;
++       p = p->next;
++     }
++   while (p != jobs[job]->pipe);
++ 
++   return s;
++ }
++   
+  /* Return the exit status of the last process in the pipeline for job JOB.
+     This is the exit status of the entire job. */
+***************
+*** 2302,2310 ****
+       received, only if one of the jobs run is killed via SIGINT.  If
+       job control is not set, the job will be run in the same pgrp as
+!      the shell, and the shell will see any signals the job gets. */
+  
+    /* This is possibly a race condition -- should it go in stop_pipeline? */
+    wait_sigint_received = 0;
+!   if (job_control == 0)
+      {
+        old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+--- 2343,2354 ----
+       received, only if one of the jobs run is killed via SIGINT.  If
+       job control is not set, the job will be run in the same pgrp as
+!      the shell, and the shell will see any signals the job gets.  In
+!      fact, we want this set every time the waiting shell and the waited-
+!      for process are in the same process group, including command
+!      substitution. */
+  
+    /* This is possibly a race condition -- should it go in stop_pipeline? */
+    wait_sigint_received = 0;
+!   if (job_control == 0 || (subshell_environment&SUBSHELL_COMSUB))
+      {
+        old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+***************
+*** 2452,2464 ****
+            the last process in the pipeline.  If no process exits due to a
+            signal, S is left as the status of the last job in the pipeline. */
+!        p = jobs[job]->pipe;
+!        do
+!          {
+!            s = p->status;
+!            if (WIFSIGNALED(s) || WIFSTOPPED(s))
+!              break;
+!            p = p->next;
+!          }
+!        while (p != jobs[job]->pipe);
+  
+         if (WIFSIGNALED (s) || WIFSTOPPED (s))
+--- 2496,2500 ----
+            the last process in the pipeline.  If no process exits due to a
+            signal, S is left as the status of the last job in the pipeline. */
+!        s = job_signal_status (job);
+  
+         if (WIFSIGNALED (s) || WIFSTOPPED (s))
+***************
+*** 2494,2497 ****
+--- 2530,2551 ----
+           }
+       }
++       else if ((subshell_environment & SUBSHELL_COMSUB) && wait_sigint_received)
++      {
++        /* If waiting for a job in a subshell started to do command
++           substitution, simulate getting and being killed by the SIGINT to
++           pass the status back to our parent. */
++        s = job_signal_status (job);
++      
++        if (WIFSIGNALED (s) && WTERMSIG (s) == SIGINT && signal_is_trapped (SIGINT) == 0)
++          {
++            UNBLOCK_CHILD (oset);
++            restore_sigint_handler ();
++            old_sigint_handler = set_signal_handler (SIGINT, SIG_DFL);
++            if (old_sigint_handler == SIG_IGN)
++              restore_sigint_handler ();
++            else
++              kill (getpid (), SIGINT);
++          }
++      }
+  
+        /* Moved here from set_job_status_and_cleanup, which is in the SIGCHLD
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 34
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 35
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-036 b/src/patches/bash/bash32-036
new file mode 100644 (file)
index 0000000..ef22e60
--- /dev/null
@@ -0,0 +1,44 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-036
+
+Bug-Reported-by:       Len Lattanzi <llattanzi@apple.com>
+Bug-Reference-ID:      <87493131-7AEC-4301-A684-E6CC6D06E3E1@apple.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+When initializing a subshell, bash did not reset a sentinel keeping track
+of the number of command substitutions, leading to an infinite loop if
+an error was encountered in the subshell.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c  2007-12-13 22:31:14.000000000 -0500
+--- execute_cmd.c      2007-12-20 08:52:34.000000000 -0500
+***************
+*** 3881,3884 ****
+--- 3916,3921 ----
+  
+    clear_unwind_protect_list (0);
++   /* XXX -- are there other things we should be resetting here? */
++   parse_and_execute_level = 0;               /* nothing left to restore it */
+  
+    /* We're no longer inside a shell function. */
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 35
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 36
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-037 b/src/patches/bash/bash32-037
new file mode 100644 (file)
index 0000000..376bd93
--- /dev/null
@@ -0,0 +1,110 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-037
+
+Bug-Reported-by:       jared r r spiegel <jrrs@iorek.ice-nine.org>
+Bug-Reference-ID:      <200801152201.m0FM1lDp021260@iorek.ice-nine.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-01/msg00049.html
+
+Bug-Description:
+
+Bash inappropriately evaluates command substitutions while expanding
+directory names as part of command substitution.
+
+Patch:
+
+*** ../bash-3.2-patched/subst.c        2007-12-13 22:31:21.000000000 -0500
+--- subst.c    2008-01-17 22:48:15.000000000 -0500
+***************
+*** 2815,2821 ****
+     to jump_to_top_level here so we don't endlessly loop. */
+  WORD_LIST *
+! expand_prompt_string (string, quoted)
+       char *string;
+       int quoted;
+  {
+    WORD_LIST *value;
+--- 2895,2902 ----
+     to jump_to_top_level here so we don't endlessly loop. */
+  WORD_LIST *
+! expand_prompt_string (string, quoted, wflags)
+       char *string;
+       int quoted;
++      int wflags;
+  {
+    WORD_LIST *value;
+***************
+*** 2825,2829 ****
+      return ((WORD_LIST *)NULL);
+  
+!   td.flags = 0;
+    td.word = savestring (string);
+  
+--- 2906,2910 ----
+      return ((WORD_LIST *)NULL);
+  
+!   td.flags = wflags;
+    td.word = savestring (string);
+  
+*** ../bash-3.2-patched/subst.h        2007-03-24 14:51:05.000000000 -0400
+--- subst.h    2008-01-17 22:46:08.000000000 -0500
+***************
+*** 136,140 ****
+  
+  /* Expand a prompt string. */
+! extern WORD_LIST *expand_prompt_string __P((char *, int));
+  
+  /* Expand STRING just as if you were expanding a word.  This also returns
+--- 137,141 ----
+  
+  /* Expand a prompt string. */
+! extern WORD_LIST *expand_prompt_string __P((char *, int, int));
+  
+  /* Expand STRING just as if you were expanding a word.  This also returns
+*** ../bash-3.2-patched/parse.y        2007-08-25 13:47:06.000000000 -0400
+--- parse.y    2008-01-17 22:46:30.000000000 -0500
+***************
+*** 4367,4371 ****
+      {
+        last_exit_value = last_command_exit_value;
+!       list = expand_prompt_string (result, Q_DOUBLE_QUOTES);
+        free (result);
+        result = string_list (list);
+--- 4367,4371 ----
+      {
+        last_exit_value = last_command_exit_value;
+!       list = expand_prompt_string (result, Q_DOUBLE_QUOTES, 0);
+        free (result);
+        result = string_list (list);
+*** ../bash-3.2-patched/bashline.c     2006-07-29 16:39:30.000000000 -0400
+--- bashline.c 2008-02-17 12:53:42.000000000 -0500
+***************
+*** 2358,2362 ****
+      {
+        new_dirname = savestring (local_dirname);
+!       wl = expand_prompt_string (new_dirname, 0);    /* does the right thing */
+        if (wl)
+       {
+--- 2376,2380 ----
+      {
+        new_dirname = savestring (local_dirname);
+!       wl = expand_prompt_string (new_dirname, 0, W_NOCOMSUB);        /* does the right thing */
+        if (wl)
+       {
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 36
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 37
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-038 b/src/patches/bash/bash32-038
new file mode 100644 (file)
index 0000000..842b1b5
--- /dev/null
@@ -0,0 +1,80 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-038
+
+Bug-Reported-by:       Wojciech Puchar <wojtek@wojtek.tensor.gdynia.pl>
+Bug-Reference-ID:      <200803131141.m2DBf9vo001136@wojtek.tensor.gdynia.pl>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-03/msg00029.html
+
+Bug-Description:
+
+When reading input lines into a single variable using the `read' builtin,
+bash did not free the memory it read after assigining it to the named
+variable, causing a memory leak noticable when reading large amounts of
+data.
+
+
+Patch:
+
+*** ../bash-3.2-patched/builtins/read.def      2007-08-25 13:47:07.000000000 -0400
+--- builtins/read.def  2008-03-07 12:55:47.000000000 -0500
+***************
+*** 135,139 ****
+    char c;
+    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+!   char *e, *t, *t1, *ps2;
+    struct stat tsb;
+    SHELL_VAR *var;
+--- 152,156 ----
+    char c;
+    char *input_string, *orig_input_string, *ifs_chars, *prompt, *arrayname;
+!   char *e, *t, *t1, *ps2, *tofree;
+    struct stat tsb;
+    SHELL_VAR *var;
+***************
+*** 675,678 ****
+--- 728,732 ----
+    /* Check whether or not the number of fields is exactly the same as the
+       number of variables. */
++   tofree = NULL;
+    if (*input_string)
+      {
+***************
+*** 680,684 ****
+        t = get_word_from_string (&input_string, ifs_chars, &e);
+        if (*input_string == 0)
+!      input_string = t;
+        else
+       input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape);
+--- 734,738 ----
+        t = get_word_from_string (&input_string, ifs_chars, &e);
+        if (*input_string == 0)
+!      tofree = input_string = t;
+        else
+       input_string = strip_trailing_ifs_whitespace (t1, ifs_chars, saw_escape);
+***************
+*** 695,698 ****
+--- 749,754 ----
+      var = bind_read_variable (list->word->word, input_string);
+    stupidly_hack_special_variables (list->word->word);
++   FREE (tofree);
++ 
+    if (var)
+      VUNSETATTR (var, att_invisible);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 37
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 38
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-039 b/src/patches/bash/bash32-039
new file mode 100644 (file)
index 0000000..c225a5a
--- /dev/null
@@ -0,0 +1,175 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-039
+
+Bug-Reported-by:       rew@erebor.com
+Bug-Reference-ID:      <20070119065603.546D011E9C@kansas.erebor.com>
+Bug-Reference-URL:     
+
+Bug-Description:
+
+Bash-3.2 changed the behavior of the [[ command's `=~' operator when the
+right-hand side was quoted:  it matched the quoted portions as strings.
+This patch introduces a new shell option: compat31.  When enabled, it
+restores the bash-3.1 behavior with respect to evaluating quoted arguments
+to the =~ operator.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c  2007-12-14 21:12:39.000000000 -0500
+--- execute_cmd.c      2008-02-22 21:20:40.000000000 -0500
+***************
+*** 2547,2551 ****
+        if (arg1 == 0)
+       arg1 = nullstr;
+!       arg2 = cond_expand_word (cond->right->op, rmatch ? 2 : (patmatch ? 1 : 0));
+        if (arg2 == 0)
+       arg2 = nullstr;
+--- 2552,2557 ----
+        if (arg1 == 0)
+       arg1 = nullstr;
+!       arg2 = cond_expand_word (cond->right->op,
+!                             (rmatch && shell_compatibility_level > 31) ? 2 : (patmatch ? 1 : 0));
+        if (arg2 == 0)
+       arg2 = nullstr;
+*** ../bash-3.2-patched/shell.h        2003-06-01 15:04:36.000000000 -0400
+--- shell.h    2008-02-22 21:16:48.000000000 -0500
+***************
+*** 90,93 ****
+--- 90,94 ----
+  extern int interactive, interactive_shell;
+  extern int startup_state;
++ extern int shell_compatibility_level;
+  
+  /* Structure to pass around that holds a bitmap of file descriptors
+*** ../bash-3.2-patched/version.c      2007-12-14 21:12:29.000000000 -0500
+--- version.c  2008-04-10 08:22:22.000000000 -0400
+***************
+*** 44,47 ****
+--- 44,50 ----
+  const char *sccs_version = SCCSVERSION;
+  
++ /* If == 31, shell compatible with bash-3.1, == 32 with bash-3.2, and so on */
++ int shell_compatibility_level = 32;
++ 
+  /* Functions for getting, setting, and displaying the shell version. */
+  
+*** ../bash-3.2-patched/builtins/shopt.def     2005-02-19 17:25:03.000000000 -0500
+--- builtins/shopt.def 2008-04-10 08:13:32.000000000 -0400
+***************
+*** 102,105 ****
+--- 102,107 ----
+  static int set_shellopts_after_change __P((int));
+  
++ static int set_compatibility_level __P((int));
++ 
+  #if defined (RESTRICTED_SHELL)
+  static int set_restricted_shell __P((int));
+***************
+*** 107,110 ****
+--- 109,113 ----
+  
+  static int shopt_login_shell;
++ static int shopt_compat31;
+  
+  typedef int shopt_set_func_t __P((int));
+***************
+*** 122,125 ****
+--- 125,129 ----
+    { "cmdhist", &command_oriented_history, (shopt_set_func_t *)NULL },
+  #endif
++   { "compat31", &shopt_compat31, set_compatibility_level },
+    { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },
+    { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },
+***************
+*** 460,463 ****
+--- 464,479 ----
+  }
+  
++ static int
++ set_compatibility_level (mode)
++      int mode;
++ {
++   /* Need to change logic here as we add more compatibility levels */
++   if (shopt_compat31)
++     shell_compatibility_level = 31;
++   else
++     shell_compatibility_level = 32;
++   return 0;
++ }
++ 
+  #if defined (RESTRICTED_SHELL)
+  /* Don't allow the value of restricted_shell to be modified. */
+*** ../bash-3.2-patched/doc/bash.1     2006-09-28 10:26:05.000000000 -0400
+--- doc/bash.1 2008-04-25 12:32:49.000000000 -0400
+***************
+*** 7978,7981 ****
+--- 8200,8209 ----
+  easy re-editing of multi-line commands.
+  .TP 8
++ .B compat31
++ If set,
++ .B bash
++ changes its behavior to that of version 3.1 with respect to quoted
++ arguments to the conditional command's =~ operator.
++ .TP 8
+  .B dotglob
+  If set, 
+*** ../bash-20080214/doc/bashref.texi  2008-02-08 21:28:35.000000000 -0500
+--- doc/bashref.texi   2008-02-22 21:44:51.000000000 -0500
+***************
+*** 4053,4056 ****
+--- 4061,4069 ----
+  easy re-editing of multi-line commands.
+  
++ @item compat31
++ If set, Bash
++ changes its behavior to that of version 3.1 with respect to quoted
++ arguments to the conditional command's =~ operator.
++ 
+  @item dotglob
+  If set, Bash includes filenames beginning with a `.' in
+*** ../bash-3.2-patched/tests/shopt.right      2005-02-19 17:46:09.000000000 -0500
+--- tests/shopt.right  2008-04-28 09:13:07.000000000 -0400
+***************
+*** 7,10 ****
+--- 7,11 ----
+  shopt -u checkwinsize
+  shopt -s cmdhist
++ shopt -u compat31
+  shopt -u dotglob
+  shopt -u execfail
+***************
+*** 54,57 ****
+--- 55,59 ----
+  shopt -u checkhash
+  shopt -u checkwinsize
++ shopt -u compat31
+  shopt -u dotglob
+  shopt -u execfail
+***************
+*** 78,81 ****
+--- 80,84 ----
+  checkhash            off
+  checkwinsize         off
++ compat31             off
+  dotglob              off
+  execfail             off
+
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 38
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 39
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-040 b/src/patches/bash/bash32-040
new file mode 100644 (file)
index 0000000..50b85bb
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-040
+
+Bug-Reported-by:       John McCabe-Dansted
+Bug-Reference-ID:
+Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/202885
+
+Bug-Description:
+
+When using the `set' builtin to list all shell variables, the shell uses
+the wrong variable when computing the length of a variable's value.
+
+Patch:
+
+*** ../bash-3.2-patched/array.c        2007-03-24 14:51:03.000000000 -0400
+--- array.c    2008-08-17 13:07:04.000000000 -0400
+***************
+*** 684,688 ****
+               valstr = element_value (ae) ? sh_double_quote (element_value(ae))
+                                           : (char *)NULL;
+!              elen = STRLEN (indstr) + 8 + STRLEN (valstr);
+               RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize);
+  
+--- 809,813 ----
+               valstr = element_value (ae) ? sh_double_quote (element_value(ae))
+                                           : (char *)NULL;
+!              elen = STRLEN (is) + 8 + STRLEN (valstr);
+               RESIZE_MALLOCED_BUFFER (result, rlen, (elen + 1), rsize, rsize);
+  
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 39
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 40
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-041 b/src/patches/bash/bash32-041
new file mode 100644 (file)
index 0000000..3c05c04
--- /dev/null
@@ -0,0 +1,154 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-041
+
+Bug-Reported-by:       Dan Jacobson <jidanni@jidanni.org>
+Bug-Reference-ID:      <873arjs11h.fsf@jidanni.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-02/msg00049.html
+
+Bug-Description:
+
+Bash saved and restored the value of `set -o history' while sourcing files,
+preventing users from turning off history with `set +o history' in .bashrc.
+
+Patch:
+
+*** ../bash-3.2-patched/bashhist.c     2005-12-26 13:31:16.000000000 -0500
+--- bashhist.c 2008-08-17 13:07:40.000000000 -0400
+***************
+*** 81,84 ****
+--- 81,85 ----
+     becomes zero when we read lines from a file, for example. */
+  int remember_on_history = 1;
++ int enable_history_list = 1; /* value for `set -o history' */
+  
+  /* The number of lines that Bash has added to this history session.  The
+***************
+*** 235,239 ****
+    history_expansion_inhibited = 1;
+  #endif
+!   remember_on_history = interact != 0;
+    history_inhibit_expansion_function = bash_history_inhibit_expansion;
+  }
+--- 236,240 ----
+    history_expansion_inhibited = 1;
+  #endif
+!   remember_on_history = enable_history_list = interact != 0;
+    history_inhibit_expansion_function = bash_history_inhibit_expansion;
+  }
+*** ../bash-3.2-patched/builtins/set.def       2006-07-27 09:41:43.000000000 -0400
+--- builtins/set.def   2008-08-14 16:33:41.000000000 -0400
+***************
+*** 190,194 ****
+  #endif /* BANG_HISTORY */
+  #if defined (HISTORY)
+!   { "history",   '\0', &remember_on_history, bash_set_history, (setopt_get_func_t *)NULL },
+  #endif
+    { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
+--- 198,202 ----
+  #endif /* BANG_HISTORY */
+  #if defined (HISTORY)
+!   { "history",   '\0', &enable_history_list, bash_set_history, (setopt_get_func_t *)NULL },
+  #endif
+    { "ignoreeof", '\0', &ignoreeof, set_ignoreeof, (setopt_get_func_t *)NULL },
+***************
+*** 382,385 ****
+--- 390,394 ----
+    if (on_or_off == FLAG_ON)
+      {
++       enable_history_list = 1;
+        bash_history_enable ();
+        if (history_lines_this_session == 0)
+***************
+*** 387,392 ****
+      }
+    else
+!     bash_history_disable ();
+!   return (1 - remember_on_history);
+  }
+  #endif
+--- 396,404 ----
+      }
+    else
+!     {
+!       enable_history_list = 0;
+!       bash_history_disable ();
+!     }
+!   return (1 - enable_history_list);
+  }
+  #endif
+***************
+*** 566,570 ****
+  {
+  #if defined (HISTORY)
+!   remember_on_history = 1;
+  #endif
+    ignoreeof = 0;
+--- 578,582 ----
+  {
+  #if defined (HISTORY)
+!   remember_on_history = enable_history_list = 1;
+  #endif
+    ignoreeof = 0;
+*** ../bash-3.2-patched/builtins/evalstring.c  2006-07-28 15:12:16.000000000 -0400
+--- builtins/evalstring.c      2008-11-10 21:17:16.000000000 -0500
+***************
+*** 68,71 ****
+--- 68,79 ----
+  static int cat_file __P((REDIRECT *));
+  
++ #if defined (HISTORY)
++ static void
++ set_history_remembering ()
++ {
++   remember_on_history = enable_history_list;
++ }
++ #endif
++ 
+  /* How to force parse_and_execute () to clean up after itself. */
+  void
+***************
+*** 116,120 ****
+  
+  #if defined (HISTORY)
+!   unwind_protect_int (remember_on_history);  /* can be used in scripts */
+  #  if defined (BANG_HISTORY)
+    if (interactive_shell)
+--- 124,131 ----
+  
+  #if defined (HISTORY)
+!   if (parse_and_execute_level == 0)
+!     add_unwind_protect (set_history_remembering, (char *)NULL);
+!   else
+!     unwind_protect_int (remember_on_history);        /* can be used in scripts */
+  #  if defined (BANG_HISTORY)
+    if (interactive_shell)
+*** ../bash-3.2-patched/bashhist.h     2005-07-01 15:44:41.000000000 -0400
+--- bashhist.h 2008-08-17 12:51:07.000000000 -0400
+***************
+*** 32,35 ****
+--- 32,38 ----
+  
+  extern int remember_on_history;
++ extern int enable_history_list;              /* value for `set -o history' */
++ extern int literal_history;          /* controlled by `shopt lithist' */
++ extern int force_append_history;
+  extern int history_lines_this_session;
+  extern int history_lines_in_file;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 40
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 41
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-042 b/src/patches/bash/bash32-042
new file mode 100644 (file)
index 0000000..4c9f4d6
--- /dev/null
@@ -0,0 +1,48 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-042
+
+Bug-Reported-by:       Archimerged Ark Submedes <archimerged@gmail.com>
+Bug-Reference-ID:      <5ba4bef00804182116g65ff71e0qdffcf672f205e708@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-04/msg00041.html
+
+Bug-Description:
+
+An operator precedence error prevented the bash arithmetic evaluator from
+parsing conditional commands correctly.
+
+Patch:
+
+*** ../bash-3.2-patched/expr.c 2007-12-13 22:30:43.000000000 -0500
+--- expr.c     2008-08-17 13:09:59.000000000 -0400
+***************
+*** 521,525 ****
+         noeval++;
+       }
+!       val2 = explor ();
+        if (set_noeval)
+       noeval--;
+--- 521,526 ----
+         noeval++;
+       }
+! 
+!       val2 = expcond ();
+        if (set_noeval)
+       noeval--;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 41
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 42
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-043 b/src/patches/bash/bash32-043
new file mode 100644 (file)
index 0000000..5a51843
--- /dev/null
@@ -0,0 +1,62 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-043
+
+Bug-Reported-by:       Morita Sho <morita-pub-en-debian@inz.sakura.ne.jp>
+Bug-Reference-ID:
+Bug-Reference-URL:     http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=478096
+
+Bug-Description:
+
+Side effects caused by setting function-local versions of variables bash
+handles specially persisted after the function returned.
+
+Patch:
+
+*** ../bash-3.2-patched/variables.c    2007-08-25 13:47:05.000000000 -0400
+--- variables.c        2008-11-09 17:47:31.000000000 -0500
+***************
+*** 3459,3465 ****
+       var->attributes &= ~(att_tempvar|att_propagate);
+        else
+!         shell_variables->flags |= VC_HASTMPVAR;
+        v->attributes |= var->attributes;
+      }
+  
+    dispose_variable (var);
+--- 3771,3779 ----
+       var->attributes &= ~(att_tempvar|att_propagate);
+        else
+!      shell_variables->flags |= VC_HASTMPVAR;
+        v->attributes |= var->attributes;
+      }
++   else
++     stupidly_hack_special_variables (var->name);     /* XXX */
+  
+    dispose_variable (var);
+***************
+*** 3548,3551 ****
+--- 3862,3867 ----
+        v->attributes |= var->attributes;
+      }
++   else
++     stupidly_hack_special_variables (var->name);     /* XXX */
+  
+    dispose_variable (var);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 42
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 43
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-044 b/src/patches/bash/bash32-044
new file mode 100644 (file)
index 0000000..3e7a392
--- /dev/null
@@ -0,0 +1,150 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-044
+
+Bug-Reported-by:       slinkp <stuff@slinkp.com>
+Bug-Reference-ID:      <da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html
+
+Bug-Description:
+
+The presence of invisible characters in a prompt longer than the screenwidth
+with invisible characters on the first and last prompt lines caused readline
+to place the cursor in the wrong physical location.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/display.c 2007-12-14 21:12:40.000000000 -0500
+--- lib/readline/display.c     2008-10-23 09:39:46.000000000 -0400
+***************
+*** 911,914 ****
+--- 944,951 ----
+            OFFSET (which has already been calculated above).  */
+  
++ #define INVIS_FIRST()        (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset)
++ #define WRAP_OFFSET(line, offset)  ((line == 0) \
++                                      ? (offset ? INVIS_FIRST() : 0) \
++                                      : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0))
+  #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
+  #define VIS_LLEN(l)  ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
+***************
+*** 945,949 ****
+                 _rl_last_c_pos > wrap_offset &&
+                 o_cpos < prompt_last_invisible)
+!              _rl_last_c_pos -= wrap_offset;
+                 
+             /* If this is the line with the prompt, we might need to
+--- 982,992 ----
+                 _rl_last_c_pos > wrap_offset &&
+                 o_cpos < prompt_last_invisible)
+!              _rl_last_c_pos -= prompt_invis_chars_first_line;        /* XXX - was wrap_offset */
+!            else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth &&
+!                      (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+!                      cpos_adjusted == 0 &&
+!                      _rl_last_c_pos != o_cpos &&
+!                      _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line))
+!              _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line);
+                 
+             /* If this is the line with the prompt, we might need to
+***************
+*** 1205,1209 ****
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+--- 1264,1268 ----
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+***************
+*** 1221,1225 ****
+      temp = _rl_last_c_pos;
+    else
+!     temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
+    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
+       && _rl_last_v_pos == current_line - 1)
+--- 1280,1284 ----
+      temp = _rl_last_c_pos;
+    else
+!     temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset);
+    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
+       && _rl_last_v_pos == current_line - 1)
+***************
+*** 1587,1599 ****
+           {
+             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
+- #if 1
+            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
+               reported against bash-3.0-alpha by Andreas Schwab involving
+               multibyte characters and prompt strings with invisible
+               characters, but was previously disabled. */
+!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
+! #else
+!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
+! #endif
+           }
+       }
+--- 1648,1660 ----
+           {
+             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
+            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
+               reported against bash-3.0-alpha by Andreas Schwab involving
+               multibyte characters and prompt strings with invisible
+               characters, but was previously disabled. */
+!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+!              twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
+!            else
+!              twidth = temp - lendiff;
+!            _rl_last_c_pos += twidth;
+           }
+       }
+***************
+*** 1789,1793 ****
+    int cpos, dpos;            /* current and desired cursor positions */
+  
+!   woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
+    cpos = _rl_last_c_pos;
+  #if defined (HANDLE_MULTIBYTE)
+--- 1850,1854 ----
+    int cpos, dpos;            /* current and desired cursor positions */
+  
+!   woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
+    cpos = _rl_last_c_pos;
+  #if defined (HANDLE_MULTIBYTE)
+***************
+*** 1803,1807 ****
+        prompt string, since they're both buffer indices and DPOS is a
+        desired display position. */
+!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
+       {
+         dpos -= woff;
+--- 1864,1872 ----
+        prompt string, since they're both buffer indices and DPOS is a
+        desired display position. */
+!       if ((new > prompt_last_invisible) ||           /* XXX - don't use woff here */
+!        (prompt_physical_chars > _rl_screenwidth &&
+!         _rl_last_v_pos == prompt_last_screen_line &&
+!         wrap_offset != woff &&
+!         new > (prompt_last_invisible-_rl_screenwidth-wrap_offset)))
+       {
+         dpos -= woff;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 43
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 44
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-045 b/src/patches/bash/bash32-045
new file mode 100644 (file)
index 0000000..68b91ff
--- /dev/null
@@ -0,0 +1,50 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-045
+
+Bug-Reported-by:       Roman Rakus <rrakus@redhat.com>
+Bug-Reference-ID:      <4864B4A0.1060402@redhat.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-06/msg00098.html
+
+Bug-Description:
+
+When short-circuiting execution due to the `break' or `continue' builtins,
+bash did not preserve the value of $?.
+
+Patch:
+
+*** ../bash-3.2-patched/execute_cmd.c  2008-04-28 22:00:24.000000000 -0400
+--- execute_cmd.c      2008-10-18 14:35:03.000000000 -0400
+***************
+*** 502,507 ****
+--- 514,526 ----
+    volatile int save_line_number;
+  
++ #if 0
+    if (command == 0 || breaking || continuing || read_but_dont_execute)
+      return (EXECUTION_SUCCESS);
++ #else
++   if (breaking || continuing)
++     return (last_command_exit_value);
++   if (command == 0 || read_but_dont_execute)
++     return (EXECUTION_SUCCESS);
++ #endif
+  
+    QUIT;
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 44
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 45
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-046 b/src/patches/bash/bash32-046
new file mode 100644 (file)
index 0000000..78aaf01
--- /dev/null
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-046
+
+Bug-Reported-by:       Wang Xin <wxinee@gmail.com>
+Bug-Reference-ID:      <9a73e1570807062042ide16698m10e1b18036c95592@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-07/msg00014.html
+
+Bug-Description:
+
+Bash did not compute the length of multibyte characters correctly when
+performing array element length references (e.g., ${#var[subscript]}).
+
+Patch:
+
+*** /usr/src/local/bash/bash-3.2-patched/subst.c       2008-04-28 22:00:20.000000000 -0400
+--- subst.c    2008-11-10 22:02:38.000000000 -0500
+***************
+*** 4813,4817 ****
+      t = (ind == 0) ? value_cell (var) : (char *)NULL;
+  
+!   len = STRLEN (t);
+    return (len);
+  }
+--- 4813,4817 ----
+      t = (ind == 0) ? value_cell (var) : (char *)NULL;
+  
+!   len = MB_STRLEN (t);
+    return (len);
+  }
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 45
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 46
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-047 b/src/patches/bash/bash32-047
new file mode 100644 (file)
index 0000000..b8272b1
--- /dev/null
@@ -0,0 +1,65 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-047
+
+Bug-Reported-by:       Roman Rakus <rrakus@redhat.com>
+Bug-Reference-ID:      <48A89EBC.906@redhat.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-08/msg00026.html
+
+Bug-Description:
+
+When using the `.' (source) builtin, under certain circumstances bash was
+too careful in discarding state to preserve internal consistency.  One
+effect was that assignments to readonly variables would cause entire scripts
+to be aborted instead of execution of the offending command.  This behavior
+was introduced by bash-3.2 patch 20.
+
+Patch:
+
+*** /usr/src/local/chet/src/bash/bash-3.2-patched/subst.c      2008-04-29 21:24:55.000000000 -0400
+--- subst.c    2008-11-13 17:44:25.000000000 -0500
+***************
+*** 138,142 ****
+  extern int last_command_exit_value, last_command_exit_signal;
+  extern int subshell_environment;
+! extern int subshell_level;
+  extern int eof_encountered;
+  extern int return_catch_flag, return_catch_value;
+--- 138,142 ----
+  extern int last_command_exit_value, last_command_exit_signal;
+  extern int subshell_environment;
+! extern int subshell_level, parse_and_execute_level;
+  extern int eof_encountered;
+  extern int return_catch_flag, return_catch_value;
+***************
+*** 7673,7677 ****
+    expanding_redir = 0;
+  
+!   top_level_cleanup ();                      /* from sig.c */
+  
+    jump_to_top_level (v);
+--- 7673,7679 ----
+    expanding_redir = 0;
+  
+!   if (parse_and_execute_level == 0)
+!     top_level_cleanup ();                    /* from sig.c */
+! 
+  
+    jump_to_top_level (v);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 46
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 47
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-048 b/src/patches/bash/bash32-048
new file mode 100644 (file)
index 0000000..551dade
--- /dev/null
@@ -0,0 +1,56 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-048
+
+Bug-Reported-by:       Steffen Kiess <s-kiess@web.de>
+Bug-Reference-ID:      <1223929957.5383.6.camel@fips>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-10/msg00047.html
+
+Bug-Description:
+
+When invoked as `bash -c', bash did not execute an EXIT trap when the last
+command in the executed list was a command run from the file system.
+
+Patch:
+
+*** /Users/chet/src/bash/bash-3.2-patched/builtins/evalstring.c        2006-07-28 15:12:16.000000000 -0400
+--- builtins/evalstring.c      2008-11-13 18:38:45.000000000 -0500
+***************
+*** 249,252 ****
+--- 249,253 ----
+              *   we're not running a trap AND
+              *   we have parsed the full command (string == '\0') AND
++             *   we're not going to run the exit trap AND
+              *   we have a simple command without redirections AND
+              *   the command is not being timed AND
+***************
+*** 259,263 ****
+                 *bash_input.location.string == '\0' &&
+                 command->type == cm_simple &&
+!                !command->redirects && !command->value.Simple->redirects &&
+                 ((command->flags & CMD_TIME_PIPELINE) == 0) &&
+                 ((command->flags & CMD_INVERT_RETURN) == 0))
+--- 260,265 ----
+                 *bash_input.location.string == '\0' &&
+                 command->type == cm_simple &&
+!                signal_is_trapped (EXIT_TRAP) == 0 &&
+!                command->redirects == 0 && command->value.Simple->redirects == 0 &&
+                 ((command->flags & CMD_TIME_PIPELINE) == 0) &&
+                 ((command->flags & CMD_INVERT_RETURN) == 0))
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 47
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 48
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-049 b/src/patches/bash/bash32-049
new file mode 100644 (file)
index 0000000..469c4c8
--- /dev/null
@@ -0,0 +1,64 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-049
+
+Bug-Reported-by:       Len Lattanzi <llattanzi@apple.com>
+Bug-Reference-ID:      <52B1297F-6675-45CC-B63E-24745337D006@apple.com>
+Bug-Reference-URL:     
+
+Bug-Description:
+
+On systems where mbrtowc() returns -2 when passed a length argument with
+value 0, when using a multibyte locale, Readline's emacs-mode forward-char
+at the end of a line will leave the point beyond the end of the line.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/mbutil.c  2009-05-29 23:09:26.000000000 -0400
+--- lib/readline/mbutil.c      2009-05-29 23:10:12.000000000 -0400
+***************
+*** 78,82 ****
+       int seed, count, find_non_zero;
+  {
+!   size_t tmp;
+    mbstate_t ps;
+    int point;
+--- 78,82 ----
+       int seed, count, find_non_zero;
+  {
+!   size_t tmp, len;
+    mbstate_t ps;
+    int point;
+***************
+*** 99,103 ****
+    while (count > 0)  
+      {
+!       tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
+        if (MB_INVALIDCH ((size_t)tmp))
+       {
+--- 99,106 ----
+    while (count > 0)  
+      {
+!       len = strlen (string + point);
+!       if (len == 0)
+!      break;
+!       tmp = mbrtowc (&wc, string+point, len, &ps);
+        if (MB_INVALIDCH ((size_t)tmp))
+       {
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 48
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 49
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-050 b/src/patches/bash/bash32-050
new file mode 100644 (file)
index 0000000..aef537e
--- /dev/null
@@ -0,0 +1,56 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-050
+
+Bug-Reported-by:       Jan Hnatek <Jan.Hnatek@Sun.COM>
+Bug-Reference-ID:      <4A44991F.8010005@sun.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2009-06/msg00084.html
+
+Bug-Description:
+
+On systems where mbrtowc() returns -2 when passed a length argument with
+value 0, when using a multibyte locale, Readline's emacs-mode forward-char
+at the end of a line will leave the point beyond the end of the line.
+
+Patch:
+
+*** ../bash-3.2-patched/lib/readline/mbutil.c  2009-06-16 11:26:50.000000000 -0400
+--- lib/readline/mbutil.c      2009-01-04 14:32:33.000000000 -0500
+***************
+*** 132,141 ****
+      {
+        tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
+!       while (tmp > 0 && wcwidth (wc) == 0)
+       {
+         point += tmp;
+         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
+-        if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp))
+-          break;
+       }
+      }
+--- 130,137 ----
+      {
+        tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
+!       while (MB_NULLWCH (tmp) == 0 && MB_INVALIDCH (tmp) == 0 && wcwidth (wc) == 0)
+       {
+         point += tmp;
+         tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps);
+       }
+      }
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 49
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 50
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/bash/bash32-051 b/src/patches/bash/bash32-051
new file mode 100644 (file)
index 0000000..404fbd6
--- /dev/null
@@ -0,0 +1,46 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release: 3.2
+Patch-ID: bash32-051
+
+Bug-Reported-by:       werner@suse.de
+Bug-Reference-ID:      <201002251238.o1PCcYcg016893@boole.suse.de>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2010-02/msg00132.html
+
+Bug-Description:
+
+When the `read' builtin times out after the timeout specified with -t is
+exceeded, it does not reset the flags that tell signal handlers to process
+signals immediately instead of deferring their handling.  This can result
+in unsafe functions being called from signal handlers, which can cause bash
+to hang or dump core.
+
+Patch:
+
+*** ../bash-3.2-patched/builtins/read.def      2008-04-29 21:25:00.000000000 -0400
+--- builtins/read.def  2010-03-17 09:50:51.000000000 -0400
+***************
+*** 327,330 ****
+--- 327,332 ----
+        if (code)
+       {
++        interrupt_immediately--;
++        terminate_immediately = 0;
+         run_unwind_frame ("read_builtin");
+         return (EXECUTION_FAILURE);
+*** ../bash-3.2/patchlevel.h   Thu Apr 13 08:31:04 2006
+--- patchlevel.h       Mon Oct 16 14:22:54 2006
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 50
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 51
+  
+  #endif /* _PATCHLEVEL_H_ */
diff --git a/src/patches/binutils-2.18-configure-1.patch b/src/patches/binutils-2.18-configure-1.patch
deleted file mode 100644 (file)
index ae6aaa3..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-Submitted By: Matt Burgess (matthew at linuxfromscratch dot org)
-Date: 2007-11-19
-Initial Package Version: 2.18
-Origin: Upstream (http://sourceware.org/cgi-bin/cvsweb.cgi/src/configure.diff?r1=1.268&r2=1.268.2.1&cvsroot=src)
-Upstream Status: Applied
-Description: Fixes the configure script to correctly dictate Texinfo > 4.9.
-
-diff -Naur binutils-2.18.orig/configure binutils-2.18/configure
---- binutils-2.18.orig/configure       2007-08-06 20:29:40.000000000 +0000
-+++ binutils-2.18/configure    2007-11-18 22:37:58.000000000 +0000
-@@ -6128,7 +6128,7 @@
-     # For an installed makeinfo, we require it to be from texinfo 4.4 or
-     # higher, else we use the "missing" dummy.
-     if ${MAKEINFO} --version \
--       | egrep 'texinfo[^0-9]*([1-3][0-9]|4\.[4-9]|[5-9])' >/dev/null 2>&1; then
-+       | egrep 'texinfo[^0-9]*(4\.([4-9]|[1-9][0-9])|[5-9]|[1-9][0-9])' >/dev/null 2>&1; then
-       :
-     else
-       MAKEINFO="$MISSING makeinfo"
diff --git a/src/patches/ccache-3.1.6-no_compiler_mtime.patch b/src/patches/ccache-3.1.6-no_compiler_mtime.patch
deleted file mode 100644 (file)
index fd921cd..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-diff -Naur ccache-3.1.org/ccache.c ccache-3.1/ccache.c
---- ccache-3.1.org/ccache.c    2010-09-16 19:01:09.000000000 +0200
-+++ ccache-3.1/ccache.c        2010-10-21 21:41:08.000000000 +0200
-@@ -805,13 +805,16 @@
-        */
-       compilercheck = getenv("CCACHE_COMPILERCHECK");
-       if (!compilercheck) {
--              compilercheck = "mtime";
-+              compilercheck = "size";
-       }
-       if (str_eq(compilercheck, "none")) {
-               /* Do nothing. */
-       } else if (str_eq(compilercheck, "content")) {
-               hash_delimiter(hash, "cc_content");
-               hash_file(hash, args->argv[0]);
-+      } else if (str_eq(compilercheck, "size")) {
-+              hash_delimiter(hash, "cc_size");
-+              hash_int(hash, st.st_size);
-       } else if (str_eq(compilercheck, "mtime")) {
-               hash_delimiter(hash, "cc_mtime");
-               hash_int(hash, st.st_size);
diff --git a/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch b/src/patches/compat-wireless-3.5-build_ath5k_only_with_pci.patch
new file mode 100644 (file)
index 0000000..2e82157
--- /dev/null
@@ -0,0 +1,16 @@
+diff -Naur compat-wireless-3.5-1-snpc.org/config.mk compat-wireless-3.5/config.mk
+--- compat-wireless-3.5-1-snpc.org/config.mk   2012-07-31 17:22:29.000000000 -0400
++++ compat-wireless-3.5/config.mk      2012-08-13 13:09:55.913234600 -0400
+@@ -246,10 +246,12 @@
+ # mac80211 test driver
+ export CONFIG_MAC80211_HWSIM=m
++ifdef CONFIG_PCI
+ export CONFIG_ATH5K=m
+ # export CONFIG_ATH5K_DEBUG=y
+ # export CONFIG_ATH5K_TRACER=y
+ # export CONFIG_ATH5K_AHB=y
++endif #CONFIG_PCI
+ export CONFIG_ATH9K=m
+ export CONFIG_ATH9K_HW=m
similarity index 97%
rename from src/patches/compat-wireless-3.0-libertas_uap.patch
rename to src/patches/compat-wireless-3.5-libertas_uap.patch
index 77bab835ddf9c26ef9aed893e923a2e696cef4e6..633bb67720694ad3e0cef778bcd4b55e9d088b67 100644 (file)
@@ -1,6 +1,6 @@
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile       1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/Makefile   2011-10-21 11:13:58.697110085 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/Makefile      1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/Makefile  2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,6 @@
 +obj-$(CONFIG_LIBERTAS_UAP) += uap8xxx.o
 +
@@ -8,9 +8,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/Makefile
 +uap8xxx-$(CONFIG_PROC_FS) += uap_proc.o uap_debug.o
 +
 +EXTRA_CFLAGS += -DFPNUM='"52"' -DPXA3XX_DMA_ALIGN -DDEBUG_LEVEL1
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug.c    1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_debug.c        2011-10-21 11:13:58.707113466 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_debug.c   1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_debug.c       2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,261 @@
 +/** @file uap_debug.c
 +  * @brief This file contains functions for debug proc file.
@@ -273,9 +273,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_debug
 +}
 +
 +#endif
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h      1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_drv.h  2011-10-21 11:13:58.717113637 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_drv.h     1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_drv.h 2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,667 @@
 +/** @file uap_drv.h
 +  * @brief This file contains Linux OS related definitions and
@@ -944,9 +944,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_drv.h
 +int sbi_wakeup_firmware(uap_private * priv);
 +
 +#endif /* _UAP_DRV_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h       1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_fw.h   2011-10-21 11:13:58.727115088 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_fw.h      1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_fw.h  2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,359 @@
 +/** @file uap_fw.h
 + *
@@ -1307,9 +1307,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_fw.h
 +    u8 MacAddr[ETH_ALEN];
 +} __ATTRIB_PACK__ AP_Event;
 +#endif /* _UAP_FW_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_headers.h  1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_headers.h      2011-10-21 11:13:58.727115088 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_headers.h 1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_headers.h     2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,64 @@
 +/** @file uap_headers.h
 + *
@@ -1375,10 +1375,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_heade
 +#include "uap_sdio_mmc.h"
 +
 +#endif /* _UAP_HEADERS_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.c     1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_main.c 2011-10-21 11:13:58.767112032 +0200
-@@ -0,0 +1,1830 @@
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_main.c    1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_main.c        2012-07-31 14:25:28.473230753 +0200
+@@ -0,0 +1,1815 @@
 +/** @file uap_main.c
 +  * @brief This file contains the major functions in uAP
 +  * driver. It includes init, exit etc..
@@ -2703,20 +2703,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +}
 +
 +/**
-+ *  @brief This function sets multicast addresses to firmware
-+ *
-+ *  @param dev     A pointer to net_device structure
-+ *  @return        n/a
-+ */
-+static void
-+uap_set_multicast_list(struct net_device *dev)
-+{
-+    ENTER();
-+#warning uap_set_multicast_list not implemented. Expect problems with IPv6.
-+    LEAVE();
-+}
-+
-+/**
 + *  @brief This function handles the timeout of packet
 + *  transmission
 + *
@@ -2939,7 +2925,6 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +    .ndo_set_mac_address = uap_set_mac_address,
 +    .ndo_tx_timeout = uap_tx_timeout,
 +    .ndo_get_stats = uap_get_stats,
-+    .ndo_set_multicast_list = uap_set_multicast_list,
 +};
 +#endif
 +
@@ -3209,10 +3194,10 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_main.
 +MODULE_AUTHOR("Marvell International Ltd.");
 +MODULE_VERSION(DRIVER_VERSION);
 +MODULE_LICENSE("GPL");
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.c     1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_proc.c 2011-10-21 11:32:37.857111835 +0200
-@@ -0,0 +1,302 @@
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_proc.c    1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_proc.c        2012-07-31 14:23:04.000000000 +0200
+@@ -0,0 +1,296 @@
 +/** @file uap_proc.c
 +  * @brief This file contains functions for proc file.
 +  *
@@ -3308,15 +3293,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.
 +        p += sprintf(p,
 +                     "MCAddr[%d]=\"%02x:%02x:%02x:%02x:%02x:%02x\"\n",
 +                     i++,
-+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
 +                     ha->addr[0], ha->addr[1],
 +                     ha->addr[2], ha->addr[3],
 +                     ha->addr[4], ha->addr[5]);
-+#else
-+                     ha->dmi_addr[0], ha->dmi_addr[1],
-+                     ha->dmi_addr[2], ha->dmi_addr[3],
-+                     ha->dmi_addr[4], ha->dmi_addr[5]);
-+#endif
 +    }
 +
 +    p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes);
@@ -3515,9 +3494,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_proc.
 +}
 +
 +#endif
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c 1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c     2011-10-21 11:13:58.807113416 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c        1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.c    2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,1428 @@
 +/** @file uap_sdio_mmc.c
 + *  @brief This file contains SDIO IF (interface) module
@@ -4947,9 +4926,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_
 +    LEAVE();
 +    return ret;
 +}
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
---- compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h 1970-01-01 01:00:00.000000000 +0100
-+++ compat-wireless-3.0-2/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h     2011-10-21 11:13:58.807113416 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h        1970-01-01 01:00:00.000000000 +0100
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/libertas_uap/uap_sdio_mmc.h    2012-07-31 14:23:04.000000000 +0200
 @@ -0,0 +1,136 @@
 +/** @file uap_sdio_mmc.h
 + *  @brief This file contains SDIO IF (interface) module
@@ -5087,9 +5066,9 @@ diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/libertas_uap/uap_sdio_
 +};
 +
 +#endif /* _UAP_SDIO_MMC_H */
-diff -Naur compat-wireless-3.0-2.org/drivers/net/wireless/Makefile compat-wireless-3.0-2/drivers/net/wireless/Makefile
---- compat-wireless-3.0-2.org/drivers/net/wireless/Makefile    2011-07-28 00:47:28.000000000 +0200
-+++ compat-wireless-3.0-2/drivers/net/wireless/Makefile        2011-10-21 11:13:58.697110085 +0200
+diff -Naur compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile
+--- compat-wireless-3.5-rc5-1-snpc.org/drivers/net/wireless/Makefile   2012-07-05 03:48:01.000000000 +0200
++++ compat-wireless-3.5-rc5-1-snpc/drivers/net/wireless/Makefile       2012-07-31 14:20:01.343608619 +0200
 @@ -22,6 +22,8 @@
  
  obj-$(CONFIG_LIBERTAS_THINFIRM)       += libertas_tf/
diff --git a/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch b/src/patches/compat-wireless_codel-avoid-a-nul-rec_inv_sqrt.patch
new file mode 100644 (file)
index 0000000..210a58c
--- /dev/null
@@ -0,0 +1,68 @@
+From patchwork Mon Jul 30 06:52:21 2012
+Content-Type: text/plain; charset="utf-8"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Subject: codel: refine one condition to avoid a nul rec_inv_sqrt
+Date: Sun, 29 Jul 2012 20:52:21 -0000
+From: Eric Dumazet <eric.dumazet@gmail.com>
+X-Patchwork-Id: 173968
+Message-Id: <1343631141.2626.13293.camel@edumazet-glaptop>
+To: David Miller <davem@davemloft.net>
+Cc: netdev <netdev@vger.kernel.org>, Anton Mich <lp2s1h@gmail.com>
+
+From: Eric Dumazet <edumazet@google.com>
+
+One condition before codel_Newton_step() was not good if
+we never left the dropping state for a flow. As a result
+rec_inv_sqrt was 0, instead of the ~0 initial value.
+
+codel control law was then set to a very aggressive mode, dropping
+many packets before reaching 'target' and recovering from this problem.
+
+To keep codel_vars_init() as efficient as possible, refine
+the condition to make sure rec_inv_sqrt initial value is correct
+
+Many thanks to Anton Mich for discovering the issue and suggesting
+a fix.
+
+Reported-by: Anton Mich <lp2s1h@gmail.com>
+Signed-off-by: Eric Dumazet <edumazet@google.com>
+
+---
+include/net/codel.h |    8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+
+
+--
+To unsubscribe from this list: send the line "unsubscribe netdev" in
+the body of a message to majordomo@vger.kernel.org
+More majordomo info at  http://vger.kernel.org/majordomo-info.html
+
+diff --git a/include/net/codel.h b/include/net/codel.h
+index 550debf..389cf62 100644
+--- a/include/net/codel.h
++++ b/include/net/codel.h
+@@ -305,6 +305,8 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+                       }
+               }
+       } else if (drop) {
++              u32 delta;
++
+               if (params->ecn && INET_ECN_set_ce(skb)) {
+                       stats->ecn_mark++;
+               } else {
+@@ -320,9 +322,11 @@ static struct sk_buff *codel_dequeue(struct Qdisc *sch,
+                * assume that the drop rate that controlled the queue on the
+                * last cycle is a good starting point to control it now.
+                */
+-              if (codel_time_before(now - vars->drop_next,
++              delta = vars->count - vars->lastcount;
++              if (delta > 1 &&
++                  codel_time_before(now - vars->drop_next,
+                                     16 * params->interval)) {
+-                      vars->count = (vars->count - vars->lastcount) | 1;
++                      vars->count = delta;
+                       /* we dont care if rec_inv_sqrt approximation
+                        * is not very precise :
+                        * Next Newton steps will correct it quadratically.
diff --git a/src/patches/coreutils-5.96-futimes.patch b/src/patches/coreutils-5.96-futimes.patch
new file mode 100644 (file)
index 0000000..e91f1df
--- /dev/null
@@ -0,0 +1,56 @@
+--- coreutils-6.0.orig/lib/utimens.c   2006-06-11 09:14:31.000000000 +0200
++++ coreutils-6.0/lib/utimens.c        2007-07-17 00:41:08.000000000 +0200
+@@ -75,7 +75,7 @@
+    Return 0 on success, -1 (setting errno) on failure.  */
+ int
+-futimens (int fd ATTRIBUTE_UNUSED,
++cu_futimens (int fd ATTRIBUTE_UNUSED,
+         char const *file, struct timespec const timespec[2])
+ {
+   /* There's currently no interface to set file timestamps with
+@@ -168,5 +168,5 @@
+ int
+ utimens (char const *file, struct timespec const timespec[2])
+ {
+-  return futimens (-1, file, timespec);
++  return cu_futimens (-1, file, timespec);
+ }
+--- coreutils-6.0.orig/lib/utimens.h   2004-11-23 21:41:51.000000000 +0100
++++ coreutils-6.0/lib/utimens.h        2007-07-17 00:41:31.000000000 +0200
+@@ -1,3 +1,3 @@
+ #include "timespec.h"
+-int futimens (int, char const *, struct timespec const [2]);
++int cu_futimens (int, char const *, struct timespec const [2]);
+ int utimens (char const *, struct timespec const [2]);
+--- coreutils-6.0.orig/src/copy.c      2007-07-16 23:18:42.000000000 +0200
++++ coreutils-6.0/src/copy.c   2007-07-17 00:43:10.000000000 +0200
+@@ -648,7 +648,7 @@
+       timespec[0] = get_stat_atime (src_sb);
+       timespec[1] = get_stat_mtime (src_sb);
+-      if (futimens (dest_desc, dst_name, timespec) != 0)
++      if (cu_futimens (dest_desc, dst_name, timespec) != 0)
+       {
+         error (0, errno, _("preserving times for %s"), quote (dst_name));
+         if (x->require_preserve)
+--- coreutils-6.0.orig/src/touch.c     2005-11-02 11:01:07.000000000 +0100
++++ coreutils-6.0/src/touch.c  2007-07-17 00:43:51.000000000 +0200
+@@ -167,7 +167,7 @@
+   if (amtime_now)
+     {
+-      /* Pass NULL to futimens so it will not fail if we have
++      /* Pass NULL to cu_futimens so it will not fail if we have
+        write access to the file, but don't own it.  */
+       t = NULL;
+     }
+@@ -182,7 +182,7 @@
+       t = timespec;
+     }
+-  ok = (futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
++  ok = (cu_futimens (fd, (fd == STDOUT_FILENO ? NULL : file), t) == 0);
+   if (fd == STDIN_FILENO)
+     {
diff --git a/src/patches/cyrus-sasl-2.1.22-bad-elif.patch b/src/patches/cyrus-sasl-2.1.22-bad-elif.patch
new file mode 100644 (file)
index 0000000..33550c4
--- /dev/null
@@ -0,0 +1,21 @@
+diff -up cyrus-sasl-2.1.22/plugins/digestmd5.c.elif cyrus-sasl-2.1.22/plugins/digestmd5.c
+--- cyrus-sasl-2.1.22/plugins/digestmd5.c.elif 2009-01-23 09:40:31.000000000 +0100
++++ cyrus-sasl-2.1.22/plugins/digestmd5.c      2009-02-06 15:20:15.000000000 +0100
+@@ -2743,7 +2743,7 @@ static sasl_server_plug_t digestmd5_serv
+       "DIGEST-MD5",                   /* mech_name */
+ #ifdef WITH_RC4
+       128,                            /* max_ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+       112,
+ #else 
+       1,
+@@ -4071,7 +4071,7 @@ static sasl_client_plug_t digestmd5_clie
+       "DIGEST-MD5",
+ #ifdef WITH_RC4                               /* mech_name */
+       128,                            /* max ssf */
+-#elif WITH_DES
++#elif defined(WITH_DES)
+       112,
+ #else
+       1,
diff --git a/src/patches/dbus-1.0.3-compile-fix-1.patch b/src/patches/dbus-1.0.3-compile-fix-1.patch
new file mode 100644 (file)
index 0000000..86fd2b3
--- /dev/null
@@ -0,0 +1,11 @@
+--- dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c   2009-01-01 03:50:33.000000000 +0200
++++ dbus-1.0.1.orig/dbus/dbus-sysdeps-unix.c   2009-01-01 04:09:24.000000000 +0200
+@@ -992,7 +992,7 @@ 
+   _dbus_verbose ("read credentials byte\n");
+   {
+-#ifdef SO_PEERCRED
++#if defined(SO_PEERCRED) && defined(HAVE_GETPEERUCRED)
+     struct ucred cr;   
+     int cr_len = sizeof (cr);
+    
diff --git a/src/patches/dhcp-3.1_linux3.patch b/src/patches/dhcp-3.1_linux3.patch
new file mode 100644 (file)
index 0000000..44edb41
--- /dev/null
@@ -0,0 +1,11 @@
+diff -Naur dhcp-3.1-ESV-R3.org/configure dhcp-3.1-ESV-R3/configure
+--- dhcp-3.1-ESV-R3.org/configure      2005-03-17 21:14:55.000000000 +0100
++++ dhcp-3.1-ESV-R3/configure  2012-06-17 12:19:29.000000000 +0200
+@@ -104,6 +104,7 @@
+            2) sysname=linux-2.2 ;;
+            *) sysname=linux-2.2 ;;
+          esac;;
++      3) sysname=linux-2.2 ;;
+       esac;;
+     SunOS)
+       release=`uname -r`
diff --git a/src/patches/directfb-1.1.1-fix-mknod.patch b/src/patches/directfb-1.1.1-fix-mknod.patch
new file mode 100644 (file)
index 0000000..97633e2
--- /dev/null
@@ -0,0 +1,26 @@
+Description: directfb ftbfs on armel. Implicit declaration error
+ Fix for ARM builds failing on:
+  ../../../gfxdrivers/davinci/davinci_c64x.c: In function 'davinci_c64x_open':
+  ../../../gfxdrivers/davinci/davinci_c64x.c:1900:6: error: implicit declaration of function 'mknod' [-Werror=implicit-function-declaration]
+  cc1: some warnings being treated as errors
+ .
+ directfb (1.2.10.0-4.3) unstable; urgency=low
+ .
+   * Non-maintainer upload.
+   * Fix "directfb ftbfs on armel. Implicit declaration error"
+     - Thanks Peter Green for bug report and patch (Closes: #644782)
+   * Remove m4 macros when calling clean target
+Author: Hector Oron <zumbi@debian.org>
+Bug-Debian: http://bugs.debian.org/644782
+
+--- directfb-1.2.10.0.orig/gfxdrivers/davinci/davinci_c64x.c
++++ directfb-1.2.10.0/gfxdrivers/davinci/davinci_c64x.c
+@@ -37,6 +37,8 @@
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <sys/types.h>
++#include <sys/stat.h>
++
+ #include <unistd.h>
+ #include <directfb_util.h>
diff --git a/src/patches/gcc-4.0.4-specs-1.patch b/src/patches/gcc-4.0.4-specs-1.patch
deleted file mode 100644 (file)
index 46521e1..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-Submitted By: Robert Connolly <robert at linuxfromscratch dot org> (ashes)
-Date: 2006-01-16
-Initial Package Version: 4.0.0
-Upstream Status: Not Sent - LFS Specfic
-Origin: Idea originally developed by Ryan Oliver and Greg Schafer for
-       the Pure LFS project.
-       More architectures added by Zack Winkles.
-       Further fine tunings by Greg Schafer.
-       Modified for gcc 3.3.2 by Oliver Brakmann.
-Rediffed against gcc 3.4.0 by Zack Winkles.
-       Rediffed against gcc 3.4.3 by Jim Gifford.
-       Rediffed against gcc 4.0.0 by Robert Connolly.
-Description: This patch modifies the location of the dynamic linker for
-       the GCC Pass 2 build in LFS Chapter 5.
-
-diff -Naur gcc-20050116.orig/gcc/config/alpha/linux-elf.h gcc-20050116/gcc/config/alpha/linux-elf.h
---- gcc-20050116.orig/gcc/config/alpha/linux-elf.h     2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/alpha/linux-elf.h  2005-01-17 00:46:14.560651027 +0000
-@@ -27,7 +27,7 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
--#define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#define ELF_DYNAMIC_LINKER    "/tools/lib/ld-linux.so.2"
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
-diff -Naur gcc-20050116.orig/gcc/config/arm/linux-elf.h gcc-20050116/gcc/config/arm/linux-elf.h
---- gcc-20050116.orig/gcc/config/arm/linux-elf.h       2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/arm/linux-elf.h    2005-01-17 00:46:50.538578614 +0000
-@@ -87,7 +87,7 @@
-    %{shared:-shared} \
-    %{symbolic:-Bsymbolic} \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2} \
-    -X \
-    %{mbig-endian:-EB}" \
-    SUBTARGET_EXTRA_LINK_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/frv/linux.h gcc-20050116/gcc/config/frv/linux.h
---- gcc-20050116.orig/gcc/config/frv/linux.h   2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/frv/linux.h        2005-01-17 01:33:50.600805260 +0000
-@@ -41,7 +41,7 @@
-   %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
-   %{!shared: %{!static: \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static}}"
- /* Support for compile-time default CPU.  */
-diff -Naur gcc-20050116.orig/gcc/config/i386/gnu.h gcc-20050116/gcc/config/i386/gnu.h
---- gcc-20050116.orig/gcc/config/i386/gnu.h    2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/gnu.h 2005-01-17 01:34:11.142021939 +0000
-@@ -27,7 +27,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \
-     %{static:-static}}"
- #undef        STARTFILE_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/i386/linux.h gcc-20050116/gcc/config/i386/linux.h
---- gcc-20050116.orig/gcc/config/i386/linux.h  2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/linux.h       2005-01-17 00:49:27.412667132 +0000
-@@ -105,7 +105,7 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #define LINK_EMULATION "elf_i386"
--#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff -Naur gcc-20050116.orig/gcc/config/i386/linux64.h gcc-20050116/gcc/config/i386/linux64.h
---- gcc-20050116.orig/gcc/config/i386/linux64.h        2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/i386/linux64.h     2005-01-17 00:50:23.055094690 +0000
-@@ -60,8 +60,8 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \
-     %{static:-static}}"
- #define MULTILIB_DEFAULTS { "m64" }
-diff -Naur gcc-20050116.orig/gcc/config/ia64/linux.h gcc-20050116/gcc/config/ia64/linux.h
---- gcc-20050116.orig/gcc/config/ia64/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/ia64/linux.h       2005-01-17 00:50:43.146472133 +0000
-@@ -43,7 +43,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
-       %{static:-static}}"
-diff -Naur gcc-20050116.orig/gcc/config/linux.h gcc-20050116/gcc/config/linux.h
---- gcc-20050116.orig/gcc/config/linux.h       2005-01-17 00:45:16.000000000 +0000
-+++ gcc-20050116/gcc/config/linux.h    2005-01-17 00:51:14.101809663 +0000
-@@ -104,3 +104,7 @@
- #define TARGET_C99_FUNCTIONS 1
- #define TARGET_HAS_F_SETLKW
-+
-+/* Remove /usr/include from the end of the include search path.  */
-+#undef STANDARD_INCLUDE_DIR
-+#define STANDARD_INCLUDE_DIR 0
-diff -Naur gcc-20050116.orig/gcc/config/m32r/linux.h gcc-20050116/gcc/config/m32r/linux.h
---- gcc-20050116.orig/gcc/config/m32r/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/m32r/linux.h       2005-01-17 00:51:39.720640870 +0000
-@@ -66,7 +66,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #else
- #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
-@@ -74,7 +74,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #endif
-diff -Naur gcc-20050116.orig/gcc/config/m68k/linux.h gcc-20050116/gcc/config/m68k/linux.h
---- gcc-20050116.orig/gcc/config/m68k/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/m68k/linux.h       2005-01-17 00:52:07.633830392 +0000
-@@ -132,7 +132,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
-diff -Naur gcc-20050116.orig/gcc/config/mips/linux.h gcc-20050116/gcc/config/mips/linux.h
---- gcc-20050116.orig/gcc/config/mips/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mips/linux.h       2005-01-17 00:52:28.348034505 +0000
-@@ -115,7 +115,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/mips/linux64.h gcc-20050116/gcc/config/mips/linux64.h
---- gcc-20050116.orig/gcc/config/mips/linux64.h        2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mips/linux64.h     2005-01-17 00:53:04.645878728 +0000
-@@ -60,9 +60,9 @@
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
-         %{!dynamic-linker: \
--        %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
--        %{mabi=64: -dynamic-linker /lib64/ld.so.1} \
--        %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
-+        %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \
-+        %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \
-+        %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \
-       %{static:-static}}} \
- %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
- %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
-diff -Naur gcc-20050116.orig/gcc/config/mn10300/linux.h gcc-20050116/gcc/config/mn10300/linux.h
---- gcc-20050116.orig/gcc/config/mn10300/linux.h       2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/mn10300/linux.h    2005-01-17 00:53:23.477610026 +0000
-@@ -37,7 +37,7 @@
- #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static:-static}"
- #undef  LIB_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/pa/pa-linux.h gcc-20050116/gcc/config/pa/pa-linux.h
---- gcc-20050116.orig/gcc/config/pa/pa-linux.h 2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/pa/pa-linux.h      2005-01-17 00:53:45.334495141 +0000
-@@ -88,7 +88,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
-diff -Naur gcc-20050116.orig/gcc/config/rs6000/linux64.h gcc-20050116/gcc/config/rs6000/linux64.h
---- gcc-20050116.orig/gcc/config/rs6000/linux64.h      2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/rs6000/linux64.h   2005-01-17 00:54:28.524412534 +0000
-@@ -351,11 +351,11 @@
- #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}"
- #undef  TOC_SECTION_ASM_OP
- #define TOC_SECTION_ASM_OP \
-diff -Naur gcc-20050116.orig/gcc/config/rs6000/sysv4.h gcc-20050116/gcc/config/rs6000/sysv4.h
---- gcc-20050116.orig/gcc/config/rs6000/sysv4.h        2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/rs6000/sysv4.h     2005-01-17 01:26:39.126999460 +0000
-@@ -1131,7 +1131,7 @@
- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-@@ -1162,7 +1162,7 @@
- #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__  \
- %{!undef:                                                     \
-diff -Naur gcc-20050116.orig/gcc/config/s390/linux.h gcc-20050116/gcc/config/s390/linux.h
---- gcc-20050116.orig/gcc/config/s390/linux.h  2005-01-17 00:45:17.000000000 +0000
-+++ gcc-20050116/gcc/config/s390/linux.h       2005-01-17 01:26:58.672523211 +0000
-@@ -86,8 +86,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker /tools/lib/ld.so.1} \
-+          %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-diff -Naur gcc-20050116.orig/gcc/config/sh/linux.h gcc-20050116/gcc/config/sh/linux.h
---- gcc-20050116.orig/gcc/config/sh/linux.h    2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sh/linux.h 2005-01-17 01:27:19.588663163 +0000
-@@ -70,7 +70,7 @@
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-    %{static:-static}"
- #undef LIB_SPEC
-diff -Naur gcc-20050116.orig/gcc/config/sparc/linux.h gcc-20050116/gcc/config/sparc/linux.h
---- gcc-20050116.orig/gcc/config/sparc/linux.h 2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sparc/linux.h      2005-01-17 01:30:07.282688639 +0000
-@@ -131,13 +131,13 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #undef  LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
-diff -Naur gcc-20050116.orig/gcc/config/sparc/linux64.h gcc-20050116/gcc/config/sparc/linux64.h
---- gcc-20050116.orig/gcc/config/sparc/linux64.h       2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/sparc/linux64.h    2005-01-17 01:31:18.242712476 +0000
-@@ -167,21 +167,21 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
-@@ -257,12 +257,12 @@
- #else /* !SPARC_BI_ARCH */
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- %{mlittle-endian:-EL} \
- %{!mno-relax:%{!r:-relax}} \
-diff -Naur gcc-20050116.orig/gcc/config/xtensa/linux.h gcc-20050116/gcc/config/xtensa/linux.h
---- gcc-20050116.orig/gcc/config/xtensa/linux.h        2005-01-17 00:45:18.000000000 +0000
-+++ gcc-20050116/gcc/config/xtensa/linux.h     2005-01-17 01:32:08.951429623 +0000
-@@ -50,7 +50,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}}"
- #undef LOCAL_LABEL_PREFIX
diff --git a/src/patches/gcc-4.1.2-arm-linux-soft-float.patch b/src/patches/gcc-4.1.2-arm-linux-soft-float.patch
deleted file mode 100644 (file)
index c22bc38..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-diff -u -r gcc-4.0.2/gcc/config/arm/t-linux gcc-4.0.2/gcc/config/arm.new/t-linux
---- gcc-4.0.2/gcc/config/arm/t-linux   2005-10-18 22:04:44.000000000 +1000
-+++ gcc-4.0.2/gcc/config/arm.new/t-linux       2005-10-18 22:05:03.000000000 +1000
-@@ -4,7 +4,12 @@ TARGET_LIBGCC2_CFLAGS = -fomit-frame-poi
- LIBGCC2_DEBUG_CFLAGS = -g0
- LIB1ASMSRC = arm/lib1funcs.asm
--LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx
-+LIB1ASMFUNCS = _udivsi3 _divsi3 _umodsi3 _modsi3 _dvmd_lnx \
-+      _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi _fixunsdfsi \
-+      _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2 \
-+      _fixsfsi _fixunssfsi _floatdidf _floatdisf \
-+      _bb_init_func _call_via_rX _interwork_call_via_rX \
-+      _lshrdi3 _ashrdi3 _ashldi3
- # MULTILIB_OPTIONS = mhard-float/msoft-float
- # MULTILIB_DIRNAMES = hard-float soft-float
-
-
---- gcc-4.1.1/gcc/config/arm/linux-elf.h       2007-01-06 11:17:51.000000000 +0000
-+++ gcc-4.1.1/gcc/config/arm/linux-elf-soft.h  2007-01-06 11:22:01.000000000 +0000
-@@ -49,7 +49,7 @@
-    %{shared:-lc} \
-    %{!shared:%{profile:-lc_p}%{!profile:-lc}}"
--#define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
-+/* #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc" */
- #define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
diff --git a/src/patches/gcc-4.1.2-fix_linker_version_detection.patch b/src/patches/gcc-4.1.2-fix_linker_version_detection.patch
deleted file mode 100644 (file)
index 36a756c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur gcc-4.1.2.org/libstdc++-v3/configure gcc-4.1.2/libstdc++-v3/configure
---- gcc-4.1.2.org/libstdc++-v3/configure       2007-01-29 11:51:01.000000000 +0100
-+++ gcc-4.1.2/libstdc++-v3/configure   2011-08-29 19:25:22.973430586 +0200
-@@ -8281,7 +8281,7 @@
-   if test x"$with_gnu_ld" = x"yes"; then
-     ldver=`$LD --version 2>/dev/null | head -1 | \
--           sed -e 's/GNU ld version \([0-9.][0-9.]*\).*/\1/'`
-+           sed -e 's/GNU ld .*) \([0-9.][0-9.]*\).*/\1/'`
-     glibcxx_gnu_ld_version=`echo $ldver | \
-            $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
diff --git a/src/patches/gcc-4.1.2-gcc_eh.patch b/src/patches/gcc-4.1.2-gcc_eh.patch
deleted file mode 100644 (file)
index 9a2589a..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-diff -ur gcc-4.1.2/gcc/cp/g++spec.c gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c
---- gcc-4.1.2/gcc/cp/g++spec.c 2005-06-25 02:59:41.000000000 +0200
-+++ gcc-4.1.2-gcc_eh/gcc/cp/g++spec.c  2007-08-03 14:46:03.000000000 +0200
-@@ -251,7 +251,7 @@
- #endif
-   /* Make sure to have room for the trailing NULL argument.  */
--  num_args = argc + added + need_math + shared_libgcc + (library > 0) + 1;
-+  num_args = argc + added + need_math + shared_libgcc + 2 * (library > 0) + 1;
-   arglist = xmalloc (num_args * sizeof (char *));
-   i = 0;
-@@ -311,7 +311,10 @@
-     {
-       arglist[j] = saw_profile_flag ? LIBSTDCXX_PROFILE : LIBSTDCXX;
-       if (arglist[j][0] != '-' || arglist[j][1] == 'l')
--      added_libraries++;
-+      {
-+      arglist[++j] = "-lgcc_eh";
-+      added_libraries += 2;
-+      }
-       j++;
-     }
-   if (saw_math)
diff --git a/src/patches/gcc-4.1.2-specs-1.patch b/src/patches/gcc-4.1.2-specs-1.patch
deleted file mode 100644 (file)
index 28ebb43..0000000
+++ /dev/null
@@ -1,507 +0,0 @@
-diff -Naur gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h gcc-4.1.2/gcc/config/alpha/linux-elf.h
---- gcc-4.1.2.orig/gcc/config/alpha/linux-elf.h        2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/alpha/linux-elf.h     2011-09-01 17:11:11.000000000 +0000
-@@ -27,7 +27,7 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
--#define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#define ELF_DYNAMIC_LINKER    "/tools/lib/ld-linux.so.2"
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
-diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h gcc-4.1.2/gcc/config/arm/linux-eabi.h
---- gcc-4.1.2.orig/gcc/config/arm/linux-eabi.h 2005-11-15 14:32:13.000000000 +0000
-+++ gcc-4.1.2/gcc/config/arm/linux-eabi.h      2011-09-01 17:11:47.000000000 +0000
-@@ -53,7 +53,7 @@
- /* Use ld-linux.so.3 so that it will be possible to run "classic"
-    GNU/Linux binaries on an EABI system.  */
- #undef LINUX_TARGET_INTERPRETER
--#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.3"
-+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.3"
- /* At this point, bpabi.h will have clobbered LINK_SPEC.  We want to
-    use the GNU/Linux version, not the generic BPABI version.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/arm/linux-elf.h gcc-4.1.2/gcc/config/arm/linux-elf.h
---- gcc-4.1.2.orig/gcc/config/arm/linux-elf.h  2005-10-10 01:04:31.000000000 +0000
-+++ gcc-4.1.2/gcc/config/arm/linux-elf.h       2011-09-01 17:11:11.000000000 +0000
-@@ -51,7 +51,7 @@
- #define LIBGCC_SPEC "%{msoft-float:-lfloat} %{mfloat-abi=soft*:-lfloat} -lgcc"
--#define LINUX_TARGET_INTERPRETER "/lib/ld-linux.so.2"
-+#define LINUX_TARGET_INTERPRETER "/tools/lib/ld-linux.so.2"
- #define LINUX_TARGET_LINK_SPEC  "%{h*} %{version:-v} \
-    %{b} \
-diff -Naur gcc-4.1.2.orig/gcc/config/frv/linux.h gcc-4.1.2/gcc/config/frv/linux.h
---- gcc-4.1.2.orig/gcc/config/frv/linux.h      2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/frv/linux.h   2011-09-01 17:11:11.000000000 +0000
-@@ -41,7 +41,7 @@
-   %{mfdpic: -m elf32frvfd -z text} %{shared} %{pie} \
-   %{!shared: %{!static: \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+   %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static}}"
- /* Support for compile-time default CPU.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/gnu.h gcc-4.1.2/gcc/config/i386/gnu.h
---- gcc-4.1.2.orig/gcc/config/i386/gnu.h       2004-09-08 00:17:19.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/gnu.h    2011-09-01 17:11:11.000000000 +0000
-@@ -27,7 +27,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so}} \
-     %{static:-static}}"
- #undef        STARTFILE_SPEC
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux64.h gcc-4.1.2/gcc/config/i386/linux64.h
---- gcc-4.1.2.orig/gcc/config/i386/linux64.h   2005-08-10 17:53:01.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/linux64.h        2011-09-01 17:11:11.000000000 +0000
-@@ -60,8 +60,8 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux-x86-64.so.2}}} \
-     %{static:-static}}"
- /* Similar to standard Linux, but adding -ffast-math support.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/i386/linux.h gcc-4.1.2/gcc/config/i386/linux.h
---- gcc-4.1.2.orig/gcc/config/i386/linux.h     2005-08-10 17:53:01.000000000 +0000
-+++ gcc-4.1.2/gcc/config/i386/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -105,7 +105,7 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #define LINK_EMULATION "elf_i386"
--#define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define DYNAMIC_LINKER "/tools/lib/ld-linux.so.2"
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h gcc-4.1.2/gcc/config/ia64/linux.h
---- gcc-4.1.2.orig/gcc/config/ia64/linux.h     2006-12-12 15:24:07.000000000 +0000
-+++ gcc-4.1.2/gcc/config/ia64/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -43,7 +43,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux-ia64.so.2}} \
-       %{static:-static}}"
- #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-diff -Naur gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig gcc-4.1.2/gcc/config/ia64/linux.h.orig
---- gcc-4.1.2.orig/gcc/config/ia64/linux.h.orig        1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4.1.2/gcc/config/ia64/linux.h.orig     2006-12-12 15:24:07.000000000 +0000
-@@ -0,0 +1,59 @@
-+/* Definitions for ia64-linux target.  */
-+
-+/* This macro is a C statement to print on `stderr' a string describing the
-+   particular machine description choice.  */
-+
-+#define TARGET_VERSION fprintf (stderr, " (IA-64) Linux");
-+
-+/* This is for -profile to use -lc_p instead of -lc.  */
-+#undef CC1_SPEC
-+#define CC1_SPEC "%{profile:-p} %{G*}"
-+
-+/* Target OS builtins.  */
-+#define TARGET_OS_CPP_BUILTINS()              \
-+do {                                          \
-+      LINUX_TARGET_OS_CPP_BUILTINS();         \
-+      builtin_define("_LONGLONG");            \
-+} while (0)
-+
-+/* Need to override linux.h STARTFILE_SPEC, since it has crtbeginT.o in.  */
-+#undef STARTFILE_SPEC
-+#ifdef HAVE_LD_PIE
-+#define STARTFILE_SPEC \
-+  "%{!shared: %{pg|p|profile:gcrt1.o%s;pie:Scrt1.o%s;:crt1.o%s}}\
-+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-+#else
-+#define STARTFILE_SPEC \
-+  "%{!shared: %{pg|p|profile:gcrt1.o%s;:crt1.o%s}}\
-+   crti.o%s %{shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
-+#endif
-+
-+/* Similar to standard Linux, but adding -ffast-math support.  */
-+#undef  ENDFILE_SPEC
-+#define ENDFILE_SPEC \
-+  "%{ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \
-+   %{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s"
-+
-+/* Define this for shared library support because it isn't in the main
-+   linux.h file.  */
-+
-+#undef LINK_SPEC
-+#define LINK_SPEC "\
-+  %{shared:-shared} \
-+  %{!shared: \
-+    %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{static:-static}}"
-+
-+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-+
-+#define JMP_BUF_SIZE  76
-+
-+/* Override linux.h LINK_EH_SPEC definition.
-+   Signalize that because we have fde-glibc, we don't need all C shared libs
-+   linked against -lgcc_s.  */
-+#undef LINK_EH_SPEC
-+#define LINK_EH_SPEC ""
-+
-+#define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
-diff -Naur gcc-4.1.2.orig/gcc/config/linux.h gcc-4.1.2/gcc/config/linux.h
---- gcc-4.1.2.orig/gcc/config/linux.h  2005-08-06 13:26:35.000000000 +0000
-+++ gcc-4.1.2/gcc/config/linux.h       2011-09-01 17:11:11.000000000 +0000
-@@ -104,3 +104,7 @@
- #define TARGET_C99_FUNCTIONS 1
- #define TARGET_POSIX_IO
-+
-+/* Remove /usr/include from the end of the include search path.  */
-+#undef STANDARD_INCLUDE_DIR
-+#define STANDARD_INCLUDE_DIR 0
-diff -Naur gcc-4.1.2.orig/gcc/config/m32r/linux.h gcc-4.1.2/gcc/config/m32r/linux.h
---- gcc-4.1.2.orig/gcc/config/m32r/linux.h     2005-07-08 10:00:15.000000000 +0000
-+++ gcc-4.1.2/gcc/config/m32r/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -66,7 +66,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #else
- #define LINK_SPEC "%(link_cpu) -m m32relf_linux %{shared:-shared} \
-@@ -74,7 +74,7 @@
-     %{!ibcs: \
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-       %{static:-static}}}"
- #endif
-diff -Naur gcc-4.1.2.orig/gcc/config/m68k/linux.h gcc-4.1.2/gcc/config/m68k/linux.h
---- gcc-4.1.2.orig/gcc/config/m68k/linux.h     2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/m68k/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -128,7 +128,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker /tools/lib/ld.so.1}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
-diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux64.h gcc-4.1.2/gcc/config/mips/linux64.h
---- gcc-4.1.2.orig/gcc/config/mips/linux64.h   2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mips/linux64.h        2011-09-01 17:11:11.000000000 +0000
-@@ -47,9 +47,9 @@
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
-         %{!dynamic-linker: \
--        %{mabi=n32: -dynamic-linker /lib32/ld.so.1} \
--        %{mabi=64: -dynamic-linker /lib64/ld.so.1} \
--        %{mabi=32: -dynamic-linker /lib/ld.so.1}}} \
-+        %{mabi=n32: -dynamic-linker /tools/lib32/ld.so.1} \
-+        %{mabi=64: -dynamic-linker /tools/lib64/ld.so.1} \
-+        %{mabi=32: -dynamic-linker /tools/lib/ld.so.1}}} \
-       %{static:-static}}} \
- %{mabi=n32:-melf32%{EB:b}%{EL:l}tsmipn32} \
- %{mabi=64:-melf64%{EB:b}%{EL:l}tsmip} \
-diff -Naur gcc-4.1.2.orig/gcc/config/mips/linux.h gcc-4.1.2/gcc/config/mips/linux.h
---- gcc-4.1.2.orig/gcc/config/mips/linux.h     2006-12-17 13:57:31.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mips/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -112,7 +112,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
-diff -Naur gcc-4.1.2.orig/gcc/config/mn10300/linux.h gcc-4.1.2/gcc/config/mn10300/linux.h
---- gcc-4.1.2.orig/gcc/config/mn10300/linux.h  2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/mn10300/linux.h       2011-09-01 17:11:11.000000000 +0000
-@@ -37,7 +37,7 @@
- #define LINK_SPEC "%{mrelax:--relax} %{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-    %{static:-static}"
- #undef  PROCESSOR_DEFAULT
-diff -Naur gcc-4.1.2.orig/gcc/config/pa/pa-linux.h gcc-4.1.2/gcc/config/pa/pa-linux.h
---- gcc-4.1.2.orig/gcc/config/pa/pa-linux.h    2007-01-12 02:23:38.000000000 +0000
-+++ gcc-4.1.2/gcc/config/pa/pa-linux.h 2011-09-01 17:11:11.000000000 +0000
-@@ -55,7 +55,7 @@
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/linux64.h gcc-4.1.2/gcc/config/rs6000/linux64.h
---- gcc-4.1.2.orig/gcc/config/rs6000/linux64.h 2006-02-10 20:58:33.000000000 +0000
-+++ gcc-4.1.2/gcc/config/rs6000/linux64.h      2011-09-01 17:11:11.000000000 +0000
-@@ -339,11 +339,11 @@
- #define LINK_OS_LINUX_SPEC32 "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define LINK_OS_LINUX_SPEC64 "-m elf64ppc %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib64/ld64.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib64/ld64.so.1}}}"
- #undef  TOC_SECTION_ASM_OP
- #define TOC_SECTION_ASM_OP \
-diff -Naur gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h gcc-4.1.2/gcc/config/rs6000/sysv4.h
---- gcc-4.1.2.orig/gcc/config/rs6000/sysv4.h   2006-02-10 20:58:33.000000000 +0000
-+++ gcc-4.1.2/gcc/config/rs6000/sysv4.h        2011-09-01 17:11:11.000000000 +0000
-@@ -1041,7 +1041,7 @@
- #define LINK_OS_LINUX_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
-@@ -1072,7 +1072,7 @@
- #define LINK_OS_GNU_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-   %{rdynamic:-export-dynamic} \
--  %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+  %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}}}"
- #define CPP_OS_GNU_SPEC "-D__unix__ -D__gnu_hurd__ -D__GNU__  \
- %{!undef:                                                     \
-diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h gcc-4.1.2/gcc/config/s390/linux.h
---- gcc-4.1.2.orig/gcc/config/s390/linux.h     2006-12-12 15:24:07.000000000 +0000
-+++ gcc-4.1.2/gcc/config/s390/linux.h  2011-09-01 17:11:11.000000000 +0000
-@@ -86,8 +86,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker /tools/lib/ld.so.1} \
-+          %{m64:-dynamic-linker /tools/lib/ld64.so.1}}}}"
- #define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-diff -Naur gcc-4.1.2.orig/gcc/config/s390/linux.h.orig gcc-4.1.2/gcc/config/s390/linux.h.orig
---- gcc-4.1.2.orig/gcc/config/s390/linux.h.orig        1970-01-01 00:00:00.000000000 +0000
-+++ gcc-4.1.2/gcc/config/s390/linux.h.orig     2006-12-12 15:24:07.000000000 +0000
-@@ -0,0 +1,107 @@
-+/* Definitions for Linux for S/390.
-+   Copyright (C) 1999, 2000, 2001, 2002, 2004 Free Software Foundation, Inc.
-+   Contributed by Hartmut Penner (hpenner@de.ibm.com) and
-+                  Ulrich Weigand (uweigand@de.ibm.com).
-+
-+This file is part of GCC.
-+
-+GCC is free software; you can redistribute it and/or modify it under
-+the terms of the GNU General Public License as published by the Free
-+Software Foundation; either version 2, or (at your option) any later
-+version.
-+
-+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
-+WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+for more details.
-+
-+You should have received a copy of the GNU General Public License
-+along with GCC; see the file COPYING.  If not, write to the Free
-+Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
-+02110-1301, USA.  */
-+
-+#ifndef _LINUX_H
-+#define _LINUX_H
-+
-+/* Target specific version string.  */
-+
-+#ifdef DEFAULT_TARGET_64BIT
-+#undef  TARGET_VERSION
-+#define TARGET_VERSION fprintf (stderr, " (Linux for zSeries)");
-+#else
-+#undef  TARGET_VERSION
-+#define TARGET_VERSION fprintf (stderr, " (Linux for S/390)");
-+#endif
-+
-+
-+/* Target specific type definitions.  */
-+
-+/* ??? Do we really want long as size_t on 31-bit?  */
-+#undef  SIZE_TYPE
-+#define SIZE_TYPE (TARGET_64BIT ? "long unsigned int" : "long unsigned int")
-+#undef  PTRDIFF_TYPE
-+#define PTRDIFF_TYPE (TARGET_64BIT ? "long int" : "int")
-+
-+#undef  WCHAR_TYPE
-+#define WCHAR_TYPE "int"
-+#undef  WCHAR_TYPE_SIZE
-+#define WCHAR_TYPE_SIZE 32
-+
-+
-+/* Target specific preprocessor settings.  */
-+
-+#define TARGET_OS_CPP_BUILTINS()              \
-+  do                                          \
-+    {                                         \
-+      LINUX_TARGET_OS_CPP_BUILTINS();         \
-+      if (flag_pic)                           \
-+        {                                     \
-+          builtin_define ("__PIC__");         \
-+          builtin_define ("__pic__");         \
-+        }                                     \
-+    }                                         \
-+  while (0)
-+
-+
-+/* Target specific assembler settings.  */
-+
-+#undef  ASM_SPEC
-+#define ASM_SPEC "%{m31&m64}%{mesa&mzarch}%{march=*}"
-+
-+
-+/* Target specific linker settings.  */
-+
-+#ifdef DEFAULT_TARGET_64BIT
-+#define MULTILIB_DEFAULTS { "m64" }
-+#else
-+#define MULTILIB_DEFAULTS { "m31" }
-+#endif
-+
-+#undef  LINK_SPEC
-+#define LINK_SPEC \
-+  "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-+   %{shared:-shared} \
-+   %{!shared: \
-+      %{static:-static} \
-+      %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker: \
-+          %{m31:-dynamic-linker /lib/ld.so.1} \
-+          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+
-+#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
-+
-+#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
-+
-+#define MD_UNWIND_SUPPORT "config/s390/linux-unwind.h"
-+
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-+/* s390 glibc provides __stack_chk_guard in 0x14(tp),
-+   s390x glibc provides it at 0x28(tp).  */
-+#define TARGET_THREAD_SSP_OFFSET        (TARGET_64BIT ? 0x28 : 0x14)
-+#endif
-+
-+/* Define if long doubles should be mangled as 'g'.  */
-+#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
-+
-+#endif
-diff -Naur gcc-4.1.2.orig/gcc/config/sh/linux.h gcc-4.1.2/gcc/config/sh/linux.h
---- gcc-4.1.2.orig/gcc/config/sh/linux.h       2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sh/linux.h    2011-09-01 17:11:11.000000000 +0000
-@@ -60,7 +60,7 @@
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-    %{static:-static}"
- /* Output assembler code to STREAM to call the profiler.  */
-diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux64.h gcc-4.1.2/gcc/config/sparc/linux64.h
---- gcc-4.1.2.orig/gcc/config/sparc/linux64.h  2006-02-11 08:38:51.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sparc/linux64.h       2011-09-01 17:11:11.000000000 +0000
-@@ -162,21 +162,21 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
--#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
--#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_ARCH64_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- "
-@@ -252,12 +252,12 @@
- #else /* !SPARC_BI_ARCH */
- #undef LINK_SPEC
--#define LINK_SPEC "-m elf64_sparc -Y P,/usr/lib64 %{shared:-shared} \
-+#define LINK_SPEC "-m elf64_sparc -Y P,/tools/lib64 %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib64/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib64/ld-linux.so.2}} \
-         %{static:-static}}} \
- %{mlittle-endian:-EL} \
- %{!mno-relax:%{!r:-relax}} \
-diff -Naur gcc-4.1.2.orig/gcc/config/sparc/linux.h gcc-4.1.2/gcc/config/sparc/linux.h
---- gcc-4.1.2.orig/gcc/config/sparc/linux.h    2006-02-11 08:38:51.000000000 +0000
-+++ gcc-4.1.2/gcc/config/sparc/linux.h 2011-09-01 17:11:11.000000000 +0000
-@@ -126,13 +126,13 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
- #undef  LINK_SPEC
--#define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-+#define LINK_SPEC "-m elf32_sparc -Y P,/tools/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld-linux.so.2}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
-diff -Naur gcc-4.1.2.orig/gcc/config/xtensa/linux.h gcc-4.1.2/gcc/config/xtensa/linux.h
---- gcc-4.1.2.orig/gcc/config/xtensa/linux.h   2005-06-25 01:22:41.000000000 +0000
-+++ gcc-4.1.2/gcc/config/xtensa/linux.h        2011-09-01 17:11:11.000000000 +0000
-@@ -50,7 +50,7 @@
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker /tools/lib/ld.so.1}} \
-       %{static:-static}}}"
- #undef LOCAL_LABEL_PREFIX
diff --git a/src/patches/gcc-4.4.3-startfiles_fix-1.patch b/src/patches/gcc-4.4.3-startfiles_fix-1.patch
new file mode 100644 (file)
index 0000000..a2eac9e
--- /dev/null
@@ -0,0 +1,33 @@
+Submitted By: Jeremy Huntwork (jhuntwork AT linuxfromscratch DOT org)
+Date: 2008-12-05
+Initial Package Version: 4.3.2
+Upstream Status: See below.
+Origin: DIY Linux, See below.
+Description: Original patch follows:
+
+# DIY Linux Patch
+Date: 2008-09-09
+Author: Refer Origin.
+Origin: Partial revert of http://gcc.gnu.org/ml/gcc-cvs/2006-11/msg00416.html
+Maker: Greg Schafer <gschafer@zip.com.au>
+Upstream Status: Not applicable. Tweak only for Temptools phase GCC-Pass2.
+Description: Partially revert GCC driver to pre-GCC-4.3 state to allow startfiles to be
+  found in $prefix when GCC is configured for a non-standard prefix eg: /temptools. Full
+  background info in thread starting here: http://gcc.gnu.org/ml/gcc/2008-03/msg00095.html
+  and GCC bugzilla here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35532
+
+diff -Naur gcc-4.3.0-RC-20080222.orig/gcc/gcc.c gcc-4.3.0-RC-20080222/gcc/gcc.c
+--- gcc-4.3.0-RC-20080222.orig/gcc/gcc.c       2008-01-24 18:57:12.000000000 +0000
++++ gcc-4.3.0-RC-20080222/gcc/gcc.c    2008-03-02 06:07:36.000000000 +0000
+@@ -6370,6 +6370,11 @@
+                             machine_suffix, 
+                             standard_startfile_prefix, NULL),
+                     NULL, PREFIX_PRIORITY_LAST, 0, 1);
++        add_prefix (&startfile_prefixes,
++                    concat (standard_exec_prefix,
++                            machine_suffix,
++                            standard_startfile_prefix, NULL),
++                    NULL, PREFIX_PRIORITY_LAST, 0, 1);
+       }
+       /* Sysrooted prefixes are relocated because target_system_root is
diff --git a/src/patches/gcc-libstdc++-pic.patch b/src/patches/gcc-libstdc++-pic.patch
deleted file mode 100644 (file)
index a9d6e71..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
---- gcc-4.0.0/libstdc++-v3/src/Makefile.am
-+++ gcc-4.0.0/libstdc++-v3/src/Makefile.am
-@@ -214,6 +214,10 @@
-         $(OPT_LDFLAGS) $(SECTION_LDFLAGS) $(AM_CXXFLAGS) $(LDFLAGS) -o $@
-+install-exec-local:
-+      $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
-+      $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
-+
- # Added bits to build debug library.
- if GLIBCXX_BUILD_DEBUG
- all-local: build_debug
---- gcc-4.0.0/libstdc++-v3/src/Makefile.in
-+++ gcc-4.0.0/libstdc++-v3/src/Makefile.in
-@@ -625,7 +625,7 @@
- install-data-am: install-data-local
--install-exec-am: install-toolexeclibLTLIBRARIES
-+install-exec-am: install-toolexeclibLTLIBRARIES install-exec-local
- install-info: install-info-am
-@@ -664,7 +664,7 @@
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-info-am \
--      uninstall-toolexeclibLTLIBRARIES
-+      uninstall-toolexeclibLTLIBRARIES install-exec-local
- @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@libstdc++-symbol.ver:  ${glibcxx_srcdir}/$(SYMVER_MAP)
- @GLIBCXX_BUILD_VERSIONED_SHLIB_TRUE@  cp ${glibcxx_srcdir}/$(SYMVER_MAP) ./libstdc++-symbol.ver
-@@ -743,6 +743,11 @@
- install_debug:
-       (cd ${debugdir} && $(MAKE) \
-       toolexeclibdir=$(glibcxx_toolexeclibdir)/debug install)
-+
-+install-exec-local:
-+      $(AR) cru libstdc++_pic.a *.o $(top_builddir)/libsupc++/*.o
-+      $(INSTALL_DATA) libstdc++_pic.a $(DESTDIR)$(toolexeclibdir)
-+
- # Tell versions [3.59,3.63) of GNU make to not export all variables.
- # Otherwise a system limit (for SysV at least) may be exceeded.
- .NOEXPORT:
diff --git a/src/patches/gcc-sdk-libstdc++-includes.patch b/src/patches/gcc-sdk-libstdc++-includes.patch
deleted file mode 100644 (file)
index c7676ae..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urN gcc-4.0.0-100/libstdc++-v3/fragment.am gcc-4.0.0/libstdc++-v3/fragment.am
---- gcc-4.0.0-100/libstdc++-v3/fragment.am     2004-10-25 15:32:40.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/fragment.am 2005-04-28 21:48:43.000000000 -0500
-@@ -18,5 +18,5 @@
-       $(WARN_FLAGS) $(WERROR) -fdiagnostics-show-location=once
- # -I/-D flags to pass when compiling.
--AM_CPPFLAGS = $(GLIBCXX_INCLUDES)
-+AM_CPPFLAGS = $(GLIBCXX_INCLUDES) -I$(toplevel_srcdir)/include
-diff -urN gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am gcc-4.0.0/libstdc++-v3/libmath/Makefile.am
---- gcc-4.0.0-100/libstdc++-v3/libmath/Makefile.am     2003-08-27 16:29:42.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/libmath/Makefile.am 2005-04-28 21:48:43.000000000 -0500
-@@ -32,7 +32,7 @@
- libmath_la_SOURCES = stubs.c
--AM_CPPFLAGS = $(CANADIAN_INCLUDES)
-+AM_CPPFLAGS = $(CANADIAN_INCLUDES) -I$(toplevel_srcdir)/include
- # Only compiling "C" sources in this directory.
- LIBTOOL = @LIBTOOL@ --tag CC
diff --git a/src/patches/gcc-uclibc-conf.patch b/src/patches/gcc-uclibc-conf.patch
deleted file mode 100644 (file)
index 3be7d09..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
---- gcc-4.0.2/gcc/config/t-linux-uclibc
-+++ gcc-4.0.2/gcc/config/t-linux-uclibc
-@@ -0,0 +1,5 @@
-+# Remove glibc specific files added in t-linux
-+SHLIB_MAPFILES := $(filter-out $(srcdir)/config/libgcc-glibc.ver, $(SHLIB_MAPFILES))
-+
-+# Use unwind-dw2-fde instead of unwind-dw2-fde-glibc
-+LIB2ADDEH := $(subst unwind-dw2-fde-glibc.c,unwind-dw2-fde.c,$(LIB2ADDEH))
---- gcc-4.0.2/gcc/config.gcc
-+++ gcc-4.0.2/gcc/config.gcc
-@@ -1778,7 +1778,7 @@
-       ;;
- sh-*-elf* | sh[12346l]*-*-elf* | sh*-*-kaos* | \
- sh-*-symbianelf* | sh[12346l]*-*-symbianelf* | \
--  sh-*-linux* | sh[346lbe]*-*-linux* | \
-+  sh*-*-linux* | sh[346lbe]*-*-linux* | \
-   sh-*-netbsdelf* | shl*-*-netbsdelf* | sh5-*-netbsd* | sh5l*-*-netbsd* | \
-    sh64-*-netbsd* | sh64l*-*-netbsd*)
-       tmake_file="${tmake_file} sh/t-sh sh/t-elf"
-@@ -2234,10 +2234,16 @@
- *)
-       echo "*** Configuration ${target} not supported" 1>&2
-       exit 1
-       ;;
- esac
-+
-+# Rather than hook into each target, just do it after all the linux
-+# targets have been processed
-+case ${target} in
-+*-linux-uclibc*) tm_defines="${tm_defines} USE_UCLIBC" ; tmake_file="${tmake_file} t-linux-uclibc"
-+esac
- case ${target} in
- i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1)
-       tmake_file="${tmake_file} i386/t-gmm_malloc"
-       ;;
---- gcc-4.0.2/gcc/config/alpha/linux-elf.h
-+++ gcc-4.0.2/gcc/config/alpha/linux-elf.h
-@@ -27,7 +27,11 @@
- #define SUBTARGET_EXTRA_SPECS \
- { "elf_dynamic_linker", ELF_DYNAMIC_LINKER },
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
- #define ELF_DYNAMIC_LINKER    "/lib/ld-linux.so.2"
-+#endif
- #define LINK_SPEC "-m elf64alpha %{G*} %{relax:-relax}                \
-   %{O*:-O3} %{!O*:-O1}                                                \
---- gcc-4.0.2/gcc/config/arm/linux-elf.h
-+++ gcc-4.0.2/gcc/config/arm/linux-elf.h
-@@ -81,14 +81,19 @@
- #define ENDFILE_SPEC \
-   "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s"
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC "%{h*} %{version:-v} \
-    %{b} %{Wl,*:%*} \
-    %{static:-Bstatic} \
-    %{shared:-shared} \
-    %{symbolic:-Bsymbolic} \
-    %{rdynamic:-export-dynamic} \
--   %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2} \
-+   %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "} \
-    -X \
-    %{mbig-endian:-EB}" \
-    SUBTARGET_EXTRA_LINK_SPEC
---- gcc-4.0.2/gcc/config/cris/linux.h
-+++ gcc-4.0.2/gcc/config/cris/linux.h
-@@ -79,6 +79,25 @@
- #undef CRIS_DEFAULT_CPU_VERSION
- #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG
-+#ifdef USE_UCLIBC
-+
-+#undef CRIS_SUBTARGET_VERSION
-+#define CRIS_SUBTARGET_VERSION " - cris-axis-linux-uclibc"
-+
-+#undef CRIS_LINK_SUBTARGET_SPEC
-+#define CRIS_LINK_SUBTARGET_SPEC \
-+ "-mcrislinux\
-+  -rpath-link include/asm/../..%s\
-+  %{shared} %{static}\
-+  %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\
-+  %{!shared: \
-+    %{!static: \
-+      %{rdynamic:-export-dynamic} \
-+      %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}} \
-+  %{!r:%{O2|O3: --gc-sections}}"
-+
-+#else  /* USE_UCLIBC */
-+
- #undef CRIS_SUBTARGET_VERSION
- #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu"
-@@ -93,6 +112,8 @@
-   %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\
-   %{!r:%{O2|O3: --gc-sections}}"
-+#endif  /* USE_UCLIBC */
-+
- /* Node: Run-time Target */
---- gcc-4.0.2/gcc/config/i386/linux.h
-+++ gcc-4.0.2/gcc/config/i386/linux.h
-@@ -107,6 +107,11 @@
- #define LINK_EMULATION "elf_i386"
- #define DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#ifdef USE_UCLIBC
-+#undef DYNAMIC_LINKER
-+#define DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#endif
-+
- #undef  SUBTARGET_EXTRA_SPECS
- #define SUBTARGET_EXTRA_SPECS \
-   { "link_emulation", LINK_EMULATION },\
---- gcc-4.0.2/gcc/config/i386/linux64.h
-+++ gcc-4.0.2/gcc/config/i386/linux64.h
-@@ -54,14 +54,21 @@
-    When the -shared link option is used a final link is not being
-    done.  */
-+#ifdef USE_UCLIBC
-+#define ELF32_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
-+#else
-+#define ELF32_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#define ELF64_DYNAMIC_LINKER "/lib64/ld-linux-x86-64.so.2"
-+#endif
- #undef        LINK_SPEC
- #define LINK_SPEC "%{!m32:-m elf_x86_64} %{m32:-m elf_i386} \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{m32:%{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
--      %{!m32:%{!dynamic-linker:-dynamic-linker /lib64/ld-linux-x86-64.so.2}}} \
-+      %{m32:%{!dynamic-linker:-dynamic-linker " ELF32_DYNAMIC_LINKER "}} \
-+      %{!m32:%{!dynamic-linker:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}} \
-     %{static:-static}}"
- #define MULTILIB_DEFAULTS { "m64" }
---- gcc-4.0.2/gcc/config/ia64/linux.h
-+++ gcc-4.0.2/gcc/config/ia64/linux.h
-@@ -37,13 +37,18 @@
- /* Define this for shared library support because it isn't in the main
-    linux.h file.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux-ia64.so.2"
-+#endif
- #undef LINK_SPEC
- #define LINK_SPEC "\
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld-linux-ia64.so.2}} \
-+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-       %{static:-static}}"
---- gcc-4.0.2/gcc/config/m68k/linux.h
-+++ gcc-4.0.2/gcc/config/m68k/linux.h
-@@ -127,12 +127,17 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #undef        LINK_SPEC
- #define LINK_SPEC "-m m68kelf %{shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker*:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker*:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-     %{static}}"
- /* For compatibility with linux/a.out */
---- gcc-4.0.2/gcc/config/mips/linux.h
-+++ gcc-4.0.2/gcc/config/mips/linux.h
-@@ -108,14 +108,19 @@
- /* Borrowed from sparc/linux.h */
- #undef LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #define LINK_SPEC \
-  "%(endian_spec) \
-   %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}}"
- #undef SUBTARGET_ASM_SPEC
---- gcc-4.0.2/gcc/config/pa/pa-linux.h
-+++ gcc-4.0.2/gcc/config/pa/pa-linux.h
-@@ -82,13 +82,18 @@
- /* Define this for shared library support because it isn't in the main
-    linux.h file.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld.so.1"
-+#endif
- #undef LINK_SPEC
- #define LINK_SPEC "\
-   %{shared:-shared} \
-   %{!shared: \
-     %{!static: \
-       %{rdynamic:-export-dynamic} \
--      %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}} \
-+      %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-       %{static:-static}}"
- /* glibc's profiling functions don't need gcc to allocate counters.  */
---- gcc-4.0.2/gcc/config/rs6000/linux.h
-+++ gcc-4.0.2/gcc/config/rs6000/linux.h
-@@ -69,7 +69,11 @@
- #define LINK_START_DEFAULT_SPEC "%(link_start_linux)"
- #undef        LINK_OS_DEFAULT_SPEC
-+#ifdef USE_UCLIBC
-+#define LINK_OS_DEFAULT_SPEC "%(link_os_linux_uclibc)"
-+#else
- #define LINK_OS_DEFAULT_SPEC "%(link_os_linux)"
-+#endif
- #define LINK_GCC_C_SEQUENCE_SPEC \
-   "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
---- gcc-4.0.2/gcc/config/rs6000/sysv4.h
-+++ gcc-4.0.2/gcc/config/rs6000/sysv4.h
-@@ -949,6 +949,7 @@
-   mcall-linux  : %(link_os_linux)       ; \
-   mcall-gnu    : %(link_os_gnu)         ; \
-   mcall-netbsd : %(link_os_netbsd)      ; \
-+  mcall-linux-uclibc : %(link_os_linux_uclibc); \
-   mcall-openbsd: %(link_os_openbsd)     ; \
-                : %(link_os_default)     }"
-@@ -1127,6 +1128,10 @@
-   %{rdynamic:-export-dynamic} \
-   %{!dynamic-linker:-dynamic-linker /lib/ld.so.1}}}"
-+#define LINK_OS_LINUX_UCLIBC_SPEC "-m elf32ppclinux %{!shared: %{!static: \
-+  %{rdynamic:-export-dynamic} \
-+  %{!dynamic-linker:-dynamic-linker /lib/ld-uClibc.so.0}}}"
-+
- #if defined(HAVE_LD_EH_FRAME_HDR)
- # define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
- #endif
-@@ -1293,6 +1298,7 @@
-   { "link_os_sim",            LINK_OS_SIM_SPEC },                     \
-   { "link_os_freebsd",                LINK_OS_FREEBSD_SPEC },                 \
-   { "link_os_linux",          LINK_OS_LINUX_SPEC },                   \
-+  { "link_os_linux_uclibc",   LINK_OS_LINUX_UCLIBC_SPEC },            \
-   { "link_os_gnu",            LINK_OS_GNU_SPEC },                     \
-   { "link_os_netbsd",         LINK_OS_NETBSD_SPEC },                  \
-   { "link_os_openbsd",                LINK_OS_OPENBSD_SPEC },                 \
---- gcc-4.0.2/gcc/config/s390/linux.h
-+++ gcc-4.0.2/gcc/config/s390/linux.h
-@@ -77,6 +77,13 @@
- #define MULTILIB_DEFAULTS { "m31" }
- #endif
-+#ifdef USE_UCLIBC
-+#define ELF31_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64-uClibc.so.0"
-+#else
-+#define ELF31_DYNAMIC_LINKER "/lib/ld.so.1"
-+#define ELF64_DYNAMIC_LINKER "/lib/ld64.so.1"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC \
-   "%{m31:-m elf_s390}%{m64:-m elf64_s390} \
-@@ -86,8 +93,8 @@
-       %{!static: \
-       %{rdynamic:-export-dynamic} \
-       %{!dynamic-linker: \
--          %{m31:-dynamic-linker /lib/ld.so.1} \
--          %{m64:-dynamic-linker /lib/ld64.so.1}}}}"
-+          %{m31:-dynamic-linker " ELF31_DYNAMIC_LINKER "} \
-+          %{m64:-dynamic-linker " ELF64_DYNAMIC_LINKER "}}}}"
- #define TARGET_ASM_FILE_END file_end_indicate_exec_stack
---- gcc-4.0.2/gcc/config/sh/linux.h
-+++ gcc-4.0.2/gcc/config/sh/linux.h
-@@ -67,11 +67,16 @@
- #undef SUBTARGET_LINK_EMUL_SUFFIX
- #define SUBTARGET_LINK_EMUL_SUFFIX "_linux"
- #undef SUBTARGET_LINK_SPEC
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #define SUBTARGET_LINK_SPEC \
-   "%{shared:-shared} \
-    %{!static: \
-      %{rdynamic:-export-dynamic} \
--     %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+     %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-    %{static:-static}"
- #undef LIB_SPEC
---- gcc-4.0.2/gcc/config/sparc/linux.h
-+++ gcc-4.0.2/gcc/config/sparc/linux.h
-@@ -130,14 +130,19 @@
- /* If ELF is the default format, we should not use /lib/elf.  */
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER "/lib/ld-linux.so.2"
-+#endif
- #undef  LINK_SPEC
- #define LINK_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-   %{!mno-relax:%{!r:-relax}} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}}"
- /* The sun bundled assembler doesn't accept -Yd, (and neither does gas).
---- gcc-4.0.2/gcc/config/sparc/linux64.h
-+++ gcc-4.0.2/gcc/config/sparc/linux64.h
-@@ -167,12 +166,17 @@
-   { "link_arch_default", LINK_ARCH_DEFAULT_SPEC },      \
-   { "link_arch",       LINK_ARCH_SPEC },
-     
-+#ifdef USE_UCLIBC
-+#define ELF_DYNAMIC_LINKER    "/lib/ld-uClibc.so.0"
-+#else
-+#define ELF_DYNAMIC_LINKER  "/lib/ld-linux.so.2"
-+#endif
- #define LINK_ARCH32_SPEC "-m elf32_sparc -Y P,/usr/lib %{shared:-shared} \
-   %{!shared: \
-     %{!ibcs: \
-       %{!static: \
-         %{rdynamic:-export-dynamic} \
--        %{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}} \
-+        %{!dynamic-linker:-dynamic-linker " ELF_DYNAMIC_LINKER "}} \
-         %{static:-static}}} \
- "
---- gcc-4.0.2/libtool.m4
-+++ gcc-4.0.2/libtool.m4
-@@ -682,6 +682,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     [lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$']
---- gcc-4.0.2/ltconfig
-+++ gcc-4.0.2/ltconfig
-@@ -603,6 +603,7 @@
- # Transform linux* to *-*-linux-gnu*, to support old configure scripts.
- case $host_os in
-+linux-uclibc*) ;;
- linux-gnu*) ;;
- linux*) host=`echo $host | sed 's/^\(.*-.*-linux\)\(.*\)$/\1-gnu\2/'`
- esac
-@@ -1274,6 +1275,23 @@
-   dynamic_linker='GNU/Linux ld.so'
-   ;;
-+linux-uclibc*)
-+  version_type=linux
-+  need_lib_prefix=no
-+  need_version=no
-+  library_names_spec='${libname}${release}.so$versuffix ${libname}${release}.so$major $libname.so'
-+  soname_spec='${libname}${release}.so$major'
-+  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-+  shlibpath_var=LD_LIBRARY_PATH
-+  shlibpath_overrides_runpath=no
-+  # This implies no fast_install, which is unacceptable.
-+  # Some rework will be needed to allow for fast_install
-+  # before this can be enabled.
-+  hardcode_into_libs=yes
-+  # Assume using the uClibc dynamic linker.
-+  dynamic_linker="uClibc ld.so"
-+  ;;
-+
- netbsd*)
-   need_lib_prefix=no
-   need_version=no
---- gcc-4.0.2/libffi/configure
-+++ gcc-4.0.2/libffi/configure
-@@ -3457,6 +3457,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libgfortran/configure
-+++ gcc-4.0.2/libgfortran/configure
-@@ -3681,6 +3681,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libjava/configure
-+++ gcc-4.0.2/libjava/configure
-@@ -4351,6 +4351,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libmudflap/configure
-+++ gcc-4.0.2/libmudflap/configure
-@@ -5380,6 +5380,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/libobjc/configure
-+++ gcc-4.0.2/libobjc/configure
-@@ -3283,6 +3283,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/boehm-gc/configure
-+++ gcc-4.0.2/boehm-gc/configure
-@@ -4320,6 +4320,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
---- gcc-4.0.2/configure
-+++ gcc-4.0.2/configure
-@@ -1141,7 +1141,7 @@
-     ;;
- "")
-     case "${target}" in
--    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
-+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
-         # Enable libmudflap by default in GNU and friends.
-       ;;
-     *-*-freebsd*)
---- gcc-4.0.2/configure.in
-+++ gcc-4.0.2/configure.in
-@@ -350,7 +350,7 @@
-     ;;
- "")
-     case "${target}" in
--    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu)
-+    *-*-linux*-gnu | *-*-gnu* | *-*-k*bsd*-gnu | *-*-linux-uclibc*)
-         # Enable libmudflap by default in GNU and friends.
-       ;;
-     *-*-freebsd*)
---- gcc-4.0.2/contrib/regression/objs-gcc.sh
-+++ gcc-4.0.2/contrib/regression/objs-gcc.sh
-@@ -105,6 +105,10 @@
-  then
-   make all-gdb all-dejagnu all-ld || exit 1
-   make install-gdb install-dejagnu install-ld || exit 1
-+elif [ $H_REAL_TARGET = $H_REAL_HOST -a $H_REAL_TARGET = i686-pc-linux-uclibc ]
-+ then
-+  make all-gdb all-dejagnu all-ld || exit 1
-+  make install-gdb install-dejagnu install-ld || exit 1
- elif [ $H_REAL_TARGET = $H_REAL_HOST ] ; then
-   make bootstrap || exit 1
-   make install || exit 1
---- gcc-4.0.2/zlib/configure
-+++ gcc-4.0.2/zlib/configure
-@@ -3426,6 +3426,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
diff --git a/src/patches/gcc-uclibc-locale.patch b/src/patches/gcc-uclibc-locale.patch
deleted file mode 100644 (file)
index ac4cf97..0000000
+++ /dev/null
@@ -1,3237 +0,0 @@
-diff -urN gcc-4.0.0-100/libstdc++-v3/acinclude.m4 gcc-4.0.0/libstdc++-v3/acinclude.m4
---- gcc-4.0.0-100/libstdc++-v3/acinclude.m4    2005-04-30 13:06:53.000000000 -0500
-+++ gcc-4.0.0/libstdc++-v3/acinclude.m4        2005-04-28 20:19:01.000000000 -0500
-@@ -1104,7 +1104,7 @@
-   AC_MSG_CHECKING([for C locale to use])
-   GLIBCXX_ENABLE(clocale,auto,[@<:@=MODEL@:>@],
-     [use MODEL for target locale package],
--    [permit generic|gnu|ieee_1003.1-2001|yes|no|auto])
-+    [permit generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto])
-   
-   # If they didn't use this option switch, or if they specified --enable
-   # with no specific model, we'll have to look for one.  If they
-@@ -1120,6 +1120,9 @@
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      *-uclibc*)
-+        enable_clocale_flag=uclibc
-+        ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         AC_EGREP_CPP([_GLIBCXX_ok], [
-         #include <features.h>
-@@ -1263,6 +1266,40 @@
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      AC_MSG_RESULT(uclibc)
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      AC_CHECK_PROG(check_msgfmt, msgfmt, yes, no)
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+      AC_SUBST(glibcxx_MOFILES)
-+      AC_SUBST(glibcxx_POFILES)
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
-   # This is where the testsuite looks for locale catalogs, using the
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c++locale_internal.h       1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c++locale_internal.h   2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,59 @@
-+// Prototypes for GLIBC thread locale __-prefixed functions -*- C++ -*-
-+
-+// Copyright (C) 2002, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+// Written by Jakub Jelinek <jakub@redhat.com>
-+
-+#include <clocale>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning clean this up
-+#endif
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                  
-+extern "C" __typeof(iswctype_l) __iswctype_l;
-+extern "C" __typeof(nl_langinfo_l) __nl_langinfo_l;
-+extern "C" __typeof(strcoll_l) __strcoll_l;
-+extern "C" __typeof(strftime_l) __strftime_l;
-+extern "C" __typeof(strtod_l) __strtod_l;
-+extern "C" __typeof(strtof_l) __strtof_l;
-+extern "C" __typeof(strtold_l) __strtold_l;
-+extern "C" __typeof(strxfrm_l) __strxfrm_l;
-+extern "C" __typeof(towlower_l) __towlower_l;
-+extern "C" __typeof(towupper_l) __towupper_l;
-+extern "C" __typeof(wcscoll_l) __wcscoll_l;
-+extern "C" __typeof(wcsftime_l) __wcsftime_l;
-+extern "C" __typeof(wcsxfrm_l) __wcsxfrm_l;
-+extern "C" __typeof(wctype_l) __wctype_l;
-+extern "C" __typeof(newlocale) __newlocale;
-+extern "C" __typeof(freelocale) __freelocale;
-+extern "C" __typeof(duplocale) __duplocale;
-+extern "C" __typeof(uselocale) __uselocale;
-+
-+#endif // GLIBC 2.3 and later
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.cc    2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,160 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <cerrno>  // For errno
-+#include <locale>
-+#include <stdexcept>
-+#include <langinfo.h>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strtol_l(S, E, B, L)      strtol((S), (E), (B))
-+#define __strtoul_l(S, E, B, L)     strtoul((S), (E), (B))
-+#define __strtoll_l(S, E, B, L)     strtoll((S), (E), (B))
-+#define __strtoull_l(S, E, B, L)    strtoull((S), (E), (B))
-+#define __strtof_l(S, E, L)         strtof((S), (E))
-+#define __strtod_l(S, E, L)         strtod((S), (E))
-+#define __strtold_l(S, E, L)        strtold((S), (E))
-+#warning should dummy __newlocale check for C|POSIX ?
-+#define __newlocale(a, b, c)        NULL
-+#define __freelocale(a)             ((void)0)
-+#define __duplocale(a)              __c_locale()
-+#endif
-+
-+namespace std 
-+{
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, float& __v, ios_base::iostate& __err, 
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        float __f = __strtof_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __f;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, double& __v, ios_base::iostate& __err, 
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        double __d = __strtod_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __d;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  template<>
-+    void
-+    __convert_to_v(const char* __s, long double& __v, ios_base::iostate& __err,
-+                 const __c_locale& __cloc)
-+    {
-+      if (!(__err & ios_base::failbit))
-+      {
-+        char* __sanity;
-+        errno = 0;
-+        long double __ld = __strtold_l(__s, &__sanity, __cloc);
-+          if (__sanity != __s && errno != ERANGE)
-+          __v = __ld;
-+        else
-+          __err |= ios_base::failbit;
-+      }
-+    }
-+
-+  void
-+  locale::facet::_S_create_c_locale(__c_locale& __cloc, const char* __s, 
-+                                  __c_locale __old)
-+  {
-+    __cloc = __newlocale(1 << LC_ALL, __s, __old);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    if (!__cloc)
-+      {
-+      // This named locale is not supported by the underlying OS.
-+      __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
-+                            "name not valid"));
-+      }
-+#endif
-+  }
-+  
-+  void
-+  locale::facet::_S_destroy_c_locale(__c_locale& __cloc)
-+  {
-+    if (_S_get_c_locale() != __cloc)
-+      __freelocale(__cloc); 
-+  }
-+
-+  __c_locale
-+  locale::facet::_S_clone_c_locale(__c_locale& __cloc)
-+  { return __duplocale(__cloc); }
-+} // namespace std
-+
-+namespace __gnu_cxx
-+{
-+  const char* const category_names[6 + _GLIBCXX_NUM_CATEGORIES] =
-+    {
-+      "LC_CTYPE", 
-+      "LC_NUMERIC",
-+      "LC_TIME", 
-+      "LC_COLLATE", 
-+      "LC_MONETARY",
-+      "LC_MESSAGES", 
-+#if _GLIBCXX_NUM_CATEGORIES != 0
-+      "LC_PAPER", 
-+      "LC_NAME", 
-+      "LC_ADDRESS",
-+      "LC_TELEPHONE", 
-+      "LC_MEASUREMENT", 
-+      "LC_IDENTIFICATION" 
-+#endif
-+    };
-+}
-+
-+namespace std
-+{
-+  const char* const* const locale::_S_categories = __gnu_cxx::category_names;
-+}  // namespace std
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/c_locale.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/c_locale.h     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,115 @@
-+// Wrapper for underlying C-language localization -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.8  Standard locale categories.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifndef _C_LOCALE_H
-+#define _C_LOCALE_H 1
-+
-+#pragma GCC system_header
-+
-+#include <cstring>              // get std::strlen
-+#include <cstdio>               // get std::snprintf or std::sprintf
-+#include <clocale>
-+#include <langinfo.h>         // For codecvt
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC_HAS_LOCALE__
-+#include <iconv.h>            // For codecvt using iconv, iconv_t
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+#include <libintl.h>          // For messages
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning what is _GLIBCXX_C_LOCALE_GNU for
-+#endif
-+#define _GLIBCXX_C_LOCALE_GNU 1
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix categories
-+#endif
-+// #define _GLIBCXX_NUM_CATEGORIES 6
-+#define _GLIBCXX_NUM_CATEGORIES 0
-+ 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+namespace __gnu_cxx
-+{
-+  extern "C" __typeof(uselocale) __uselocale;
-+}
-+#endif
-+
-+namespace std
-+{
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+  typedef __locale_t          __c_locale;
-+#else
-+  typedef int*                        __c_locale;
-+#endif
-+
-+  // Convert numeric value of type _Tv to string and return length of
-+  // string.  If snprintf is available use it, otherwise fall back to
-+  // the unsafe sprintf which, in general, can be dangerous and should
-+  // be avoided.
-+  template<typename _Tv>
-+    int
-+    __convert_from_v(char* __out, const int __size, const char* __fmt,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                   _Tv __v, const __c_locale& __cloc, int __prec)
-+    {
-+      __c_locale __old = __gnu_cxx::__uselocale(__cloc);
-+#else
-+                   _Tv __v, const __c_locale&, int __prec)
-+    {
-+# ifdef __UCLIBC_HAS_LOCALE__
-+      char* __old = std::setlocale(LC_ALL, NULL);
-+      char* __sav = new char[std::strlen(__old) + 1];
-+      std::strcpy(__sav, __old);
-+      std::setlocale(LC_ALL, "C");
-+# endif
-+#endif
-+
-+      const int __ret = std::snprintf(__out, __size, __fmt, __prec, __v);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __gnu_cxx::__uselocale(__old);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      std::setlocale(LC_ALL, __sav);
-+      delete [] __sav;
-+#endif
-+      return __ret;
-+    }
-+}
-+
-+#endif
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/codecvt_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/codecvt_members.cc     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,306 @@
-+// std::codecvt implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.5 - Template class codecvt
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+namespace std
-+{
-+  // Specializations.
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_out(state_type& __state, const intern_type* __from, 
-+       const intern_type* __from_end, const intern_type*& __from_next,
-+       extern_type* __to, extern_type* __to_end,
-+       extern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // wcsnrtombs is *very* fast but stops if encounters NUL characters:
-+    // in case we fall back to wcrtomb and then continue, in a loop.
-+    // NB: wcsnrtombs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+       __from_next < __from_end && __to_next < __to_end
-+       && __ret == ok;)
-+      {
-+      const intern_type* __from_chunk_end = wmemchr(__from_next, L'\0',
-+                                                    __from_end - __from_next);
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __from_end;
-+
-+      __from = __from_next;
-+      const size_t __conv = wcsnrtombs(__to_next, &__from_next,
-+                                       __from_chunk_end - __from_next,
-+                                       __to_end - __to_next, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // wcrtomb.
-+          for (; __from < __from_next; ++__from)
-+            __to_next += wcrtomb(__to_next, *__from, &__tmp_state);
-+          __state = __tmp_state;
-+          __ret = error;
-+        }
-+      else if (__from_next && __from_next < __from_chunk_end)
-+        {
-+          __to_next += __conv;
-+          __ret = partial;
-+        }
-+      else
-+        {
-+          __from_next = __from_chunk_end;
-+          __to_next += __conv;
-+        }
-+
-+      if (__from_next < __from_end && __ret == ok)
-+        {
-+          extern_type __buf[MB_LEN_MAX];
-+          __tmp_state = __state;
-+          const size_t __conv = wcrtomb(__buf, *__from_next, &__tmp_state);
-+          if (__conv > static_cast<size_t>(__to_end - __to_next))
-+            __ret = partial;
-+          else
-+            {
-+              memcpy(__to_next, __buf, __conv);
-+              __state = __tmp_state;
-+              __to_next += __conv;
-+              ++__from_next;
-+            }
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+  
-+  codecvt_base::result
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_in(state_type& __state, const extern_type* __from, 
-+      const extern_type* __from_end, const extern_type*& __from_next,
-+      intern_type* __to, intern_type* __to_end,
-+      intern_type*& __to_next) const
-+  {
-+    result __ret = ok;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we store a L'\0' and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+    for (__from_next = __from, __to_next = __to;
-+       __from_next < __from_end && __to_next < __to_end
-+       && __ret == ok;)
-+      {
-+      const extern_type* __from_chunk_end;
-+      __from_chunk_end = static_cast<const extern_type*>(memchr(__from_next, '\0',
-+                                                                __from_end
-+                                                                - __from_next));
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __from_end;
-+
-+      __from = __from_next;
-+      size_t __conv = mbsnrtowcs(__to_next, &__from_next,
-+                                 __from_chunk_end - __from_next,
-+                                 __to_end - __to_next, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // mbrtowc.
-+          for (;; ++__to_next, __from += __conv)
-+            {
-+              __conv = mbrtowc(__to_next, __from, __from_end - __from,
-+                               &__tmp_state);
-+              if (__conv == static_cast<size_t>(-1)
-+                  || __conv == static_cast<size_t>(-2))
-+                break;
-+            }
-+          __from_next = __from;
-+          __state = __tmp_state;          
-+          __ret = error;
-+        }
-+      else if (__from_next && __from_next < __from_chunk_end)
-+        {
-+          // It is unclear what to return in this case (see DR 382). 
-+          __to_next += __conv;
-+          __ret = partial;
-+        }
-+      else
-+        {
-+          __from_next = __from_chunk_end;
-+          __to_next += __conv;
-+        }
-+
-+      if (__from_next < __from_end && __ret == ok)
-+        {
-+          if (__to_next < __to_end)
-+            {
-+              // XXX Probably wrong for stateful encodings
-+              __tmp_state = __state;          
-+              ++__from_next;
-+              *__to_next++ = L'\0';
-+            }
-+          else
-+            __ret = partial;
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_encoding() const throw()
-+  {
-+    // XXX This implementation assumes that the encoding is
-+    // stateless and is either single-byte or variable-width.
-+    int __ret = 0;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    if (MB_CUR_MAX == 1)
-+      __ret = 1;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }  
-+
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_max_length() const throw()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+    // XXX Probably wrong for stateful encodings.
-+    int __ret = MB_CUR_MAX;
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __ret;
-+  }
-+  
-+  int 
-+  codecvt<wchar_t, char, mbstate_t>::
-+  do_length(state_type& __state, const extern_type* __from,
-+          const extern_type* __end, size_t __max) const
-+  {
-+    int __ret = 0;
-+    state_type __tmp_state(__state);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_codecvt);
-+#endif
-+
-+    // mbsnrtowcs is *very* fast but stops if encounters NUL characters:
-+    // in case we advance past it and then continue, in a loop.
-+    // NB: mbsnrtowcs is a GNU extension
-+  
-+    // A dummy internal buffer is needed in order for mbsnrtocws to consider
-+    // its fourth parameter (it wouldn't with NULL as first parameter).
-+    wchar_t* __to = static_cast<wchar_t*>(__builtin_alloca(sizeof(wchar_t) 
-+                                                         * __max));
-+    while (__from < __end && __max)
-+      {
-+      const extern_type* __from_chunk_end;
-+      __from_chunk_end = static_cast<const extern_type*>(memchr(__from, '\0',
-+                                                                __end
-+                                                                - __from));
-+      if (!__from_chunk_end)
-+        __from_chunk_end = __end;
-+
-+      const extern_type* __tmp_from = __from;
-+      size_t __conv = mbsnrtowcs(__to, &__from,
-+                                 __from_chunk_end - __from,
-+                                 __max, &__state);
-+      if (__conv == static_cast<size_t>(-1))
-+        {
-+          // In case of error, in order to stop at the exact place we
-+          // have to start again from the beginning with a series of
-+          // mbrtowc.
-+          for (__from = __tmp_from;; __from += __conv)
-+            {
-+              __conv = mbrtowc(NULL, __from, __end - __from,
-+                               &__tmp_state);
-+              if (__conv == static_cast<size_t>(-1)
-+                  || __conv == static_cast<size_t>(-2))
-+                break;
-+            }
-+          __state = __tmp_state;
-+          __ret += __from - __tmp_from;
-+          break;
-+        }
-+      if (!__from)
-+        __from = __from_chunk_end;
-+      
-+      __ret += __from - __tmp_from;
-+      __max -= __conv;
-+
-+      if (__from < __end && __max)
-+        {
-+          // XXX Probably wrong for stateful encodings
-+          __tmp_state = __state;
-+          ++__from;
-+          ++__ret;
-+          --__max;
-+        }
-+      }
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+
-+    return __ret; 
-+  }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/collate_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/collate_members.cc     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,80 @@
-+// std::collate implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.4.1.2  collate virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __strcoll_l(S1, S2, L)      strcoll((S1), (S2))
-+#define __strxfrm_l(S1, S2, N, L)   strxfrm((S1), (S2), (N))
-+#define __wcscoll_l(S1, S2, L)      wcscoll((S1), (S2))
-+#define __wcsxfrm_l(S1, S2, N, L)   wcsxfrm((S1), (S2), (N))
-+#endif
-+
-+namespace std
-+{
-+  // These are basically extensions to char_traits, and perhaps should
-+  // be put there instead of here.
-+  template<>
-+    int 
-+    collate<char>::_M_compare(const char* __one, const char* __two) const
-+    { 
-+      int __cmp = __strcoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+  
-+  template<>
-+    size_t
-+    collate<char>::_M_transform(char* __to, const char* __from, 
-+                              size_t __n) const 
-+    { return __strxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    int 
-+    collate<wchar_t>::_M_compare(const wchar_t* __one, 
-+                               const wchar_t* __two) const
-+    {
-+      int __cmp = __wcscoll_l(__one, __two, _M_c_locale_collate);
-+      return (__cmp >> (8 * sizeof (int) - 2)) | (__cmp != 0);
-+    }
-+  
-+  template<>
-+    size_t
-+    collate<wchar_t>::_M_transform(wchar_t* __to, const wchar_t* __from,
-+                                 size_t __n) const
-+    { return __wcsxfrm_l(__to, __from, __n, _M_c_locale_collate); }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/ctype_members.cc   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/ctype_members.cc       2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,300 @@
-+// std::ctype implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.1.1.2  ctype virtual functions.
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __wctype_l(S, L)           wctype((S))
-+#define __towupper_l(C, L)         towupper((C))
-+#define __towlower_l(C, L)         towlower((C))
-+#define __iswctype_l(C, M, L)      iswctype((C), (M))
-+#endif
-+
-+namespace std
-+{
-+  // NB: The other ctype<char> specializations are in src/locale.cc and
-+  // various /config/os/* files.
-+  template<>
-+    ctype_byname<char>::ctype_byname(const char* __s, size_t __refs)
-+    : ctype<char>(0, false, __refs) 
-+    {                 
-+      if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+      {
-+        this->_S_destroy_c_locale(this->_M_c_locale_ctype);
-+        this->_S_create_c_locale(this->_M_c_locale_ctype, __s); 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        this->_M_toupper = this->_M_c_locale_ctype->__ctype_toupper;
-+        this->_M_tolower = this->_M_c_locale_ctype->__ctype_tolower;
-+        this->_M_table = this->_M_c_locale_ctype->__ctype_b;
-+#endif
-+      }
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T  
-+  ctype<wchar_t>::__wmask_type
-+  ctype<wchar_t>::_M_convert_to_wmask(const mask __m) const
-+  {
-+    __wmask_type __ret;
-+    switch (__m)
-+      {
-+      case space:
-+      __ret = __wctype_l("space", _M_c_locale_ctype);
-+      break;
-+      case print:
-+      __ret = __wctype_l("print", _M_c_locale_ctype);
-+      break;
-+      case cntrl:
-+      __ret = __wctype_l("cntrl", _M_c_locale_ctype);
-+      break;
-+      case upper:
-+      __ret = __wctype_l("upper", _M_c_locale_ctype);
-+      break;
-+      case lower:
-+      __ret = __wctype_l("lower", _M_c_locale_ctype);
-+      break;
-+      case alpha:
-+      __ret = __wctype_l("alpha", _M_c_locale_ctype);
-+      break;
-+      case digit:
-+      __ret = __wctype_l("digit", _M_c_locale_ctype);
-+      break;
-+      case punct:
-+      __ret = __wctype_l("punct", _M_c_locale_ctype);
-+      break;
-+      case xdigit:
-+      __ret = __wctype_l("xdigit", _M_c_locale_ctype);
-+      break;
-+      case alnum:
-+      __ret = __wctype_l("alnum", _M_c_locale_ctype);
-+      break;
-+      case graph:
-+      __ret = __wctype_l("graph", _M_c_locale_ctype);
-+      break;
-+      default:
-+      __ret = __wmask_type();
-+      }
-+    return __ret;
-+  }
-+  
-+  wchar_t
-+  ctype<wchar_t>::do_toupper(wchar_t __c) const
-+  { return __towupper_l(__c, _M_c_locale_ctype); }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::do_toupper(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towupper_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+  
-+  wchar_t
-+  ctype<wchar_t>::do_tolower(wchar_t __c) const
-+  { return __towlower_l(__c, _M_c_locale_ctype); }
-+  
-+  const wchar_t*
-+  ctype<wchar_t>::do_tolower(wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi)
-+      {
-+        *__lo = __towlower_l(*__lo, _M_c_locale_ctype);
-+        ++__lo;
-+      }
-+    return __hi;
-+  }
-+
-+  bool
-+  ctype<wchar_t>::
-+  do_is(mask __m, wchar_t __c) const
-+  { 
-+    // Highest bitmask in ctype_base == 10, but extra in "C"
-+    // library for blank.
-+    bool __ret = false;
-+    const size_t __bitmasksize = 11; 
-+    for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+      if (__m & _M_bit[__bitcur]
-+        && __iswctype_l(__c, _M_wmask[__bitcur], _M_c_locale_ctype))
-+      {
-+        __ret = true;
-+        break;
-+      }
-+    return __ret;    
-+  }
-+  
-+  const wchar_t* 
-+  ctype<wchar_t>::
-+  do_is(const wchar_t* __lo, const wchar_t* __hi, mask* __vec) const
-+  {
-+    for (; __lo < __hi; ++__vec, ++__lo)
-+      {
-+      // Highest bitmask in ctype_base == 10, but extra in "C"
-+      // library for blank.
-+      const size_t __bitmasksize = 11; 
-+      mask __m = 0;
-+      for (size_t __bitcur = 0; __bitcur <= __bitmasksize; ++__bitcur)
-+        if (__iswctype_l(*__lo, _M_wmask[__bitcur], _M_c_locale_ctype))
-+          __m |= _M_bit[__bitcur];
-+      *__vec = __m;
-+      }
-+    return __hi;
-+  }
-+  
-+  const wchar_t* 
-+  ctype<wchar_t>::
-+  do_scan_is(mask __m, const wchar_t* __lo, const wchar_t* __hi) const
-+  {
-+    while (__lo < __hi && !this->do_is(__m, *__lo))
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_scan_not(mask __m, const char_type* __lo, const char_type* __hi) const
-+  {
-+    while (__lo < __hi && this->do_is(__m, *__lo) != 0)
-+      ++__lo;
-+    return __lo;
-+  }
-+
-+  wchar_t
-+  ctype<wchar_t>::
-+  do_widen(char __c) const
-+  { return _M_widen[static_cast<unsigned char>(__c)]; }
-+
-+  const char* 
-+  ctype<wchar_t>::
-+  do_widen(const char* __lo, const char* __hi, wchar_t* __dest) const
-+  {
-+    while (__lo < __hi)
-+      {
-+      *__dest = _M_widen[static_cast<unsigned char>(*__lo)];
-+      ++__lo;
-+      ++__dest;
-+      }
-+    return __hi;
-+  }
-+
-+  char
-+  ctype<wchar_t>::
-+  do_narrow(wchar_t __wc, char __dfault) const
-+  {
-+    if (__wc >= 0 && __wc < 128 && _M_narrow_ok)
-+      return _M_narrow[__wc];
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    const int __c = wctob(__wc);
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return (__c == EOF ? __dfault : static_cast<char>(__c)); 
-+  }
-+
-+  const wchar_t*
-+  ctype<wchar_t>::
-+  do_narrow(const wchar_t* __lo, const wchar_t* __hi, char __dfault, 
-+          char* __dest) const
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    if (_M_narrow_ok)
-+      while (__lo < __hi)
-+      {
-+        if (*__lo >= 0 && *__lo < 128)
-+          *__dest = _M_narrow[*__lo];
-+        else
-+          {
-+            const int __c = wctob(*__lo);
-+            *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+          }
-+        ++__lo;
-+        ++__dest;
-+      }
-+    else
-+      while (__lo < __hi)
-+      {
-+        const int __c = wctob(*__lo);
-+        *__dest = (__c == EOF ? __dfault : static_cast<char>(__c));
-+        ++__lo;
-+        ++__dest;
-+      }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+    return __hi;
-+  }
-+
-+  void
-+  ctype<wchar_t>::_M_initialize_ctype()
-+  {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __c_locale __old = __uselocale(_M_c_locale_ctype);
-+#endif
-+    wint_t __i;
-+    for (__i = 0; __i < 128; ++__i)
-+      {
-+      const int __c = wctob(__i);
-+      if (__c == EOF)
-+        break;
-+      else
-+        _M_narrow[__i] = static_cast<char>(__c);
-+      }
-+    if (__i == 128)
-+      _M_narrow_ok = true;
-+    else
-+      _M_narrow_ok = false;
-+    for (size_t __j = 0;
-+       __j < sizeof(_M_widen) / sizeof(wint_t); ++__j)
-+      _M_widen[__j] = btowc(__j);
-+
-+    for (size_t __k = 0; __k <= 11; ++__k)
-+      { 
-+      _M_bit[__k] = static_cast<mask>(_ISbit(__k));
-+      _M_wmask[__k] = _M_convert_to_wmask(_M_bit[__k]);
-+      }
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+    __uselocale(__old);
-+#endif
-+  }
-+#endif //  _GLIBCXX_USE_WCHAR_T
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.cc    2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,100 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix gettext stuff
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__dcgettext(const char *domainname,
-+                           const char *msgid, int category);
-+#undef gettext
-+#define gettext(msgid) __dcgettext(NULL, msgid, LC_MESSAGES)
-+#else
-+#undef gettext
-+#define gettext(msgid) (msgid)
-+#endif
-+
-+namespace std
-+{
-+  // Specializations.
-+  template<>
-+    string
-+    messages<char>::do_get(catalog, int, int, const string& __dfault) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      const char* __msg = const_cast<const char*>(gettext(__dfault.c_str()));
-+      __uselocale(__old);
-+      return string(__msg);
-+#elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      const char* __msg = gettext(__dfault.c_str());
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return string(__msg);
-+#else
-+      const char* __msg = gettext(__dfault.c_str());
-+      return string(__msg);
-+#endif
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    wstring
-+    messages<wchar_t>::do_get(catalog, int, int, const wstring& __dfault) const
-+    {
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+      __c_locale __old = __uselocale(_M_c_locale_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      __uselocale(__old);
-+      return _M_convert_from_char(__msg);
-+# elif defined __UCLIBC_HAS_LOCALE__
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_messages);
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+      return _M_convert_from_char(__msg);
-+# else
-+      char* __msg = gettext(_M_convert_to_char(__dfault));
-+      return _M_convert_from_char(__msg);
-+# endif
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/messages_members.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/messages_members.h     2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,118 @@
-+// std::messages implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.7.1.2  messages functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix prototypes for *textdomain funcs
-+#endif
-+#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
-+extern "C" char *__textdomain(const char *domainname);
-+extern "C" char *__bindtextdomain(const char *domainname,
-+                                const char *dirname);
-+#else
-+#undef __textdomain
-+#undef __bindtextdomain
-+#define __textdomain(D)           ((void)0)
-+#define __bindtextdomain(D,P)     ((void)0)
-+#endif
-+
-+  // Non-virtual member functions.
-+  template<typename _CharT>
-+     messages<_CharT>::messages(size_t __refs)
-+     : facet(__refs), _M_c_locale_messages(_S_get_c_locale()), 
-+     _M_name_messages(_S_get_c_name())
-+     { }
-+
-+  template<typename _CharT>
-+     messages<_CharT>::messages(__c_locale __cloc, const char* __s, 
-+                              size_t __refs) 
-+     : facet(__refs), _M_c_locale_messages(_S_clone_c_locale(__cloc)),
-+     _M_name_messages(__s)
-+     {
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       _M_name_messages = __tmp;
-+     }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog 
-+    messages<_CharT>::open(const basic_string<char>& __s, const locale& __loc, 
-+                         const char* __dir) const
-+    { 
-+      __bindtextdomain(__s.c_str(), __dir);
-+      return this->do_open(__s, __loc); 
-+    }
-+
-+  // Virtual member functions.
-+  template<typename _CharT>
-+    messages<_CharT>::~messages()
-+    { 
-+      if (_M_name_messages != _S_get_c_name())
-+      delete [] _M_name_messages;
-+      _S_destroy_c_locale(_M_c_locale_messages); 
-+    }
-+
-+  template<typename _CharT>
-+    typename messages<_CharT>::catalog 
-+    messages<_CharT>::do_open(const basic_string<char>& __s, 
-+                            const locale&) const
-+    { 
-+      // No error checking is done, assume the catalog exists and can
-+      // be used.
-+      __textdomain(__s.c_str());
-+      return 0;
-+    }
-+
-+  template<typename _CharT>
-+    void    
-+    messages<_CharT>::do_close(catalog) const 
-+    { }
-+
-+   // messages_byname
-+   template<typename _CharT>
-+     messages_byname<_CharT>::messages_byname(const char* __s, size_t __refs)
-+     : messages<_CharT>(__refs) 
-+     { 
-+       if (this->_M_name_messages != locale::facet::_S_get_c_name())
-+       delete [] this->_M_name_messages;
-+       char* __tmp = new char[std::strlen(__s) + 1];
-+       std::strcpy(__tmp, __s);
-+       this->_M_name_messages = __tmp;
-+
-+       if (std::strcmp(__s, "C") != 0 && std::strcmp(__s, "POSIX") != 0)
-+       {
-+         this->_S_destroy_c_locale(this->_M_c_locale_messages);
-+         this->_S_create_c_locale(this->_M_c_locale_messages, __s); 
-+       }
-+     }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/monetary_members.cc        1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/monetary_members.cc    2005-04-28 01:23:02.000000000 -0500
-@@ -0,0 +1,692 @@
-+// std::moneypunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.6.3.2  moneypunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning optimize this for uclibc
-+#warning tailor for stub locale support
-+#endif
-+
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  // Construct and return valid pattern consisting of some combination of:
-+  // space none symbol sign value
-+  money_base::pattern
-+  money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
-+  { 
-+    pattern __ret;
-+
-+    // This insanely complicated routine attempts to construct a valid
-+    // pattern for use with monyepunct. A couple of invariants:
-+
-+    // if (__precedes) symbol -> value
-+    // else value -> symbol
-+    
-+    // if (__space) space
-+    // else none
-+
-+    // none == never first
-+    // space never first or last
-+
-+    // Any elegant implementations of this are welcome.
-+    switch (__posn)
-+      {
-+      case 0:
-+      case 1:
-+      // 1 The sign precedes the value and symbol.
-+      __ret.field[0] = sign;
-+      if (__space)
-+        {
-+          // Pattern starts with sign.
-+          if (__precedes)
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[1] = value;
-+              __ret.field[3] = symbol;
-+            }
-+          __ret.field[2] = space;
-+        }
-+      else
-+        {
-+          // Pattern starts with sign and ends with none.
-+          if (__precedes)
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[2] = value;
-+            }
-+          else
-+            {
-+              __ret.field[1] = value;
-+              __ret.field[2] = symbol;
-+            }
-+          __ret.field[3] = none;
-+        }
-+      break;
-+      case 2:
-+      // 2 The sign follows the value and symbol.
-+      if (__space)
-+        {
-+          // Pattern either ends with sign.
-+          if (__precedes)
-+            {
-+              __ret.field[0] = symbol;
-+              __ret.field[2] = value;
-+            }
-+          else
-+            {
-+              __ret.field[0] = value;
-+              __ret.field[2] = symbol;
-+            }
-+          __ret.field[1] = space;
-+          __ret.field[3] = sign;
-+        }
-+      else
-+        {
-+          // Pattern ends with sign then none.
-+          if (__precedes)
-+            {
-+              __ret.field[0] = symbol;
-+              __ret.field[1] = value;
-+            }
-+          else
-+            {
-+              __ret.field[0] = value;
-+              __ret.field[1] = symbol;
-+            }
-+          __ret.field[2] = sign;
-+          __ret.field[3] = none;
-+        }
-+      break;
-+      case 3:
-+      // 3 The sign immediately precedes the symbol.
-+      if (__precedes)
-+        {
-+          __ret.field[0] = sign;
-+          __ret.field[1] = symbol;        
-+          if (__space)
-+            {
-+              __ret.field[2] = space;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[2] = value;         
-+              __ret.field[3] = none;
-+            }
-+        }
-+      else
-+        {
-+          __ret.field[0] = value;
-+          if (__space)
-+            {
-+              __ret.field[1] = space;
-+              __ret.field[2] = sign;
-+              __ret.field[3] = symbol;
-+            }
-+          else
-+            {
-+              __ret.field[1] = sign;
-+              __ret.field[2] = symbol;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      break;
-+      case 4:
-+      // 4 The sign immediately follows the symbol.
-+      if (__precedes)
-+        {
-+          __ret.field[0] = symbol;
-+          __ret.field[1] = sign;
-+          if (__space)
-+            {
-+              __ret.field[2] = space;
-+              __ret.field[3] = value;
-+            }
-+          else
-+            {
-+              __ret.field[2] = value;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      else
-+        {
-+          __ret.field[0] = value;
-+          if (__space)
-+            {
-+              __ret.field[1] = space;
-+              __ret.field[2] = symbol;
-+              __ret.field[3] = sign;
-+            }
-+          else
-+            {
-+              __ret.field[1] = symbol;
-+              __ret.field[2] = sign;
-+              __ret.field[3] = none;
-+            }
-+        }
-+      break;
-+      default:
-+      __ret = pattern();
-+      }
-+    return __ret;
-+  }
-+
-+  template<> 
-+    void
-+    moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc, 
-+                                                   const char*)
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<char, true>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = "";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = "";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = "";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
-+                                                      __cloc));
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+        _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+        char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+        if (!__nposn)
-+          _M_data->_M_negative_sign = "()";
-+        else
-+          _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN, 
-+                                                      __cloc);
-+        _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+        // _Intl == true
-+        _M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+        _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
-+                                                    __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+      }
-+    }
-+
-+  template<> 
-+    void
-+    moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc, 
-+                                                    const char*)
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<char, false>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = "";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = "";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = "";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP, 
-+                                                      __cloc));
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+        _M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        _M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
-+
-+        char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+        if (!__nposn)
-+          _M_data->_M_negative_sign = "()";
-+        else
-+          _M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
-+                                                      __cloc);
-+        _M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
-+
-+        // _Intl == false
-+        _M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+        _M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+      }
-+    }
-+
-+  template<> 
-+    moneypunct<char, true>::~moneypunct()
-+    { delete _M_data; }
-+
-+  template<> 
-+    moneypunct<char, false>::~moneypunct()
-+    { delete _M_data; }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<> 
-+    void
-+    moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc, 
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                      const char*)
-+#else
-+                                                      const char* __name)
-+#endif
-+    {
-+      if (!_M_data)
-+      _M_data = new __moneypunct_cache<wchar_t, true>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = L"";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = L"";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = L"";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] =
-+            static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __c_locale __old = __uselocale(__cloc);
-+#else
-+        // Switch to named locale so that mbsrtowcs will work.
-+        char* __old = strdup(setlocale(LC_ALL, NULL));
-+        setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+        union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+        const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+        const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
-+
-+        wchar_t* __wcs_ps = 0;
-+        wchar_t* __wcs_ns = 0;
-+        const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
-+        try
-+          {
-+            mbstate_t __state;
-+            size_t __len = strlen(__cpossign);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ps = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+                _M_data->_M_positive_sign = __wcs_ps;
-+              }
-+            else
-+              _M_data->_M_positive_sign = L"";
-+            _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+            
-+            __len = strlen(__cnegsign);
-+            if (!__nposn)
-+              _M_data->_M_negative_sign = L"()";
-+            else if (__len)
-+              { 
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ns = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+                _M_data->_M_negative_sign = __wcs_ns;
-+              }
-+            else
-+              _M_data->_M_negative_sign = L"";
-+            _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+            
-+            // _Intl == true.
-+            __len = strlen(__ccurr);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                wchar_t* __wcs = new wchar_t[__len];
-+                mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+                _M_data->_M_curr_symbol = __wcs;
-+              }
-+            else
-+              _M_data->_M_curr_symbol = L"";
-+            _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+          }
-+        catch (...)
-+          {
-+            delete _M_data;
-+            _M_data = 0;
-+            delete __wcs_ps;
-+            delete __wcs_ns;        
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+            __uselocale(__old);
-+#else
-+            setlocale(LC_ALL, __old);
-+            free(__old);
-+#endif
-+            __throw_exception_again;
-+          } 
-+        
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS, 
-+                                                    __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __uselocale(__old);
-+#else
-+        setlocale(LC_ALL, __old);
-+        free(__old);
-+#endif
-+      }
-+    }
-+
-+  template<> 
-+  void
-+  moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+                                                     const char*)
-+#else
-+                                                       const char* __name)
-+#endif
-+  {
-+    if (!_M_data)
-+      _M_data = new __moneypunct_cache<wchar_t, false>;
-+
-+    if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+        _M_data->_M_grouping = "";
-+          _M_data->_M_grouping_size = 0;
-+        _M_data->_M_curr_symbol = L"";
-+        _M_data->_M_curr_symbol_size = 0;
-+        _M_data->_M_positive_sign = L"";
-+        _M_data->_M_positive_sign_size = 0;
-+        _M_data->_M_negative_sign = L"";
-+        _M_data->_M_negative_sign_size = 0;
-+        _M_data->_M_frac_digits = 0;
-+        _M_data->_M_pos_format = money_base::_S_default_pattern;
-+        _M_data->_M_neg_format = money_base::_S_default_pattern;
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < money_base::_S_end; ++__i)
-+          _M_data->_M_atoms[__i] =
-+            static_cast<wchar_t>(money_base::_S_atoms[__i]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __c_locale __old = __uselocale(__cloc);
-+#else
-+        // Switch to named locale so that mbsrtowcs will work.
-+        char* __old = strdup(setlocale(LC_ALL, NULL));
-+        setlocale(LC_ALL, __name);
-+#endif
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this... should be monetary
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+          union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+        _M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
-+          _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+
-+        const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
-+        const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
-+        const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
-+
-+        wchar_t* __wcs_ps = 0;
-+        wchar_t* __wcs_ns = 0;
-+        const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
-+        try
-+            {
-+              mbstate_t __state;
-+              size_t __len;
-+              __len = strlen(__cpossign);
-+              if (__len)
-+                {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ps = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
-+                _M_data->_M_positive_sign = __wcs_ps;
-+              }
-+            else
-+              _M_data->_M_positive_sign = L"";
-+              _M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
-+            
-+            __len = strlen(__cnegsign);
-+            if (!__nposn)
-+              _M_data->_M_negative_sign = L"()";
-+            else if (__len)
-+              { 
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                __wcs_ns = new wchar_t[__len];
-+                mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
-+                _M_data->_M_negative_sign = __wcs_ns;
-+              }
-+            else
-+              _M_data->_M_negative_sign = L"";
-+              _M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
-+
-+            // _Intl == true.
-+            __len = strlen(__ccurr);
-+            if (__len)
-+              {
-+                ++__len;
-+                memset(&__state, 0, sizeof(mbstate_t));
-+                wchar_t* __wcs = new wchar_t[__len];
-+                mbsrtowcs(__wcs, &__ccurr, __len, &__state);
-+                _M_data->_M_curr_symbol = __wcs;
-+              }
-+            else
-+              _M_data->_M_curr_symbol = L"";
-+              _M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
-+          }
-+          catch (...)
-+          {
-+            delete _M_data;
-+              _M_data = 0;
-+            delete __wcs_ps;
-+            delete __wcs_ns;        
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+            __uselocale(__old);
-+#else
-+            setlocale(LC_ALL, __old);
-+            free(__old);
-+#endif
-+              __throw_exception_again;
-+          }
-+
-+        _M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
-+        char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
-+        char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
-+        char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
-+        _M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace, 
-+                                                      __pposn);
-+        char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
-+        char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
-+        _M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace, 
-+                                                      __nposn);
-+
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+        __uselocale(__old);
-+#else
-+        setlocale(LC_ALL, __old);
-+        free(__old);
-+#endif
-+      }
-+    }
-+
-+  template<> 
-+    moneypunct<wchar_t, true>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+      delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+      delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+      delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+
-+  template<> 
-+    moneypunct<wchar_t, false>::~moneypunct()
-+    {
-+      if (_M_data->_M_positive_sign_size)
-+      delete [] _M_data->_M_positive_sign;
-+      if (_M_data->_M_negative_sign_size
-+          && wcscmp(_M_data->_M_negative_sign, L"()") != 0)
-+      delete [] _M_data->_M_negative_sign;
-+      if (_M_data->_M_curr_symbol_size)
-+      delete [] _M_data->_M_curr_symbol;
-+      delete _M_data;
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/numeric_members.cc 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/numeric_members.cc     2005-04-28 01:20:20.000000000 -0500
-@@ -0,0 +1,173 @@
-+// std::numpunct implementation details, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.3.1.2  numpunct virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#define _LIBC
-+#include <locale>
-+#undef _LIBC
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<> 
-+    void
-+    numpunct<char>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __numpunct_cache<char>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_use_grouping = false;
-+
-+        _M_data->_M_decimal_point = '.';
-+        _M_data->_M_thousands_sep = ',';
-+
-+        for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+          _M_data->_M_atoms_out[__i] = __num_base::_S_atoms_out[__i];
-+
-+        for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+          _M_data->_M_atoms_in[__j] = __num_base::_S_atoms_in[__j];
-+      }
-+      else
-+      {
-+        // Named locale.
-+        _M_data->_M_decimal_point = *(__nl_langinfo_l(DECIMAL_POINT, 
-+                                                      __cloc));
-+        _M_data->_M_thousands_sep = *(__nl_langinfo_l(THOUSANDS_SEP, 
-+                                                      __cloc));
-+
-+        // Check for NULL, which implies no grouping.
-+        if (_M_data->_M_thousands_sep == '\0')
-+          _M_data->_M_grouping = "";
-+        else
-+          _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+      }
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = "true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = "false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+ 
-+  template<> 
-+    numpunct<char>::~numpunct()
-+    { delete _M_data; }
-+   
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<> 
-+    void
-+    numpunct<wchar_t>::_M_initialize_numpunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __numpunct_cache<wchar_t>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_data->_M_grouping = "";
-+        _M_data->_M_grouping_size = 0;
-+        _M_data->_M_use_grouping = false;
-+
-+        _M_data->_M_decimal_point = L'.';
-+        _M_data->_M_thousands_sep = L',';
-+
-+        // Use ctype::widen code without the facet...
-+        for (size_t __i = 0; __i < __num_base::_S_oend; ++__i)
-+          _M_data->_M_atoms_out[__i] =
-+            static_cast<wchar_t>(__num_base::_S_atoms_out[__i]);
-+
-+        for (size_t __j = 0; __j < __num_base::_S_iend; ++__j)
-+          _M_data->_M_atoms_in[__j] =
-+            static_cast<wchar_t>(__num_base::_S_atoms_in[__j]);
-+      }
-+      else
-+      {
-+        // Named locale.
-+        // NB: In the GNU model wchar_t is always 32 bit wide.
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning fix this
-+#endif
-+#ifdef __UCLIBC__
-+# ifdef __UCLIBC_HAS_XLOCALE__
-+        _M_data->_M_decimal_point = __cloc->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __cloc->thousands_sep_wc;
-+# else
-+        _M_data->_M_decimal_point = __global_locale->decimal_point_wc;
-+        _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc;
-+# endif
-+#else
-+        union { char *__s; wchar_t __w; } __u;
-+        __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc);
-+        _M_data->_M_decimal_point = __u.__w;
-+
-+        __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc);
-+        _M_data->_M_thousands_sep = __u.__w;
-+#endif
-+
-+        if (_M_data->_M_thousands_sep == L'\0')
-+          _M_data->_M_grouping = "";
-+        else
-+          _M_data->_M_grouping = __nl_langinfo_l(GROUPING, __cloc);
-+        _M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
-+      }
-+
-+      // NB: There is no way to extact this info from posix locales.
-+      // _M_truename = __nl_langinfo_l(YESSTR, __cloc);
-+      _M_data->_M_truename = L"true";
-+      _M_data->_M_truename_size = 4;
-+      // _M_falsename = __nl_langinfo_l(NOSTR, __cloc);
-+      _M_data->_M_falsename = L"false";
-+      _M_data->_M_falsename_size = 5;
-+    }
-+
-+  template<> 
-+    numpunct<wchar_t>::~numpunct()
-+    { delete _M_data; }
-+ #endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.cc    1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.cc        2005-04-28 01:13:15.000000000 -0500
-@@ -0,0 +1,406 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get virtual functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put virtual functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+#include <locale>
-+#include <bits/c++locale_internal.h>
-+
-+#ifdef __UCLIBC_MJN3_ONLY__
-+#warning tailor for stub locale support
-+#endif
-+#ifndef __UCLIBC_HAS_XLOCALE__
-+#define __nl_langinfo_l(N, L)         nl_langinfo((N))
-+#endif
-+
-+namespace std
-+{
-+  template<>
-+    void
-+    __timepunct<char>::
-+    _M_put(char* __s, size_t __maxlen, const char* __format, 
-+         const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      const size_t __len = __strftime_l(__s, __maxlen, __format, __tm,
-+                                      _M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = strftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+      __s[0] = '\0';
-+    }
-+
-+  template<> 
-+    void
-+    __timepunct<char>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __timepunct_cache<char>;
-+
-+      if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_c_locale_timepunct = _S_get_c_locale();
-+
-+        _M_data->_M_date_format = "%m/%d/%y";
-+        _M_data->_M_date_era_format = "%m/%d/%y";
-+        _M_data->_M_time_format = "%H:%M:%S";
-+        _M_data->_M_time_era_format = "%H:%M:%S";
-+        _M_data->_M_date_time_format = "";
-+        _M_data->_M_date_time_era_format = "";
-+        _M_data->_M_am = "AM";
-+        _M_data->_M_pm = "PM";
-+        _M_data->_M_am_pm_format = "";
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = "Sunday";
-+        _M_data->_M_day2 = "Monday";
-+        _M_data->_M_day3 = "Tuesday";
-+        _M_data->_M_day4 = "Wednesday";
-+        _M_data->_M_day5 = "Thursday";
-+        _M_data->_M_day6 = "Friday";
-+        _M_data->_M_day7 = "Saturday";
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = "Sun";
-+        _M_data->_M_aday2 = "Mon";
-+        _M_data->_M_aday3 = "Tue";
-+        _M_data->_M_aday4 = "Wed";
-+        _M_data->_M_aday5 = "Thu";
-+        _M_data->_M_aday6 = "Fri";
-+        _M_data->_M_aday7 = "Sat";
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = "January";
-+        _M_data->_M_month02 = "February";
-+        _M_data->_M_month03 = "March";
-+        _M_data->_M_month04 = "April";
-+        _M_data->_M_month05 = "May";
-+        _M_data->_M_month06 = "June";
-+        _M_data->_M_month07 = "July";
-+        _M_data->_M_month08 = "August";
-+        _M_data->_M_month09 = "September";
-+        _M_data->_M_month10 = "October";
-+        _M_data->_M_month11 = "November";
-+        _M_data->_M_month12 = "December";
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = "Jan";
-+        _M_data->_M_amonth02 = "Feb";
-+        _M_data->_M_amonth03 = "Mar";
-+        _M_data->_M_amonth04 = "Apr";
-+        _M_data->_M_amonth05 = "May";
-+        _M_data->_M_amonth06 = "Jun";
-+        _M_data->_M_amonth07 = "Jul";
-+        _M_data->_M_amonth08 = "Aug";
-+        _M_data->_M_amonth09 = "Sep";
-+        _M_data->_M_amonth10 = "Oct";
-+        _M_data->_M_amonth11 = "Nov";
-+        _M_data->_M_amonth12 = "Dec";
-+      }
-+      else
-+      {
-+        _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
-+
-+        _M_data->_M_date_format = __nl_langinfo_l(D_FMT, __cloc);
-+        _M_data->_M_date_era_format = __nl_langinfo_l(ERA_D_FMT, __cloc);
-+        _M_data->_M_time_format = __nl_langinfo_l(T_FMT, __cloc);
-+        _M_data->_M_time_era_format = __nl_langinfo_l(ERA_T_FMT, __cloc);
-+        _M_data->_M_date_time_format = __nl_langinfo_l(D_T_FMT, __cloc);
-+        _M_data->_M_date_time_era_format = __nl_langinfo_l(ERA_D_T_FMT,
-+                                                           __cloc);
-+        _M_data->_M_am = __nl_langinfo_l(AM_STR, __cloc);
-+        _M_data->_M_pm = __nl_langinfo_l(PM_STR, __cloc);
-+        _M_data->_M_am_pm_format = __nl_langinfo_l(T_FMT_AMPM, __cloc);
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = __nl_langinfo_l(DAY_1, __cloc);
-+        _M_data->_M_day2 = __nl_langinfo_l(DAY_2, __cloc);
-+        _M_data->_M_day3 = __nl_langinfo_l(DAY_3, __cloc);
-+        _M_data->_M_day4 = __nl_langinfo_l(DAY_4, __cloc);
-+        _M_data->_M_day5 = __nl_langinfo_l(DAY_5, __cloc);
-+        _M_data->_M_day6 = __nl_langinfo_l(DAY_6, __cloc);
-+        _M_data->_M_day7 = __nl_langinfo_l(DAY_7, __cloc);
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = __nl_langinfo_l(ABDAY_1, __cloc);
-+        _M_data->_M_aday2 = __nl_langinfo_l(ABDAY_2, __cloc);
-+        _M_data->_M_aday3 = __nl_langinfo_l(ABDAY_3, __cloc);
-+        _M_data->_M_aday4 = __nl_langinfo_l(ABDAY_4, __cloc);
-+        _M_data->_M_aday5 = __nl_langinfo_l(ABDAY_5, __cloc);
-+        _M_data->_M_aday6 = __nl_langinfo_l(ABDAY_6, __cloc);
-+        _M_data->_M_aday7 = __nl_langinfo_l(ABDAY_7, __cloc);
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = __nl_langinfo_l(MON_1, __cloc);
-+        _M_data->_M_month02 = __nl_langinfo_l(MON_2, __cloc);
-+        _M_data->_M_month03 = __nl_langinfo_l(MON_3, __cloc);
-+        _M_data->_M_month04 = __nl_langinfo_l(MON_4, __cloc);
-+        _M_data->_M_month05 = __nl_langinfo_l(MON_5, __cloc);
-+        _M_data->_M_month06 = __nl_langinfo_l(MON_6, __cloc);
-+        _M_data->_M_month07 = __nl_langinfo_l(MON_7, __cloc);
-+        _M_data->_M_month08 = __nl_langinfo_l(MON_8, __cloc);
-+        _M_data->_M_month09 = __nl_langinfo_l(MON_9, __cloc);
-+        _M_data->_M_month10 = __nl_langinfo_l(MON_10, __cloc);
-+        _M_data->_M_month11 = __nl_langinfo_l(MON_11, __cloc);
-+        _M_data->_M_month12 = __nl_langinfo_l(MON_12, __cloc);
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = __nl_langinfo_l(ABMON_1, __cloc);
-+        _M_data->_M_amonth02 = __nl_langinfo_l(ABMON_2, __cloc);
-+        _M_data->_M_amonth03 = __nl_langinfo_l(ABMON_3, __cloc);
-+        _M_data->_M_amonth04 = __nl_langinfo_l(ABMON_4, __cloc);
-+        _M_data->_M_amonth05 = __nl_langinfo_l(ABMON_5, __cloc);
-+        _M_data->_M_amonth06 = __nl_langinfo_l(ABMON_6, __cloc);
-+        _M_data->_M_amonth07 = __nl_langinfo_l(ABMON_7, __cloc);
-+        _M_data->_M_amonth08 = __nl_langinfo_l(ABMON_8, __cloc);
-+        _M_data->_M_amonth09 = __nl_langinfo_l(ABMON_9, __cloc);
-+        _M_data->_M_amonth10 = __nl_langinfo_l(ABMON_10, __cloc);
-+        _M_data->_M_amonth11 = __nl_langinfo_l(ABMON_11, __cloc);
-+        _M_data->_M_amonth12 = __nl_langinfo_l(ABMON_12, __cloc);
-+      }
-+    }
-+
-+#ifdef _GLIBCXX_USE_WCHAR_T
-+  template<>
-+    void
-+    __timepunct<wchar_t>::
-+    _M_put(wchar_t* __s, size_t __maxlen, const wchar_t* __format, 
-+         const tm* __tm) const
-+    {
-+#ifdef __UCLIBC_HAS_XLOCALE__
-+      __wcsftime_l(__s, __maxlen, __format, __tm, _M_c_locale_timepunct);
-+      const size_t __len = __wcsftime_l(__s, __maxlen, __format, __tm,
-+                                      _M_c_locale_timepunct);
-+#else
-+      char* __old = strdup(setlocale(LC_ALL, NULL));
-+      setlocale(LC_ALL, _M_name_timepunct);
-+      const size_t __len = wcsftime(__s, __maxlen, __format, __tm);
-+      setlocale(LC_ALL, __old);
-+      free(__old);
-+#endif
-+      // Make sure __s is null terminated.
-+      if (__len == 0)
-+      __s[0] = L'\0';
-+    }
-+
-+  template<> 
-+    void
-+    __timepunct<wchar_t>::_M_initialize_timepunct(__c_locale __cloc)
-+    {
-+      if (!_M_data)
-+      _M_data = new __timepunct_cache<wchar_t>;
-+
-+#warning wide time stuff
-+//       if (!__cloc)
-+      {
-+        // "C" locale
-+        _M_c_locale_timepunct = _S_get_c_locale();
-+
-+        _M_data->_M_date_format = L"%m/%d/%y";
-+        _M_data->_M_date_era_format = L"%m/%d/%y";
-+        _M_data->_M_time_format = L"%H:%M:%S";
-+        _M_data->_M_time_era_format = L"%H:%M:%S";
-+        _M_data->_M_date_time_format = L"";
-+        _M_data->_M_date_time_era_format = L"";
-+        _M_data->_M_am = L"AM";
-+        _M_data->_M_pm = L"PM";
-+        _M_data->_M_am_pm_format = L"";
-+
-+        // Day names, starting with "C"'s Sunday.
-+        _M_data->_M_day1 = L"Sunday";
-+        _M_data->_M_day2 = L"Monday";
-+        _M_data->_M_day3 = L"Tuesday";
-+        _M_data->_M_day4 = L"Wednesday";
-+        _M_data->_M_day5 = L"Thursday";
-+        _M_data->_M_day6 = L"Friday";
-+        _M_data->_M_day7 = L"Saturday";
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        _M_data->_M_aday1 = L"Sun";
-+        _M_data->_M_aday2 = L"Mon";
-+        _M_data->_M_aday3 = L"Tue";
-+        _M_data->_M_aday4 = L"Wed";
-+        _M_data->_M_aday5 = L"Thu";
-+        _M_data->_M_aday6 = L"Fri";
-+        _M_data->_M_aday7 = L"Sat";
-+
-+        // Month names, starting with "C"'s January.
-+        _M_data->_M_month01 = L"January";
-+        _M_data->_M_month02 = L"February";
-+        _M_data->_M_month03 = L"March";
-+        _M_data->_M_month04 = L"April";
-+        _M_data->_M_month05 = L"May";
-+        _M_data->_M_month06 = L"June";
-+        _M_data->_M_month07 = L"July";
-+        _M_data->_M_month08 = L"August";
-+        _M_data->_M_month09 = L"September";
-+        _M_data->_M_month10 = L"October";
-+        _M_data->_M_month11 = L"November";
-+        _M_data->_M_month12 = L"December";
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        _M_data->_M_amonth01 = L"Jan";
-+        _M_data->_M_amonth02 = L"Feb";
-+        _M_data->_M_amonth03 = L"Mar";
-+        _M_data->_M_amonth04 = L"Apr";
-+        _M_data->_M_amonth05 = L"May";
-+        _M_data->_M_amonth06 = L"Jun";
-+        _M_data->_M_amonth07 = L"Jul";
-+        _M_data->_M_amonth08 = L"Aug";
-+        _M_data->_M_amonth09 = L"Sep";
-+        _M_data->_M_amonth10 = L"Oct";
-+        _M_data->_M_amonth11 = L"Nov";
-+        _M_data->_M_amonth12 = L"Dec";
-+      }
-+#if 0
-+      else
-+      {
-+        _M_c_locale_timepunct = _S_clone_c_locale(__cloc); 
-+
-+        union { char *__s; wchar_t *__w; } __u;
-+
-+        __u.__s = __nl_langinfo_l(_NL_WD_FMT, __cloc);
-+        _M_data->_M_date_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_D_FMT, __cloc);
-+        _M_data->_M_date_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WT_FMT, __cloc);
-+        _M_data->_M_time_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_T_FMT, __cloc);
-+        _M_data->_M_time_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WD_T_FMT, __cloc);
-+        _M_data->_M_date_time_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WERA_D_T_FMT, __cloc);
-+        _M_data->_M_date_time_era_format = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WAM_STR, __cloc);
-+        _M_data->_M_am = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WPM_STR, __cloc);
-+        _M_data->_M_pm = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WT_FMT_AMPM, __cloc);
-+        _M_data->_M_am_pm_format = __u.__w;
-+
-+        // Day names, starting with "C"'s Sunday.
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_1, __cloc);
-+        _M_data->_M_day1 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_2, __cloc);
-+        _M_data->_M_day2 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_3, __cloc);
-+        _M_data->_M_day3 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_4, __cloc);
-+        _M_data->_M_day4 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_5, __cloc);
-+        _M_data->_M_day5 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_6, __cloc);
-+        _M_data->_M_day6 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WDAY_7, __cloc);
-+        _M_data->_M_day7 = __u.__w;
-+
-+        // Abbreviated day names, starting with "C"'s Sun.
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_1, __cloc);
-+        _M_data->_M_aday1 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_2, __cloc);
-+        _M_data->_M_aday2 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_3, __cloc);
-+        _M_data->_M_aday3 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_4, __cloc);
-+        _M_data->_M_aday4 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_5, __cloc);
-+        _M_data->_M_aday5 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_6, __cloc);
-+        _M_data->_M_aday6 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABDAY_7, __cloc);
-+        _M_data->_M_aday7 = __u.__w;
-+
-+        // Month names, starting with "C"'s January.
-+        __u.__s = __nl_langinfo_l(_NL_WMON_1, __cloc);
-+        _M_data->_M_month01 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_2, __cloc);
-+        _M_data->_M_month02 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_3, __cloc);
-+        _M_data->_M_month03 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_4, __cloc);
-+        _M_data->_M_month04 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_5, __cloc);
-+        _M_data->_M_month05 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_6, __cloc);
-+        _M_data->_M_month06 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_7, __cloc);
-+        _M_data->_M_month07 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_8, __cloc);
-+        _M_data->_M_month08 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_9, __cloc);
-+        _M_data->_M_month09 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_10, __cloc);
-+        _M_data->_M_month10 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_11, __cloc);
-+        _M_data->_M_month11 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WMON_12, __cloc);
-+        _M_data->_M_month12 = __u.__w;
-+
-+        // Abbreviated month names, starting with "C"'s Jan.
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_1, __cloc);
-+        _M_data->_M_amonth01 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_2, __cloc);
-+        _M_data->_M_amonth02 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_3, __cloc);
-+        _M_data->_M_amonth03 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_4, __cloc);
-+        _M_data->_M_amonth04 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_5, __cloc);
-+        _M_data->_M_amonth05 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_6, __cloc);
-+        _M_data->_M_amonth06 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_7, __cloc);
-+        _M_data->_M_amonth07 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_8, __cloc);
-+        _M_data->_M_amonth08 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_9, __cloc);
-+        _M_data->_M_amonth09 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_10, __cloc);
-+        _M_data->_M_amonth10 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_11, __cloc);
-+        _M_data->_M_amonth11 = __u.__w;
-+        __u.__s = __nl_langinfo_l(_NL_WABMON_12, __cloc);
-+        _M_data->_M_amonth12 = __u.__w;
-+      }
-+#endif // 0
-+    }
-+#endif
-+}
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h
---- gcc-4.0.0-100/libstdc++-v3/config/locale/uclibc/time_members.h     1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/locale/uclibc/time_members.h 2004-05-22 18:46:31.000000000 -0500
-@@ -0,0 +1,68 @@
-+// std::time_get, std::time_put implementation, GNU version -*- C++ -*-
-+
-+// Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.2.5.1.2 - time_get functions
-+// ISO C++ 14882: 22.2.5.3.2 - time_put functions
-+//
-+
-+// Written by Benjamin Kosnik <bkoz@redhat.com>
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(size_t __refs) 
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__cache_type* __cache, size_t __refs) 
-+    : facet(__refs), _M_data(__cache), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(_S_get_c_name())
-+    { _M_initialize_timepunct(); }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::__timepunct(__c_locale __cloc, const char* __s,
-+                                   size_t __refs) 
-+    : facet(__refs), _M_data(NULL), _M_c_locale_timepunct(NULL), 
-+    _M_name_timepunct(__s)
-+    { 
-+      char* __tmp = new char[std::strlen(__s) + 1];
-+      std::strcpy(__tmp, __s);
-+      _M_name_timepunct = __tmp;
-+      _M_initialize_timepunct(__cloc); 
-+    }
-+
-+  template<typename _CharT>
-+    __timepunct<_CharT>::~__timepunct()
-+    { 
-+      if (_M_name_timepunct != _S_get_c_name())
-+      delete [] _M_name_timepunct;
-+      delete _M_data; 
-+      _S_destroy_c_locale(_M_c_locale_timepunct); 
-+    }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_base.h   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_base.h       2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,64 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2004
-+// Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+/** @file ctype_base.h
-+ *  This is an internal header file, included by other library headers.
-+ *  You should not attempt to use it directly.
-+ */
-+
-+// Information as gleaned from /usr/include/ctype.h
-+  
-+  /// @brief  Base class for ctype.
-+  struct ctype_base
-+  {
-+    // Note: In uClibc, the following two types depend on configuration.
-+ 
-+    // Non-standard typedefs.
-+    typedef const __ctype_touplow_t* __to_type;
-+
-+    // NB: Offsets into ctype<char>::_M_table force a particular size
-+    // on the mask type. Because of this, we don't use an enum.
-+    typedef __ctype_mask_t    mask;   
-+    static const mask upper           = _ISupper;
-+    static const mask lower   = _ISlower;
-+    static const mask alpha   = _ISalpha;
-+    static const mask digit   = _ISdigit;
-+    static const mask xdigit  = _ISxdigit;
-+    static const mask space   = _ISspace;
-+    static const mask print   = _ISprint;
-+    static const mask graph   = _ISalpha | _ISdigit | _ISpunct;
-+    static const mask cntrl   = _IScntrl;
-+    static const mask punct   = _ISpunct;
-+    static const mask alnum   = _ISalpha | _ISdigit;
-+  };
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_inline.h 1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_inline.h     2002-06-24 00:49:19.000000000 -0500
-@@ -0,0 +1,69 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 2000, 2002 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+// ctype bits to be inlined go here. Non-inlinable (ie virtual do_*)
-+// functions go in ctype.cc
-+  
-+  bool
-+  ctype<char>::
-+  is(mask __m, char __c) const
-+  { return _M_table[static_cast<unsigned char>(__c)] & __m; }
-+
-+  const char*
-+  ctype<char>::
-+  is(const char* __low, const char* __high, mask* __vec) const
-+  {
-+    while (__low < __high)
-+      *__vec++ = _M_table[static_cast<unsigned char>(*__low++)];
-+    return __high;
-+  }
-+
-+  const char*
-+  ctype<char>::
-+  scan_is(mask __m, const char* __low, const char* __high) const
-+  {
-+    while (__low < __high 
-+         && !(_M_table[static_cast<unsigned char>(*__low)] & __m))
-+      ++__low;
-+    return __low;
-+  }
-+
-+  const char*
-+  ctype<char>::
-+  scan_not(mask __m, const char* __low, const char* __high) const
-+  {
-+    while (__low < __high 
-+         && (_M_table[static_cast<unsigned char>(*__low)] & __m) != 0)
-+      ++__low;
-+    return __low;
-+  }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/ctype_noninline.h      1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/ctype_noninline.h  2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,92 @@
-+// Locale support -*- C++ -*-
-+
-+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2004
-+// Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+//
-+// ISO C++ 14882: 22.1  Locales
-+//
-+  
-+// Information as gleaned from /usr/include/ctype.h
-+
-+  const ctype_base::mask*
-+  ctype<char>::classic_table() throw()
-+  { return __C_ctype_b; }
-+
-+  ctype<char>::ctype(__c_locale, const mask* __table, bool __del, 
-+                   size_t __refs) 
-+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
-+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
-+  {
-+    _M_toupper = __C_ctype_toupper;
-+    _M_tolower = __C_ctype_tolower;
-+    _M_table = __table ? __table : __C_ctype_b;
-+    memset(_M_widen, 0, sizeof(_M_widen));
-+    memset(_M_narrow, 0, sizeof(_M_narrow));
-+  }
-+
-+  ctype<char>::ctype(const mask* __table, bool __del, size_t __refs)
-+  : facet(__refs), _M_c_locale_ctype(_S_get_c_locale()), 
-+  _M_del(__table != 0 && __del), _M_widen_ok(0), _M_narrow_ok(0)
-+  {
-+    _M_toupper = __C_ctype_toupper;
-+    _M_tolower = __C_ctype_tolower;
-+    _M_table = __table ? __table : __C_ctype_b;
-+    memset(_M_widen, 0, sizeof(_M_widen));
-+    memset(_M_narrow, 0, sizeof(_M_narrow));
-+  }
-+
-+  char
-+  ctype<char>::do_toupper(char __c) const
-+  { return _M_toupper[static_cast<unsigned char>(__c)]; }
-+
-+  const char*
-+  ctype<char>::do_toupper(char* __low, const char* __high) const
-+  {
-+    while (__low < __high)
-+      {
-+      *__low = _M_toupper[static_cast<unsigned char>(*__low)];
-+      ++__low;
-+      }
-+    return __high;
-+  }
-+
-+  char
-+  ctype<char>::do_tolower(char __c) const
-+  { return _M_tolower[static_cast<unsigned char>(__c)]; }
-+
-+  const char* 
-+  ctype<char>::do_tolower(char* __low, const char* __high) const
-+  {
-+    while (__low < __high)
-+      {
-+      *__low = _M_tolower[static_cast<unsigned char>(*__low)];
-+      ++__low;
-+      }
-+    return __high;
-+  }
-diff -urN gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h
---- gcc-4.0.0-100/libstdc++-v3/config/os/uclibc/os_defines.h   1969-12-31 18:00:00.000000000 -0600
-+++ gcc-4.0.0/libstdc++-v3/config/os/uclibc/os_defines.h       2005-04-28 01:10:27.000000000 -0500
-@@ -0,0 +1,44 @@
-+// Specific definitions for GNU/Linux  -*- C++ -*-
-+
-+// Copyright (C) 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+//
-+// This file is part of the GNU ISO C++ Library.  This library is free
-+// software; you can redistribute it and/or modify it under the
-+// terms of the GNU General Public License as published by the
-+// Free Software Foundation; either version 2, or (at your option)
-+// any later version.
-+
-+// This library is distributed in the hope that it will be useful,
-+// but WITHOUT ANY WARRANTY; without even the implied warranty of
-+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+// GNU General Public License for more details.
-+
-+// You should have received a copy of the GNU General Public License along
-+// with this library; see the file COPYING.  If not, write to the Free
-+// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
-+// USA.
-+
-+// As a special exception, you may use this file as part of a free software
-+// library without restriction.  Specifically, if other files instantiate
-+// templates or use macros or inline functions from this file, or you compile
-+// this file and link it with other files to produce an executable, this
-+// file does not by itself cause the resulting executable to be covered by
-+// the GNU General Public License.  This exception does not however
-+// invalidate any other reasons why the executable file might be covered by
-+// the GNU General Public License.
-+
-+#ifndef _GLIBCXX_OS_DEFINES
-+#define _GLIBCXX_OS_DEFINES 1
-+
-+// System-specific #define, typedefs, corrections, etc, go here.  This
-+// file will come before all others.
-+
-+// This keeps isanum, et al from being propagated as macros.
-+#define __NO_CTYPE 1
-+
-+#include <features.h>
-+
-+// We must not see the optimized string functions GNU libc defines.
-+#define __NO_STRING_INLINES
-+
-+#endif
-diff -urN gcc-4.0.0-100/libstdc++-v3/configure gcc-4.0.0/libstdc++-v3/configure
---- gcc-4.0.0-100/libstdc++-v3/configure       2005-04-30 13:06:53.683055232 -0500
-+++ gcc-4.0.0/libstdc++-v3/configure   2005-04-30 12:24:24.000000000 -0500
-@@ -3998,6 +3998,11 @@
-   lt_cv_deplibs_check_method=pass_all
-   ;;
-+linux-uclibc*)
-+  lt_cv_deplibs_check_method=pass_all
-+  lt_cv_file_magic_test_file=`echo /lib/libuClibc-*.so`
-+  ;;
-+
- netbsd* | knetbsd*-gnu)
-   if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
-     lt_cv_deplibs_check_method='match_pattern /lib[^/\.]+\.so\.[0-9]+\.[0-9]+$'
-@@ -5672,7 +5677,7 @@
-   enableval="$enable_clocale"
-       case "$enableval" in
--       generic|gnu|ieee_1003.1-2001|yes|no|auto) ;;
-+       generic|gnu|ieee_1003.1-2001|uclibc|yes|no|auto) ;;
-        *) { { echo "$as_me:$LINENO: error: Unknown argument to enable/disable clocale" >&5
- echo "$as_me: error: Unknown argument to enable/disable clocale" >&2;}
-    { (exit 1); exit 1; }; } ;;
-@@ -5697,6 +5702,9 @@
-   # Default to "generic".
-   if test $enable_clocale_flag = auto; then
-     case ${target_os} in
-+      linux-uclibc*)
-+      enable_clocale_flag=uclibc
-+      ;;
-       linux* | gnu* | kfreebsd*-gnu | knetbsd*-gnu)
-         cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5927,6 +5935,76 @@
-       CTIME_CC=config/locale/generic/time_members.cc
-       CLOCALE_INTERNAL_H=config/locale/generic/c++locale_internal.h
-       ;;
-+    uclibc)
-+      echo "$as_me:$LINENO: result: uclibc" >&5
-+echo "${ECHO_T}uclibc" >&6
-+
-+      # Declare intention to use gettext, and add support for specific
-+      # languages.
-+      # For some reason, ALL_LINGUAS has to be before AM-GNU-GETTEXT
-+      ALL_LINGUAS="de fr"
-+
-+      # Don't call AM-GNU-GETTEXT here. Instead, assume glibc.
-+      # Extract the first word of "msgfmt", so it can be a program name with args.
-+set dummy msgfmt; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_check_msgfmt+set}" = set; then
-+  echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+  if test -n "$check_msgfmt"; then
-+  ac_cv_prog_check_msgfmt="$check_msgfmt" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+  IFS=$as_save_IFS
-+  test -z "$as_dir" && as_dir=.
-+  for ac_exec_ext in '' $ac_executable_extensions; do
-+  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+    ac_cv_prog_check_msgfmt="yes"
-+    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    break 2
-+  fi
-+done
-+done
-+
-+  test -z "$ac_cv_prog_check_msgfmt" && ac_cv_prog_check_msgfmt="no"
-+fi
-+fi
-+check_msgfmt=$ac_cv_prog_check_msgfmt
-+if test -n "$check_msgfmt"; then
-+  echo "$as_me:$LINENO: result: $check_msgfmt" >&5
-+echo "${ECHO_T}$check_msgfmt" >&6
-+else
-+  echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+      if test x"$check_msgfmt" = x"yes" && test x"$enable_nls" = x"yes"; then
-+        USE_NLS=yes
-+      fi
-+      # Export the build objects.
-+      for ling in $ALL_LINGUAS; do \
-+        glibcxx_MOFILES="$glibcxx_MOFILES $ling.mo"; \
-+        glibcxx_POFILES="$glibcxx_POFILES $ling.po"; \
-+      done
-+
-+
-+
-+      CLOCALE_H=config/locale/uclibc/c_locale.h
-+      CLOCALE_CC=config/locale/uclibc/c_locale.cc
-+      CCODECVT_CC=config/locale/uclibc/codecvt_members.cc
-+      CCOLLATE_CC=config/locale/uclibc/collate_members.cc
-+      CCTYPE_CC=config/locale/uclibc/ctype_members.cc
-+      CMESSAGES_H=config/locale/uclibc/messages_members.h
-+      CMESSAGES_CC=config/locale/uclibc/messages_members.cc
-+      CMONEY_CC=config/locale/uclibc/monetary_members.cc
-+      CNUMERIC_CC=config/locale/uclibc/numeric_members.cc
-+      CTIME_H=config/locale/uclibc/time_members.h
-+      CTIME_CC=config/locale/uclibc/time_members.cc
-+      CLOCALE_INTERNAL_H=config/locale/uclibc/c++locale_internal.h
-+      ;;
-   esac
-   # This is where the testsuite looks for locale catalogs, using the
-diff -urN gcc-4.0.0-100/libstdc++-v3/configure.host gcc-4.0.0/libstdc++-v3/configure.host
---- gcc-4.0.0-100/libstdc++-v3/configure.host  2005-04-30 13:06:53.688054472 -0500
-+++ gcc-4.0.0/libstdc++-v3/configure.host      2005-04-28 20:20:32.000000000 -0500
-@@ -249,6 +249,12 @@
-     ;;
- esac
-+# Override for uClibc since linux-uclibc gets mishandled above.
-+case "${host_os}" in
-+  *-uclibc*)
-+    os_include_dir="os/uclibc"
-+    ;;
-+esac
- # Set any OS-dependent and CPU-dependent bits.
- # THIS TABLE IS SORTED.  KEEP IT THAT WAY.
-diff -urN gcc-4.0.0-100/libstdc++-v3/crossconfig.m4 gcc-4.0.0/libstdc++-v3/crossconfig.m4
---- gcc-4.0.0-100/libstdc++-v3/crossconfig.m4  2005-04-30 13:06:53.689054320 -0500
-+++ gcc-4.0.0/libstdc++-v3/crossconfig.m4      2005-04-28 20:27:15.000000000 -0500
-@@ -142,6 +142,98 @@
-       ;;
-     esac
-     ;;
-+  *-uclibc*)
-+# Temporary hack until we implement the float versions of the libm funcs
-+    AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-+      machine/endian.h machine/param.h sys/machine.h sys/types.h \
-+      fp.h float.h endian.h inttypes.h locale.h float.h stdint.h])
-+    SECTION_FLAGS='-ffunction-sections -fdata-sections'
-+    AC_SUBST(SECTION_FLAGS)
-+    GLIBCXX_CHECK_LINKER_FEATURES
-+    GLIBCXX_CHECK_COMPLEX_MATH_SUPPORT
-+    GLIBCXX_CHECK_WCHAR_T_SUPPORT
-+
-+    # For LFS.
-+    AC_DEFINE(HAVE_INT64_T)
-+    case "$target" in
-+      *-uclinux*)
-+        # Don't enable LFS with uClinux
-+        ;;
-+      *)
-+        AC_DEFINE(_GLIBCXX_USE_LFS)
-+    esac
-+
-+    # For showmanyc_helper().
-+    AC_CHECK_HEADERS(sys/ioctl.h sys/filio.h)
-+    GLIBCXX_CHECK_POLL
-+    GLIBCXX_CHECK_S_ISREG_OR_S_IFREG
-+
-+    # For xsputn_2().
-+    AC_CHECK_HEADERS(sys/uio.h)
-+    GLIBCXX_CHECK_WRITEV
-+
-+#     AC_DEFINE(HAVE_ACOSF)
-+#     AC_DEFINE(HAVE_ASINF)
-+#     AC_DEFINE(HAVE_ATANF)
-+#     AC_DEFINE(HAVE_ATAN2F)
-+    AC_DEFINE(HAVE_CEILF)
-+    AC_DEFINE(HAVE_COPYSIGN)
-+#     AC_DEFINE(HAVE_COPYSIGNF)
-+#     AC_DEFINE(HAVE_COSF)
-+#     AC_DEFINE(HAVE_COSHF)
-+#     AC_DEFINE(HAVE_EXPF)
-+#     AC_DEFINE(HAVE_FABSF)
-+    AC_DEFINE(HAVE_FINITE)
-+    AC_DEFINE(HAVE_FINITEF)
-+    AC_DEFINE(HAVE_FLOORF)
-+#     AC_DEFINE(HAVE_FMODF)
-+#     AC_DEFINE(HAVE_FREXPF)
-+    AC_DEFINE(HAVE_HYPOT)
-+#     AC_DEFINE(HAVE_HYPOTF)
-+    AC_DEFINE(HAVE_ISINF)
-+    AC_DEFINE(HAVE_ISINFF)
-+    AC_DEFINE(HAVE_ISNAN)
-+    AC_DEFINE(HAVE_ISNANF)
-+#     AC_DEFINE(HAVE_LOGF)
-+#     AC_DEFINE(HAVE_LOG10F)
-+#     AC_DEFINE(HAVE_MODFF)
-+#     AC_DEFINE(HAVE_SINF)
-+#     AC_DEFINE(HAVE_SINHF)
-+#     AC_DEFINE(HAVE_SINCOS)
-+#     AC_DEFINE(HAVE_SINCOSF)
-+    AC_DEFINE(HAVE_SQRTF)
-+#     AC_DEFINE(HAVE_TANF)
-+#     AC_DEFINE(HAVE_TANHF)
-+    if test x"long_double_math_on_this_cpu" = x"yes"; then
-+#       AC_DEFINE(HAVE_ACOSL)
-+#       AC_DEFINE(HAVE_ASINL)
-+#       AC_DEFINE(HAVE_ATANL)
-+#       AC_DEFINE(HAVE_ATAN2L)
-+#       AC_DEFINE(HAVE_CEILL)
-+#       AC_DEFINE(HAVE_COPYSIGNL)
-+#       AC_DEFINE(HAVE_COSL)
-+#       AC_DEFINE(HAVE_COSHL)
-+#       AC_DEFINE(HAVE_EXPL)
-+#       AC_DEFINE(HAVE_FABSL)
-+#       AC_DEFINE(HAVE_FINITEL)
-+#       AC_DEFINE(HAVE_FLOORL)
-+#       AC_DEFINE(HAVE_FMODL)
-+#       AC_DEFINE(HAVE_FREXPL)
-+#       AC_DEFINE(HAVE_HYPOTL)
-+#       AC_DEFINE(HAVE_ISINFL)
-+#       AC_DEFINE(HAVE_ISNANL)
-+#       AC_DEFINE(HAVE_LOGL)
-+#       AC_DEFINE(HAVE_LOG10L)
-+#       AC_DEFINE(HAVE_MODFL)
-+#       AC_DEFINE(HAVE_POWL)
-+#       AC_DEFINE(HAVE_SINL)
-+#       AC_DEFINE(HAVE_SINHL)
-+#       AC_DEFINE(HAVE_SINCOSL)
-+#       AC_DEFINE(HAVE_SQRTL)
-+#       AC_DEFINE(HAVE_TANL)
-+#       AC_DEFINE(HAVE_TANHL)
-+    fi
-+    ;;
-   *-linux* | *-uclinux* | *-gnu* | *-kfreebsd*-gnu | *-knetbsd*-gnu)
-     AC_CHECK_HEADERS([nan.h ieeefp.h endian.h sys/isa_defs.h \
-       machine/endian.h machine/param.h sys/machine.h sys/types.h \
-@@ -156,7 +248,7 @@
-     AC_DEFINE(HAVE_INT64_T)
-     case "$target" in
-       *-uclinux*)
--        # Don't enable LFS with uClibc
-+        # Don't enable LFS with uClinux
-         ;;
-       *)
-         AC_DEFINE(_GLIBCXX_USE_LFS)
-diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h
---- gcc-4.0.0-100/libstdc++-v3/include/c_compatibility/wchar.h 2005-04-30 13:06:53.690054168 -0500
-+++ gcc-4.0.0/libstdc++-v3/include/c_compatibility/wchar.h     2005-04-28 20:15:56.000000000 -0500
-@@ -101,7 +101,9 @@
- using std::wmemcpy;
- using std::wmemmove;
- using std::wmemset;
-+#if _GLIBCXX_HAVE_WCSFTIME
- using std::wcsftime;
-+#endif
- #if _GLIBCXX_USE_C99
- using std::wcstold;
-diff -urN gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h
---- gcc-4.0.0-100/libstdc++-v3/include/c_std/std_cwchar.h      2005-04-30 13:06:53.691054016 -0500
-+++ gcc-4.0.0/libstdc++-v3/include/c_std/std_cwchar.h  2005-04-28 20:15:56.000000000 -0500
-@@ -179,7 +179,9 @@
-   using ::wcscoll;
-   using ::wcscpy;
-   using ::wcscspn;
-+#if _GLIBCXX_HAVE_WCSFTIME
-   using ::wcsftime;
-+#endif
-   using ::wcslen;
-   using ::wcsncat;
-   using ::wcsncmp;
diff --git a/src/patches/gcc/gcc44-build-id.patch b/src/patches/gcc/gcc44-build-id.patch
new file mode 100644 (file)
index 0000000..f76f939
--- /dev/null
@@ -0,0 +1,52 @@
+2007-07-22  Roland McGrath  <roland@redhat.com>
+
+       * config/rs6000/sysv4.h (LINK_EH_SPEC): Add --build-id for
+       non-relocatable link.
+       * config/linux.h (LINK_EH_SPEC): Likewise.
+       * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+       * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -906,7 +906,7 @@ extern int fixuplabelno;
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -85,7 +85,7 @@ Boston, MA 02110-1301, USA.  */
+     } while (0)
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* Define this so we can compile MS code for use with WINE.  */
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+    I imagine that other systems will catch up.  In the meantime, it
+    doesn't harm to make sure that the data exists to be used later.  */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} "
++#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -56,7 +56,7 @@ do {                                         \
+    Signalize that because we have fde-glibc, we don't need all C shared libs
+    linked against -lgcc_s.  */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC ""
++#define LINK_EH_SPEC "%{!r:--build-id} "
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
diff --git a/src/patches/gcc/gcc44-c++-builtin-redecl.patch b/src/patches/gcc/gcc44-c++-builtin-redecl.patch
new file mode 100644 (file)
index 0000000..1f36f1f
--- /dev/null
@@ -0,0 +1,102 @@
+2007-10-02  Jakub Jelinek  <jakub@redhat.com>
+
+       * decl.c (duplicate_decls): When redeclaring a builtin function,
+       keep the merged decl builtin whenever types match, even if new
+       decl defines a function.
+
+       * gcc.dg/builtins-65.c: New test.
+       * g++.dg/ext/builtin10.C: New test.
+
+--- gcc/cp/decl.c.jj   2007-10-01 22:11:09.000000000 +0200
++++ gcc/cp/decl.c      2007-10-02 11:39:46.000000000 +0200
+@@ -2001,23 +2001,21 @@ duplicate_decls (tree newdecl, tree oldd
+         DECL_ARGUMENTS (olddecl) = DECL_ARGUMENTS (newdecl);
+         DECL_RESULT (olddecl) = DECL_RESULT (newdecl);
+       }
++      /* If redeclaring a builtin function, it stays built in.  */
++      if (types_match && DECL_BUILT_IN (olddecl))
++      {
++        DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
++        DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
++        /* If we're keeping the built-in definition, keep the rtl,
++           regardless of declaration matches.  */
++        COPY_DECL_RTL (olddecl, newdecl);
++      }
+       if (new_defines_function)
+       /* If defining a function declared with other language
+          linkage, use the previously declared language linkage.  */
+       SET_DECL_LANGUAGE (newdecl, DECL_LANGUAGE (olddecl));
+       else if (types_match)
+       {
+-        /* If redeclaring a builtin function, and not a definition,
+-           it stays built in.  */
+-        if (DECL_BUILT_IN (olddecl))
+-          {
+-            DECL_BUILT_IN_CLASS (newdecl) = DECL_BUILT_IN_CLASS (olddecl);
+-            DECL_FUNCTION_CODE (newdecl) = DECL_FUNCTION_CODE (olddecl);
+-            /* If we're keeping the built-in definition, keep the rtl,
+-               regardless of declaration matches.  */
+-            COPY_DECL_RTL (olddecl, newdecl);
+-          }
+-
+         DECL_RESULT (newdecl) = DECL_RESULT (olddecl);
+         /* Don't clear out the arguments if we're just redeclaring a
+            function.  */
+--- gcc/testsuite/gcc.dg/builtins-65.c.jj      2007-10-02 11:23:51.000000000 +0200
++++ gcc/testsuite/gcc.dg/builtins-65.c 2007-10-02 11:24:12.000000000 +0200
+@@ -0,0 +1,25 @@
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef __SIZE_TYPE__ size_t;
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++/* { dg-final { scan-assembler "mysnprintf" } } */
++/* { dg-final { scan-assembler-not "__chk_fail" } } */
+--- gcc/testsuite/g++.dg/ext/builtin10.C.jj    2007-10-02 11:19:45.000000000 +0200
++++ gcc/testsuite/g++.dg/ext/builtin10.C       2007-10-02 11:23:26.000000000 +0200
+@@ -0,0 +1,27 @@
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef __SIZE_TYPE__ size_t;
++extern "C" {
++extern void __chk_fail (void);
++extern int snprintf (char *, size_t, const char *, ...);
++extern inline __attribute__((gnu_inline, always_inline)) int snprintf (char *a, size_t b, const char *fmt, ...)
++{
++  if (__builtin_object_size (a, 0) != -1UL && __builtin_object_size (a, 0) < b)
++    __chk_fail ();
++  return __builtin_snprintf (a, b, fmt, __builtin_va_arg_pack ());
++}
++extern int snprintf (char *, size_t, const char *, ...) __asm ("mysnprintf");
++}
++
++char buf[10];
++
++int
++main (void)
++{
++  snprintf (buf, 10, "%d%d\n", 10, 10);
++  return 0;
++}
++
++// { dg-final { scan-assembler "mysnprintf" } }
++// { dg-final { scan-assembler-not "__chk_fail" } }
diff --git a/src/patches/gcc/gcc44-i386-libgomp.patch b/src/patches/gcc/gcc44-i386-libgomp.patch
new file mode 100644 (file)
index 0000000..5d1eea8
--- /dev/null
@@ -0,0 +1,61 @@
+Build i386.rpm libgomp and libsupc++.a(guard.o) as i486+, pre-i486
+hardware isn't supported because NPTL doesn't support it anyway.
+
+--- libgomp/configure.tgt.jj   2008-01-10 20:53:48.000000000 +0100
++++ libgomp/configure.tgt      2008-03-27 12:44:51.000000000 +0100
+@@ -44,14 +44,14 @@ if test $enable_linux_futex = yes; then
+       ;;
+     # Note that bare i386 is not included here.  We need cmpxchg.
+-    i[456]86-*-linux*)
++    i[3456]86-*-linux*)
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m64 "*)
+           ;;
+         *)
+           if test -z "$with_arch"; then
+-            XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
++            XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           fi
+       esac
+       ;;
+@@ -63,7 +63,7 @@ if test $enable_linux_futex = yes; then
+       config_path="linux/x86 linux posix"
+       case " ${CC} ${CFLAGS} " in
+         *" -m32 "*)
+-          XCFLAGS="${XCFLAGS} -march=i486 -mtune=i686"
++          XCFLAGS="${XCFLAGS} -march=i486 -mtune=generic"
+           ;;
+       esac
+       ;;
+--- libstdc++-v3/libsupc++/guard.cc.jj 2008-03-01 00:58:24.000000000 +0100
++++ libstdc++-v3/libsupc++/guard.cc    2008-03-27 14:08:44.000000000 +0100
+@@ -35,6 +35,27 @@
+ #include <new>
+ #include <ext/atomicity.h>
+ #include <ext/concurrence.h>
++#if defined __i386__ && !defined _GLIBCXX_ATOMIC_BUILTINS_4
++# define _GLIBCXX_ATOMIC_BUILTINS_4 1
++# define __sync_val_compare_and_swap(a, b, c) \
++  ({                                                          \
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];       \
++     int sltas;                                                       \
++     __asm __volatile ("lock; cmpxchgl %3, (%1)"              \
++                     : "=a" (sltas)                           \
++                     : "r" (a), "0" (b), "r" (c) : "memory"); \
++     sltas;                                                   \
++   })
++# define __sync_lock_test_and_set(a, b) \
++  ({                                                          \
++     typedef char sltast[sizeof (*a) == sizeof (int) ? 1 : -1];       \
++     int sltas;                                                       \
++     __asm __volatile ("xchgl (%1), %0"                               \
++                     : "=r" (sltas)                           \
++                     : "r" (a), "0" (b) : "memory");          \
++     sltas;                                                   \
++   })
++#endif
+ #if defined(__GTHREADS) && defined(__GTHREAD_HAS_COND) \
+     && defined(_GLIBCXX_ATOMIC_BUILTINS_4) && defined(_GLIBCXX_HAVE_LINUX_FUTEX)
+ # include <climits>
diff --git a/src/patches/gcc/gcc44-libtool-no-rpath.patch b/src/patches/gcc/gcc44-libtool-no-rpath.patch
new file mode 100644 (file)
index 0000000..466c661
--- /dev/null
@@ -0,0 +1,27 @@
+libtool sucks.
+--- ltmain.sh.jj       2007-12-07 14:53:21.000000000 +0100
++++ ltmain.sh  2008-09-05 21:51:48.000000000 +0200
+@@ -5394,6 +5394,7 @@ EOF
+         rpath="$finalize_rpath"
+         test "$mode" != relink && rpath="$compile_rpath$rpath"
+         for libdir in $rpath; do
++          case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+           if test -n "$hardcode_libdir_flag_spec"; then
+             if test -n "$hardcode_libdir_separator"; then
+               if test -z "$hardcode_libdirs"; then
+@@ -6071,6 +6072,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $compile_rpath $finalize_rpath; do
++      case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
+@@ -6120,6 +6122,7 @@ EOF
+       rpath=
+       hardcode_libdirs=
+       for libdir in $finalize_rpath; do
++      case "$libdir" in /usr/lib|/usr/lib64|/usr/lib/../lib|/usr/lib/../lib64) continue;; esac
+       if test -n "$hardcode_libdir_flag_spec"; then
+         if test -n "$hardcode_libdir_separator"; then
+           if test -z "$hardcode_libdirs"; then
diff --git a/src/patches/gcc/gcc44-no-add-needed.patch b/src/patches/gcc/gcc44-no-add-needed.patch
new file mode 100644 (file)
index 0000000..4570c0c
--- /dev/null
@@ -0,0 +1,52 @@
+2010-02-08  Roland McGrath  <roland@redhat.com>
+
+       * config/rs6000/sysv4.h (LINK_EH_SPEC): Pass --no-add-needed to the
+       linker.
+       * config/linux.h (LINK_EH_SPEC): Likewise.
+       * config/alpha/elf.h (LINK_EH_SPEC): Likewise.
+       * config/ia64/linux.h (LINK_EH_SPEC): Likewise.
+
+--- gcc/config/alpha/elf.h.~1~
++++ gcc/config/alpha/elf.h
+@@ -421,7 +421,7 @@ extern int alpha_this_gpdisp_sequence_nu
+    I imagine that other systems will catch up.  In the meantime, it
+    doesn't harm to make sure that the data exists to be used later.  */
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* A C statement (sans semicolon) to output to the stdio stream STREAM
+--- gcc/config/ia64/linux.h.~1~
++++ gcc/config/ia64/linux.h
+@@ -58,7 +58,7 @@ do {                                         \
+    Signalize that because we have fde-glibc, we don't need all C shared libs
+    linked against -lgcc_s.  */
+ #undef LINK_EH_SPEC
+-#define LINK_EH_SPEC "%{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!r:--build-id} "
+ #define MD_UNWIND_SUPPORT "config/ia64/linux-unwind.h"
+--- gcc/config/linux.h.~1~
++++ gcc/config/linux.h
+@@ -89,7 +89,7 @@ see the files COPYING3 and COPYING.RUNTI
+     } while (0)
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++#define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ /* Define this so we can compile MS code for use with WINE.  */
+--- gcc/config/rs6000/sysv4.h.~1~
++++ gcc/config/rs6000/sysv4.h
+@@ -917,7 +917,7 @@ SVR4_ASM_SPEC \
+   %{!dynamic-linker:-dynamic-linker " LINUX_DYNAMIC_LINKER "}}}"
+ #if defined(HAVE_LD_EH_FRAME_HDR)
+-# define LINK_EH_SPEC "%{!static:--eh-frame-hdr} %{!r:--build-id} "
++# define LINK_EH_SPEC "--no-add-needed %{!static:--eh-frame-hdr} %{!r:--build-id} "
+ #endif
+ #define CPP_OS_LINUX_SPEC "-D__unix__ -D__gnu_linux__ -D__linux__ \
diff --git a/src/patches/gcc/gcc44-pr33763.patch b/src/patches/gcc/gcc44-pr33763.patch
new file mode 100644 (file)
index 0000000..86c8ac7
--- /dev/null
@@ -0,0 +1,153 @@
+2007-11-06  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/33763
+       * gcc.dg/pr33763.c: New test.
+       * g++.dg/opt/inline13.C: New test.
+
+2007-11-06  Jan Hubicka  <jh@suse.cz>
+
+       PR tree-optimization/33763
+       * tree-inline.c (expand_call_inline): Silently ignore always_inline
+       attribute for redefined extern inline functions.
+
+--- gcc/tree-inline.c.jj       2007-11-06 09:29:04.000000000 +0100
++++ gcc/tree-inline.c  2007-11-06 16:19:12.000000000 +0100
+@@ -3157,6 +3157,12 @@ expand_call_inline (basic_block bb, gimp
+       goto egress;
+       if (lookup_attribute ("always_inline", DECL_ATTRIBUTES (fn))
++      /* For extern inline functions that get redefined we always
++         silently ignored alway_inline flag. Better behaviour would
++         be to be able to keep both bodies and use extern inline body
++         for inlining, but we can't do that because frontends overwrite
++         the body.  */
++        && !cg_edge->callee->local.redefined_extern_inline
+         /* Avoid warnings during early inline pass. */
+         && cgraph_global_info_ready)
+       {
+--- gcc/testsuite/gcc.dg/pr33763.c.jj  2007-11-06 16:19:12.000000000 +0100
++++ gcc/testsuite/gcc.dg/pr33763.c     2007-11-06 16:19:12.000000000 +0100
+@@ -0,0 +1,60 @@
++/* PR tree-optimization/33763 */
++/* { dg-do compile } */
++/* { dg-options "-O2" } */
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++      o |= 1;
++      if (*z == 'w')
++      o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}
+--- gcc/testsuite/g++.dg/opt/inline13.C.jj     2007-11-06 16:20:20.000000000 +0100
++++ gcc/testsuite/g++.dg/opt/inline13.C        2007-11-06 16:21:30.000000000 +0100
+@@ -0,0 +1,60 @@
++// PR tree-optimization/33763
++// { dg-do compile }
++// { dg-options "-O2" }
++
++typedef struct
++{
++  void *a;
++  void *b;
++} T;
++extern void *foo (const char *, const char *);
++extern void *bar (void *, const char *, T);
++extern int baz (const char *, int);
++
++extern inline __attribute__ ((always_inline, gnu_inline)) int
++baz (const char *x, int y)
++{
++  return 2;
++}
++
++int
++baz (const char *x, int y)
++{
++  return 1;
++}
++
++int xa, xb;
++
++static void *
++inl (const char *x, const char *y)
++{
++  T t = { &xa, &xb };
++  int *f = (int *) __builtin_malloc (sizeof (int));
++  const char *z;
++  int o = 0;
++  void *r = 0;
++
++  for (z = y; *z; z++)
++    {
++      if (*z == 'r')
++      o |= 1;
++      if (*z == 'w')
++      o |= 2;
++    }
++  if (o == 1)
++    *f = baz (x, 0);
++  if (o == 2)
++    *f = baz (x, 1);
++  if (o == 3)
++    *f = baz (x, 2);
++
++  if (o && *f > 0)
++    r = bar (f, "w", t);
++  return r;
++}
++
++void *
++foo (const char *x, const char *y)
++{
++  return inl (x, y);
++}
diff --git a/src/patches/gcc/gcc44-rh330771.patch b/src/patches/gcc/gcc44-rh330771.patch
new file mode 100644 (file)
index 0000000..f7c365d
--- /dev/null
@@ -0,0 +1,34 @@
+2007-10-16  Jakub Jelinek  <jakub@redhat.com>
+
+       * Makefile.am (libgcj_tools_la_LIBADD): Add.
+       * Makefile.in: Regenerated.
+
+--- libjava/Makefile.am.jj     2009-05-06 08:14:50.000000000 +0200
++++ libjava/Makefile.am        2009-05-06 10:26:43.000000000 +0200
+@@ -314,6 +314,8 @@ libgcj_tools_la_SOURCES = classpath/tool
+ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS) -findirect-dispatch \
+  -fno-bootstrap-classes -fno-indirect-classes \
+  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++## See jv_convert_LDADD.
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+--- libjava/Makefile.in.jj     2009-05-06 08:14:49.000000000 +0200
++++ libjava/Makefile.in        2009-05-06 10:27:18.000000000 +0200
+@@ -160,7 +160,6 @@ am__objects_1 = gnu/gcj/xlib/lib_gnu_awt
+ am_lib_gnu_awt_xlib_la_OBJECTS = $(am__objects_1)
+ lib_gnu_awt_xlib_la_OBJECTS = $(am_lib_gnu_awt_xlib_la_OBJECTS)
+ @XLIB_AWT_TRUE@am_lib_gnu_awt_xlib_la_rpath = -rpath $(toolexeclibdir)
+-libgcj_tools_la_LIBADD =
+ am_libgcj_tools_la_OBJECTS = classpath/tools/libgcj_tools_la-tools.lo
+ libgcj_tools_la_OBJECTS = $(am_libgcj_tools_la_OBJECTS)
+ @INTERPRETER_TRUE@am__DEPENDENCIES_1 = gnu/classpath/jdwp.lo \
+@@ -1041,6 +1040,7 @@ libgcj_tools_la_GCJFLAGS = $(AM_GCJFLAGS
+  -fno-bootstrap-classes -fno-indirect-classes \
+  -fsource-filename=$(here)/classpath/tools/all-classes.lst
++libgcj_tools_la_LIBADD = -L$(here)/.libs libgcj.la
+ libgcj_tools_la_LDFLAGS = -rpath $(toolexeclibdir) \
+  -version-info `grep -v '^\#' $(srcdir)/libtool-version` \
+  $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
diff --git a/src/patches/gcc/gcc44-rh533181.patch b/src/patches/gcc/gcc44-rh533181.patch
new file mode 100644 (file)
index 0000000..76326e2
--- /dev/null
@@ -0,0 +1,153 @@
+2010-07-22  Jakub Jelinek  <jakub@redhat.com>
+
+       * gimplify.c (enum gimplify_omp_var_data): Add
+       GOVD_THREADPRIVATE_WARNED.
+       (gimplify_bind_expr): Add GOVD_LOCAL | GOVD_SEEN even for global vars.
+       (omp_notice_threadprivate_variable): Note used threadprivate vars
+       with current function's context in shared clauses.
+       (gimplify_adjust_omp_clauses_1): Allow globals with current function's
+       context in taskreg shared clause.
+       * omp-low.c (lower_rec_input_clauses): For function-local is_global_var
+       VAR_DECLs in shared clauses add a decl copy with DECL_VALUE_EXPR
+       pointing to the original.
+
+       * trans-openmp.c (gfc_omp_private_debug_clause): Return false for
+       threadprivate decls.
+
+       * gcc.dg/gomp/tls-3.c: New test.
+
+--- gcc/fortran/trans-openmp.c.jj      2010-06-24 21:47:09.908230044 +0200
++++ gcc/fortran/trans-openmp.c 2010-07-26 10:45:15.830229443 +0200
+@@ -351,6 +351,18 @@ gfc_omp_disregard_value_expr (tree decl,
+ bool
+ gfc_omp_private_debug_clause (tree decl, bool shared)
+ {
++  if (TREE_STATIC (decl) || DECL_EXTERNAL (decl))
++    {
++      if (DECL_THREAD_LOCAL_P (decl))
++      return false;
++      if (DECL_HAS_VALUE_EXPR_P (decl))
++      {
++        tree value = get_base_address (DECL_VALUE_EXPR (decl));
++        if (value && DECL_P (value) && DECL_THREAD_LOCAL_P (value))
++          return false;
++      }
++    }
++
+   if (GFC_DECL_CRAY_POINTEE (decl))
+     return true;
+--- gcc/gimplify.c.jj  2010-07-09 09:01:37.049604412 +0200
++++ gcc/gimplify.c     2010-07-26 10:50:05.646291216 +0200
+@@ -66,6 +66,7 @@ enum gimplify_omp_var_data
+   GOVD_LOCAL = 128,
+   GOVD_DEBUG_PRIVATE = 256,
+   GOVD_PRIVATE_OUTER_REF = 512,
++  GOVD_THREADPRIVATE_WARNED = 1024,
+   GOVD_DATA_SHARE_CLASS = (GOVD_SHARED | GOVD_PRIVATE | GOVD_FIRSTPRIVATE
+                          | GOVD_LASTPRIVATE | GOVD_REDUCTION | GOVD_LOCAL)
+ };
+@@ -1234,7 +1235,7 @@ gimplify_bind_expr (tree *expr_p, gimple
+         struct gimplify_omp_ctx *ctx = gimplify_omp_ctxp;
+         /* Mark variable as local.  */
+-        if (ctx && !is_global_var (t)
++        if (ctx
+             && (! DECL_SEEN_IN_BIND_EXPR_P (t)
+                 || splay_tree_lookup (ctx->variables,
+                                       (splay_tree_key) t) == NULL))
+@@ -5339,18 +5340,36 @@ omp_notice_threadprivate_variable (struc
+ {
+   splay_tree_node n;
+-  if (ctx->region_type != ORT_UNTIED_TASK)
++  while (ctx && ctx->region_type == ORT_WORKSHARE)
++    {
++      n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
++      if (n != NULL)
++      {
++        gcc_assert (n->value & GOVD_LOCAL);
++        return false;
++      }
++      ctx = ctx->outer_context;
++    }
++  if (ctx == NULL)
+     return false;
++
+   n = splay_tree_lookup (ctx->variables, (splay_tree_key)decl);
+   if (n == NULL)
++    n = splay_tree_insert (ctx->variables, (splay_tree_key)decl,
++                         DECL_CONTEXT (decl) == current_function_decl
++                         ? GOVD_SHARED | GOVD_SEEN : 0);
++  if (ctx->region_type == ORT_UNTIED_TASK
++      && (n->value & GOVD_THREADPRIVATE_WARNED) == 0)
+     {
+       error ("threadprivate variable %qs used in untied task",
+            IDENTIFIER_POINTER (DECL_NAME (decl)));
+       error ("%Henclosing task", &ctx->location);
+-      splay_tree_insert (ctx->variables, (splay_tree_key)decl, 0);
++      n->value |= GOVD_THREADPRIVATE_WARNED;
+     }
+   if (decl2)
+-    splay_tree_insert (ctx->variables, (splay_tree_key)decl2, 0);
++    splay_tree_insert (ctx->variables, (splay_tree_key)decl2,
++                     DECL_CONTEXT (decl2) == current_function_decl
++                     ? GOVD_SHARED | GOVD_SEEN : 0);
+   return false;
+ }
+@@ -5779,7 +5798,9 @@ gimplify_adjust_omp_clauses_1 (splay_tre
+               break;
+             ctx = ctx->outer_context;
+           }
+-        if (ctx == NULL)
++        if (ctx == NULL
++            && (DECL_CONTEXT (decl) != current_function_decl
++                || gimplify_omp_ctxp->region_type == ORT_WORKSHARE))
+           return 0;
+       }
+       code = OMP_CLAUSE_SHARED;
+--- gcc/omp-low.c.jj   2010-06-11 11:06:00.913659301 +0200
++++ gcc/omp-low.c      2010-07-26 10:45:15.866229447 +0200
+@@ -2222,6 +2222,17 @@ lower_rec_input_clauses (tree clauses, g
+               continue;
+             break;
+           case OMP_CLAUSE_SHARED:
++            if (pass == 0
++                && is_global_var (OMP_CLAUSE_DECL (c))
++                && (DECL_CONTEXT (OMP_CLAUSE_DECL (c))
++                    == current_function_decl)
++                && is_taskreg_ctx (ctx)
++                && !DECL_IGNORED_P (OMP_CLAUSE_DECL (c)))
++              {
++                new_var = omp_copy_decl_1 (OMP_CLAUSE_DECL (c), ctx);
++                SET_DECL_VALUE_EXPR (new_var, OMP_CLAUSE_DECL (c));
++                DECL_HAS_VALUE_EXPR_P (new_var) = 1;
++              }
+             if (maybe_lookup_decl (OMP_CLAUSE_DECL (c), ctx) == NULL)
+               {
+                 gcc_assert (is_global_var (OMP_CLAUSE_DECL (c)));
+--- gcc/testsuite/gcc.dg/gomp/tls-3.c.jj       2010-07-26 10:45:15.868228753 +0200
++++ gcc/testsuite/gcc.dg/gomp/tls-3.c  2010-07-26 10:45:15.868228753 +0200
+@@ -0,0 +1,21 @@
++/* { dg-do compile } */
++/* { dg-require-effective-target tls_native } */
++
++int thr;
++#pragma omp threadprivate(thr)
++
++void
++foo (void)
++{
++  #pragma omp task untied     /* { dg-error "enclosing task" } */
++  {
++    static int thr2;
++    #pragma omp threadprivate(thr2)
++    static int thr3;
++    #pragma omp threadprivate(thr3)
++    thr++;    /* { dg-error "used in untied task" } */
++    thr2++;   /* { dg-error "used in untied task" } */
++    thr++;
++    thr2++;
++  }
++}
diff --git a/src/patches/gcc/gcc44-rh610785.patch b/src/patches/gcc/gcc44-rh610785.patch
new file mode 100644 (file)
index 0000000..91d0934
--- /dev/null
@@ -0,0 +1,74 @@
+2010-07-07  Jakub Jelinek  <jakub@redhat.com>
+
+       * tree-sra.c (sra_build_assignment): Don't add BIT_XOR_EXPR/MINUS_EXPR
+       of signbit if signbit is the most significant bit of utype already.
+
+       * gcc.c-torture/execute/20100707-1.c: New test.
+
+--- gcc/tree-sra.c.jj  2010-05-13 13:08:52.000000000 +0200
++++ gcc/tree-sra.c     2010-07-06 19:50:09.000000000 +0200
+@@ -2211,7 +2211,10 @@ sra_build_assignment (tree dst, tree src
+       /* Perform sign extension, if required.
+        ???  This should never be necessary.  */
+-      if (!unsignedp)
++      if (!unsignedp
++        && (TREE_INT_CST_LOW (width) != TYPE_PRECISION (utype)
++            || (TREE_INT_CST_LOW (width)
++                != GET_MODE_BITSIZE (TYPE_MODE (utype)))))
+       {
+         tree signbit = int_const_binop (LSHIFT_EXPR,
+                                         build_int_cst_wide (utype, 1, 0),
+--- gcc/testsuite/gcc.c-torture/execute/20100707-1.c   2010-05-27 15:41:40.446237053 +0200
++++ gcc/testsuite/gcc.c-torture/execute/20100707-1.c   2010-07-06 13:55:35.000000000 +0200
+@@ -0,0 +1,50 @@
++struct S { int s; };
++struct T { int w; int h; };
++int vr;
++
++inline struct T
++bar (const struct S * x)
++{
++  struct T t;
++  t.w = vr;
++  t.h = x->s;
++  return t;
++}
++
++__attribute__ ((noinline))
++void foo (struct S * w, unsigned char *x, int y, int *z[2])
++{
++  struct T t;
++  int i, j, k;
++  t = bar (w);
++  k = t.w + 2;
++  for (i = 0; i <= t.h; i++)
++    {
++      int *u = z[i > 0] + 1;
++      unsigned char *v;
++      int q = 0;
++      v = x + k * i + 1;
++      for (j = 0; j < t.w; j++)
++      {
++        int m = u[j];
++        if (m > y && !q && v[j - k] != 2)
++          v[j] = 0;
++      }
++    }
++}
++
++unsigned char b[64];
++
++int
++main (void)
++{
++  int v[32], *z[2];
++  struct S s;
++  __builtin_memset (v, 0, sizeof (v));
++  vr = 16;
++  s.s = 16;
++  z[0] = v;
++  z[1] = v;
++  foo (&s, b + 32, -1, z);
++  return 0;
++}
diff --git a/src/patches/gcc/gcc44-unwind-debug-hook.patch b/src/patches/gcc/gcc44-unwind-debug-hook.patch
new file mode 100644 (file)
index 0000000..9b7c59e
--- /dev/null
@@ -0,0 +1,51 @@
+2010-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * unwind-dw2.c (_Unwind_DebugHook): Add used attribute.
+
+2009-05-27  Tom Tromey  <tromey@redhat.com>
+
+       * unwind-dw2.c (_Unwind_DebugHook): New function.
+       (uw_install_context): Call _Unwind_DebugHook.
+
+--- gcc/unwind-dw2.c   (revision 147933)
++++ gcc/unwind-dw2.c   (revision 147934)
+@@ -1473,18 +1473,32 @@ uw_init_context_1 (struct _Unwind_Contex
+   context->ra = __builtin_extract_return_addr (outer_ra);
+ }
++static void _Unwind_DebugHook (void *, void *)
++  __attribute__ ((__noinline__, __used__));
++
++/* This function is called during unwinding.  It is intended as a hook
++   for a debugger to intercept exceptions.  CFA is the CFA of the
++   target frame.  HANDLER is the PC to which control will be
++   transferred.  */
++static void
++_Unwind_DebugHook (void *cfa __attribute__ ((__unused__)),
++                 void *handler __attribute__ ((__unused__)))
++{
++  asm ("");
++}
+ /* Install TARGET into CURRENT so that we can return to it.  This is a
+    macro because __builtin_eh_return must be invoked in the context of
+    our caller.  */
+-#define uw_install_context(CURRENT, TARGET)                            \
+-  do                                                                   \
+-    {                                                                  \
+-      long offset = uw_install_context_1 ((CURRENT), (TARGET));                \
+-      void *handler = __builtin_frob_return_addr ((TARGET)->ra);       \
+-      __builtin_eh_return (offset, handler);                           \
+-    }                                                                  \
++#define uw_install_context(CURRENT, TARGET)                           \
++  do                                                                  \
++    {                                                                 \
++      long offset = uw_install_context_1 ((CURRENT), (TARGET));               \
++      void *handler = __builtin_frob_return_addr ((TARGET)->ra);      \
++      _Unwind_DebugHook ((TARGET)->cfa, handler);                     \
++      __builtin_eh_return (offset, handler);                          \
++    }                                                                 \
+   while (0)
+ static long
diff --git a/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch b/src/patches/glibc-2.3.6-dont_use_origin_on_privil_exec.patch
deleted file mode 100644 (file)
index 26c8ac8..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-diff -Naur glibc-2.3.6.org/elf/dl-load.c glibc-2.3.6/elf/dl-load.c
---- glibc-2.3.6.org/elf/dl-load.c      2005-04-06 04:50:10.000000000 +0200
-+++ glibc-2.3.6/elf/dl-load.c  2010-10-19 17:41:09.000000000 +0200
-@@ -176,8 +176,7 @@
- static size_t
--is_dst (const char *start, const char *name, const char *str,
--      int is_path, int secure)
-+is_dst (const char *start, const char *name, const char *str, int is_path)
- {
-   size_t len;
-   bool is_curly = false;
-@@ -206,11 +205,6 @@
-          && (!is_path || name[len] != ':'))
-     return 0;
--  if (__builtin_expect (secure, 0)
--      && ((name[len] != '\0' && (!is_path || name[len] != ':'))
--        || (name != start + 1 && (!is_path || name[-2] != ':'))))
--    return 0;
--
-   return len;
- }
-@@ -225,13 +219,12 @@
-     {
-       size_t len;
--      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
--       is $ORIGIN alone) and it must always appear first in path.  */
-+      /* $ORIGIN is not expanded for SUID/GUID programs.  */
-       ++name;
--      if ((len = is_dst (start, name, "ORIGIN", is_path,
--                       INTUSE(__libc_enable_secure))) != 0
--        || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
--        || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+      if (((len = is_dst (start, name, "ORIGIN", is_path)) != 0
-+         && !INTUSE(__libc_enable_secure))
-+        || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
-+        || (len = is_dst (start, name, "LIB", is_path)) != 0)
-       ++cnt;
-       name = strchr (name + len, '$');
-@@ -263,12 +256,17 @@
-         size_t len;
-         ++name;
--        if ((len = is_dst (start, name, "ORIGIN", is_path,
--                           INTUSE(__libc_enable_secure))) != 0)
--          repl = l->l_origin;
--        else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
-+        if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
-+          {
-+              // Ignore this path at SUID/GUID
-+              if (INTUSE(__libc_enable_secure))
-+                      repl = (const char *) -1;
-+              else
-+              repl = l->l_origin;
-+          }
-+        else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
-           repl = GLRO(dl_platform);
--        else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
-+        else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
-           repl = DL_DST_LIB;
-         if (repl != NULL && repl != (const char *) -1)
diff --git a/src/patches/glibc-2.3.6-inotify-1.patch b/src/patches/glibc-2.3.6-inotify-1.patch
deleted file mode 100644 (file)
index 30af30c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org>
-Date: 2006-09-01
-Initial Package Version: 2.3.6
-Origin: udev-096, syscall functions generated by Alexander E. Patrakov
-Upstream Status: Added to syscall list in 2.4
-Description: Adds inotify syscall functions for use in userspace. Minimal
-             syscall functions borrowed from udev local implementation to
-             provide system inotify support.
-Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify
-
-diff -pNur glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h
---- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/inotify.h 1970-01-01 00:00:00.000000000 +0000
-+++ glibc-2.3.6/sysdeps/unix/sysv/linux/inotify.h      2006-08-01 05:48:27.000000000 +0000
-@@ -0,0 +1,31 @@
-+/*
-+ * Inode based directory notification for Linux
-+ *
-+ * Copyright (C) 2005 John McCutchan
-+ */
-+
-+#ifndef _SYS_INOTIFY_H
-+#define _SYS_INOTIFY_H
-+
-+#include <stdint.h>
-+#include <linux/inotify.h>
-+#include <asm/unistd.h>
-+
-+extern long int syscall (long int __sysno, ...) __THROW;
-+
-+static inline int inotify_init(void)
-+{
-+      return syscall(__NR_inotify_init);
-+}
-+      
-+static inline int inotify_add_watch(int fd, const char *name, uint32_t mask)
-+{
-+      return syscall(__NR_inotify_add_watch, fd, name, mask);
-+}
-+
-+static inline int inotify_rm_watch (int fd, uint32_t wd)
-+{
-+      return syscall(__NR_inotify_rm_watch, fd, wd);
-+}
-+              
-+#endif        /* _SYS_INOTIFY_H */
diff --git a/src/patches/glibc-2.3.6-linux_types-1.patch b/src/patches/glibc-2.3.6-linux_types-1.patch
deleted file mode 100644 (file)
index a365b81..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-Submitted By: DJ Lucas <dj at linuxfromscratch dot org>
-Date: 2006-04-05
-Initial Package Version: 2.3.6
-Upstream Status: Committed
-Origin: Glibc CVS
-Description: Fixes build errors where linux/types.h is included after sys/kd.h.
-
-diff -Naur glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h
---- glibc-2.3.6-orig/sysdeps/unix/sysv/linux/sys/kd.h  2001-07-05 23:56:21.000000000 -0500
-+++ glibc-2.3.6/sysdeps/unix/sysv/linux/sys/kd.h       2006-04-04 21:40:50.000000000 -0500
-@@ -1,4 +1,4 @@
--/* Copyright (C) 1996, 1997 Free Software Foundation, Inc.
-+/* Copyright (C) 1996, 1997, 2005 Free Software Foundation, Inc.
-    This file is part of the GNU C Library.
-    The GNU C Library is free software; you can redistribute it and/or
-@@ -21,9 +21,15 @@
- /* Make sure the <linux/types.h> header is not loaded.  */
- #ifndef _LINUX_TYPES_H
--# define _LINUX_TYPES_H       1
-+# define _LINUX_TYPES_H               1
-+# define __undef_LINUX_TYPES_H
- #endif
- #include <linux/kd.h>
-+#ifdef __undef_LINUX_TYPES_H
-+# undef _LINUX_TYPES_H
-+# undef __undef_LINUX_TYPES_H
-+#endif
-+
- #endif        /* sys/kd.h */
diff --git a/src/patches/glibc-arm-dont-use-swp.patch b/src/patches/glibc-arm-dont-use-swp.patch
new file mode 100644 (file)
index 0000000..293c20c
--- /dev/null
@@ -0,0 +1,305 @@
+commit 1ba025a9a21eda65d8c36cc0dbb51d214a3ebb1a
+Author: Daniel Jacobowitz <dan@codesourcery.com>
+Date:   Mon Jun 2 01:57:03 2008 +0000
+
+    2008-06-01  Paul Brook  <paul@codesourcery.com>
+           Zack Weinberg  <zack@codesourcery.com>
+           Daniel Jacobowitz  <dan@codesourcery.com>
+    
+       * sysdeps/arm/nptl/pthread_spin_lock.S,
+       sysdeps/arm/nptl/pthread_spin_trylock.S: Delete.
+       * sysdeps/arm/nptl/pthread_spin_lock.c,
+       sysdeps/arm/nptl/pthread_spin_trylock.c: New files using
+       atomic_compare_and_exchange_val_acq to take spinlocks.
+       * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h (lll_trylock,
+       lll_cond_trylock): Use atomic_compare_and_exchange_val_acq.
+       (__lll_trylock, __lll_cond_trylock): Delete.
+       * sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+       (atomic_exchange_acq): Delete.
+       (atomic_full_barrier): Define.
+       (__arch_compare_and_exchange_val_32_acq): Use named operands.
+       * sysdeps/unix/sysv/linux/arm/eabi/configure.in: Update
+       arch_minimum_kernel to 2.6.16.
+       * sysdeps/unix/sysv/linux/arm/eabi/configure: Regenerated.
+
+diff --git a/sysdeps/arm/nptl/pthread_spin_lock.S b/sysdeps/arm/nptl/pthread_spin_lock.S
+deleted file mode 100644
+index bd6adf7..0000000
+--- a/sysdeps/arm/nptl/pthread_spin_lock.S
++++ /dev/null
+@@ -1,31 +0,0 @@
+-/* Copyright (C) 2005 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, write to the Free
+-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+-   02111-1307 USA.  */
+-
+-#include <sysdep.h>
+-
+-      .text
+-      .align  4
+-
+-ENTRY (pthread_spin_lock)
+-      mov     r1, #1
+-1:    swp     r2, r1, [r0]
+-      teq     r2, #0
+-      bne     1b
+-      mov     r0, #0
+-      PSEUDO_RET_NOERRNO
+-END (pthread_spin_lock)
+diff --git a/sysdeps/arm/nptl/pthread_spin_lock.c b/sysdeps/arm/nptl/pthread_spin_lock.c
+new file mode 100644
+index 0000000..1217b89
+--- /dev/null
++++ b/sysdeps/arm/nptl/pthread_spin_lock.c
+@@ -0,0 +1,30 @@
++/* Copyright (C) 2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <atomic.h>
++#include "pthreadP.h"
++
++int
++pthread_spin_lock (pthread_spinlock_t *lock)
++{
++  while (atomic_compare_and_exchange_val_acq (lock, 1, 0) != 0)
++   while (*lock != 0)
++    ;
++
++  return 0;
++}
+diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.S b/sysdeps/arm/nptl/pthread_spin_trylock.S
+deleted file mode 100644
+index 8593150..0000000
+--- a/sysdeps/arm/nptl/pthread_spin_trylock.S
++++ /dev/null
+@@ -1,34 +0,0 @@
+-/* Copyright (C) 2005 Free Software Foundation, Inc.
+-   This file is part of the GNU C Library.
+-
+-   The GNU C Library is free software; you can redistribute it and/or
+-   modify it under the terms of the GNU Lesser General Public
+-   License as published by the Free Software Foundation; either
+-   version 2.1 of the License, or (at your option) any later version.
+-
+-   The GNU C Library is distributed in the hope that it will be useful,
+-   but WITHOUT ANY WARRANTY; without even the implied warranty of
+-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-   Lesser General Public License for more details.
+-
+-   You should have received a copy of the GNU Lesser General Public
+-   License along with the GNU C Library; if not, write to the Free
+-   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+-   02111-1307 USA.  */
+-
+-#define _ERRNO_H 1
+-#include <bits/errno.h>
+-
+-#include <sysdep.h>
+-
+-      .text
+-      .align  4
+-
+-ENTRY (pthread_spin_trylock)
+-      mov     r1, #1
+-      swp     r2, r1, [r0]
+-      teq     r2, #0
+-      moveq   r0, #0
+-      movne   r0, #EBUSY
+-      PSEUDO_RET_NOERRNO
+-END (pthread_spin_trylock)
+diff --git a/sysdeps/arm/nptl/pthread_spin_trylock.c b/sysdeps/arm/nptl/pthread_spin_trylock.c
+new file mode 100644
+index 0000000..fb998d2
+--- /dev/null
++++ b/sysdeps/arm/nptl/pthread_spin_trylock.c
+@@ -0,0 +1,27 @@
++/* Copyright (C) 2008 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <atomic.h>
++#include "pthreadP.h"
++
++int
++pthread_spin_trylock (pthread_spinlock_t *lock)
++{
++  return atomic_compare_and_exchange_val_acq (lock, 1, 0) ? EBUSY : 0;
++}
+diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure b/sysdeps/unix/sysv/linux/arm/eabi/configure
+index ab83048..28fb9ef 100644
+--- a/sysdeps/unix/sysv/linux/arm/eabi/configure
++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure
+@@ -1,5 +1,5 @@
+ # This file is generated from configure.in by Autoconf.  DO NOT EDIT!
+  # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
+-arch_minimum_kernel=2.6.14
++arch_minimum_kernel=2.6.16
+ libc_cv_gcc_unwind_find_fde=no
+diff --git a/sysdeps/unix/sysv/linux/arm/eabi/configure.in b/sysdeps/unix/sysv/linux/arm/eabi/configure.in
+index 83aa8fc..d1fb7f4 100644
+--- a/sysdeps/unix/sysv/linux/arm/eabi/configure.in
++++ b/sysdeps/unix/sysv/linux/arm/eabi/configure.in
+@@ -1,5 +1,5 @@
+ GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
+ # Local configure fragment for sysdeps/unix/sysv/linux/arm/eabi.
+-arch_minimum_kernel=2.6.14
++arch_minimum_kernel=2.6.16
+ libc_cv_gcc_unwind_find_fde=no
+diff --git a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+index 71ed714..247ddd3 100644
+--- a/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
++++ b/sysdeps/unix/sysv/linux/arm/nptl/bits/atomic.h
+@@ -37,22 +37,12 @@ typedef uintmax_t uatomic_max_t;
+ void __arm_link_error (void);
+-#define atomic_exchange_acq(mem, newvalue)                                  \
+-  ({ __typeof (*mem) result;                                                \
+-     if (sizeof (*mem) == 1)                                                \
+-       __asm__ __volatile__ ("swpb %0, %1, [%2]"                            \
+-                           : "=&r,&r" (result)                              \
+-                           : "r,0" (newvalue), "r,r" (mem) : "memory");     \
+-     else if (sizeof (*mem) == 4)                                           \
+-       __asm__ __volatile__ ("swp %0, %1, [%2]"                                     \
+-                           : "=&r,&r" (result)                              \
+-                           : "r,0" (newvalue), "r,r" (mem) : "memory");     \
+-     else                                                                   \
+-       {                                                                    \
+-       result = 0;                                                          \
+-       abort ();                                                            \
+-       }                                                                    \
+-     result; })
++#define atomic_full_barrier() \
++     __asm__ __volatile__                                                   \
++           ("mov\tip, #0xffff0fff\n\t"                                      \
++            "mov\tlr, pc\n\t"                                               \
++            "add\tpc, ip, #(0xffff0fa0 - 0xffff0fff)"                       \
++            : : : "ip", "lr", "cc", "memory");
+ /* Atomic compare and exchange.  This sequence relies on the kernel to
+    provide a compare and exchange operation which is atomic on the
+@@ -76,18 +66,19 @@ void __arm_link_error (void);
+      register __typeof (oldval) a_tmp asm ("r3");                           \
+      register __typeof (oldval) a_oldval2 asm ("r4") = (oldval);            \
+      __asm__ __volatile__                                                   \
+-           ("0:\tldr\t%1,[%3]\n\t"                                          \
+-            "cmp\t%1, %4\n\t"                                               \
++           ("0:\tldr\t%[tmp],[%[ptr]]\n\t"                                  \
++            "cmp\t%[tmp], %[old2]\n\t"                                      \
+             "bne\t1f\n\t"                                                   \
+-            "mov\t%0, %4\n\t"                                               \
+-            "mov\t%1, #0xffff0fff\n\t"                                      \
++            "mov\t%[old], %[old2]\n\t"                                      \
++            "mov\t%[tmp], #0xffff0fff\n\t"                                  \
+             "mov\tlr, pc\n\t"                                               \
+-            "add\tpc, %1, #(0xffff0fc0 - 0xffff0fff)\n\t"                   \
++            "add\tpc, %[tmp], #(0xffff0fc0 - 0xffff0fff)\n\t"               \
+             "bcc\t0b\n\t"                                                   \
+-            "mov\t%1, %4\n\t"                                               \
++            "mov\t%[tmp], %[old2]\n\t"                                      \
+             "1:"                                                            \
+-            : "=&r" (a_oldval), "=&r" (a_tmp)                               \
+-            : "r" (a_newval), "r" (a_ptr), "r" (a_oldval2)                  \
++            : [old] "=&r" (a_oldval), [tmp] "=&r" (a_tmp)                   \
++            : [new] "r" (a_newval), [ptr] "r" (a_ptr),                      \
++              [old2] "r" (a_oldval2)                                        \
+             : "ip", "lr", "cc", "memory");                                  \
+      a_tmp; })
+diff --git a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+index f48e867..889f97c 100644
+--- a/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
++++ b/sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.h
+@@ -126,43 +126,11 @@
+   })
+-static inline int __attribute__((always_inline))
+-__lll_mutex_trylock (int *futex)
+-{
+-  int flag = 1, old;
+-  asm volatile (
+-    "\tswp    %[old], %[flag], [%[futex]]     @ try to take the lock\n"
+-    "\tcmp    %[old], #1                      @ check old lock value\n"
+-    "\tmovlo  %[flag], #0                     @ if we got it, return 0\n"
+-    "\tswphi  %[flag], %[old], [%[futex]]     @ if it was contested,\n"
+-    "                                         @ restore the contested flag,\n"
+-    "                                         @ and check whether that won."
+-    : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old)
+-    : : "memory" );
+-
+-  return flag;
+-}
+-#define lll_mutex_trylock(lock)       __lll_mutex_trylock (&(lock))
+-
+-
+-static inline int __attribute__((always_inline))
+-__lll_mutex_cond_trylock (int *futex)
+-{
+-  int flag = 2, old;
+-  asm volatile (
+-    "\tswp    %[old], %[flag], [%[futex]]     @ try to take the lock\n"
+-    "\tcmp    %[old], #1                      @ check old lock value\n"
+-    "\tmovlo  %[flag], #0                     @ if we got it, return 0\n"
+-    "\tswphi  %[flag], %[old], [%[futex]]     @ if it was contested,\n"
+-    "                                         @ restore the contested flag,\n"
+-    "                                         @ and check whether that won."
+-    : [futex] "+&r" (futex), [flag] "+&r" (flag), [old] "=&r" (old)
+-    : : "memory" );
+-
+-  return flag;
+-}
+-#define lll_mutex_cond_trylock(lock)  __lll_mutex_cond_trylock (&(lock))
++#define lll_mutex_trylock(lock)       \
++  atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
++#define lll_mutex_cond_trylock(lock)  \
++  atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
+ #define __lll_robust_trylock(futex, id) \
+   (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
diff --git a/src/patches/glibc-cfi-entry-not-closed.patch b/src/patches/glibc-cfi-entry-not-closed.patch
new file mode 100644 (file)
index 0000000..02cfe8f
--- /dev/null
@@ -0,0 +1,23 @@
+--- glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S       2011-09-08 22:22:41.000000000 +0400
++++ glibc-2.12.2/ports/sysdeps/unix/sysv/linux/arm/sigrestorer.S       2011-09-08 21:44:49.000000000 +0400
+@@ -18,16 +18,20 @@ 
+ #include <sysdep.h>
++        .text
++
+ /* If no SA_RESTORER function was specified by the application we use
+    one of these.  This avoids the need for the kernel to synthesise a return
+    instruction on the stack, which would involve expensive cache flushes. */
+ ENTRY(__default_sa_restorer)
+       swi     SYS_ify(sigreturn)
++PSEUDO_END (__default_sa_restorer)
+ #ifdef __NR_rt_sigreturn
+ ENTRY(__default_rt_sa_restorer)
+       swi     SYS_ify(rt_sigreturn)
++PSEUDO_END (__default_rt_sa_restorer)
+ #endif
diff --git a/src/patches/glibc-ports-avoid-using-asm-procinfo.patch b/src/patches/glibc-ports-avoid-using-asm-procinfo.patch
deleted file mode 100644 (file)
index 53a6d1b..0000000
+++ /dev/null
@@ -1,340 +0,0 @@
-#
-# Submitted-By: Marc Kleine-Budde, 2006-11-22
-# Committed-By: Marc Kleine-Budde
-#
-# Error:
-#
-# try to compile glibc-ports with sanitized headers
-#
-# arm-v4t-linux-gnueabi-gcc ../ports/sysdeps/arm/eabi/setfpucw.c -c
-#-std=gnu99 -O2 -Wall -Winline -Wwrite-strings -fmerge-all-constants
-#-g -Wstrict-prototypes -Wno-uninitialized -D__NO_MATH_INLINES
-#-D__LIBC_INTERNAL_MATH_INLINES -DNO_LONG_DOUBLE
-#-D_Mlong_double_=double -I../include
-#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math
-#-I/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build
-#-I../ports/sysdeps/arm/elf
-#-I../ports/sysdeps/unix/sysv/linux/arm/eabi/nptl
-#-I../ports/sysdeps/unix/sysv/linux/arm/eabi
-#-I../ports/sysdeps/unix/sysv/linux/arm/nptl
-#-I../ports/sysdeps/unix/sysv/linux/arm
-#-I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux
-#-I../nptl/sysdeps/pthread -I../sysdeps/pthread
-#-I../sysdeps/unix/sysv/linux -I../sysdeps/gnu
-#-I../sysdeps/unix/common -I../sysdeps/unix/mman
-#-I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv
-#-I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv
-#-I../ports/sysdeps/unix/arm -I../ports/sysdeps/unix
-#-I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix
-#-I../ports/sysdeps/arm/eabi -I../ports/sysdeps/arm/nptl
-#-I../ports/sysdeps/arm -I../sysdeps/wordsize-32
-#-I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64
-#-I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic
-#-I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem
-#/ptx/work/mkl/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/bin/../lib/gcc/arm-v4t-linux-gnueabi/4.1.1/include
-#-isystem
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/install/arm-v4t-linux-gnueabi/gcc-4.1.1-glibc-2.5-linux-2.6.19-rc6-s/sysroot-arm-v4t-linux-gnueabi/usr/include
-#-D_LIBC_REENTRANT -include ../include/libc-symbols.h -o
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o
-#-MD -MP -MF
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o.dt
-#-MT
-#/home/mkl/pengutronix/ptxdist/build/OSELAS.Toolchain-trunk-headers/build-target/glibc-2.5-build/math/setfpucw.o
-# ../ports/sysdeps/arm/eabi/setfpucw.c:26:26: error: asm/procinfo.h: No such file or directory
-# ../ports/sysdeps/arm/eabi/setfpucw.c: In function '__setfpucw':
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: 'HWCAP_VFP' undeclared (first use in this function)
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: (Each undeclared identifier is reported only once
-# ../ports/sysdeps/arm/eabi/setfpucw.c:31: error: for each function it appears in.)
-#
-# Description:
-#
-# http://sourceware.org/ml/libc-ports/2006-10/msg00040.html
-#
-# State:
-#
-# added to glibc-ports on 10/31/2006 06:20 PM
-#
-Date: Tue, 24 Oct 2006 19:25:12 +0000 (UTC)
-From: "Joseph S. Myers" <joseph@codesourcery.com>
-To: libc-ports@sourceware.org
-Subject: Avoid using asm/procinfo.h
-
-I previously noted
-<http://sourceware.org/ml/libc-ports/2006-08/msg00023.html> that the
-use of <asm/procinfo.h>, a Linux-specific kernel header, in
-sysdeps/arm/eabi, is an abstraction violation, and that in principle
-all the files in sysdeps/arm/eabi should use sysdep.h not
-asm/procinfo.h for HWCAP_VFP.
-
-The ARM kernel maintainers have now declared that <asm/procinfo.h>
-should not be used outside the kernel at all (and in particular that
-headers_install is correct in not exporting it), and that these
-definitions will move to a different kernel header.  This gives a
-concrete reason for making the change to use glibc's internal
-definitions, which this patch does, thereby allowing glibc to build
-with the exported headers.
-
-2006-10-24  Joseph S. Myers  <joseph@codesourcery.com>
-
-       * sysdeps/arm/eabi/fclrexcpt.c: Include <sysdep.h> instead of
-       <asm/procinfo.h>.  Use HWCAP_ARM_VFP instead of HWCAP_VFP.
-       * sysdeps/arm/eabi/fedisblxcpt.c: Likewise.
-       * sysdeps/arm/eabi/feenablxcpt.c: Likewise.
-       * sysdeps/arm/eabi/fegetenv.c: Likewise.
-       * sysdeps/arm/eabi/fegetexcept.c: Likewise.
-       * sysdeps/arm/eabi/fegetround.c: Likewise.
-       * sysdeps/arm/eabi/feholdexcpt.c: Likewise.
-       * sysdeps/arm/eabi/fesetenv.c: Likewise.
-       * sysdeps/arm/eabi/fesetround.c: Likewise.
-       * sysdeps/arm/eabi/fraiseexcpt.c: Likewise.
-       * sysdeps/arm/eabi/fsetexcptflg.c: Likewise.
-       * sysdeps/arm/eabi/ftestexcept.c: Likewise.
-       * sysdeps/arm/eabi/setfpucw.c: Likewise.
-
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fclrexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fclrexcpt.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __feclearexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fedisblxcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fedisblxcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fedisableexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int new_exc, old_exc;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feenablxcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/feenablxcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feenableexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int new_exc, old_exc;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetenv.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetenv.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fegetenv (fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-       _FPU_GETCW (temp);
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetexcept.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetexcept.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fegetexcept (void)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fegetround.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fegetround.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fegetround (void)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/feholdexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/feholdexcpt.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feholdexcept (fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned long int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetenv.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetenv.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fesetenv (const fenv_t *envp)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       unsigned int temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fesetround.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fesetround.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fesetround (int round)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fpu_control_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fraiseexcpt.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fraiseexcpt.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- feraiseexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       int fpscr;
-       const float fp_zero = 0.0, fp_one = 1.0, fp_max = FLT_MAX,
-Index: glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/fsetexcptflg.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/fsetexcptflg.c
-@@ -24,12 +24,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- __fesetexceptflag (const fexcept_t *flagp, int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fexcept_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/ftestexcept.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/ftestexcept.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- int
- fetestexcept (int excepts)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fexcept_t temp;
-Index: glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c
-===================================================================
---- glibc-ports-2.5.orig/sysdeps/arm/eabi/setfpucw.c
-+++ glibc-ports-2.5/sysdeps/arm/eabi/setfpucw.c
-@@ -23,12 +23,12 @@
- #include <unistd.h>
- #include <ldsodefs.h>
- #include <dl-procinfo.h>
--#include <asm/procinfo.h>
-+#include <sysdep.h>
- void
- __setfpucw (fpu_control_t set)
- {
--  if (GLRO (dl_hwcap) & HWCAP_VFP)
-+  if (GLRO (dl_hwcap) & HWCAP_ARM_VFP)
-     {
-       fpu_control_t cw;
diff --git a/src/patches/glibc-remove-ctors-dtors-output-sections.patch b/src/patches/glibc-remove-ctors-dtors-output-sections.patch
new file mode 100644 (file)
index 0000000..91155c9
--- /dev/null
@@ -0,0 +1,150 @@
+From 4a531bb0b3b582cb693de9f76d2d97d970f9a5d5 Mon Sep 17 00:00:00 2001
+From: H.J. Lu <hongjiu.lu@intel.com>
+Date: Fri, 24 Dec 2010 20:14:37 -0500
+Subject: [PATCH] Remove `.ctors' and `.dtors' output sections
+
+---
+ config.h.in                            |    3 +
+ configure.in                           |    2 +
+ elf/sofini.c                           |    2 +
+ elf/soinit.c                           |    2 +
+ sysdeps/i386/init-first.c              |    2 +
+ sysdeps/mach/hurd/i386/init-first.c    |    2 +-
+ sysdeps/mach/hurd/powerpc/init-first.c |    2 +-
+ sysdeps/sh/init-first.c                |    2 +
+ sysdeps/unix/sysv/linux/init-first.c   |    2 +-
+ 9 files changed, 16 insertions(+), 3 deletions(-)
+
+diff --git a/config.h.in b/config.h.in
+index 18bf01a..9e797eb 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -201,6 +201,9 @@
+ /* Define if multi-arch DSOs should be generated.  */
+ #undef USE_MULTIARCH
++/* Define if `.ctors' and `.dtors' sections shouldn't be used.  */
++#undef        NO_CTORS_DTORS_SECTIONS
++
+ /*
\f */
+diff --git a/configure.in b/configure.in
+index d8cd5f1..ad25b9b 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1497,6 +1497,8 @@ EOF
+   rm -f conftest*])
+   if test $libc_cv_initfini_array != yes; then
+     AC_MSG_ERROR([Need linker with .init_array/.fini_array support.])
++  elif AC_TRY_COMMAND([${CC-cc} -Wl,--verbose 2>&1|grep SORT_BY_INIT_PRIORITY 1>&AS_MESSAGE_LOG_FD]); then
++    AC_DEFINE(NO_CTORS_DTORS_SECTIONS)
+   fi
+   AC_CACHE_CHECK(for libunwind-support in compiler,
+diff --git a/elf/sofini.c b/elf/sofini.c
+index 5e06f0c..13e74b7 100644
+--- a/elf/sofini.c
++++ b/elf/sofini.c
+@@ -1,12 +1,14 @@
+ /* Finalizer module for ELF shared C library.  This provides terminating
+    null pointer words in the `.ctors' and `.dtors' sections.  */
++#ifndef NO_CTORS_DTORS_SECTIONS
+ static void (*const __CTOR_END__[1]) (void)
+      __attribute__ ((used, section (".ctors")))
+      = { 0 };
+ static void (*const __DTOR_END__[1]) (void)
+      __attribute__ ((used, section (".dtors")))
+      = { 0 };
++#endif
+ /* Terminate the frame unwind info section with a 4byte 0 as a sentinel;
+    this would be the 'length' field in a real FDE.  */
+diff --git a/elf/soinit.c b/elf/soinit.c
+index 6fecbb5..1db676a 100644
+--- a/elf/soinit.c
++++ b/elf/soinit.c
+@@ -3,6 +3,7 @@
+    the `.ctors' and `.dtors' sections so the lists are terminated, and
+    calling those lists of functions.  */
++#ifndef NO_CTORS_DTORS_SECTIONS
+ #include <libc-internal.h>
+ #include <stdlib.h>
+@@ -40,3 +41,4 @@ __libc_fini (void)
+ void (*_fini_ptr) (void) __attribute__ ((section (".fini_array")))
+      = &__libc_fini;
++#endif
+diff --git a/sysdeps/i386/init-first.c b/sysdeps/i386/init-first.c
+index c6355a8..2af042f 100644
+--- a/sysdeps/i386/init-first.c
++++ b/sysdeps/i386/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+   init (&argc);
++#ifndef NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
++#endif
+ }
+ #endif
+diff --git a/sysdeps/mach/hurd/i386/init-first.c b/sysdeps/mach/hurd/i386/init-first.c
+index f9a7a58..60823bd 100644
+--- a/sysdeps/mach/hurd/i386/init-first.c
++++ b/sysdeps/mach/hurd/i386/init-first.c
+@@ -92,7 +92,7 @@ posixland_init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (envp);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/mach/hurd/powerpc/init-first.c b/sysdeps/mach/hurd/powerpc/init-first.c
+index 20fa1d4..21b5054 100644
+--- a/sysdeps/mach/hurd/powerpc/init-first.c
++++ b/sysdeps/mach/hurd/powerpc/init-first.c
+@@ -82,7 +82,7 @@ posixland_init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (__environ);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+diff --git a/sysdeps/sh/init-first.c b/sysdeps/sh/init-first.c
+index d816625..1f3a821 100644
+--- a/sysdeps/sh/init-first.c
++++ b/sysdeps/sh/init-first.c
+@@ -59,7 +59,9 @@ _init (int argc, ...)
+ {
+   init (&argc);
++#ifndef NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
++#endif
+ }
+ #endif
+diff --git a/sysdeps/unix/sysv/linux/init-first.c b/sysdeps/unix/sysv/linux/init-first.c
+index 7b2333d..a60212f 100644
+--- a/sysdeps/unix/sysv/linux/init-first.c
++++ b/sysdeps/unix/sysv/linux/init-first.c
+@@ -93,7 +93,7 @@ _init (int argc, char **argv, char **envp)
+   __getopt_clean_environment (envp);
+ #endif
+-#ifdef SHARED
++#if defined SHARED && !defined NO_CTORS_DTORS_SECTIONS
+   __libc_global_ctors ();
+ #endif
+ }
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-resolv-stack_chk_fail.patch b/src/patches/glibc-resolv-stack_chk_fail.patch
new file mode 100644 (file)
index 0000000..00bb710
--- /dev/null
@@ -0,0 +1,35 @@
+From e057a1b5930ec538c2b8abbba700a436ef2c81d5 Mon Sep 17 00:00:00 2001
+From: Joseph Myers <joseph@codesourcery.com>
+Date: Wed, 21 Sep 2011 13:27:50 -0700
+Subject: [PATCH] Link libresolv.so with ld.so for __stack_chk_guard.
+
+---
+ resolv/Makefile |    8 +++++++-
+ 1 files changed, 7 insertions(+), 1 deletions(-)
+
+diff --git a/resolv/Makefile b/resolv/Makefile
+index ec3788f..b4287de 100644
+--- a/resolv/Makefile
++++ b/resolv/Makefile
+@@ -1,4 +1,5 @@
+-# Copyright (C) 1994-2001,2003,2004,2007,2008 Free Software Foundation, Inc.
++# Copyright (C) 1994-2001,2003,2004,2007,2008,2011
++#     Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # The GNU C Library is free software; you can redistribute it and/or
+@@ -88,6 +89,11 @@ CFLAGS-res_hconf.c = -fexceptions
+ # This ensures they will load libc.so for needed symbols if loaded by
+ # a statically-linked program that hasn't already loaded it.
+ $(objpfx)libresolv.so: $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a
++# Some hosts need '__stack_chk_guard', so pull in the definition from
++# ld.so if required.
++ifeq (yesyes,$(have-ssp)$(elf))
++LDLIBS-resolv.so += $(as-needed) $(elfobjdir)/ld.so $(no-as-needed)
++endif
+ # The DNS NSS modules needs the resolver.
+ $(objpfx)libnss_dns.so: $(objpfx)libresolv.so $(common-objpfx)libc.so \
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-test-installation.pl-libgcc_s.patch b/src/patches/glibc-test-installation.pl-libgcc_s.patch
new file mode 100644 (file)
index 0000000..a63d5d8
--- /dev/null
@@ -0,0 +1,97 @@
+From 6e236b92765cdafb46d19e4907471699accc8269 Mon Sep 17 00:00:00 2001
+From: Siddhesh Poyarekar <siddhesh@redhat.com>
+Date: Thu, 26 Apr 2012 09:18:48 +0530
+Subject: [PATCH] move libgcc_s soname definition to shlib-versions
+
+diff --git a/nptl/sysdeps/pthread/unwind-forcedunwind.c b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+index adce6e7..60dfbe6 100644
+--- a/nptl/sysdeps/pthread/unwind-forcedunwind.c
++++ b/nptl/sysdeps/pthread/unwind-forcedunwind.c
+@@ -21,7 +21,7 @@
+ #include <unwind.h>
+ #include <pthreadP.h>
+ #include <sysdep.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void *libgcc_s_handle;
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index c4f3d6d..1b22086 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+
+@@ -105,9 +105,10 @@ while (<SOVERSIONS>) {
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
+     # - it's just a test NSS module
++    # - We don't provide the libgcc so we don't test it
+     if ($name ne "nss_ldap" && $name ne "db1"
+       && !($name =~/^nss1_/) && $name ne "thread_db"
+-      && $name ne "nss_test1") {
++      && $name ne "nss_test1" && $name ne "libgcc_s") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+diff --git a/shlib-versions b/shlib-versions
+index c530a44..840e08f 100644
+--- a/shlib-versions
++++ b/shlib-versions
+@@ -124,3 +124,7 @@ sparc64.*-.*-.*            libBrokenLocale=1       GLIBC_2.2
+ # The asynchronous name lookup library.
+ .*-.*-.*              libanl=1
++
++# This defines the libgcc soname version this glibc is to load for
++# asynchronous cancellation to work correctly.
++.*-.*-.*              libgcc_s=1
+diff --git a/sysdeps/generic/framestate.c b/sysdeps/generic/framestate.c
+index 3638bbe..3bad5b5 100644
+--- a/sysdeps/generic/framestate.c
++++ b/sysdeps/generic/framestate.c
+@@ -1,5 +1,5 @@
+ /* __frame_state_for unwinder helper function wrapper.
+-   Copyright (C) 2001, 2003 Free Software Foundation, Inc.
++   Copyright (C) 2001-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>, 2001.
+@@ -23,7 +23,7 @@
+ #define __frame_state_for fallback_frame_state_for
+ #include <unwind-dw2.c>
+ #undef __frame_state_for
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ typedef struct frame_state * (*framesf)(void *pc, struct frame_state *);
+ struct frame_state *__frame_state_for (void *pc,
+diff --git a/sysdeps/generic/libgcc_s.h b/sysdeps/generic/libgcc_s.h
+deleted file mode 100644
+index e74a103..0000000
+--- a/sysdeps/generic/libgcc_s.h
++++ /dev/null
+@@ -1,2 +0,0 @@
+-/* Name of libgcc_s library provided by gcc.  */
+-#define LIBGCC_S_SO "libgcc_s.so.1"
+diff --git a/sysdeps/gnu/unwind-resume.c b/sysdeps/gnu/unwind-resume.c
+index 1d3e33f..6afaebd 100644
+--- a/sysdeps/gnu/unwind-resume.c
++++ b/sysdeps/gnu/unwind-resume.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2003 Free Software Foundation, Inc.
++/* Copyright (C) 2003-2012 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Jakub Jelinek <jakub@redhat.com>.
+@@ -19,7 +19,7 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
+ #include <unwind.h>
+-#include <libgcc_s.h>
++#include <gnu/lib-names.h>
+ static void (*libgcc_s_resume) (struct _Unwind_Exception *exc);
+ static _Unwind_Reason_Code (*libgcc_s_personality)
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc-test-installation.pl-nss_test1.patch b/src/patches/glibc-test-installation.pl-nss_test1.patch
new file mode 100644 (file)
index 0000000..8881d94
--- /dev/null
@@ -0,0 +1,31 @@
+From 9191c04a7e19fffbea0a08523e579cd8e55142df Mon Sep 17 00:00:00 2001
+From: Ulrich Drepper <drepper@gmail.com>
+Date: Sat, 23 Jul 2011 15:28:31 -0400
+Subject: [PATCH] Adjust test for correct installation
+
+diff --git a/scripts/test-installation.pl b/scripts/test-installation.pl
+index 90cd9d7..25a919b 100755
+--- a/scripts/test-installation.pl
++++ b/scripts/test-installation.pl
+@@ -1,5 +1,5 @@
+ #! /usr/bin/perl -w
+-# Copyright (C) 1997, 1998, 1999, 2004 Free Software Foundation, Inc.
++# Copyright (C) 1997, 1998, 1999, 2004, 2011 Free Software Foundation, Inc.
+ # This file is part of the GNU C Library.
+ # Contributed by Andreas Jaeger <aj@arthur.rhein-neckar.de>, 1997.
+@@ -105,8 +105,10 @@ while (<SOVERSIONS>) {
+     # - libdb1 since it conflicts with libdb
+     # - libnss1_* from glibc-compat add-on
+     # - libthread_db since it contains unresolved references
++    # - it's just a test NSS module
+     if ($name ne "nss_ldap" && $name ne "db1"
+-      && !($name =~/^nss1_/) && $name ne "thread_db") {
++      && !($name =~/^nss1_/) && $name ne "thread_db"
++      && $name ne "nss_test1") {
+       $link_libs .= " -l$name";
+       $versions{$name} = $version;
+     }
+-- 
+1.7.3.4
+
diff --git a/src/patches/glibc/glibc-aliasing.patch b/src/patches/glibc/glibc-aliasing.patch
new file mode 100644 (file)
index 0000000..016a4d4
--- /dev/null
@@ -0,0 +1,87 @@
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -129,6 +129,7 @@ include ../Makeconfig
+ ifeq ($(unwind-find-fde),yes)
+ routines += unwind-dw2-fde-glibc
+ shared-only-routines += unwind-dw2-fde-glibc
++CFLAGS-unwind-dw2-fde-glibc.c += -fno-strict-aliasing
+ endif
+ before-compile  = $(objpfx)trusted-dirs.h
+Index: glibc-2.12-2-gc4ccff1/inet/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/inet/Makefile
++++ glibc-2.12-2-gc4ccff1/inet/Makefile
+@@ -57,6 +57,8 @@ tests := htontest test_ifindex tst-ntoa 
+ include ../Rules
++CFLAGS-tst-inet6_rth.c += -fno-strict-aliasing
++
+ ifeq ($(have-thread-library),yes)
+ CFLAGS-gethstbyad_r.c = -DUSE_NSCD=1 -fexceptions
+Index: glibc-2.12-2-gc4ccff1/nis/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/Makefile
++++ glibc-2.12-2-gc4ccff1/nis/Makefile
+@@ -69,6 +69,8 @@ libnss_nisplus-inhibit-o = $(filter-out 
+ include ../Rules
++CFLAGS-nis_findserv.c += -fno-strict-aliasing
++CFLAGS-ypclnt.c += -fno-strict-aliasing
+ $(objpfx)libnss_compat.so: $(objpfx)libnsl.so$(libnsl.so-version)
+ $(objpfx)libnss_nis.so: $(objpfx)libnsl.so$(libnsl.so-version) \
+Index: glibc-2.12-2-gc4ccff1/nss/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile
++++ glibc-2.12-2-gc4ccff1/nss/Makefile
+@@ -74,6 +74,7 @@ endif
+ include ../Rules
++CFLAGS-files-hosts.c += -fno-strict-aliasing
+ ifeq (yes,$(build-static-nss))
+ $(objpfx)getent: $(objpfx)libnss_files.a
+Index: glibc-2.12-2-gc4ccff1/resolv/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile
++++ glibc-2.12-2-gc4ccff1/resolv/Makefile
+@@ -77,6 +77,7 @@ CPPFLAGS += -Dgethostbyname=res_gethostb
+           -Dgetnetbyaddr=res_getnetbyaddr
+ CFLAGS-res_hconf.c = -fexceptions
++CFLAGS-res_send.c += -fno-strict-aliasing
+ # The BIND code elicits some harmless warnings.
+ +cflags += -Wno-strict-prototypes -Wno-write-strings
+Index: glibc-2.12-2-gc4ccff1/sunrpc/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sunrpc/Makefile
++++ glibc-2.12-2-gc4ccff1/sunrpc/Makefile
+@@ -129,6 +129,10 @@ CFLAGS-openchild.c = -fexceptions
+ CPPFLAGS += -D_RPC_THREAD_SAFE_
++CFLAGS-clnt_tcp.c += -fno-strict-aliasing
++CFLAGS-clnt_udp.c += -fno-strict-aliasing
++CFLAGS-clnt_unix.c += -fno-strict-aliasing
++
+ include ../Rules
+ $(objpfx)rpcgen: $(addprefix $(objpfx),$(rpcgen-objs)) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/powerpc/powerpc64/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/elf/Makefile
+@@ -9,3 +9,5 @@ CFLAGS-rtld-mempcpy.os = $(no-special-re
+ CFLAGS-rtld-memmove.os = $(no-special-regs)
+ CFLAGS-rtld-memchr.os = $(no-special-regs)
+ CFLAGS-rtld-strnlen.os = $(no-special-regs)
++
++CFLAGS-gmon-start.c += -fno-strict-aliasing
diff --git a/src/patches/glibc/glibc-fedora.patch b/src/patches/glibc/glibc-fedora.patch
new file mode 100644 (file)
index 0000000..5a7fce9
--- /dev/null
@@ -0,0 +1,2106 @@
+--- glibc-2.12-2-gc4ccff1/ChangeLog
++++ glibc-2.12-1/ChangeLog
+@@ -241,6 +241,12 @@
+       * Makerules (libc-abis): Fix search for libc-abis in add-ons.
++2010-04-06  Ulrich Drepper  <drepper@redhat.com>
++
++      * sysdeps/posix/getaddrinfo.c (default_scopes): Assign global
++      scope to RFC 1918 addresses.
++      * posix/gai.conf: Document difference from RFC 3484.
++
+ 2010-04-05  Thomas Schwinge  <thomas@schwinge.name>
+       * sysdeps/gnu/unwind-resume.c: New, moved from nptl/sysdeps/pthread/.
+@@ -995,6 +1001,19 @@
+       * sysdeps/x86_64/fpu/fegetenv.c: Likewise
+       * sysdeps/s390/fpu/fegetenv.c: Likewise.  Remove unused headers.
++2009-10-27  Aurelien Jarno  <aurelien@aurel32.net>
++
++      [BZ #10855]
++      * locale/programs/locarchive.c: use MMAP_SHARED to reserve memory
++      used later with MMAP_FIXED | MMAP_SHARED to cope with different
++      alignment restrictions.
++
++2010-02-08  Andreas Schwab  <schwab@redhat.com>
++
++      [BZ #11155]
++      * sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c: Include i386
++      version.
++
+ 2010-02-05  H.J. Lu  <hongjiu.lu@intel.com>
+       [BZ #11230]
+@@ -2938,6 +2957,11 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       * sysdeps/generic/ldsodefs.h (struct rtld_global): The map element in
+       the unique symbol hash table should not be const.
++2009-07-22  Jakub Jelinek  <jakub@redhat.com>
++
++      * Makeconfig (ASFLAGS): Append $(sysdep-ASFLAGS).
++      * sysdeps/i386/Makefile (sysdep-ASFLAGS): Add -U__i686.
++
+ 2009-07-21  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/x86_64/multiarch/strstr.c: Minor cleanups.  Remove
+@@ -3203,6 +3227,11 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       out common code into new function get_common_indeces. Determine
+       extended family and model for Intel processors.
++2009-06-26  Andreas Schwab  <aschwab@redhat.com>
++
++      * timezone/zic.c (stringzone): Don't try to generate a POSIX TZ
++      string when the timezone ends in DST.
++
+ 2009-06-26  Ulrich Drepper  <drepper@redhat.com>
+       * resolv/resolv.h: Define RES_SNGLKUPREOP.
+@@ -11896,6 +11925,10 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       [BZ #4368]
+       * stdlib/stdlib.h: Remove obsolete part of comment for realpath.
++2007-04-16  Jakub Jelinek  <jakub@redhat.com>
++
++      * locale/programs/locarchive.c (add_alias, insert_name): Remove static.
++
+ 2007-04-16  Ulrich Drepper  <drepper@redhat.com>
+       [BZ #4364]
+@@ -13153,6 +13186,15 @@ d2009-10-30  Ulrich Drepper  <drepper@re
+       separators also if no non-zero digits found.
+       * stdlib/Makefile (tests): Add tst-strtod3.
++2006-12-10  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/netlinkaccess.h: Include linux/if_addr.h
++      if IFA_MAX is not defined.
++      (IFA_RTA, IFA_PAYLOAD, IFLA_RTA, IFLA_PAYLOAD): Define if not
++      defined.
++      * sysdeps/unix/sysv/linux/check_pf.c: Include netlinkaccess.h
++      instead of asm/types.h, linux/netlink.h and linux/rtnetlink.h.
++
+ 2006-12-09  Ulrich Drepper  <drepper@redhat.com>
+       [BZ #3632]
+--- glibc-2.12-2-gc4ccff1/ChangeLog.15
++++ glibc-2.12-1/ChangeLog.15
+@@ -477,6 +477,14 @@
+ 2004-11-26  Jakub Jelinek  <jakub@redhat.com>
++      * posix/Makefile (generated: Add getconf.speclist.
++      ($(inst_libexecdir)/getconf): Use getconf.speclist instead of
++      getconf output.
++      ($(objpfx)getconf.speclist): New rule.
++      * posix/getconf.speclist.h: New file.
++
++2004-11-26  Jakub Jelinek  <jakub@redhat.com>
++
+       * sysdeps/generic/unsecvars.h (UNSECURE_ENVVARS): Add GETCONF_DIR.
+ 2004-11-26  Kaz Kojima  <kkojima@rr.iij4u.or.jp>
+@@ -1103,6 +1111,13 @@
+       * sysdeps/generic/tempname.c (__path_search): Add missing argument
+       TRY_TMPDIR.
++2004-11-02  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/features.h (__USE_FORTIFY_LEVEL): Also set for Red Hat
++      GCC 3.4.x-RH >= 3.4.2-8.
++      * debug/tst-chk1.c (do_test): Deal with GCC 3.4.x-RH not
++      being able to recognize subobjects.
++
+ 2004-10-31  Mariusz Mazur <mmazur@kernel.pl>
+       * sysdeps/unix/sysv/linux/alpha/setregid.c: New file.
+@@ -1443,6 +1458,11 @@
+       * sysdeps/generic/readonly-area.c (__readonly_str): Renamed to ...
+       (__readonly_area): ... this.
++2004-10-19  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/features.h (__USE_FORTIFY_LEVEL): Enable even with
++      Red Hat gcc4 4.0.0 and above.
++
+ 2004-10-18  Jakub Jelinek  <jakub@redhat.com>
+       * sysdeps/generic/strcpy_chk.c (__strcpy_chk): Speed up by checking
+@@ -3182,6 +3202,23 @@
+       before return type.
+       * locale/localename.c (__current_locale_name): Likewise.
++2004-08-31  Jakub Jelinek  <jakub@redhat.com>
++
++      * elf/ldconfig.c (parse_conf): Add prefix argument, prepend it
++      before arguments to add_dir and pass to parse_conf_include.
++      (parse_conf_include): Add prefix argument, pass it down to
++      parse_conf.
++      (main): Call arch_startup.  Adjust parse_conf caller.
++      Call add_arch_dirs.
++      * sysdeps/generic/dl-cache.h (arch_startup, add_arch_dirs): Define.
++      * sysdeps/unix/sysv/linux/i386/dl-cache.h: New file.
++      * sysdeps/unix/sysv/linux/ia64/dl-cache.h (EMUL_HACK, arch_startup,
++      add_arch_dirs): Define.
++      * sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed: Prepend
++      /emul/ia32-linux before the 32-bit ld.so pathname.
++      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.c: New file.
++      * sysdeps/unix/sysv/linux/ia64/dl-procinfo.h: New file.
++
+ 2004-08-30  Roland McGrath  <roland@frob.com>
+       * scripts/extract-abilist.awk: If `lastversion' variable defined, omit
+--- glibc-2.12-2-gc4ccff1/ChangeLog.16
++++ glibc-2.12-1/ChangeLog.16
+@@ -2042,6 +2042,9 @@
+       (__MATHDECL_2): Use __REDIRECT_NTH instead of __REDIRECT
+       followed by __THROW.
++      * sysdeps/unix/sysv/linux/futimesat.c (futimesat): If
++      file == NULL, use __futimes unconditionally.
++
+ 2006-02-02  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/unix/sysv/linux/futimesat.c [__NR_futimesat]
+@@ -2101,6 +2104,11 @@
+       * sysdeps/ieee754/ldbl-128/s_llrintl.c (__llrintl): Fix a typo.
+       * sysdeps/s390/fpu/libm-test-ulps: Remove llrint ulps.
++2006-01-30  Jakub Jelinek  <jakub@redhat.com>
++
++      * include/bits/stdlib-ldbl.h: New file.
++      * include/bits/wchar-ldbl.h: New file.
++
+ 2006-01-19  Thomas Schwinge  <tschwinge@gnu.org>
+       * libio/genops.c: Include <stdbool.h>.
+@@ -8922,6 +8930,12 @@
+       * argp/argp-help.c (__argp_error): __asprintf -> vasprintf.
+       (__argp_failure): Likewise.
++2005-08-08  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/dl-osinfo.h (_dl_setup_stack_chk_guard):
++      Shift marked &errno down on big-endian instead of up.
++      * elf/tst-stackguard1.c (do_test): Fix a typo.
++
+ 2005-08-08  Ulrich Drepper  <drepper@redhat.com>
+       * nscd/cache.c (cache_add): Commit hash table and header to disk.
+@@ -9046,6 +9060,17 @@
+       __syslog_chk.
+       * misc/Versions: Export __syslog_chk and __vsyslog_chk.
++2005-07-29  Jakub Jelinek  <jakub@redhat.com>
++
++      * sysdeps/unix/sysv/linux/dl-osinfo.h: Include errno.h, hp-timing.h,
++      endian.h.
++      (_dl_setup_stack_chk_guard): Even without
++      --enable-stackguard-randomization attempt to do some guard
++      randomization using hp-timing (if available) and kernel stack and
++      mmap randomization.
++      * elf/tst-stackguard1.c (do_test): Don't fail if the poor man's
++      randomization doesn't work well enough.
++
+ 2005-07-28  Thomas Schwinge  <schwinge@nic-nac-project.de>
+       [BZ #1137]
+--- glibc-2.12-2-gc4ccff1/Makeconfig
++++ glibc-2.12-1/Makeconfig
+@@ -789,12 +789,12 @@ endif
+ # The assembler can generate debug information too.
+ ifndef ASFLAGS
+ ifeq ($(have-cpp-asm-debuginfo),yes)
+-ASFLAGS := $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
++ASFLAGS = $(filter -g% -fdebug-prefix-map=%,$(CFLAGS))
+ else
+-ASFLAGS :=
++ASFLAGS =
+ endif
+ endif
+-ASFLAGS += $(ASFLAGS-config) $(asflags-cpu)
++ASFLAGS += $(ASFLAGS-config) $(asflags-cpu) $(sysdep-ASFLAGS)
+ ifndef BUILD_CC
+ BUILD_CC = $(CC)
+--- glibc-2.12-2-gc4ccff1/csu/Makefile
++++ glibc-2.12-1/csu/Makefile
+@@ -93,7 +93,8 @@ omit-deps += $(crtstuff)
+ $(crtstuff:%=$(objpfx)%.o): %.o: %.S $(objpfx)defs.h
+       $(compile.S) -g0 $(ASFLAGS-.os) -o $@
+-CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
++                  -fno-asynchronous-unwind-tables
+ vpath initfini.c $(sysdirs)
+--- glibc-2.12-2-gc4ccff1/csu/elf-init.c
++++ glibc-2.12-1/csu/elf-init.c
+@@ -63,6 +63,23 @@ extern void (*__init_array_end []) (int,
+ extern void (*__fini_array_start []) (void) attribute_hidden;
+ extern void (*__fini_array_end []) (void) attribute_hidden;
++#if defined HAVE_VISIBILITY_ATTRIBUTE \
++    && (defined SHARED || defined LIBC_NONSHARED)
++# define hidden_undef_2(x) #x
++# define hidden_undef_1(x) hidden_undef_2 (x)
++# define hidden_undef(x) \
++  __asm (hidden_undef_1 (ASM_GLOBAL_DIRECTIVE) " " #x); \
++  __asm (".hidden " #x);
++#else
++# define hidden_undef(x)
++#endif
++
++hidden_undef (__preinit_array_start)
++hidden_undef (__preinit_array_end)
++hidden_undef (__init_array_start)
++hidden_undef (__init_array_end)
++hidden_undef (__fini_array_start)
++hidden_undef (__fini_array_end)
+ /* These function symbols are provided for the .init/.fini section entry
+    points automagically by the linker.  */
+--- glibc-2.12-2-gc4ccff1/debug/tst-chk1.c
++++ glibc-2.12-1/debug/tst-chk1.c
+@@ -17,6 +17,9 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++/* Hack: make sure GCC doesn't know __chk_fail () will not return.  */
++#define __noreturn__
++
+ #include <assert.h>
+ #include <fcntl.h>
+ #include <locale.h>
+@@ -242,7 +245,7 @@ do_test (void)
+   if (memcmp (a.buf1, "aabcdabcjj", 10))
+     FAIL ();
+-#if __USE_FORTIFY_LEVEL < 2
++#if __USE_FORTIFY_LEVEL < 2 || !__GNUC_PREREQ (4, 0)
+   /* The following tests are supposed to crash with -D_FORTIFY_SOURCE=2
+      and sufficient GCC support, as the string operations overflow
+      from a.buf1 into a.buf2.  */
+@@ -357,7 +360,7 @@ do_test (void)
+   memset (a.buf1 + 9, 'j', l0 + 2);
+   CHK_FAIL_END
+-# if __USE_FORTIFY_LEVEL >= 2
++# if __USE_FORTIFY_LEVEL >= 2 && __GNUC_PREREQ (4, 0)
+ #  define O 0
+ # else
+ #  define O 1
+--- glibc-2.12-2-gc4ccff1/elf/ldconfig.c
++++ glibc-2.12-1/elf/ldconfig.c
+@@ -1031,17 +1031,19 @@ search_dirs (void)
+ static void parse_conf_include (const char *config_file, unsigned int lineno,
+-                              bool do_chroot, const char *pattern);
++                              const char *prefix, bool do_chroot,
++                              const char *pattern);
+ /* Parse configuration file.  */
+ static void
+-parse_conf (const char *filename, bool do_chroot)
++parse_conf (const char *filename, const char *prefix, bool do_chroot)
+ {
+   FILE *file = NULL;
+   char *line = NULL;
+   const char *canon;
+   size_t len = 0;
+   unsigned int lineno;
++  size_t prefix_len = prefix ? strlen (prefix) : 0;
+   if (do_chroot && opt_chroot)
+     {
+@@ -1102,7 +1104,14 @@ parse_conf (const char *filename, bool d
+         cp += 8;
+         while ((dir = strsep (&cp, " \t")) != NULL)
+           if (dir[0] != '\0')
+-            parse_conf_include (filename, lineno, do_chroot, dir);
++            parse_conf_include (filename, lineno, prefix, do_chroot, dir);
++      }
++      else if (prefix != NULL)
++      {
++        size_t cp_len = strlen (cp);
++        char new_cp [prefix_len + cp_len + 1];
++        memcpy (mempcpy (new_cp, prefix, prefix_len), cp, cp_len + 1);
++        add_dir (new_cp);
+       }
+       else if (!strncasecmp (cp, "hwcap", 5) && isblank (cp[5]))
+       {
+@@ -1165,7 +1174,7 @@ parse_conf (const char *filename, bool d
+    config files to read.  */
+ static void
+ parse_conf_include (const char *config_file, unsigned int lineno,
+-                  bool do_chroot, const char *pattern)
++                  const char *prefix, bool do_chroot, const char *pattern)
+ {
+   if (opt_chroot && pattern[0] != '/')
+     error (EXIT_FAILURE, 0,
+@@ -1197,7 +1206,7 @@ parse_conf_include (const char *config_f
+     {
+     case 0:
+       for (size_t i = 0; i < gl.gl_pathc; ++i)
+-      parse_conf (gl.gl_pathv[i], false);
++      parse_conf (gl.gl_pathv[i], prefix, false);
+       globfree64 (&gl);
+       break;
+@@ -1240,6 +1249,8 @@ main (int argc, char **argv)
+   /* Set the text message domain.  */
+   textdomain (_libc_intl_domainname);
++  arch_startup (argc, argv);
++
+   /* Parse and process arguments.  */
+   int remaining;
+   argp_parse (&argp, argc, argv, 0, &remaining, NULL);
+@@ -1349,12 +1360,14 @@ main (int argc, char **argv)
+   if (!opt_only_cline)
+     {
+-      parse_conf (config_file, true);
++      parse_conf (config_file, NULL, true);
+       /* Always add the standard search paths.  */
+       add_system_dir (SLIBDIR);
+       if (strcmp (SLIBDIR, LIBDIR))
+       add_system_dir (LIBDIR);
++
++      add_arch_dirs (config_file);
+     }
+   char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
+--- glibc-2.12-2-gc4ccff1/elf/tst-stackguard1.c
++++ glibc-2.12-1/elf/tst-stackguard1.c
+@@ -160,17 +160,21 @@ do_test (void)
+      the 16 runs, something is very wrong.  */
+   int ndifferences = 0;
+   int ndefaults = 0;
++  int npartlyrandomized = 0;
+   for (i = 0; i < N; ++i) 
+     {
+       if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
+       ndifferences++;
+       else if (child_stack_chk_guards[i] == default_guard)
+       ndefaults++;
++      else if (*(char *) &child_stack_chk_guards[i] == 0)
++      npartlyrandomized++;
+     }
+-  printf ("differences %d defaults %d\n", ndifferences, ndefaults);
++  printf ("differences %d defaults %d partly randomized %d\n",
++        ndifferences, ndefaults, npartlyrandomized);
+-  if (ndifferences < N / 2 && ndefaults < N / 2)
++  if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
+     {
+       puts ("stack guard canaries are not randomized enough");
+       puts ("nor equal to the default canary value");
+--- glibc-2.12-2-gc4ccff1/include/bits/stdlib-ldbl.h
++++ glibc-2.12-1/include/bits/stdlib-ldbl.h
+@@ -0,0 +1 @@
++#include <stdlib/bits/stdlib-ldbl.h>
+--- glibc-2.12-2-gc4ccff1/include/bits/wchar-ldbl.h
++++ glibc-2.12-1/include/bits/wchar-ldbl.h
+@@ -0,0 +1 @@
++#include <wcsmbs/bits/wchar-ldbl.h>
+--- glibc-2.12-2-gc4ccff1/include/features.h
++++ glibc-2.12-1/include/features.h
+@@ -308,8 +308,13 @@
+ #endif
+ #if defined _FORTIFY_SOURCE && _FORTIFY_SOURCE > 0 \
+-    && __GNUC_PREREQ (4, 1) && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
+-# if _FORTIFY_SOURCE > 1
++    && defined __OPTIMIZE__ && __OPTIMIZE__ > 0
++# if !__GNUC_PREREQ (4, 1)
++#  ifdef __GNUC_RH_RELEASE__
++#   warning _FORTIFY_SOURCE supported only with GCC 4.1 and later
++#  endif
++#  define __USE_FORTIFY_LEVEL 0
++# elif _FORTIFY_SOURCE > 1
+ #  define __USE_FORTIFY_LEVEL 2
+ # else
+ #  define __USE_FORTIFY_LEVEL 1
+--- glibc-2.12-2-gc4ccff1/intl/locale.alias
++++ glibc-2.12-1/intl/locale.alias
+@@ -57,8 +57,6 @@ korean               ko_KR.eucKR
+ korean.euc    ko_KR.eucKR
+ ko_KR         ko_KR.eucKR
+ lithuanian      lt_LT.ISO-8859-13
+-no_NO         nb_NO.ISO-8859-1
+-no_NO.ISO-8859-1 nb_NO.ISO-8859-1
+ norwegian       nb_NO.ISO-8859-1
+ nynorsk               nn_NO.ISO-8859-1
+ polish          pl_PL.ISO-8859-2
+--- glibc-2.12-2-gc4ccff1/libio/stdio.h
++++ glibc-2.12-1/libio/stdio.h
+@@ -165,10 +165,12 @@ typedef _G_fpos64_t fpos64_t;
+ extern struct _IO_FILE *stdin;                /* Standard input stream.  */
+ extern struct _IO_FILE *stdout;               /* Standard output stream.  */
+ extern struct _IO_FILE *stderr;               /* Standard error output stream.  */
++#ifdef __STDC__
+ /* C89/C99 say they're macros.  Make them happy.  */
+ #define stdin stdin
+ #define stdout stdout
+ #define stderr stderr
++#endif
+ __BEGIN_NAMESPACE_STD
+ /* Remove file FILENAME.  */
+--- glibc-2.12-2-gc4ccff1/locale/iso-4217.def
++++ glibc-2.12-1/locale/iso-4217.def
+@@ -8,6 +8,7 @@
+  *
+  * !!! The list has to be sorted !!!
+  */
++DEFINE_INT_CURR("ADP")                /* Andorran Peseta -> EUR  */
+ DEFINE_INT_CURR("AED")                /* United Arab Emirates Dirham  */
+ DEFINE_INT_CURR("AFN")                /* Afghanistan Afgani  */
+ DEFINE_INT_CURR("ALL")                /* Albanian Lek  */
+@@ -15,12 +16,14 @@ DEFINE_INT_CURR("AMD")             /* Armenia Dram 
+ DEFINE_INT_CURR("ANG")                /* Netherlands Antilles  */
+ DEFINE_INT_CURR("AOA")                /* Angolan Kwanza  */
+ DEFINE_INT_CURR("ARS")                /* Argentine Peso  */
++DEFINE_INT_CURR("ATS")                /* Austrian Schilling -> EUR  */
+ DEFINE_INT_CURR("AUD")                /* Australian Dollar  */
+ DEFINE_INT_CURR("AWG")                /* Aruba Guilder  */
+ DEFINE_INT_CURR("AZM")                /* Azerbaijan Manat  */
+ DEFINE_INT_CURR("BAM")                /* Bosnian and Herzegovina Convertible Mark  */
+ DEFINE_INT_CURR("BBD")                /* Barbados Dollar  */
+ DEFINE_INT_CURR("BDT")                /* Bangladesh Taka  */
++DEFINE_INT_CURR("BEF")                /* Belgian Franc -> EUR  */
+ DEFINE_INT_CURR("BGN")                /* Bulgarian Lev  */
+ DEFINE_INT_CURR("BHD")                /* Bahraini Dinar  */
+ DEFINE_INT_CURR("BIF")                /* Burundi Franc  */
+@@ -44,6 +47,7 @@ DEFINE_INT_CURR("CUP")               /* Cuban Peso  *
+ DEFINE_INT_CURR("CVE")                /* Cape Verde Escudo  */
+ DEFINE_INT_CURR("CYP")                /* Cypriot Pound  */
+ DEFINE_INT_CURR("CZK")                /* Czech Koruna  */
++DEFINE_INT_CURR("DEM")                /* German Mark -> EUR  */
+ DEFINE_INT_CURR("DJF")                /* Djibouti Franc  */
+ DEFINE_INT_CURR("DKK")                /* Danish Krone (Faroe Islands, Greenland)  */
+ DEFINE_INT_CURR("DOP")                /* Dominican Republic  */
+@@ -51,16 +55,20 @@ DEFINE_INT_CURR("DZD")             /* Algerian Dina
+ DEFINE_INT_CURR("EEK")                /* Estonian Kroon  */
+ DEFINE_INT_CURR("EGP")                /* Egyptian Pound  */
+ DEFINE_INT_CURR("ERN")                /* Eritrean Nakfa  */
++DEFINE_INT_CURR("ESP")                /* Spanish Peseta -> EUR  */
+ DEFINE_INT_CURR("ETB")                /* Ethiopian Birr  */
+ DEFINE_INT_CURR("EUR")                /* European Union Euro  */
++DEFINE_INT_CURR("FIM")                /* Finnish Markka -> EUR  */
+ DEFINE_INT_CURR("FJD")                /* Fiji Dollar  */
+ DEFINE_INT_CURR("FKP")                /* Falkland Islands Pound (Malvinas)  */
++DEFINE_INT_CURR("FRF")                /* French Franc -> EUR  */
+ DEFINE_INT_CURR("GBP")                /* British Pound  */
+ DEFINE_INT_CURR("GEL")                /* Georgia Lari  */
+ DEFINE_INT_CURR("GHC")                /* Ghana Cedi  */
+ DEFINE_INT_CURR("GIP")                /* Gibraltar Pound  */
+ DEFINE_INT_CURR("GMD")                /* Gambian Dalasi  */
+ DEFINE_INT_CURR("GNF")                /* Guinea Franc  */
++DEFINE_INT_CURR("GRD")                /* Greek Drachma -> EUR  */
+ DEFINE_INT_CURR("GTQ")                /* Guatemala Quetzal  */
+ DEFINE_INT_CURR("GYD")                /* Guyana Dollar  */
+ DEFINE_INT_CURR("HKD")                /* Hong Kong Dollar  */
+@@ -69,12 +77,14 @@ DEFINE_INT_CURR("HRK")             /* Croatia Kuna 
+ DEFINE_INT_CURR("HTG")                /* Haiti Gourde  */
+ DEFINE_INT_CURR("HUF")                /* Hungarian Forint  */
+ DEFINE_INT_CURR("IDR")                /* Indonesia Rupiah  */
++DEFINE_INT_CURR("IEP")                /* Irish Pound -> EUR  */
+ DEFINE_INT_CURR("ILS")                /* Israeli Shekel  */
+ DEFINE_INT_CURR("IMP")                /* Isle of Man Pounds  */
+ DEFINE_INT_CURR("INR")                /* Indian Rupee (Bhutan)  */
+ DEFINE_INT_CURR("IQD")                /* Iraqi Dinar  */
+ DEFINE_INT_CURR("IRR")                /* Iranian Rial  */
+ DEFINE_INT_CURR("ISK")                /* Iceland Krona  */
++DEFINE_INT_CURR("ITL")                /* Italian Lira -> EUR  */
+ DEFINE_INT_CURR("JEP")                /* Jersey Pound  */
+ DEFINE_INT_CURR("JMD")                /* Jamaican Dollar  */
+ DEFINE_INT_CURR("JOD")                /* Jordanian Dinar  */
+@@ -94,6 +104,7 @@ DEFINE_INT_CURR("LKR")              /* Sri Lankan Ru
+ DEFINE_INT_CURR("LRD")                /* Liberian Dollar  */
+ DEFINE_INT_CURR("LSL")                /* Lesotho Maloti  */
+ DEFINE_INT_CURR("LTL")                /* Lithuanian Litas  */
++DEFINE_INT_CURR("LUF")                /* Luxembourg Franc -> EUR  */
+ DEFINE_INT_CURR("LVL")                /* Latvia Lat  */
+ DEFINE_INT_CURR("LYD")                /* Libyan Arab Jamahiriya Dinar  */
+ DEFINE_INT_CURR("MAD")                /* Moroccan Dirham  */
+@@ -114,6 +125,7 @@ DEFINE_INT_CURR("MZM")             /* Mozambique Me
+ DEFINE_INT_CURR("NAD")                /* Namibia Dollar  */
+ DEFINE_INT_CURR("NGN")                /* Nigeria Naira  */
+ DEFINE_INT_CURR("NIO")                /* Nicaragua Cordoba Oro  */
++DEFINE_INT_CURR("NLG")                /* Netherlands Guilder -> EUR  */
+ DEFINE_INT_CURR("NOK")                /* Norwegian Krone  */
+ DEFINE_INT_CURR("NPR")                /* Nepalese Rupee  */
+ DEFINE_INT_CURR("NZD")                /* New Zealand Dollar  */
+@@ -124,6 +136,7 @@ DEFINE_INT_CURR("PGK")             /* Papau New Gui
+ DEFINE_INT_CURR("PHP")                /* Philippines Peso  */
+ DEFINE_INT_CURR("PKR")                /* Pakistan Rupee  */
+ DEFINE_INT_CURR("PLN")                /* Polish Zloty  */
++DEFINE_INT_CURR("PTE")                /* Portugese Escudo -> EUR  */
+ DEFINE_INT_CURR("PYG")                /* Paraguay Guarani  */
+ DEFINE_INT_CURR("QAR")                /* Qatar Rial  */
+ DEFINE_INT_CURR("ROL")                /* Romanian Leu  */
+--- glibc-2.12-2-gc4ccff1/locale/programs/locarchive.c
++++ glibc-2.12-1/locale/programs/locarchive.c
+@@ -134,7 +134,7 @@ create_archive (const char *archivefname
+   size_t reserved = RESERVE_MMAP_SIZE;
+   int xflags = 0;
+   if (total < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -241,9 +241,9 @@ oldlocrecentcmp (const void *a, const vo
+ /* forward decls for below */
+ static uint32_t add_locale (struct locarhandle *ah, const char *name,
+                           locale_data_t data, bool replace);
+-static void add_alias (struct locarhandle *ah, const char *alias,
+-                     bool replace, const char *oldname,
+-                     uint32_t *locrec_offset_p);
++void add_alias (struct locarhandle *ah, const char *alias,
++              bool replace, const char *oldname,
++              uint32_t *locrec_offset_p);
+ static bool
+@@ -396,7 +396,7 @@ enlarge_archive (struct locarhandle *ah,
+   size_t reserved = RESERVE_MMAP_SIZE;
+   int xflags = 0;
+   if (total < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -614,7 +614,7 @@ open_archive (struct locarhandle *ah, bo
+   int xflags = 0;
+   void *p;
+   if (st.st_size < reserved
+-      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_PRIVATE | MAP_ANON,
++      && ((p = mmap64 (NULL, reserved, PROT_NONE, MAP_SHARED | MAP_ANON,
+                      -1, 0)) != MAP_FAILED))
+     xflags = MAP_FIXED;
+   else
+@@ -649,7 +649,7 @@ close_archive (struct locarhandle *ah)
+ #include "../../intl/explodename.c"
+ #include "../../intl/l10nflist.c"
+-static struct namehashent *
++struct namehashent *
+ insert_name (struct locarhandle *ah,
+            const char *name, size_t name_len, bool replace)
+ {
+@@ -707,7 +707,7 @@ insert_name (struct locarhandle *ah,
+   return &namehashtab[idx];
+ }
+-static void
++void
+ add_alias (struct locarhandle *ah, const char *alias, bool replace,
+          const char *oldname, uint32_t *locrec_offset_p)
+ {
+--- glibc-2.12-2-gc4ccff1/localedata/Makefile
++++ glibc-2.12-1/localedata/Makefile
+@@ -227,6 +227,7 @@ $(INSTALL-SUPPORTED-LOCALES): install-lo
+       echo -n '...'; \
+       input=`echo $$locale | sed 's/\([^.]*\)[^@]*\(.*\)/\1\2/'`; \
+       $(LOCALEDEF) --alias-file=../intl/locale.alias \
++                   --no-archive \
+                    -i locales/$$input -c -f charmaps/$$charset \
+                    $(addprefix --prefix=,$(install_root)) $$locale; \
+       echo ' done'; \
+--- glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
++++ glibc-2.12-1/localedata/SUPPORTED
+@@ -85,6 +85,7 @@ cy_GB.UTF-8/UTF-8 \
+ cy_GB/ISO-8859-14 \
+ da_DK.UTF-8/UTF-8 \
+ da_DK/ISO-8859-1 \
++da_DK.ISO-8859-15/ISO-8859-15 \
+ de_AT.UTF-8/UTF-8 \
+ de_AT/ISO-8859-1 \
+ de_AT@euro/ISO-8859-15 \
+@@ -116,6 +117,7 @@ en_DK.UTF-8/UTF-8 \
+ en_DK/ISO-8859-1 \
+ en_GB.UTF-8/UTF-8 \
+ en_GB/ISO-8859-1 \
++en_GB.ISO-8859-15/ISO-8859-15 \
+ en_HK.UTF-8/UTF-8 \
+ en_HK/ISO-8859-1 \
+ en_IE.UTF-8/UTF-8 \
+@@ -131,6 +133,7 @@ en_SG.UTF-8/UTF-8 \
+ en_SG/ISO-8859-1 \
+ en_US.UTF-8/UTF-8 \
+ en_US/ISO-8859-1 \
++en_US.ISO-8859-15/ISO-8859-15 \
+ en_ZA.UTF-8/UTF-8 \
+ en_ZA/ISO-8859-1 \
+ en_ZW.UTF-8/UTF-8 \
+@@ -307,6 +310,8 @@ nl_NL/ISO-8859-1 \
+ nl_NL@euro/ISO-8859-15 \
+ nn_NO.UTF-8/UTF-8 \
+ nn_NO/ISO-8859-1 \
++no_NO.UTF-8/UTF-8 \
++no_NO/ISO-8859-1 \
+ nr_ZA/UTF-8 \
+ nso_ZA/UTF-8 \
+ oc_FR.UTF-8/UTF-8 \
+@@ -367,6 +372,7 @@ sv_FI/ISO-8859-1 \
+ sv_FI@euro/ISO-8859-15 \
+ sv_SE.UTF-8/UTF-8 \
+ sv_SE/ISO-8859-1 \
++sv_SE.ISO-8859-15/ISO-8859-15 \
+ ta_IN/UTF-8 \
+ te_IN/UTF-8 \
+ tg_TJ.UTF-8/UTF-8 \
+--- glibc-2.12-2-gc4ccff1/localedata/locales/cy_GB
++++ glibc-2.12-1/localedata/locales/cy_GB
+@@ -248,8 +248,11 @@ mon         "<U0049><U006F><U006E><U0061
+ d_t_fmt     "<U0044><U0079><U0064><U0064><U0020><U0025><U0041><U0020><U0025><U0064><U0020><U006d><U0069><U0073><U0020><U0025><U0042><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt       "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0079>"
+ t_fmt       "<U0025><U0054>"
+-am_pm       "";""
+-t_fmt_ampm  ""
++am_pm       "<U0041><U004D>";"<U0050><U004D>"
++t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
++date_fmt    "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
++<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
++<U0025><U005A><U0020><U0025><U0059>"
+ END LC_TIME
+ LC_MESSAGES
+--- glibc-2.12-2-gc4ccff1/localedata/locales/en_GB
++++ glibc-2.12-1/localedata/locales/en_GB
+@@ -116,8 +116,8 @@ mon         "<U004A><U0061><U006E><U0075
+ d_t_fmt     "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt       "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt       "<U0025><U0054>"
+-am_pm       "";""
+-t_fmt_ampm  ""
++am_pm       "<U0041><U004D>";"<U0050><U004D>"
++t_fmt_ampm  "<U0025><U006C><U003A><U0025><U004D><U003A><U0025><U0053><U0020><U0025><U0050><U0020><U0025><U005A>"
+ date_fmt      "<U0025><U0061><U0020><U0025><U0062><U0020><U0025><U0065>/
+ <U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/
+ <U0025><U005A><U0020><U0025><U0059>"
+--- glibc-2.12-2-gc4ccff1/localedata/locales/no_NO
++++ glibc-2.12-1/localedata/locales/no_NO
+@@ -0,0 +1,69 @@
++escape_char   /
++comment_char    %
++
++% Norwegian language locale for Norway
++% Source: Norsk Standardiseringsforbund
++% Address: University Library,
++%   Drammensveien 41, N-9242 Oslo, Norge
++% Contact: Kolbjoern Aamboe
++% Tel: +47 - 22859109
++% Fax: +47 - 22434497
++% Email: kolbjorn.aambo@usit.uio.no
++% Language: no
++% Territory: NO
++% Revision: 4.3
++% Date: 1996-10-15
++% Application: general
++% Users: general
++% Repertoiremap: mnemonic.ds
++% Charset: ISO-8859-1
++% Distribution and use is free, also
++% for commercial purposes.
++
++LC_IDENTIFICATION
++copy "nb_NO"
++END LC_IDENTIFICATION
++
++LC_COLLATE
++copy "nb_NO"
++END LC_COLLATE
++
++LC_CTYPE
++copy "nb_NO"
++END LC_CTYPE
++
++LC_MONETARY
++copy "nb_NO"
++END LC_MONETARY
++
++LC_NUMERIC
++copy "nb_NO"
++END LC_NUMERIC
++
++LC_TIME
++copy "nb_NO"
++END LC_TIME
++
++LC_MESSAGES
++copy "nb_NO"
++END LC_MESSAGES
++
++LC_PAPER
++copy "nb_NO"
++END LC_PAPER
++
++LC_TELEPHONE
++copy "nb_NO"
++END LC_TELEPHONE
++
++LC_MEASUREMENT
++copy "nb_NO"
++END LC_MEASUREMENT
++
++LC_NAME
++copy "nb_NO"
++END LC_NAME
++
++LC_ADDRESS
++copy "nb_NO"
++END LC_ADDRESS
+--- glibc-2.12-2-gc4ccff1/localedata/locales/zh_TW
++++ glibc-2.12-1/localedata/locales/zh_TW
+@@ -1,7 +1,7 @@
+ comment_char %
+ escape_char /
+ %
+-% Chinese language locale for Taiwan R.O.C.
++% Chinese language locale for Taiwan
+ % charmap: BIG5-CP950
+ %
+ % Original Author:
+@@ -17,7 +17,7 @@ escape_char /
+ % Reference:  http://wwwold.dkuug.dk/JTC1/SC22/WG20/docs/n690.pdf
+ LC_IDENTIFICATION
+-title      "Chinese locale for Taiwan R.O.C."
++title      "Chinese locale for Taiwan"
+ source     ""
+ address    ""
+ contact    ""
+@@ -25,7 +25,7 @@ email      "bug-glibc-locales@gnu.org"
+ tel        ""
+ fax        ""
+ language   "Chinese"
+-territory  "Taiwan R.O.C."
++territory  "Taiwan"
+ revision   "0.2"
+ date       "2000-08-02"
+ %
+--- glibc-2.12-2-gc4ccff1/malloc/mcheck.c
++++ glibc-2.12-1/malloc/mcheck.c
+@@ -24,9 +24,25 @@
+ # include <mcheck.h>
+ # include <stdint.h>
+ # include <stdio.h>
++# include <stdlib.h>
+ # include <libintl.h>
+ #endif
++#ifdef _LIBC
++extern __typeof (malloc) __libc_malloc;
++extern __typeof (free) __libc_free;
++extern __typeof (realloc) __libc_realloc;
++libc_hidden_proto (__libc_malloc)
++libc_hidden_proto (__libc_realloc)
++libc_hidden_proto (__libc_free)
++libc_hidden_proto (__libc_memalign)
++#else
++# define __libc_malloc(sz) malloc (sz)
++# define __libc_free(ptr) free (ptr)
++# define __libc_realloc(ptr, sz) realloc (ptr, sz)
++# define __libc_memalign(al, sz) memalign (al, sz)
++#endif
++
+ /* Old hook values.  */
+ static void (*old_free_hook) (__ptr_t ptr, __const __ptr_t);
+ static __ptr_t (*old_malloc_hook) (__malloc_size_t size, const __ptr_t);
+@@ -197,7 +213,7 @@ freehook (__ptr_t ptr, const __ptr_t cal
+   if (old_free_hook != NULL)
+     (*old_free_hook) (ptr, caller);
+   else
+-    free (ptr);
++    __libc_free (ptr);
+   __free_hook = freehook;
+ }
+@@ -214,7 +230,7 @@ mallochook (__malloc_size_t size, const 
+     hdr = (struct hdr *) (*old_malloc_hook) (sizeof (struct hdr) + size + 1,
+                                            caller);
+   else
+-    hdr = (struct hdr *) malloc (sizeof (struct hdr) + size + 1);
++    hdr = (struct hdr *) __libc_malloc (sizeof (struct hdr) + size + 1);
+   __malloc_hook = mallochook;
+   if (hdr == NULL)
+     return NULL;
+@@ -245,7 +261,7 @@ memalignhook (__malloc_size_t alignment,
+   if (old_memalign_hook != NULL)
+     block = (*old_memalign_hook) (alignment, slop + size + 1, caller);
+   else
+-    block = memalign (alignment, slop + size + 1);
++    block = __libc_memalign (alignment, slop + size + 1);
+   __memalign_hook = memalignhook;
+   if (block == NULL)
+     return NULL;
+@@ -300,8 +316,8 @@ reallochook (__ptr_t ptr, __malloc_size_
+                                             sizeof (struct hdr) + size + 1,
+                                             caller);
+   else
+-    hdr = (struct hdr *) realloc ((__ptr_t) hdr,
+-                                sizeof (struct hdr) + size + 1);
++    hdr = (struct hdr *) __libc_realloc ((__ptr_t) hdr,
++                                       sizeof (struct hdr) + size + 1);
+   __free_hook = freehook;
+   __malloc_hook = mallochook;
+   __memalign_hook = memalignhook;
+@@ -361,8 +377,8 @@ mcheck (func)
+   if (__malloc_initialized <= 0 && !mcheck_used)
+     {
+       /* We call malloc() once here to ensure it is initialized.  */
+-      void *p = malloc (0);
+-      free (p);
++      void *p = __libc_malloc (0);
++      __libc_free (p);
+       old_free_hook = __free_hook;
+       __free_hook = freehook;
+--- glibc-2.12-2-gc4ccff1/manual/libc.texinfo
++++ glibc-2.12-1/manual/libc.texinfo
+@@ -5,7 +5,7 @@
+ @c setchapternewpage odd
+ @comment Tell install-info what to do.
+-@dircategory Software libraries
++@dircategory Libraries
+ @direntry
+ * Libc: (libc).                 C library.
+ @end direntry
+--- glibc-2.12-2-gc4ccff1/misc/sys/cdefs.h
++++ glibc-2.12-1/misc/sys/cdefs.h
+@@ -132,7 +132,10 @@
+ #define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1)
+ #define __bos0(ptr) __builtin_object_size (ptr, 0)
+-#if __GNUC_PREREQ (4,3)
++#if __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # define __warndecl(name, msg) \
+   extern void name (void) __attribute__((__warning__ (msg)))
+ # define __warnattr(msg) __attribute__((__warning__ (msg)))
+@@ -291,10 +294,16 @@
+ /* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99
+    inline semantics, unless -fgnu89-inline is used.  */
+-#if !defined __cplusplus || __GNUC_PREREQ (4,3)
++#if !defined __cplusplus || __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # if defined __GNUC_STDC_INLINE__ || defined __cplusplus
+ #  define __extern_inline extern __inline __attribute__ ((__gnu_inline__))
+-#  if __GNUC_PREREQ (4,3)
++#  if __GNUC_PREREQ (4,3) \
++      || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++          && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++          && __GNUC_RH_RELEASE__ >= 31)
+ #   define __extern_always_inline \
+   extern __always_inline __attribute__ ((__gnu_inline__, __artificial__))
+ #  else
+@@ -314,7 +323,10 @@
+ /* GCC 4.3 and above allow passing all anonymous arguments of an
+    __extern_always_inline function to some other vararg function.  */
+-#if __GNUC_PREREQ (4,3)
++#if __GNUC_PREREQ (4,3) \
++    || (defined __GNUC_RH_RELEASE__ && __GNUC__ == 4 \
++      && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 2 \
++      && __GNUC_RH_RELEASE__ >= 31)
+ # define __va_arg_pack() __builtin_va_arg_pack ()
+ # define __va_arg_pack_len() __builtin_va_arg_pack_len ()
+ #endif
+--- glibc-2.12-2-gc4ccff1/nis/nss
++++ glibc-2.12-1/nis/nss
+@@ -25,7 +25,7 @@
+ #  memory with every getXXent() call.  Otherwise each getXXent() call
+ #  might result into a network communication with the server to get
+ #  the next entry.
+-#SETENT_BATCH_READ=TRUE
++SETENT_BATCH_READ=TRUE
+ #
+ # ADJUNCT_AS_SHADOW
+ #  If set to TRUE, the passwd routines in the NIS NSS module will not
+--- glibc-2.12-2-gc4ccff1/nptl/ChangeLog
++++ glibc-2.12-1/nptl/ChangeLog
+@@ -3884,6 +3884,15 @@
+       Use __sigfillset.  Document that sigfillset does the right thing wrt
+       to SIGSETXID.
++2005-08-08  Jakub Jelinek  <jakub@redhat.com>
++
++      * tst-stackguard1.c (do_test): Likewise.
++
++2005-07-29  Jakub Jelinek  <jakub@redhat.com>
++
++      * tst-stackguard1.c (do_test): Don't fail if the poor man's
++      randomization doesn't work well enough.
++
+ 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
+       [BZ #1102]
+@@ -4620,6 +4629,11 @@
+       Move definition inside libpthread, libc, librt check.  Provide
+       definition for rtld.
++2004-09-02  Jakub Jelinek  <jakub@redhat.com>
++
++      * pthread_cond_destroy.c (__pthread_cond_destroy): If there are
++      waiters, awake all waiters on the associated mutex.
++
+ 2004-09-02  Ulrich Drepper  <drepper@redhat.com>
+       * sysdeps/alpha/jmpbuf-unwind.h: Define __libc_unwind_longjmp.
+@@ -6694,6 +6708,11 @@
+       * Makefile [$(build-shared) = yes] (tests): Depend on $(test-modules).
++2003-07-22  Jakub Jelinek  <jakub@redhat.com>
++
++      * descr.h: Don't include lowlevellock.h, pthreaddef.h and dl-sysdep.h
++      if __need_struct_pthread_size, instead define lll_lock_t.
++
+ 2003-07-25  Jakub Jelinek  <jakub@redhat.com>
+       * tst-cancel17.c (do_test): Check if aio_cancel failed.
+--- glibc-2.12-2-gc4ccff1/nptl/Makefile
++++ glibc-2.12-1/nptl/Makefile
+@@ -341,7 +341,8 @@ endif
+ extra-objs += $(crti-objs) $(crtn-objs)
+ omit-deps += crti crtn
+-CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time)
++CFLAGS-pt-initfini.s = -g0 -fPIC -fno-inline-functions $(fno-unit-at-a-time) \
++                     -fno-asynchronous-unwind-tables
+ endif
+ CFLAGS-flockfile.c = -D_IO_MTSAFE_IO
+@@ -527,15 +528,19 @@ $(addprefix $(objpfx), \
+     $(tests) $(xtests) $(test-srcs))): $(objpfx)libpthread.so \
+                                      $(objpfx)libpthread_nonshared.a
+ $(objpfx)tst-unload: $(common-objpfx)dlfcn/libdl.so
+-# $(objpfx)../libc.so is used instead of $(common-objpfx)libc.so,
++# $(objpfx)linklibc.so is used instead of $(common-objpfx)libc.so,
+ # since otherwise libpthread.so comes before libc.so when linking.
+ $(addprefix $(objpfx), $(tests-reverse)): \
+-  $(objpfx)../libc.so $(objpfx)libpthread.so \
++  $(objpfx)linklibc.so $(objpfx)libpthread.so \
+   $(objpfx)libpthread_nonshared.a
+ $(objpfx)../libc.so: $(common-objpfx)libc.so ;
+ $(addprefix $(objpfx),$(tests-static) $(xtests-static)): $(objpfx)libpthread.a
+ $(objpfx)tst-atfork2.out: $(objpfx)tst-atfork2mod.so
++
++$(objpfx)linklibc.so: $(common-objpfx)libc.so
++      ln -s ../libc.so $@
++generated += libclink.so
+ else
+ $(addprefix $(objpfx),$(tests) $(test-srcs)): $(objpfx)libpthread.a
+ endif
+--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
+@@ -189,4 +189,7 @@
+ /* Typed memory objects are not available.  */
+ #define _POSIX_TYPED_MEMORY_OBJECTS   -1
++/* Streams are not available.  */
++#define _XOPEN_STREAMS        -1
++
+ #endif /* bits/posix_opt.h */
+--- glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-1/nptl/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -0,0 +1,6 @@
++#include_next <kernel-features.h>
++
++/* NPTL can always assume all clone thread flags work.  */
++#ifndef __ASSUME_CLONE_THREAD_FLAGS
++# define __ASSUME_CLONE_THREAD_FLAGS  1
++#endif
+--- glibc-2.12-2-gc4ccff1/nptl/tst-stackguard1.c
++++ glibc-2.12-1/nptl/tst-stackguard1.c
+@@ -190,17 +190,21 @@ do_test (void)
+      the 16 runs, something is very wrong.  */
+   int ndifferences = 0;
+   int ndefaults = 0;
++  int npartlyrandomized = 0;
+   for (i = 0; i < N; ++i) 
+     {
+       if (child_stack_chk_guards[i] != child_stack_chk_guards[i+1])
+       ndifferences++;
+       else if (child_stack_chk_guards[i] == default_guard)
+       ndefaults++;
++      else if (*(char *) &child_stack_chk_guards[i] == 0)
++      npartlyrandomized++;
+     }
+-  printf ("differences %d defaults %d\n", ndifferences, ndefaults);
++  printf ("differences %d defaults %d partly randomized %d\n",
++        ndifferences, ndefaults, npartlyrandomized);
+-  if (ndifferences < N / 2 && ndefaults < N / 2)
++  if ((ndifferences + ndefaults + npartlyrandomized) < 3 * N / 4)
+     {
+       puts ("stack guard canaries are not randomized enough");
+       puts ("nor equal to the default canary value");
+--- glibc-2.12-2-gc4ccff1/nscd/nscd.conf
++++ glibc-2.12-1/nscd/nscd.conf
+@@ -33,7 +33,7 @@
+ #     logfile                 /var/log/nscd.log
+ #     threads                 4
+ #     max-threads             32
+-#     server-user             nobody
++      server-user             nscd
+ #     stat-user               somebody
+       debug-level             0
+ #     reload-count            5
+--- glibc-2.12-2-gc4ccff1/nscd/nscd.init
++++ glibc-2.12-1/nscd/nscd.init
+@@ -9,6 +9,7 @@
+ #             slow naming services like NIS, NIS+, LDAP, or hesiod.
+ # processname: /usr/sbin/nscd
+ # config: /etc/nscd.conf
++# config: /etc/sysconfig/nscd
+ #
+ ### BEGIN INIT INFO
+ # Provides: nscd
+@@ -28,20 +29,8 @@
+ # Source function library.
+ . /etc/init.d/functions
+-# nscd does not run on any kernel lower than 2.2.0 because of threading
+-# problems, so we require that in first place.
+-case $(uname -r) in
+-    2.[2-9].*)
+-      # this is okay
+-      ;;
+-    [3-9]*)
+-      # these are of course also okay
+-      ;;
+-    *)
+-      #this is not
+-      exit 1
+-      ;;
+-esac
++# Source an auxiliary options file if we have one, and pick up NSCD_OPTIONS.
++[ -r /etc/sysconfig/nscd ] && . /etc/sysconfig/nscd
+ RETVAL=0
+ prog=nscd
+@@ -50,7 +39,7 @@ start () {
+     [ -d /var/run/nscd ] || mkdir /var/run/nscd
+     [ -d /var/db/nscd ] || mkdir /var/db/nscd
+     echo -n $"Starting $prog: "
+-    daemon /usr/sbin/nscd
++    daemon /usr/sbin/nscd $NSCD_OPTIONS
+     RETVAL=$?
+     echo
+     [ $RETVAL -eq 0 ] && touch /var/lock/subsys/nscd
+@@ -83,7 +72,7 @@ restart() {
+ # See how we were called.
+ case "$1" in
+     start)
+-      start
++      [ -e /var/lock/subsys/nscd ] || start
+       RETVAL=$?
+       ;;
+     stop)
+@@ -99,14 +88,17 @@ case "$1" in
+       RETVAL=$?
+       ;;
+     try-restart | condrestart)
+-      [ -e /var/lock/subsys/nscd ] && restart
++      [ ! -e /var/lock/subsys/nscd ] || restart
+       RETVAL=$?
+       ;;
+     force-reload | reload)
+       echo -n $"Reloading $prog: "
+-      killproc /usr/sbin/nscd -HUP
+-      RETVAL=$?
+-      echo
++      RETVAL=0
++      /usr/sbin/nscd -i passwd || RETVAL=$?
++      /usr/sbin/nscd -i group || RETVAL=$?
++      /usr/sbin/nscd -i hosts || RETVAL=$?
++      /usr/sbin/nscd -i services || RETVAL=$?
++      echo
+       ;;
+     *)
+       echo $"Usage: $0 {start|stop|status|restart|reload|condrestart}"
+--- glibc-2.12-2-gc4ccff1/posix/Makefile
++++ glibc-2.12-1/posix/Makefile
+@@ -305,15 +305,8 @@ $(inst_libexecdir)/getconf: $(inst_bindi
+         mv -f $@/$$spec.new $@/$$spec; \
+       done < $(objpfx)getconf.speclist
+-$(objpfx)getconf.speclist: $(objpfx)getconf
+-ifeq (no,$(cross-compiling))
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _POSIX_V7_WIDTH_RESTRICTED_ENVS > $@.new
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _POSIX_V6_WIDTH_RESTRICTED_ENVS >> $@.new
+-      LC_ALL=C GETCONF_DIR=/dev/null \
+-      $(run-program-prefix) $< _XBS5_WIDTH_RESTRICTED_ENVS >> $@.new
+-else
+-      > $@.new
+-endif
++$(objpfx)getconf.speclist: getconf.speclist.h
++      $(CC) -E $(CFLAGS) $(CPPFLAGS) $< \
++        | sed -n -e '/START_OF_STRINGS/,$${/\(POSIX_V[67]\|_XBS5\)_/{s/^[^"]*"//;s/".*$$//;p}}' \
++        > $@.new
+       mv -f $@.new $@
+--- glibc-2.12-2-gc4ccff1/posix/gai.conf
++++ glibc-2.12-1/posix/gai.conf
+@@ -41,7 +41,7 @@
+ #
+ # precedence  <mask>   <value>
+ #    Add another rule to the RFC 3484 precedence table.  See section 2.1
+-#    and 10.3 in RFC 3484.  The default is:
++#    and 10.3 in RFC 3484.  The RFC requires:
+ #
+ #precedence  ::1/128       50
+ #precedence  ::/0          40
+@@ -58,7 +58,7 @@
+ #    Add another rule to the RFC 3484 scope table for IPv4 addresses.
+ #    By default the scope IDs described in section 3.2 in RFC 3484 are
+ #    used.  Changing these defaults should hardly ever be necessary.
+-#    The defaults are equivalent to:
++#    The definitions in RFC 1918 are equivalent to:
+ #
+ #scopev4 ::ffff:169.254.0.0/112  2
+ #scopev4 ::ffff:127.0.0.0/104    2
+@@ -75,3 +75,5 @@
+ #scopev4 ::ffff:169.254.0.0/112  2
+ #scopev4 ::ffff:127.0.0.0/104    2
+ #scopev4 ::ffff:0.0.0.0/96       14
++#
++#    This is what the Red Hat setting currently uses.
+--- glibc-2.12-2-gc4ccff1/posix/getconf.speclist.h
++++ glibc-2.12-1/posix/getconf.speclist.h
+@@ -0,0 +1,39 @@
++#include <unistd.h>
++const char *START_OF_STRINGS =
++#if _POSIX_V7_ILP32_OFF32 == 1
++"POSIX_V7_ILP32_OFF32"
++#endif
++#if _POSIX_V7_ILP32_OFFBIG == 1
++"POSIX_V7_ILP32_OFFBIG"
++#endif
++#if _POSIX_V7_LP64_OFF64 == 1
++"POSIX_V7_LP64_OFF64"
++#endif
++#if _POSIX_V7_LPBIG_OFFBIG == 1
++"POSIX_V7_LPBIG_OFFBIG"
++#endif
++#if _POSIX_V6_ILP32_OFF32 == 1
++"POSIX_V6_ILP32_OFF32"
++#endif
++#if _POSIX_V6_ILP32_OFFBIG == 1
++"POSIX_V6_ILP32_OFFBIG"
++#endif
++#if _POSIX_V6_LP64_OFF64 == 1
++"POSIX_V6_LP64_OFF64"
++#endif
++#if _POSIX_V6_LPBIG_OFFBIG == 1
++"POSIX_V6_LPBIG_OFFBIG"
++#endif
++#if _XBS5_ILP32_OFF32 == 1
++"XBS5_ILP32_OFF32"
++#endif
++#if _XBS5_ILP32_OFFBIG == 1
++"XBS5_ILP32_OFFBIG"
++#endif
++#if _XBS5_LP64_OFF64 == 1
++"XBS5_LP64_OFF64"
++#endif
++#if _XBS5_LPBIG_OFFBIG == 1
++"XBS5_LPBIG_OFFBIG"
++#endif
++"";
+--- glibc-2.12-2-gc4ccff1/streams/Makefile
++++ glibc-2.12-1/streams/Makefile
+@@ -21,7 +21,7 @@
+ #
+ subdir        := streams
+-headers               = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
++#headers              = stropts.h sys/stropts.h bits/stropts.h bits/xtitypes.h
+ routines      = isastream getmsg getpmsg putmsg putpmsg fattach fdetach
+ include ../Rules
+--- glibc-2.12-2-gc4ccff1/sysdeps/generic/dl-cache.h
++++ glibc-2.12-1/sysdeps/generic/dl-cache.h
+@@ -36,6 +36,14 @@
+ # define add_system_dir(dir) add_dir (dir)
+ #endif
++#ifndef arch_startup
++# define arch_startup(argc, argv) do { } while (0)
++#endif
++
++#ifndef add_arch_dirs
++# define add_arch_dirs(config_file) do { } while (0)
++#endif
++
+ #define CACHEMAGIC "ld.so-1.7.0"
+ /* libc5 and glibc 2.0/2.1 use the same format.  For glibc 2.2 another
+--- glibc-2.12-2-gc4ccff1/sysdeps/i386/Makefile
++++ glibc-2.12-1/sysdeps/i386/Makefile
+@@ -2,6 +2,8 @@
+ # Every i386 port in use uses gas syntax (I think).
+ asm-CPPFLAGS += -DGAS_SYNTAX
++sysdep-ASFLAGS += -U__i686
++
+ # The i386 `long double' is a distinct type we support.
+ long-double-fcts = yes
+@@ -64,6 +66,14 @@ endif
+ ifneq (,$(filter -mno-tls-direct-seg-refs,$(CFLAGS)))
+ defines += -DNO_TLS_DIRECT_SEG_REFS
++else
++# .a libraries are not performance critical and so we
++# build them without direct TLS segment references
++# always.
++CPPFLAGS-.o += -DNO_TLS_DIRECT_SEG_REFS
++CFLAGS-.o += -mno-tls-direct-seg-refs
++CPPFLAGS-.oS += -DNO_TLS_DIRECT_SEG_REFS
++CFLAGS-.oS += -mno-tls-direct-seg-refs
+ endif
+ ifeq ($(subdir),elf)
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/Makefile
++++ glibc-2.12-1/sysdeps/ia64/Makefile
+@@ -12,8 +12,8 @@ elide-routines.os += hp-timing
+ ifeq (yes,$(build-shared))
+ # Compatibility
+-sysdep_routines += ia64libgcc
+-shared-only-routines += ia64libgcc
++sysdep_routines += libgcc-compat
++shared-only-routines += libgcc-compat
+ endif
+ endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/ia64libgcc.S
++++ glibc-2.12-1/sysdeps/ia64/ia64libgcc.S
+@@ -1,350 +0,0 @@
+-/* From the Intel IA-64 Optimization Guide, choose the minimum latency
+-   alternative.  */
+-
+-#include <sysdep.h>
+-#undef ret
+-
+-#include <shlib-compat.h>
+-
+-#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
+-
+-/* __divtf3
+-   Compute a 80-bit IEEE double-extended quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divtf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fnma.s1 f11 = farg1, f10, f1
+-(p6)  fma.s1 f12 = farg0, f10, f0
+-      ;;
+-(p6)  fma.s1 f13 = f11, f11, f0
+-(p6)  fma.s1 f14 = f11, f11, f11
+-      ;;
+-(p6)  fma.s1 f11 = f13, f13, f11
+-(p6)  fma.s1 f13 = f14, f10, f10
+-      ;;
+-(p6)  fma.s1 f10 = f13, f11, f10
+-(p6)  fnma.s1 f11 = farg1, f12, farg0
+-      ;;
+-(p6)  fma.s1 f11 = f11, f10, f12
+-(p6)  fnma.s1 f12 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f10
+-(p6)  fnma.s1 f12 = farg1, f11, farg0
+-      ;;
+-(p6)  fma.s0 fret0 = f12, f10, f11
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-END(___divtf3)
+-      .symver ___divtf3, __divtf3@GLIBC_2.2
+-
+-/* __divdf3
+-   Compute a 64-bit IEEE double quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divdf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fmpy.s1 f11 = farg0, f10
+-(p6)  fnma.s1 f12 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f11 = f12, f11, f11
+-(p6)  fmpy.s1 f13 = f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f10
+-(p6)  fma.s1 f11 = f13, f11, f11
+-      ;;
+-(p6)  fmpy.s1 f12 = f13, f13
+-(p6)  fma.s1 f10 = f13, f10, f10
+-      ;;
+-(p6)  fma.d.s1 f11 = f12, f11, f11
+-(p6)  fma.s1 f10 = f12, f10, f10
+-      ;;
+-(p6)  fnma.d.s1 f8 = farg1, f11, farg0
+-      ;;
+-(p6)  fma.d fret0 = f8, f10, f11
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divdf3)
+-      .symver ___divdf3, __divdf3@GLIBC_2.2
+-
+-/* __divsf3
+-   Compute a 32-bit IEEE float quotient.
+-   farg0 holds the dividend.  farg1 holds the divisor.  */
+-
+-ENTRY(___divsf3)
+-      cmp.eq p7, p0 = r0, r0
+-      frcpa.s0 f10, p6 = farg0, farg1
+-      ;;
+-(p6)  cmp.ne p7, p0 = r0, r0
+-      .pred.rel.mutex p6, p7
+-(p6)  fmpy.s1 f8 = farg0, f10
+-(p6)  fnma.s1 f9 = farg1, f10, f1
+-      ;;
+-(p6)  fma.s1 f8 = f9, f8, f8
+-(p6)  fmpy.s1 f9 = f9, f9
+-      ;;
+-(p6)  fma.s1 f8 = f9, f8, f8
+-(p6)  fmpy.s1 f9 = f9, f9
+-      ;;
+-(p6)  fma.d.s1 f10 = f9, f8, f8
+-      ;;
+-(p6)  fnorm.s.s0 fret0 = f10
+-(p7)  mov fret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divsf3)
+-      .symver ___divsf3, __divsf3@GLIBC_2.2
+-
+-/* __divdi3
+-   Compute a 64-bit integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___divdi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f8 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, so that they won't be treated as
+-         unsigned.  */
+-      fcvt.xf f8 = f8
+-      fcvt.xf f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-(p6)  fmpy.s1 f12 = f8, f10
+-      ;;
+-(p6)  fmpy.s1 f13 = f11, f11
+-(p6)  fma.s1 f12 = f11, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an integer.  */
+-      fcvt.fx.trunc.s1 f10 = f10
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___divdi3)
+-      .symver ___divdi3, __divdi3@GLIBC_2.2
+-
+-/* __moddi3
+-   Compute a 64-bit integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___moddi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f14 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, so that they won't be treated as
+-         unsigned.  */
+-      fcvt.xf f8 = f14
+-      fcvt.xf f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fmpy.s1 f12 = f8, f10
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-      ;;
+-(p6)  fma.s1 f12 = f11, f12, f12
+-(p6)  fmpy.s1 f13 = f11, f11
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-      sub in1 = r0, in1
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-      setf.sig f9 = in1
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      fcvt.fx.trunc.s1 f10 = f10
+-      ;;
+-      /* r = q * (-b) + a  */
+-      xma.l f10 = f10, f9, f14
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___moddi3)
+-      .symver ___moddi3, __moddi3@GLIBC_2.2
+-
+-/* __udivdi3
+-   Compute a 64-bit unsigned integer quotient.
+-   in0 holds the dividend.  in1 holds the divisor.  */
+-
+-ENTRY(___udivdi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f8 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, to avoid FP software-assist faults.  */
+-      fcvt.xuf.s1 f8 = f8
+-      fcvt.xuf.s1 f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-(p6)  fmpy.s1 f12 = f8, f10
+-      ;;
+-(p6)  fmpy.s1 f13 = f11, f11
+-(p6)  fma.s1 f12 = f11, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an unsigned integer.  */
+-      fcvt.fxu.trunc.s1 f10 = f10
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___udivdi3)
+-      .symver ___udivdi3, __udivdi3@GLIBC_2.2
+-
+-/* __umoddi3
+-   Compute a 64-bit unsigned integer modulus.
+-   in0 holds the dividend (a).  in1 holds the divisor (b).  */
+-
+-ENTRY(___umoddi3)
+-      .regstk 2,0,0,0
+-      /* Transfer inputs to FP registers.  */
+-      setf.sig f14 = in0
+-      setf.sig f9 = in1
+-      ;;
+-      /* Convert the inputs to FP, to avoid FP software assist faults.  */
+-      fcvt.xuf.s1 f8 = f14
+-      fcvt.xuf.s1 f9 = f9
+-      ;;
+-      /* Compute the reciprocal approximation.  */
+-      frcpa.s1 f10, p6 = f8, f9
+-      ;;
+-      /* 3 Newton-Raphson iterations.  */
+-(p6)  fmpy.s1 f12 = f8, f10
+-(p6)  fnma.s1 f11 = f9, f10, f1
+-      ;;
+-(p6)  fma.s1 f12 = f11, f12, f12
+-(p6)  fmpy.s1 f13 = f11, f11
+-      ;;
+-(p6)  fma.s1 f10 = f11, f10, f10
+-(p6)  fma.s1 f11 = f13, f12, f12
+-      ;;
+-      sub in1 = r0, in1
+-(p6)  fma.s1 f10 = f13, f10, f10
+-(p6)  fnma.s1 f12 = f9, f11, f8
+-      ;;
+-      setf.sig f9 = in1
+-(p6)  fma.s1 f10 = f12, f10, f11
+-      ;;
+-      /* Round quotient to an unsigned integer.  */
+-      fcvt.fxu.trunc.s1 f10 = f10
+-      ;;
+-      /* r = q * (-b) + a  */
+-      xma.l f10 = f10, f9, f14
+-      ;;
+-      /* Transfer result to GP registers.  */
+-      getf.sig ret0 = f10
+-      br.ret.sptk rp
+-      ;;
+-END(___umoddi3)
+-      .symver ___umoddi3, __umoddi3@GLIBC_2.2
+-
+-/* __multi3
+-   Compute a 128-bit multiply of 128-bit multiplicands.
+-   in0/in1 holds one multiplicand (a), in2/in3 holds the other one (b).  */
+-
+-ENTRY(___multi3)
+-      .regstk 4,0,0,0
+-      setf.sig f6 = in1
+-      movl r19 = 0xffffffff
+-      setf.sig f7 = in2
+-      ;;
+-      and r14 = r19, in0
+-      ;;
+-      setf.sig f10 = r14
+-      and r14 = r19, in2
+-      xmpy.l f9 = f6, f7
+-      ;;
+-      setf.sig f6 = r14
+-      shr.u r14 = in0, 32
+-      ;;
+-      setf.sig f7 = r14
+-      shr.u r14 = in2, 32
+-      ;;
+-      setf.sig f8 = r14
+-      xmpy.l f11 = f10, f6
+-      xmpy.l f6 = f7, f6
+-      ;;
+-      getf.sig r16 = f11
+-      xmpy.l f7 = f7, f8
+-      ;;
+-      shr.u r14 = r16, 32
+-      and r16 = r19, r16
+-      getf.sig r17 = f6
+-      setf.sig f6 = in0
+-      ;;
+-      setf.sig f11 = r14
+-      getf.sig r21 = f7
+-      setf.sig f7 = in3
+-      ;;
+-      xma.l f11 = f10, f8, f11
+-      xma.l f6 = f6, f7, f9
+-      ;;
+-      getf.sig r18 = f11
+-      ;;
+-      add r18 = r18, r17
+-      ;;
+-      and r15 = r19, r18
+-      cmp.ltu p7, p6 = r18, r17
+-      ;;
+-      getf.sig r22 = f6
+-(p7)  adds r14 = 1, r19
+-      ;;
+-(p7)  add r21 = r21, r14
+-      shr.u r14 = r18, 32
+-      shl r15 = r15, 32
+-      ;;
+-      add r20 = r21, r14
+-      ;;
+-      add ret0 = r15, r16
+-      add ret1 = r22, r20
+-      br.ret.sptk rp
+-      ;;
+-END(___multi3)
+-      .symver ___multi3, __multi3@GLIBC_2.2
+-
+-#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/ia64/libgcc-compat.c
++++ glibc-2.12-1/sysdeps/ia64/libgcc-compat.c
+@@ -0,0 +1,84 @@
++/* pre-.hidden libgcc compatibility
++   Copyright (C) 2002 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++
++#include <stdint.h>
++#include <shlib-compat.h>
++
++#if SHLIB_COMPAT(libc, GLIBC_2_2, GLIBC_2_2_6)
++
++typedef int int128_t __attribute__((__mode__(TI)));
++
++extern long double __divtf3 (long double, long double) attribute_hidden;
++long double INTUSE (__divtf3) (long double x, long double y)
++{
++  return __divtf3 (x, y);
++}
++symbol_version (INTUSE (__divtf3), __divtf3, GLIBC_2.2);
++
++extern double __divdf3 (double, double) attribute_hidden;
++double INTUSE (__divdf3) (double x, double y)
++{
++  return __divdf3 (x, y);
++}
++symbol_version (INTUSE (__divdf3), __divdf3, GLIBC_2.2);
++
++extern float __divsf3 (float, float) attribute_hidden;
++float INTUSE (__divsf3) (float x, float y)
++{
++  return __divsf3 (x, y);
++}
++symbol_version (INTUSE (__divsf3), __divsf3, GLIBC_2.2);
++
++extern int64_t __divdi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__divdi3) (int64_t x, int64_t y)
++{
++  return __divdi3 (x, y);
++}
++symbol_version (INTUSE (__divdi3), __divdi3, GLIBC_2.2);
++
++extern int64_t __moddi3 (int64_t, int64_t) attribute_hidden;
++int64_t INTUSE (__moddi3) (int64_t x, int64_t y)
++{
++  return __moddi3 (x, y);
++}
++symbol_version (INTUSE (__moddi3), __moddi3, GLIBC_2.2);
++
++extern uint64_t __udivdi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__udivdi3) (uint64_t x, uint64_t y)
++{
++  return __udivdi3 (x, y);
++}
++symbol_version (INTUSE (__udivdi3), __udivdi3, GLIBC_2.2);
++
++extern uint64_t __umoddi3 (uint64_t, uint64_t) attribute_hidden;
++uint64_t INTUSE (__umoddi3) (uint64_t x, uint64_t y)
++{
++  return __umoddi3 (x, y);
++}
++symbol_version (INTUSE (__umoddi3), __umoddi3, GLIBC_2.2);
++
++extern int128_t __multi3 (int128_t, int128_t) attribute_hidden;
++int128_t INTUSE (__multi3) (int128_t x, int128_t y)
++{
++  return __multi3 (x, y);
++}
++symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
++
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
++++ glibc-2.12-1/sysdeps/posix/getaddrinfo.c
+@@ -1099,10 +1099,12 @@ static const struct scopeentry
+     /* Link-local addresses: scope 2.  */
+     { { { 169, 254, 0, 0 } }, htonl_c (0xffff0000), 2 },
+     { { { 127, 0, 0, 0 } }, htonl_c (0xff000000), 2 },
++#if 0
+     /* Site-local addresses: scope 5.  */
+     { { { 10, 0, 0, 0 } }, htonl_c (0xff000000), 5 },
+     { { { 172, 16, 0, 0 } }, htonl_c (0xfff00000), 5 },
+     { { { 192, 168, 0, 0 } }, htonl_c (0xffff0000), 5 },
++#endif
+     /* Default: scope 14.  */
+     { { { 0, 0, 0, 0 } }, htonl_c (0x00000000), 14 }
+   };
+--- glibc-2.12-2-gc4ccff1/sysdeps/powerpc/powerpc64/Makefile
++++ glibc-2.12-1/sysdeps/powerpc/powerpc64/Makefile
+@@ -30,6 +30,7 @@ ifneq ($(elf),no)
+ # we use -fpic instead which is much better.
+ CFLAGS-initfini.s += -fpic -O1
+ endif
++CFLAGS-libc-start.c += -fno-asynchronous-unwind-tables
+ endif
+ ifeq ($(subdir),elf)
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/nice.c
++++ glibc-2.12-1/sysdeps/unix/nice.c
+@@ -42,7 +42,12 @@ nice (int incr)
+       __set_errno (save);
+     }
+-  result = setpriority (PRIO_PROCESS, 0, prio + incr);
++  prio += incr;
++  if (prio < PRIO_MIN)
++    prio = PRIO_MIN;
++  else if (prio >= PRIO_MAX)
++    prio = PRIO_MAX - 1;
++  result = setpriority (PRIO_PROCESS, 0, prio);
+   if (result == -1)
+     {
+       if (errno == EACCES)
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/check_pf.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/check_pf.c
+@@ -27,13 +27,10 @@
+ #include <unistd.h>
+ #include <sys/socket.h>
+-#include <asm/types.h>
+-#include <linux/netlink.h>
+-#include <linux/rtnetlink.h>
+-
+ #include <not-cancel.h>
+ #include <kernel-features.h>
++#include "netlinkaccess.h"
+ #ifndef IFA_F_HOMEADDRESS
+ # define IFA_F_HOMEADDRESS 0
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/dl-osinfo.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/dl-osinfo.h
+@@ -17,10 +17,13 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++#include <errno.h>
+ #include <kernel-features.h>
+ #include <dl-sysdep.h>
+ #include <fcntl.h>
+ #include <stdint.h>
++#include <hp-timing.h>
++#include <endian.h>
+ #ifndef MIN
+ # define MIN(a,b) (((a)<(b))?(a):(b))
+@@ -80,6 +83,32 @@ _dl_setup_stack_chk_guard (void *dl_rand
+       unsigned char *p = (unsigned char *) &ret;
+       p[sizeof (ret) - 1] = 255;
+       p[sizeof (ret) - 2] = '\n';
++#ifdef HP_TIMING_NOW
++      hp_timing_t hpt;
++      HP_TIMING_NOW (hpt);
++      hpt = (hpt & 0xffff) << 8;
++      ret ^= hpt;
++#endif
++      uintptr_t stk;
++      /* Avoid GCC being too smart.  */
++      asm ("" : "=r" (stk) : "r" (p));
++      stk &= 0x7ffff0;
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++      stk <<= (__WORDSIZE - 23);
++#elif __WORDSIZE == 64
++      stk <<= 31;
++#endif
++      ret ^= stk;
++      /* Avoid GCC being too smart.  */
++      p = (unsigned char *) &errno;
++      asm ("" : "=r" (stk) : "r" (p));
++      stk &= 0x7fff00;
++#if __BYTE_ORDER == __LITTLE_ENDIAN
++      stk <<= (__WORDSIZE - 29);
++#else
++      stk >>= 8;
++#endif
++      ret ^= stk;
+     }
+   else
+ #endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/futimesat.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/futimesat.c
+@@ -37,14 +37,14 @@ futimesat (fd, file, tvp)
+ {
+   int result;
++  if (file == NULL)
++    return __futimes (fd, tvp);
++
+ #ifdef __NR_futimesat
+ # ifndef __ASSUME_ATFCTS
+   if (__have_atfcts >= 0)
+ # endif
+     {
+-      if (file == NULL)
+-      return __futimes (fd, tvp);
+-
+       result = INLINE_SYSCALL (futimesat, 3, fd, file, tvp);
+ # ifndef __ASSUME_ATFCTS
+       if (result == -1 && errno == ENOSYS)
+@@ -58,22 +58,7 @@ futimesat (fd, file, tvp)
+ #ifndef __ASSUME_ATFCTS
+   char *buf = NULL;
+-  if (file == NULL)
+-    {
+-      static const char procfd[] = "/proc/self/fd/%d";
+-      /* Buffer for the path name we are going to use.  It consists of
+-       - the string /proc/self/fd/
+-       - the file descriptor number.
+-       The final NUL is included in the sizeof.   A bit of overhead
+-       due to the format elements compensates for possible negative
+-       numbers.  */
+-      size_t buflen = sizeof (procfd) + sizeof (int) * 3;
+-      buf = alloca (buflen);
+-
+-      __snprintf (buf, buflen, procfd, fd);
+-      file = buf;
+-    }
+-  else if (fd != AT_FDCWD && file[0] != '/')
++  if (fd != AT_FDCWD && file[0] != '/')
+     {
+       size_t filelen = strlen (file);
+       if (__builtin_expect (filelen == 0, 0))
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/dl-cache.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/i386/dl-cache.h
+@@ -0,0 +1,59 @@
++/* Support for reading /etc/ld.so.cache files written by Linux ldconfig.
++   Copyright (C) 2004 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++static inline int
++is_ia64 (void)
++{
++  unsigned int fl1, fl2;
++
++  /* See if we can use cpuid.  */
++  __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
++           "pushl %0; popfl; pushfl; popl %0; popfl"
++           : "=&r" (fl1), "=&r" (fl2)
++           : "i" (0x00200000));
++  if (((fl1 ^ fl2) & 0x00200000) == 0)
++    return 0;
++
++  /* Host supports cpuid.  See if cpuid gives capabilities, try
++     CPUID(0).  Preserve %ebx and %ecx; cpuid insn clobbers these, we
++     don't need their CPUID values here, and %ebx may be the PIC
++     register.  */
++  __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
++           : "=a" (fl1) : "0" (0) : "edx", "cc");
++  if (fl1 == 0)
++    return 0;
++
++  /* Invoke CPUID(1), return %edx; caller can examine bits to
++     determine what's supported.  */
++  __asm__ ("pushl %%ecx; pushl %%ebx; cpuid; popl %%ebx; popl %%ecx"
++           : "=d" (fl2), "=a" (fl1) : "1" (1) : "cc");
++  return (fl2 & (1 << 30)) != 0;
++}
++
++#define arch_startup(argc, argv) \
++  do {                                                                        \
++    /* On IA-64, try to execute 64-bit ldconfig if possible.          \
++       This is because the badly designed /emul/ia32-linux hack               \
++       will cause 32-bit ldconfig to do all sorts of weird things.  */        \
++    if (is_ia64 ())                                                   \
++      execv ("/emul/ia32-linux/../../sbin/ldconfig",                  \
++           (char *const *) argv);                                     \
++  } while (0)
++
++#include_next <dl-cache.h>
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-cache.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-cache.h
+@@ -22,4 +22,31 @@
+ #define _dl_cache_check_flags(flags) \
+   ((flags) == _DL_CACHE_DEFAULT_ID)
++#define EMUL_HACK "/emul/ia32-linux"
++
++#define arch_startup(argc, argv) unlink (EMUL_HACK LD_SO_CACHE)
++
++#define add_arch_dirs(config_file) \
++  do {                                                        \
++    int save_verbose = opt_verbose;                   \
++    opt_verbose = 0;                                  \
++                                                      \
++    parse_conf (config_file, EMUL_HACK, true);                \
++                                                      \
++    /* Always add the standard search paths.  */      \
++    add_system_dir (EMUL_HACK SLIBDIR);                       \
++    if (strcmp (SLIBDIR, LIBDIR))                     \
++      add_system_dir (EMUL_HACK LIBDIR);              \
++                                                      \
++    char emul_config_file[strlen (config_file)                \
++                        + sizeof EMUL_HACK];          \
++    strcpy (mempcpy (emul_config_file, EMUL_HACK,     \
++                   strlen (EMUL_HACK)), config_file); \
++                                                      \
++    if (! access (emul_config_file, R_OK))            \
++      parse_conf (emul_config_file, EMUL_HACK, true); \
++                                                      \
++    opt_verbose = save_verbose;                               \
++  } while (0)
++
+ #include_next <dl-cache.h>
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.c
+@@ -0,0 +1,5 @@
++#ifdef IS_IN_ldconfig
++#include <sysdeps/i386/dl-procinfo.c>
++#else
++#include <sysdeps/generic/dl-procinfo.c>
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/dl-procinfo.h
+@@ -0,0 +1,5 @@
++#ifdef IS_IN_ldconfig
++#include <sysdeps/unix/sysv/linux/i386/dl-procinfo.h>
++#else
++#include <sysdeps/generic/dl-procinfo.h>
++#endif
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/ia64/ldd-rewrite.sed
+@@ -1 +1 @@
+-s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 \2\3"_
++s_^\(RTLDLIST=\)\([^  ]*\)-ia64\(\.so\.[0-9.]*\)[     ]*$_\1"\2-ia64\3 /emul/ia32-linux\2\3"_
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/netlinkaccess.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/netlinkaccess.h
+@@ -25,6 +25,24 @@
+ #include <kernel-features.h>
++#ifndef IFA_MAX
++/* 2.6.19 kernel headers helpfully removed some macros and
++   moved lots of stuff into new headers, some of which aren't
++   included by linux/rtnetlink.h.  */
++#include <linux/if_addr.h>
++#endif
++
++#ifndef IFA_RTA
++# define IFA_RTA(r) \
++  ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifaddrmsg))))
++# define IFA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifaddrmsg))
++#endif
++
++#ifndef IFLA_RTA
++# define IFLA_RTA(r) \
++  ((struct rtattr*) ((char*)(r) + NLMSG_ALIGN (sizeof (struct ifinfomsg))))
++# define IFLA_PAYLOAD(n) NLMSG_PAYLOAD (n, sizeof (struct ifinfomsg))
++#endif
+ struct netlink_res
+ {
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/paths.h
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/paths.h
+@@ -62,7 +62,7 @@
+ #define       _PATH_TTY       "/dev/tty"
+ #define       _PATH_UNIX      "/boot/vmlinux"
+ #define _PATH_UTMP    "/var/run/utmp"
+-#define       _PATH_VI        "/usr/bin/vi"
++#define       _PATH_VI        "/bin/vi"
+ #define _PATH_WTMP    "/var/log/wtmp"
+ /* Provide trailing slash, since mostly used for building pathnames. */
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/sparc/sparc64/fxstat.c
+@@ -1 +1 @@
+-#include "../../fxstat.c"
++#include "../../i386/fxstat.c"
+--- glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/tcsetattr.c
++++ glibc-2.12-1/sysdeps/unix/sysv/linux/tcsetattr.c
+@@ -49,6 +49,7 @@ tcsetattr (fd, optional_actions, termios
+ {
+   struct __kernel_termios k_termios;
+   unsigned long int cmd;
++  int retval;
+   switch (optional_actions)
+     {
+@@ -80,6 +81,35 @@ tcsetattr (fd, optional_actions, termios
+   memcpy (&k_termios.c_cc[0], &termios_p->c_cc[0],
+         __KERNEL_NCCS * sizeof (cc_t));
+-  return INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
++  retval = INLINE_SYSCALL (ioctl, 3, fd, cmd, &k_termios);
++
++  if (retval == 0 && cmd == TCSETS)
++    {
++      /* The Linux kernel has a bug which silently ignore the invalid
++        c_cflag on pty. We have to check it here. */
++      int save = errno;
++      retval = INLINE_SYSCALL (ioctl, 3, fd, TCGETS, &k_termios);
++      if (retval)
++       {
++         /* We cannot verify if the setting is ok. We don't return
++            an error (?). */
++         __set_errno (save);
++         retval = 0;
++       }
++      else if ((termios_p->c_cflag & (PARENB | CREAD))
++              != (k_termios.c_cflag & (PARENB | CREAD))
++              || ((termios_p->c_cflag & CSIZE)
++                  && ((termios_p->c_cflag & CSIZE)
++                      != (k_termios.c_cflag & CSIZE))))
++       {
++         /* It looks like the Linux kernel silently changed the
++            PARENB/CREAD/CSIZE bits in c_cflag. Report it as an
++            error. */
++         __set_errno (EINVAL);
++         retval = -1;
++       }
++    }
++
++  return retval;
+ }
+ libc_hidden_def (tcsetattr)
+--- glibc-2.12-2-gc4ccff1/timezone/zic.c
++++ glibc-2.12-1/timezone/zic.c
+@@ -1921,7 +1921,7 @@ const int                        zonecount;
+               if (stdrp != NULL && stdrp->r_hiyear == 2037)
+                       return;
+       }
+-      if (stdrp == NULL && zp->z_nrules != 0)
++      if (stdrp == NULL && (zp->z_nrules != 0 || zp->z_stdoff != 0))
+               return;
+       abbrvar = (stdrp == NULL) ? "" : stdrp->r_abbrvar;
+       doabbr(result, zp->z_format, abbrvar, FALSE, TRUE);
diff --git a/src/patches/glibc/glibc-getlogin-r.patch b/src/patches/glibc/glibc-getlogin-r.patch
new file mode 100644 (file)
index 0000000..9181ce1
--- /dev/null
@@ -0,0 +1,36 @@
+2010-05-05  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #11571]
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle
+       too small buffers according to the standard.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -81,13 +81,22 @@ __getlogin_r_loginuid (name, namesize)
+   if (tpwd == NULL)
+     goto fail;
+-  strncpy (name, pwd.pw_name, namesize - 1);
+-  name[namesize - 1] = '\0';
++  int result = 0;
++  size_t needed = strlen (pwd.pw_name) + 1;
++  if (needed > namesize)
++    {
++      __set_errno (ERANGE);
++      result = ERANGE;
++      goto out;
++    }
++  memcpy (name, pwd.pw_name, needed);
++
++ out:
+   if (use_malloc)
+     free (buf);
+-  return 0;
++  return result;
+ }
diff --git a/src/patches/glibc/glibc-localedata.patch b/src/patches/glibc/glibc-localedata.patch
new file mode 100644 (file)
index 0000000..15de7c6
--- /dev/null
@@ -0,0 +1,18 @@
+2010-05-04  Andreas Schwab  <schwab@redhat.com>
+
+       * SUPPORTED (SUPPORTED-LOCALES): Fix name of tt_RU.UTF-8@iqtelif
+       locale.
+
+Index: glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/SUPPORTED
++++ glibc-2.12-2-gc4ccff1/localedata/SUPPORTED
+@@ -392,7 +392,7 @@ tr_TR.UTF-8/UTF-8 \
+ tr_TR/ISO-8859-9 \
+ ts_ZA/UTF-8 \
+ tt_RU.UTF-8/UTF-8 \
+-tt_RU@iqtelif.UTF-8/UTF-8 \
++tt_RU.UTF-8@iqtelif/UTF-8 \
+ ug_CN/UTF-8 \
+ uk_UA.UTF-8/UTF-8 \
+ uk_UA/KOI8-U \
diff --git a/src/patches/glibc/glibc-recvmmsg.patch b/src/patches/glibc/glibc-recvmmsg.patch
new file mode 100644 (file)
index 0000000..9e3aa7a
--- /dev/null
@@ -0,0 +1,182 @@
+2010-05-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Add recvmmsg
+       and internal_recvmmsg.
+       * sysdeps/unix/sysv/linux/recvmmsg.c: New file.
+       * sysdeps/unix/sysv/linux/internal_recvmmsg.S: New file.
+       * sysdeps/unix/sysv/linux/socketcall.h (SOCKOP_recvmmsg): Define.
+       * sysdeps/unix/sysv/linux/syscalls.list (recvmmsg): Remove.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/Makefile
+@@ -12,7 +12,7 @@ CFLAGS-malloc.c += -DMORECORE_CLEARS=2
+ endif
+ ifeq ($(subdir),socket)
+-sysdep_routines += internal_accept4
++sysdep_routines += internal_accept4 recvmmsg internal_recvmmsg
+ endif
+ ifeq ($(subdir),misc)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_recvmmsg.S
+@@ -0,0 +1,14 @@
++#include <kernel-features.h>
++#include <sys/syscall.h>
++#if !defined __NR_recvmmsg && defined __NR_socketcall
++# define socket       recvmmsg
++# ifdef __ASSUME_RECVMMSG
++#  define __socket recvmmsg
++# else
++#  define __socket __internal_recvmmsg
++# endif
++# define NARGS 5
++# define NEED_CANCELLATION
++# define NO_WEAK_ALIAS
++# include <socket.S>
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -547,3 +547,8 @@
+ #if __LINUX_KERNEL_VERSION >= 0x020620
+ # define __ASSUME_F_GETOWN_EX 1
+ #endif
++
++/* Support for the recvmmsg syscall was added in 2.6.33.  */
++#if __LINUX_KERNEL_VERSION >= 0x020621
++# define __ASSUME_RECVMMSG    1
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/recvmmsg.c
+@@ -0,0 +1,100 @@
++/* Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <sys/socket.h>
++
++#include <sysdep-cancel.h>
++#include <sys/syscall.h>
++#include <kernel-features.h>
++
++
++#ifdef __NR_recvmmsg
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  if (SINGLE_THREAD_P)
++    return INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo);
++
++  int oldtype = LIBC_CANCEL_ASYNC ();
++
++  int result = INLINE_SYSCALL (recvmmsg, 5, fd, vmessages, vlen, flags, tmo);
++
++  LIBC_CANCEL_RESET (oldtype);
++
++  return result;
++}
++#elif defined __NR_socketcall
++# ifndef __ASSUME_RECVMMSG
++extern int __internal_recvmmsg (int fd, struct mmsghdr *vmessages,
++                              unsigned int vlen, int flags,
++                              const struct timespec *tmo)
++     attribute_hidden;
++
++static int have_recvmmsg;
++
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  if (__builtin_expect (have_recvmmsg >= 0, 1))
++    {
++      int ret = __internal_recvmmsg (fd, vmessages, vlen, flags, tmo);
++      /* The kernel returns -EINVAL for unknown socket operations.
++       We need to convert that error to an ENOSYS error.  */
++      if (__builtin_expect (ret < 0, 0)
++        && have_recvmmsg == 0
++        && errno == EINVAL)
++      {
++        /* Try another call, this time with an invalid file
++           descriptor and all other parameters cleared.  This call
++           will not cause any harm and it will return
++           immediately.  */
++        ret = __internal_recvmmsg (-1, 0, 0, 0, 0);
++        if (errno == EINVAL)
++          {
++            have_recvmmsg = -1;
++            __set_errno (ENOSYS);
++          }
++        else
++          {
++            have_recvmmsg = 1;
++            __set_errno (EINVAL);
++          }
++        return -1;
++      }
++      return ret;
++    }
++  __set_errno (ENOSYS);
++  return -1;
++}
++# else
++/* When __ASSUME_RECVMMSG recvmmsg is defined in internal_recvmmsg.S.  */
++# endif
++#else
++int
++recvmmsg (int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags,
++        const struct timespec *tmo)
++{
++  __set_errno (ENOSYS);
++  return -1;
++}
++stub_warning (recvmmsg)
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/socketcall.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/socketcall.h
+@@ -44,5 +44,6 @@
+ #define SOCKOP_sendmsg                16
+ #define SOCKOP_recvmsg                17
+ #define SOCKOP_accept4                18
++#define SOCKOP_recvmmsg               19
+ #endif /* sys/socketcall.h */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/syscalls.list
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/syscalls.list
+@@ -53,7 +53,6 @@ prctl                EXTRA   prctl           i:iiiii __prctl         prc
+ putpmsg               -       putpmsg         i:ippii putpmsg
+ query_module  EXTRA   query_module    i:sipip query_module
+ quotactl      EXTRA   quotactl        i:isip  quotactl
+-recvmmsg      EXTRA   recvmmsg        Ci:ipiip        recvmmsg
+ remap_file_pages -    remap_file_pages i:piiii        __remap_file_pages remap_file_pages
+ sched_getp    -       sched_getparam  i:ip    __sched_getparam        sched_getparam
+ sched_gets    -       sched_getscheduler      i:i     __sched_getscheduler    sched_getscheduler
diff --git a/src/patches/glibc/glibc-rh580498.patch b/src/patches/glibc/glibc-rh580498.patch
new file mode 100644 (file)
index 0000000..05b673a
--- /dev/null
@@ -0,0 +1,296 @@
+2010-07-03  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-abstime.c (do_test): Some more cleanups
+
+2010-07-02  Ulrich Drepper  <drepper@redhat.com>
+
+       * tst-abstime.c: Correct testing and add test for sem_timedwait.
+
+2010-07-01  Andreas Schwab  <schwab@redhat.com>
+           Ulrich Drepper  <drepper@redhat.com>
+
+       * Makefile (tests): Add tst-abstime.
+       * tst-abstime.c: New file.
+       * sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+       (__lll_timedlock_wait): Check for timestamp before the Epoch.
+       * sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+       (__lll_timedlock_wait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+       (__lll_robust_timedlock_wait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+       (__pthread_cond_timedwait): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+       (pthread_rwlock_timedrdlock): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+       (pthread_rwlock_timedwrlock): Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S (sem_timedwait):
+       Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/Makefile
++++ glibc-2.12-2-gc4ccff1/nptl/Makefile
+@@ -256,6 +256,7 @@ tests = tst-typesizes \
+       tst-sched1 \
+       tst-backtrace1 \
+       tst-oddstacklimit \
++      tst-abstime \
+       tst-vfork1 tst-vfork2 tst-vfork1x tst-vfork2x \
+       tst-getpid1 tst-getpid2 tst-getpid3 \
+       tst-initializers1 $(patsubst %,tst-initializers1-%,c89 gnu89 c99 gnu99)
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
+@@ -188,6 +188,9 @@ __lll_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpl    $0, (%edx)
++      js      8f
++
+       movl    %ecx, %ebx
+       movl    %esi, %ecx
+       movl    %edx, %esi
+@@ -223,6 +226,9 @@ __lll_timedlock_wait:
+       cfi_restore(%ebp)
+       ret
++8:    movl    $ETIMEDOUT, %eax
++      jmp     7b
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       /* Check for a valid timeout value.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
+@@ -169,9 +169,13 @@ __lll_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpq    $0, (%rdx)
++      js      5f
++
+       pushq   %r9
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r9, 0)
++
+       movq    %rdx, %r10
+       movl    $0xffffffff, %r9d
+       LOAD_FUTEX_WAIT_ABS (%esi)
+@@ -202,6 +206,9 @@ __lll_timedlock_wait:
+       cfi_restore(%r9)
+       retq
++5:    movl    $ETIMEDOUT, %eax
++      retq
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       /* Check for a valid timeout value.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
+@@ -125,6 +125,9 @@ __lll_robust_timedlock_wait:
+       je      .Lreltmo
+ # endif
++      cmpq    $0, (%rdx)
++      js      7f
++
+       pushq   %r9
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r9, 0)
+@@ -180,6 +183,9 @@ __lll_robust_timedlock_wait:
+       cfi_adjust_cfa_offset(-8)
+       cfi_restore(%r9)
++7:    movl    $ETIMEDOUT, %eax
++      retq
++
+ # ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+@@ -144,6 +144,10 @@ __pthread_cond_timedwait:
+       movq    %r9, 24(%rsp)
+       movl    %edx, 4(%rsp)
++      cmpq    $0, (%r13)
++      movq    $-ETIMEDOUT, %r14
++      js      36f
++
+ 38:   movl    cond_futex(%rdi), %r12d
+       /* Unlock.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
+@@ -102,6 +102,9 @@ pthread_rwlock_timedrdlock:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%r13)
++      js      16f             /* Time is already up.  */
++
+       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
+       xorl    PSHARED(%r12), %esi
+       movq    %r13, %r10
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
+@@ -99,6 +99,9 @@ pthread_rwlock_timedwrlock:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%r13)
++      js      16f             /* Time is already up. */
++
+       movl    $FUTEX_PRIVATE_FLAG|FUTEX_WAIT_BITSET|FUTEX_CLOCK_REALTIME, %esi
+       xorl    PSHARED(%r12), %esi
+       movq    %r13, %r10
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
+@@ -77,6 +77,9 @@ sem_timedwait:
+       je      .Lreltmo
+ #endif
++      cmpq    $0, (%rsi)
++      js      16f
++
+       /* This push is only needed to store the sem_t pointer for the
+          exception handler.  */
+       pushq   %rdi
+@@ -169,6 +172,19 @@ sem_timedwait:
+       retq
++16:
++#if USE___THREAD
++      movq    errno@gottpoff(%rip), %rdx
++      movl    $ETIMEDOUT, %fs:(%rdx)
++#else
++      callq   __errno_location@plt
++      movl    $ETIMEDOUT, (%rax)
++#endif
++
++      orl     $-1, %eax
++
++      retq
++
+ #ifndef __ASSUME_FUTEX_CLOCK_REALTIME
+ .Lreltmo:
+       pushq   %r12
+Index: glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/nptl/tst-abstime.c
+@@ -0,0 +1,98 @@
++/* Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Andreas Schwab <schwab@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <pthread.h>
++#include <semaphore.h>
++#include <stdio.h>
++
++static pthread_cond_t c = PTHREAD_COND_INITIALIZER;
++static pthread_mutex_t m1 = PTHREAD_MUTEX_INITIALIZER;
++static pthread_mutex_t m2 = PTHREAD_MUTEX_INITIALIZER;
++static pthread_rwlock_t rw1 = PTHREAD_RWLOCK_INITIALIZER;
++static pthread_rwlock_t rw2 = PTHREAD_RWLOCK_INITIALIZER;
++static sem_t sem;
++
++static void *
++th (void *arg)
++{
++  long int res = 0;
++  int r;
++  struct timespec t = { -2, 0 };
++
++  r = pthread_mutex_timedlock (&m1, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_mutex_timedlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  r = pthread_rwlock_timedrdlock (&rw1, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_rwlock_timedrdlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  r = pthread_rwlock_timedwrlock (&rw2, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_rwlock_timedwrlock did not return ETIMEDOUT");
++      res = 1;
++    }
++  return (void *) res;
++}
++
++static int
++do_test (void)
++{
++  int res = 0;
++  int r;
++  struct timespec t = { -2, 0 };
++  pthread_t pth;
++
++  sem_init (&sem, 0, 0);
++  r = sem_timedwait (&sem, &t);
++  if (r != -1 || errno != ETIMEDOUT)
++    {
++      puts ("sem_timedwait did not fail with ETIMEDOUT");
++      res = 1;
++    }
++
++  pthread_mutex_lock (&m1);
++  pthread_rwlock_wrlock (&rw1);
++  pthread_rwlock_rdlock (&rw2);
++  pthread_mutex_lock (&m2);
++  if (pthread_create (&pth, 0, th, 0) != 0)
++    {
++      puts ("cannot create thread");
++      return 1;
++    }
++  r = pthread_cond_timedwait (&c, &m2, &t);
++  if (r != ETIMEDOUT)
++    {
++      puts ("pthread_cond_timedwait did not return ETIMEDOUT");
++      res = 1;
++    }
++  void *thres;
++  pthread_join (pth, &thres);
++  return res | (thres != NULL);
++}
++
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
diff --git a/src/patches/glibc/glibc-rh582738.patch b/src/patches/glibc/glibc-rh582738.patch
new file mode 100644 (file)
index 0000000..40f7b80
--- /dev/null
@@ -0,0 +1,13 @@
+Index: glibc-2.11-382-g1cdb215/nscd/nscd.init
+===================================================================
+--- glibc-2.11-382-g1cdb215.orig/nscd/nscd.init
++++ glibc-2.11-382-g1cdb215/nscd/nscd.init
+@@ -76,7 +76,7 @@ case "$1" in
+       RETVAL=$?
+       ;;
+     stop)
+-      stop
++      [ ! -e /var/lock/subsys/nscd ] || stop
+       RETVAL=$?
+       ;;
+     status)
diff --git a/src/patches/glibc/glibc-rh587360.patch b/src/patches/glibc/glibc-rh587360.patch
new file mode 100644 (file)
index 0000000..07b62e6
--- /dev/null
@@ -0,0 +1,13 @@
+Index: glibc-2.11-382-g1cdb215/posix/regexec.c
+===================================================================
+--- glibc-2.11-382-g1cdb215.orig/posix/regexec.c
++++ glibc-2.11-382-g1cdb215/posix/regexec.c
+@@ -4031,7 +4031,7 @@ find_collation_sequence_value (const uns
+         /* Skip the collation sequence value.  */
+         idx += sizeof (uint32_t);
+         /* Skip the wide char sequence of the collating element.  */
+-        idx = idx + sizeof (uint32_t) * (extra[idx] + 1);
++        idx = idx + sizeof (uint32_t) * (*(int32_t *) (extra + idx) + 1);
+         /* If we found the entry, return the sequence value.  */
+         if (found)
+           return *(uint32_t *) (extra + idx);
diff --git a/src/patches/glibc/glibc-rh593396.patch b/src/patches/glibc/glibc-rh593396.patch
new file mode 100644 (file)
index 0000000..b907a36
--- /dev/null
@@ -0,0 +1,42 @@
+2010-05-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * malloc/malloc.c (_int_free): Possible race in the most recently
+       added check.  Only act on the data if no current modification
+       happened.
+
+Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
+@@ -4859,6 +4859,7 @@ _int_free(mstate av, mchunkptr p)
+ #ifdef ATOMIC_FASTBINS
+     mchunkptr fd;
+     mchunkptr old = *fb;
++    unsigned int old_idx = ~0u;
+     do
+       {
+       /* Another simple check: make sure the top of the bin is not the
+@@ -4868,15 +4869,17 @@ _int_free(mstate av, mchunkptr p)
+           errstr = "double free or corruption (fasttop)";
+           goto errout;
+         }
+-      if (old != NULL
+-          && __builtin_expect (fastbin_index(chunksize(old)) != idx, 0))
+-        {
+-          errstr = "invalid fastbin entry (free)";
+-          goto errout;
+-        }
++      if (old != NULL)
++        old_idx = fastbin_index(chunksize(old));
+       p->fd = fd = old;
+       }
+     while ((old = catomic_compare_and_exchange_val_rel (fb, p, fd)) != fd);
++
++    if (fd != NULL && __builtin_expect (old_idx != idx, 0))
++      {
++      errstr = "invalid fastbin entry (free)";
++      goto errout;
++      }
+ #else
+     /* Another simple check: make sure the top of the bin is not the
+        record we are going to add (i.e., double free).  */
diff --git a/src/patches/glibc/glibc-rh593686.patch b/src/patches/glibc/glibc-rh593686.patch
new file mode 100644 (file)
index 0000000..3eceb68
--- /dev/null
@@ -0,0 +1,179 @@
+2010-05-26  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/Makefile: Add rules to build and run unload8 test.
+       * elf/unload8.c: New file.
+       * elf/unload8mod1.c: New file.
+       * elf/unload8mod1x.c: New file.
+       * elf/unload8mod2.c: New file.
+       * elf/unload8mod3.c: New file.
+
+       * elf/dl-close.c (_dl_close_worker): Reset private search list if
+       it wasn't used.
+
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -89,6 +89,7 @@ distribute   := rtld-Rules \
+                  unload4mod1.c unload4mod2.c unload4mod3.c unload4mod4.c \
+                  unload6mod1.c unload6mod2.c unload6mod3.c \
+                  unload7mod1.c unload7mod2.c \
++                 unload8mod1.c unload8mod1x.c unload8mod2.c unload8mod3.c \
+                  tst-audit1.c tst-audit2.c tst-audit3.c tst-audit4.c \
+                  tst-auditmod1.c tst-auditmod3a.c tst-auditmod3b.c \
+                  tst-auditmod4a.c tst-auditmod4b.c \
+@@ -196,7 +197,7 @@ tests += loadtest restest1 preloadtest l
+        tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
+        tst-dlmodcount tst-dlopenrpath tst-deep1 \
+        tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
+-       unload3 unload4 unload5 unload6 unload7 tst-global1 order2 \
++       unload3 unload4 unload5 unload6 unload7 unload8 tst-global1 order2 \
+        tst-audit1 tst-audit2 \
+        tst-stackguard1 tst-addr1 tst-thrlock \
+        tst-unique1 tst-unique2
+@@ -247,6 +248,7 @@ modules-names = testobj1 testobj2 testob
+               unload4mod1 unload4mod2 unload4mod3 unload4mod4 \
+               unload6mod1 unload6mod2 unload6mod3 \
+               unload7mod1 unload7mod2 \
++              unload8mod1 unload8mod1x unload8mod2 unload8mod3 \
+               order2mod1 order2mod2 order2mod3 order2mod4 \
+               tst-unique1mod1 tst-unique1mod2 \
+               tst-unique2mod1 tst-unique2mod2
+@@ -522,6 +524,9 @@ $(objpfx)unload6mod2.so: $(libdl)
+ $(objpfx)unload6mod3.so: $(libdl)
+ $(objpfx)unload7mod1.so: $(libdl)
+ $(objpfx)unload7mod2.so: $(objpfx)unload7mod1.so
++$(objpfx)unload8mod1.so: $(objpfx)unload8mod2.so
++$(objpfx)unload8mod2.so: $(objpfx)unload8mod3.so
++$(objpfx)unload8mod3.so: $(libdl)
+ LDFLAGS-tst-tlsmod5.so = -nostdlib
+ LDFLAGS-tst-tlsmod6.so = -nostdlib
+@@ -823,6 +828,9 @@ $(objpfx)unload7: $(libdl)
+ $(objpfx)unload7.out: $(objpfx)unload7mod1.so $(objpfx)unload7mod2.so
+ unload7-ENV = MALLOC_PERTURB_=85
++$(objpfx)unload8: $(libdl)
++$(objpfx)unload8.out: $(objpfx)unload8mod1.so $(objpfx)unload8mod1x.so
++
+ ifdef libdl
+ $(objpfx)tst-tls9-static: $(common-objpfx)dlfcn/libdl.a
+ $(objpfx)tst-tls9-static.out: $(objpfx)tst-tlsmod5.so $(objpfx)tst-tlsmod6.so
+Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c
+@@ -421,6 +421,13 @@ _dl_close_worker (struct link_map *map)
+             imap->l_scope_max = new_size;
+           }
++        else if (new_list != NULL)
++          {
++            /* We didn't change the scope array, so reset the search
++               list.  */
++            imap->l_searchlist.r_list = NULL;
++            imap->l_searchlist.r_nlist = 0;
++          }
+         /* The loader is gone, so mark the object as not having one.
+            Note: l_idx != IDX_STILL_USED -> object will be removed.  */
+Index: glibc-2.12-2-gc4ccff1/elf/unload8.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8.c
+@@ -0,0 +1,33 @@
++#include <dlfcn.h>
++#include <stdio.h>
++
++int
++main (void)
++{
++  void *h = dlopen ("$ORIGIN/unload8mod1.so", RTLD_LAZY);
++  if (h == NULL)
++    {
++      puts ("dlopen unload8mod1.so failed");
++      return 1;
++    }
++
++  void *h2 = dlopen ("$ORIGIN/unload8mod1x.so", RTLD_LAZY);
++  if (h2 == NULL)
++    {
++      puts ("dlopen unload8mod1x.so failed");
++      return 1;
++    }
++  dlclose (h2);
++
++  int (*mod1) (void) = dlsym (h, "mod1");
++  if (mod1 == NULL)
++    {
++      puts ("dlsym failed");
++      return 1;
++    }
++
++  mod1 ();
++  dlclose (h);
++
++  return 0;
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1.c
+@@ -0,0 +1,7 @@
++extern void mod2 (void);
++
++void
++mod1 (void)
++{
++  mod2 ();
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod1x.c
+@@ -0,0 +1 @@
++int mod1x;
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod2.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod2.c
+@@ -0,0 +1,7 @@
++extern void mod3 (void);
++
++void
++mod2 (void)
++{
++  mod3 ();
++}
+Index: glibc-2.12-2-gc4ccff1/elf/unload8mod3.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/elf/unload8mod3.c
+@@ -0,0 +1,27 @@
++#include <dlfcn.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++void
++mod3_fini2 (void)
++{
++}
++
++void
++mod3_fini (void)
++{
++  mod3_fini2 ();
++}
++
++void
++mod3 (void)
++{
++  void *h = dlopen ("$ORIGIN/unload8mod2.so", RTLD_LAZY);
++  if (h == NULL)
++    {
++      puts ("dlopen unload8mod2.so failed");
++      exit (1);
++    }
++
++  atexit (mod3_fini);
++}
diff --git a/src/patches/glibc/glibc-rh601686.patch b/src/patches/glibc/glibc-rh601686.patch
new file mode 100644 (file)
index 0000000..01e42dc
--- /dev/null
@@ -0,0 +1,4640 @@
+2010-11-09  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12205]
+       * string/test-strncasecmp.c (check_result): New function.
+       (do_one_test): Use it.
+       (check1): New function.
+       (test_main): Use it.
+       * sysdeps/i386/i686/multiarch/strcmp.S (nibble_ashr_use_sse4_2_exit):
+       Support strcasecmp and strncasecmp.
+
+2010-10-03  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12077]
+       * sysdeps/x86_64/strcmp.S: Fix handling of remaining bytes in buffer
+       for strncmp and strncasecmp.
+       * string/stratcliff.c: Add tests for strcmp and strncmp.
+       * wcsmbs/wcsatcliff.c: Adjust for stratcliff change.
+
+2010-09-20  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/strcmp.S: Fix another type in strncasecmp limit
+       detection.
+
+2010-08-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strcmp.S: Fix two typos in strncasecmp
+       handling.
+
+2010-08-15  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/strcmp.S: Use correct register for fourth parameter
+       of strncasecmp_l.
+       * sysdeps/multiarch/strcmp.S: Likewise.
+
+2010-08-14  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
+       strncase_l-nonascii.
+       * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines):
+       Add strncase_l-ssse3.
+       * sysdeps/x86_64/multiarch/strcmp.S: Prepare for use as strncasecmp.
+       * sysdeps/x86_64/strcmp.S: Likewise.
+       * sysdeps/x86_64/multiarch/strncase_l-ssse3.S: New file.
+       * sysdeps/x86_64/multiarch/strncase_l.S: New file.
+       * sysdeps/x86_64/strncase.S: New file.
+       * sysdeps/x86_64/strncase_l-nonascii.c: New file.
+       * sysdeps/x86_64/strncase_l.S: New file.
+       * string/Makefile (strop-tests): Add strncasecmp.
+       * string/test-strncasecmp.c: New file.
+
+       * sysdeps/x86_64/strcasecmp_l-nonascii.c: Add prototype to avoid
+       warning.
+
+       * sysdeps/x86_64/strcmp.S: Move definition of NO_NOLOCALE_ALIAS to...
+       * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: ... here.
+
+2010-07-31  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/Makefile [subdir=string] (sysdep_routines):
+       Add strcasecmp_l-ssse3.
+       * sysdeps/x86_64/multiarch/strcmp.S: Add support to compile for
+       strcasecmp.
+       * sysdeps/x86_64/strcmp.S: Allow more flexible compiling of strcasecmp.
+       * sysdeps/x86_64/multiarch/strcasecmp_l.S: New file.
+       * sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S: New file.
+
+2010-07-30  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strcmp.S: Pretty printing.
+
+       * string/Makefile (strop-tests): Add strcasecmp.
+       * sysdeps/x86_64/Makefile [subdir=string] (sysdep_routines): Add
+       strcasecmp_l-nonascii.
+       (gen-as-const-headers): Add locale-defines.sym.
+       * sysdeps/x86_64/strcmp.S: Add support for strcasecmp implementation.
+       * sysdeps/x86_64/strcasecmp.S: New file.
+       * sysdeps/x86_64/strcasecmp_l.S: New file.
+       * sysdeps/x86_64/strcasecmp_l-nonascii.c: New file.
+       * sysdeps/x86_64/locale-defines.sym: New file.
+       * string/test-strcasecmp.c: New file.
+
+       * string/test-strcasestr.c: Test both ends of the range of characters.
+       * sysdeps/x86_64/multiarch/strstr.c: Fix UCHIGH definition.
+
+2010-07-26  Ulrich Drepper  <drepper@redhat.com>
+
+       * string/test-strnlen.c: New file.
+       * string/Makefile (strop-tests): Add strnlen.
+       * string/tester.c (test_strnlen): Add a few more test cases.
+       * string/tst-strlen.c: Better error reporting.
+
+       * sysdeps/x86_64/strnlen.S: New file.
+
+2010-07-24  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strstr.c (__m128i_strloadu_tolower): Use
+       lower-latency instructions.
+
+2010-07-23  Ulrich Drepper  <drepper@redhat.com>
+
+       * string/test-strcasestr.c: New file.
+       * string/test-strstr.c: New file.
+       * string/Makefile (strop-tests): Add strstr and strcasestr.
+       * string/str-two-way.h: Don't undefine MAX.
+       * string/strcasestr.c: Don't define alias if NO_ALIAS is defined.
+
+2010-07-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+       strcasestr-nonascii.
+       (CFLAGS-strcasestr-nonascii.c): Define.
+       * sysdeps/i386/i686/multiarch/strcasestr-nonascii.c: New file.
+       * sysdeps/x86_64/multiarch/strcasestr-nonascii.c (STRSTR_SSE42):
+       Remove unused attribute.
+
+2010-07-16  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strstr.c: Rewrite to avoid indirect function
+       call in strcasestr.
+       * sysdeps/x86_64/multiarch/strcasestr.c: Declare
+       __strcasestr_sse42_nonascii.
+       * sysdeps/x86_64/multiarch/Makefile: Add rules to build
+       strcasestr-nonascii.c.
+       * sysdeps/x86_64/multiarch/strcasestr-nonascii.c: New file.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -48,7 +48,8 @@ o-objects.ob := memcpy.o memset.o memchr
+ strop-tests   := memchr memcmp memcpy memmove mempcpy memset memccpy  \
+                  stpcpy stpncpy strcat strchr strcmp strcpy strcspn   \
+-                 strlen strncmp strncpy strpbrk strrchr strspn memmem
++                 strlen strncmp strncpy strpbrk strrchr strspn memmem \
++                 strstr strcasestr strnlen strcasecmp strncasecmp
+ tests         := tester inl-tester noinl-tester testcopy test-ffs     \
+                  tst-strlen stratcliff tst-svc tst-inlcall            \
+                  bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap      \
+Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h
++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h
+@@ -426,5 +426,4 @@ two_way_long_needle (const unsigned char
+ #undef AVAILABLE
+ #undef CANON_ELEMENT
+ #undef CMP_FUNC
+-#undef MAX
+ #undef RETURN_TYPE
+Index: glibc-2.12-2-gc4ccff1/string/stratcliff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/stratcliff.c
++++ glibc-2.12-2-gc4ccff1/string/stratcliff.c
+@@ -47,6 +47,8 @@
+ # define MEMCPY memcpy
+ # define MEMPCPY mempcpy
+ # define MEMCHR memchr
++# define STRCMP strcmp
++# define STRNCMP strncmp
+ #endif
+@@ -277,7 +279,74 @@ do_test (void)
+             adr[inner] = L('T');
+           }
+-        }
++      }
++
++      /* strcmp/wcscmp tests */
++      for (outer = 1; outer < 32; ++outer)
++      for (middle = 0; middle < 16; ++middle)
++        {
++          MEMSET (adr + middle, L('T'), 256);
++          adr[256] = L('\0');
++          MEMSET (dest + nchars - outer, L('T'), outer - 1);
++          dest[nchars - 1] = L('\0');
++
++          if (STRCMP (adr + middle, dest + nchars - outer) <= 0)
++            {
++              printf ("%s 1 flunked for outer = %d, middle = %d\n",
++                      STRINGIFY (STRCMP), outer, middle);
++              result = 1;
++            }
++
++          if (STRCMP (dest + nchars - outer, adr + middle) >= 0)
++            {
++              printf ("%s 2 flunked for outer = %d, middle = %d\n",
++                      STRINGIFY (STRCMP), outer, middle);
++              result = 1;
++            }
++        }
++
++      /* strncmp/wcsncmp tests */
++      for (outer = 1; outer < 32; ++outer)
++      for (middle = 0; middle < 16; ++middle)
++        {
++          MEMSET (adr + middle, L('T'), 256);
++          adr[256] = L('\0');
++          MEMSET (dest + nchars - outer, L('T'), outer - 1);
++          dest[nchars - 1] = L('U');
++
++          for (inner = 0; inner < outer; ++inner)
++            {
++              if (STRNCMP (adr + middle, dest + nchars - outer, inner) != 0)
++                {
++                  printf ("%s 1 flunked for outer = %d, middle = %d, "
++                          "inner = %d\n",
++                          STRINGIFY (STRNCMP), outer, middle, inner);
++                  result = 1;
++                }
++
++              if (STRNCMP (dest + nchars - outer, adr + middle, inner) != 0)
++                {
++                  printf ("%s 2 flunked for outer = %d, middle = %d, "
++                          "inner = %d\n",
++                          STRINGIFY (STRNCMP), outer, middle, inner);
++                  result = 1;
++                }
++            }
++
++          if (STRNCMP (adr + middle, dest + nchars - outer, outer) >= 0)
++            {
++              printf ("%s 1 flunked for outer = %d, middle = %d, full\n",
++                      STRINGIFY (STRNCMP), outer, middle);
++              result = 1;
++            }
++
++          if (STRNCMP (dest + nchars - outer, adr + middle, outer) <= 0)
++            {
++              printf ("%s 2 flunked for outer = %d, middle = %d, full\n",
++                      STRINGIFY (STRNCMP), outer, middle);
++              result = 1;
++            }
++        }
+       /* strncpy/wcsncpy tests */
+       adr[nchars - 1] = L('T');
+Index: glibc-2.12-2-gc4ccff1/string/strcasestr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/strcasestr.c
++++ glibc-2.12-2-gc4ccff1/string/strcasestr.c
+@@ -103,4 +103,6 @@ STRCASESTR (const char *haystack_start, 
+ #undef LONG_NEEDLE_THRESHOLD
++#ifndef NO_ALIAS
+ weak_alias (__strcasestr, strcasestr)
++#endif
+Index: glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strcasecmp.c
+@@ -0,0 +1,276 @@
++/* Test and measure strcasecmp functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <ctype.h>
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef int (*proto_t) (const char *, const char *);
++static int simple_strcasecmp (const char *, const char *);
++static int stupid_strcasecmp (const char *, const char *);
++
++IMPL (stupid_strcasecmp, 0)
++IMPL (simple_strcasecmp, 0)
++IMPL (strcasecmp, 1)
++
++static int
++simple_strcasecmp (const char *s1, const char *s2)
++{
++  int ret;
++
++  while ((ret = ((unsigned char) tolower (*s1)
++               - (unsigned char) tolower (*s2))) == 0
++       && *s1++)
++    ++s2;
++  return ret;
++}
++
++static int
++stupid_strcasecmp (const char *s1, const char *s2)
++{
++  size_t ns1 = strlen (s1) + 1, ns2 = strlen (s2) + 1;
++  size_t n = ns1 < ns2 ? ns1 : ns2;
++  int ret = 0;
++
++  while (n--)
++    {
++      if ((ret = ((unsigned char) tolower (*s1)
++                - (unsigned char) tolower (*s2))) != 0)
++      break;
++      ++s1;
++      ++s2;
++    }
++  return ret;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, int exp_result)
++{
++  int result = CALL (impl, s1, s2);
++  if ((exp_result == 0 && result != 0)
++      || (exp_result < 0 && result >= 0)
++      || (exp_result > 0 && result <= 0))
++    {
++      error (0, 0, "Wrong result in function %s %d %d", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align1, size_t align2, size_t len, int max_char,
++       int exp_result)
++{
++  size_t i;
++  char *s1, *s2;
++
++  if (len == 0)
++    return;
++
++  align1 &= 7;
++  if (align1 + len + 1 >= page_size)
++    return;
++
++  align2 &= 7;
++  if (align2 + len + 1 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + align1);
++  s2 = (char *) (buf2 + align2);
++
++  for (i = 0; i < len; i++)
++    {
++      s1[i] = toupper (1 + 23 * i % max_char);
++      s2[i] = tolower (s1[i]);
++    }
++
++  s1[len] = s2[len] = 0;
++  s1[len + 1] = 23;
++  s2[len + 1] = 24 + exp_result;
++  if ((s2[len - 1] == 'z' && exp_result == -1)
++      || (s2[len - 1] == 'a' && exp_result == 1))
++    s1[len - 1] += exp_result;
++  else
++    s2[len - 1] -= exp_result;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, exp_result);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align1, align2, pos, len1, len2;
++  int result;
++  long r;
++  unsigned char *p1 = buf1 + page_size - 512;
++  unsigned char *p2 = buf2 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align1 = random () & 31;
++      if (random () & 1)
++      align2 = random () & 31;
++      else
++      align2 = align1 + (random () & 24);
++      pos = random () & 511;
++      j = align1 > align2 ? align1 : align2;
++      if (pos + j >= 511)
++      pos = 510 - j - (random () & 7);
++      len1 = random () & 511;
++      if (pos >= len1 && (random () & 1))
++      len1 = pos + (random () & 7);
++      if (len1 + j >= 512)
++      len1 = 511 - j - (random () & 7);
++      if (pos >= len1)
++      len2 = len1;
++      else
++      len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0);
++      j = (pos > len2 ? pos : len2) + align1 + 64;
++      if (j > 512)
++      j = 512;
++      for (i = 0; i < j; ++i)
++      {
++        p1[i] = tolower (random () & 255);
++        if (i < len1 + align1 && !p1[i])
++          {
++            p1[i] = tolower (random () & 255);
++            if (!p1[i])
++              p1[i] = tolower (1 + (random () & 127));
++          }
++      }
++      for (i = 0; i < j; ++i)
++      {
++        p2[i] = toupper (random () & 255);
++        if (i < len2 + align2 && !p2[i])
++          {
++            p2[i] = toupper (random () & 255);
++            if (!p2[i])
++              toupper (p2[i] = 1 + (random () & 127));
++          }
++      }
++
++      result = 0;
++      memcpy (p2 + align2, p1 + align1, pos);
++      if (pos < len1)
++      {
++        if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++          {
++            p2[align2 + pos] = toupper (random () & 255);
++            if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++              p2[align2 + pos] = toupper (p1[align1 + pos]
++                                          + 3 + (random () & 127));
++          }
++
++        if (p1[align1 + pos] < tolower (p2[align2 + pos]))
++          result = -1;
++        else
++          result = 1;
++      }
++      p1[len1 + align1] = 0;
++      p2[len2 + align2] = 0;
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2));
++        /* Test whether on 64-bit architectures where ABI requires
++           callee to promote has the promotion been done.  */
++        asm ("" : "=g" (r) : "0" (r));
++        if ((r == 0 && result)
++            || (r < 0 && result >= 0)
++            || (r > 0 && result <= 0))
++          {
++            error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p",
++                   n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2);
++            ret = 1;
++          }
++      }
++    }
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 16; ++i)
++    {
++      do_test (i, i, i, 127, 0);
++      do_test (i, i, i, 127, 1);
++      do_test (i, i, i, 127, -1);
++    }
++
++  for (i = 1; i < 10; ++i)
++    {
++      do_test (0, 0, 2 << i, 127, 0);
++      do_test (0, 0, 2 << i, 254, 0);
++      do_test (0, 0, 2 << i, 127, 1);
++      do_test (0, 0, 2 << i, 254, 1);
++      do_test (0, 0, 2 << i, 127, -1);
++      do_test (0, 0, 2 << i, 254, -1);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, 2 * i, 8 << i, 127, 0);
++      do_test (2 * i, i, 8 << i, 254, 0);
++      do_test (i, 2 * i, 8 << i, 127, 1);
++      do_test (2 * i, i, 8 << i, 254, 1);
++      do_test (i, 2 * i, 8 << i, 127, -1);
++      do_test (2 * i, i, 8 << i, 254, -1);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strcasestr.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strcasestr.c
+@@ -0,0 +1,197 @@
++/* Test and measure strcasestr functions.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Ulrich Drepper <drepper@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++
++#define STRCASESTR simple_strcasestr
++#define NO_ALIAS
++#define __strncasecmp strncasecmp
++#include "strcasestr.c"
++
++
++static char *
++stupid_strcasestr (const char *s1, const char *s2)
++{
++  ssize_t s1len = strlen (s1);
++  ssize_t s2len = strlen (s2);
++
++  if (s2len > s1len)
++    return NULL;
++
++  for (ssize_t i = 0; i <= s1len - s2len; ++i)
++    {
++      size_t j;
++      for (j = 0; j < s2len; ++j)
++      if (tolower (s1[i + j]) != tolower (s2[j]))
++        break;
++      if (j == s2len)
++      return (char *) s1 + i;
++    }
++
++  return NULL;
++}
++
++
++typedef char *(*proto_t) (const char *, const char *);
++
++IMPL (stupid_strcasestr, 0)
++IMPL (simple_strcasestr, 0)
++IMPL (strcasestr, 1)
++
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
++{
++  char *result = CALL (impl, s1, s2);
++  if (result != exp_result)
++    {
++      error (0, 0, "Wrong result in function %s %s %s", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~(hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++
++static void
++do_test (size_t align1, size_t align2, size_t len1, size_t len2,
++       int fail)
++{
++  char *s1 = (char *) (buf1 + align1);
++  char *s2 = (char *) (buf2 + align2);
++
++  static const char d[] = "1234567890abcxyz";
++#define dl (sizeof (d) - 1)
++  char *ss2 = s2;
++  for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)
++    {
++      size_t t = l > dl ? dl : l;
++      ss2 = mempcpy (ss2, d, t);
++    }
++  s2[len2] = '\0';
++
++  if (fail)
++    {
++      char *ss1 = s1;
++      for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0)
++      {
++        size_t t = l > dl ? dl : l;
++        memcpy (ss1, d, t);
++        ++ss1[len2 > 7 ? 7 : len2 - 1];
++        ss1 += t;
++      }
++    }
++  else
++    {
++      memset (s1, '0', len1);
++      for (size_t i = 0; i < len2; ++i)
++      s1[len1 - len2 + i] = toupper (s2[i]);
++    }
++  s1[len1] = '\0';
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
++          len1, len2, align1, align2, fail ? "fail" : "found");
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++
++static int
++test_main (void)
++{
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (size_t klen = 2; klen < 32; ++klen)
++    for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen)
++      {
++      do_test (0, 0, hlen, klen, 0);
++      do_test (0, 0, hlen, klen, 1);
++      do_test (0, 3, hlen, klen, 0);
++      do_test (0, 3, hlen, klen, 1);
++      do_test (0, 9, hlen, klen, 0);
++      do_test (0, 9, hlen, klen, 1);
++      do_test (0, 15, hlen, klen, 0);
++      do_test (0, 15, hlen, klen, 1);
++
++      do_test (3, 0, hlen, klen, 0);
++      do_test (3, 0, hlen, klen, 1);
++      do_test (3, 3, hlen, klen, 0);
++      do_test (3, 3, hlen, klen, 1);
++      do_test (3, 9, hlen, klen, 0);
++      do_test (3, 9, hlen, klen, 1);
++      do_test (3, 15, hlen, klen, 0);
++      do_test (3, 15, hlen, klen, 1);
++
++      do_test (9, 0, hlen, klen, 0);
++      do_test (9, 0, hlen, klen, 1);
++      do_test (9, 3, hlen, klen, 0);
++      do_test (9, 3, hlen, klen, 1);
++      do_test (9, 9, hlen, klen, 0);
++      do_test (9, 9, hlen, klen, 1);
++      do_test (9, 15, hlen, klen, 0);
++      do_test (9, 15, hlen, klen, 1);
++
++      do_test (15, 0, hlen, klen, 0);
++      do_test (15, 0, hlen, klen, 1);
++      do_test (15, 3, hlen, klen, 0);
++      do_test (15, 3, hlen, klen, 1);
++      do_test (15, 9, hlen, klen, 0);
++      do_test (15, 9, hlen, klen, 1);
++      do_test (15, 15, hlen, klen, 0);
++      do_test (15, 15, hlen, klen, 1);
++      }
++
++  do_test (0, 0, page_size - 1, 16, 0);
++  do_test (0, 0, page_size - 1, 16, 1);
++
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strncasecmp.c
+@@ -0,0 +1,349 @@
++/* Test and measure strncasecmp functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <ctype.h>
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef int (*proto_t) (const char *, const char *, size_t);
++static int simple_strncasecmp (const char *, const char *, size_t);
++static int stupid_strncasecmp (const char *, const char *, size_t);
++
++IMPL (stupid_strncasecmp, 0)
++IMPL (simple_strncasecmp, 0)
++IMPL (strncasecmp, 1)
++
++static int
++simple_strncasecmp (const char *s1, const char *s2, size_t n)
++{
++  int ret;
++
++  if (n == 0)
++    return 0;
++
++  while ((ret = ((unsigned char) tolower (*s1)
++               - (unsigned char) tolower (*s2))) == 0
++       && *s1++)
++    {
++      if (--n == 0)
++      return 0;
++      ++s2;
++    }
++  return ret;
++}
++
++static int
++stupid_strncasecmp (const char *s1, const char *s2, size_t max)
++{
++  size_t ns1 = strlen (s1) + 1;
++  size_t ns2 = strlen (s2) + 1;
++  size_t n = ns1 < ns2 ? ns1 : ns2;
++  if (n > max)
++    n = max;
++  int ret = 0;
++
++  while (n--)
++    {
++      if ((ret = ((unsigned char) tolower (*s1)
++                - (unsigned char) tolower (*s2))) != 0)
++      break;
++      ++s1;
++      ++s2;
++    }
++  return ret;
++}
++
++static int
++check_result (impl_t *impl, const char *s1, const char *s2, size_t n,
++            int exp_result)
++{
++  int result = CALL (impl, s1, s2, n);
++  if ((exp_result == 0 && result != 0)
++      || (exp_result < 0 && result >= 0)
++      || (exp_result > 0 && result <= 0))
++    {
++      error (0, 0, "Wrong result in function %s %d %d", impl->name,
++           result, exp_result);
++      ret = 1;
++      return -1;
++    }
++
++  return 0;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, size_t n,
++           int exp_result)
++{
++  if (check_result (impl, s1, s2, n, exp_result) < 0)
++    return;
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2, n);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align1, size_t align2, size_t n, size_t len, int max_char,
++       int exp_result)
++{
++  size_t i;
++  char *s1, *s2;
++
++  if (len == 0)
++    return;
++
++  align1 &= 7;
++  if (align1 + len + 1 >= page_size)
++    return;
++
++  align2 &= 7;
++  if (align2 + len + 1 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + align1);
++  s2 = (char *) (buf2 + align2);
++
++  for (i = 0; i < len; i++)
++    {
++      s1[i] = toupper (1 + 23 * i % max_char);
++      s2[i] = tolower (s1[i]);
++    }
++
++  s1[len] = s2[len] = 0;
++  s1[len + 1] = 23;
++  s2[len + 1] = 24 + exp_result;
++  if ((s2[len - 1] == 'z' && exp_result == -1)
++      || (s2[len - 1] == 'a' && exp_result == 1))
++    s1[len - 1] += exp_result;
++  else
++    s2[len - 1] -= exp_result;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd/%2zd:", len, align1, align2);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, n, exp_result);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align1, align2, pos, len1, len2;
++  int result;
++  long r;
++  unsigned char *p1 = buf1 + page_size - 512;
++  unsigned char *p2 = buf2 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align1 = random () & 31;
++      if (random () & 1)
++      align2 = random () & 31;
++      else
++      align2 = align1 + (random () & 24);
++      pos = random () & 511;
++      j = align1 > align2 ? align1 : align2;
++      if (pos + j >= 511)
++      pos = 510 - j - (random () & 7);
++      len1 = random () & 511;
++      if (pos >= len1 && (random () & 1))
++      len1 = pos + (random () & 7);
++      if (len1 + j >= 512)
++      len1 = 511 - j - (random () & 7);
++      if (pos >= len1)
++      len2 = len1;
++      else
++      len2 = len1 + (len1 != 511 - j ? random () % (511 - j - len1) : 0);
++      j = (pos > len2 ? pos : len2) + align1 + 64;
++      if (j > 512)
++      j = 512;
++      for (i = 0; i < j; ++i)
++      {
++        p1[i] = tolower (random () & 255);
++        if (i < len1 + align1 && !p1[i])
++          {
++            p1[i] = tolower (random () & 255);
++            if (!p1[i])
++              p1[i] = tolower (1 + (random () & 127));
++          }
++      }
++      for (i = 0; i < j; ++i)
++      {
++        p2[i] = toupper (random () & 255);
++        if (i < len2 + align2 && !p2[i])
++          {
++            p2[i] = toupper (random () & 255);
++            if (!p2[i])
++              toupper (p2[i] = 1 + (random () & 127));
++          }
++      }
++
++      result = 0;
++      memcpy (p2 + align2, p1 + align1, pos);
++      if (pos < len1)
++      {
++        if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++          {
++            p2[align2 + pos] = toupper (random () & 255);
++            if (tolower (p2[align2 + pos]) == p1[align1 + pos])
++              p2[align2 + pos] = toupper (p1[align1 + pos]
++                                          + 3 + (random () & 127));
++          }
++
++        if (p1[align1 + pos] < tolower (p2[align2 + pos]))
++          result = -1;
++        else
++          result = 1;
++      }
++      p1[len1 + align1] = 0;
++      p2[len2 + align2] = 0;
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        r = CALL (impl, (char *) (p1 + align1), (char *) (p2 + align2),
++                  pos + 1 + (random () & 255));
++        /* Test whether on 64-bit architectures where ABI requires
++           callee to promote has the promotion been done.  */
++        asm ("" : "=g" (r) : "0" (r));
++        if ((r == 0 && result)
++            || (r < 0 && result >= 0)
++            || (r > 0 && result <= 0))
++          {
++            error (0, 0, "Iteration %zd - wrong result in function %s (%zd, %zd, %zd, %zd, %zd) %ld != %d, p1 %p p2 %p",
++                   n, impl->name, align1, align2, len1, len2, pos, r, result, p1, p2);
++            ret = 1;
++          }
++      }
++    }
++}
++
++
++static void
++check1 (void)
++{
++  static char cp [4096+16] __attribute__ ((aligned(4096)));
++  static char gotrel[4096] __attribute__ ((aligned(4096)));
++  char *s1 = cp + 0xffa;
++  char *s2 = gotrel + 0xcbe;
++  int exp_result;
++  size_t n = 6;
++
++  strcpy (s1, "gottpoff");
++  strcpy (s2, "GOTPLT");
++
++  exp_result = simple_strncasecmp (s1, s2, n);
++  FOR_EACH_IMPL (impl, 0)
++    check_result (impl, s1, s2, n, exp_result);
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  check1 ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 16; ++i)
++    {
++      do_test (i, i, i - 1, i, 127, 0);
++
++      do_test (i, i, i, i, 127, 0);
++      do_test (i, i, i, i, 127, 1);
++      do_test (i, i, i, i, 127, -1);
++
++      do_test (i, i, i + 1, i, 127, 0);
++      do_test (i, i, i + 1, i, 127, 1);
++      do_test (i, i, i + 1, i, 127, -1);
++    }
++
++  for (i = 1; i < 10; ++i)
++    {
++      do_test (0, 0, (2 << i) - 1, 2 << i, 127, 0);
++      do_test (0, 0, 2 << i, 2 << i, 254, 0);
++      do_test (0, 0, (2 << i) + 1, 2 << i, 127, 0);
++
++      do_test (0, 0, (2 << i) + 1, 2 << i, 254, 0);
++
++      do_test (0, 0, 2 << i, 2 << i, 127, 1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 127, 1);
++
++      do_test (0, 0, 2 << i, 2 << i, 254, 1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 254, 1);
++
++      do_test (0, 0, 2 << i, 2 << i, 127, -1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 127, -1);
++
++      do_test (0, 0, 2 << i, 2 << i, 254, -1);
++      do_test (0, 0, (2 << i) + 10, 2 << i, 254, -1);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, 2 * i, (8 << i) - 1, 8 << i, 127, 0);
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, 0);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 0);
++
++      do_test (2 * i, i, (8 << i) - 1, 8 << i, 254, 0);
++      do_test (2 * i, i, 8 << i, 8 << i, 254, 0);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 0);
++
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, 1);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, 1);
++
++      do_test (2 * i, i, 8 << i, 8 << i, 254, 1);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, 1);
++
++      do_test (i, 2 * i, 8 << i, 8 << i, 127, -1);
++      do_test (i, 2 * i, (8 << i) + 100, 8 << i, 127, -1);
++
++      do_test (2 * i, i, 8 << i, 8 << i, 254, -1);
++      do_test (2 * i, i, (8 << i) + 100, 8 << i, 254, -1);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strnlen.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strnlen.c
+@@ -0,0 +1,197 @@
++/* Test and measure strlen functions.
++   Copyright (C) 1999, 2002, 2003, 2005, 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Jakub Jelinek <jakub@redhat.com>, 1999.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++typedef size_t (*proto_t) (const char *, size_t);
++size_t simple_strnlen (const char *, size_t);
++
++IMPL (simple_strnlen, 0)
++IMPL (strnlen, 1)
++
++size_t
++simple_strnlen (const char *s, size_t maxlen)
++{
++  size_t i;
++
++  for (i = 0; i < maxlen && s[i]; ++i);
++  return i;
++}
++
++static void
++do_one_test (impl_t *impl, const char *s, size_t maxlen, size_t exp_len)
++{
++  size_t len = CALL (impl, s, maxlen);
++  if (len != exp_len)
++    {
++      error (0, 0, "Wrong result in function %s %zd %zd", impl->name,
++           len, exp_len);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~ (hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s, maxlen);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++static void
++do_test (size_t align, size_t len, size_t maxlen, int max_char)
++{
++  size_t i;
++
++  align &= 7;
++  if (align + len >= page_size)
++    return;
++
++  for (i = 0; i < len; ++i)
++    buf1[align + i] = 1 + 7 * i % max_char;
++  buf1[align + len] = 0;
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd, alignment %2zd:", len, align);
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, (char *) (buf1 + align), maxlen, MIN (len, maxlen));
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++static void
++do_random_tests (void)
++{
++  size_t i, j, n, align, len;
++  unsigned char *p = buf1 + page_size - 512;
++
++  for (n = 0; n < ITERATIONS; n++)
++    {
++      align = random () & 15;
++      len = random () & 511;
++      if (len + align > 510)
++      len = 511 - align - (random () & 7);
++      j = len + align + 64;
++      if (j > 512)
++      j = 512;
++
++      for (i = 0; i < j; i++)
++      {
++        if (i == len + align)
++          p[i] = 0;
++        else
++          {
++            p[i] = random () & 255;
++            if (i >= align && i < len + align && !p[i])
++              p[i] = (random () & 127) + 1;
++          }
++      }
++
++      FOR_EACH_IMPL (impl, 1)
++      {
++        if (len > 0
++            && CALL (impl, (char *) (p + align), len - 1) != len - 1)
++          {
++            error (0, 0, "Iteration %zd (limited) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len - 1), len - 1, p);
++            ret = 1;
++          }
++        if (CALL (impl, (char *) (p + align), len) != len)
++          {
++            error (0, 0, "Iteration %zd (exact) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len), len, p);
++            ret = 1;
++          }
++        if (CALL (impl, (char *) (p + align), len + 1) != len)
++          {
++            error (0, 0, "Iteration %zd (long) - wrong result in function %s (%zd) %zd != %zd, p %p",
++                   n, impl->name, align,
++                   CALL (impl, (char *) (p + align), len + 1), len, p);
++            ret = 1;
++          }
++      }
++    }
++}
++
++int
++test_main (void)
++{
++  size_t i;
++
++  test_init ();
++
++  printf ("%20s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (0, i, i - 1, 127);
++      do_test (0, i, i, 127);
++      do_test (0, i, i + 1, 127);
++    }
++
++  for (i = 1; i < 8; ++i)
++    {
++      do_test (i, i, i - 1, 127);
++      do_test (i, i, i, 127);
++      do_test (i, i, i + 1, 127);
++    }
++
++  for (i = 2; i <= 10; ++i)
++    {
++      do_test (0, 1 << i, 5000, 127);
++      do_test (1, 1 << i, 5000, 127);
++    }
++
++  for (i = 1; i < 8; ++i)
++    do_test (0, i, 5000, 255);
++
++  for (i = 1; i < 8; ++i)
++    do_test (i, i, 5000, 255);
++
++  for (i = 2; i <= 10; ++i)
++    {
++      do_test (0, 1 << i, 5000, 255);
++      do_test (1, 1 << i, 5000, 255);
++    }
++
++  do_random_tests ();
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/test-strstr.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/test-strstr.c
+@@ -0,0 +1,194 @@
++/* Test and measure strstr functions.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Written by Ulrich Drepper <drepper@redhat.com>, 2010.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#define TEST_MAIN
++#include "test-string.h"
++
++
++#define STRSTR simple_strstr
++#include "strstr.c"
++
++
++static char *
++stupid_strstr (const char *s1, const char *s2)
++{
++  ssize_t s1len = strlen (s1);
++  ssize_t s2len = strlen (s2);
++
++  if (s2len > s1len)
++    return NULL;
++
++  for (ssize_t i = 0; i <= s1len - s2len; ++i)
++    {
++      size_t j;
++      for (j = 0; j < s2len; ++j)
++      if (s1[i + j] != s2[j])
++        break;
++      if (j == s2len)
++      return (char *) s1 + i;
++    }
++
++  return NULL;
++}
++
++
++typedef char *(*proto_t) (const char *, const char *);
++
++IMPL (stupid_strstr, 0)
++IMPL (simple_strstr, 0)
++IMPL (strstr, 1)
++
++
++static void
++do_one_test (impl_t *impl, const char *s1, const char *s2, char *exp_result)
++{
++  char *result = CALL (impl, s1, s2);
++  if (result != exp_result)
++    {
++      error (0, 0, "Wrong result in function %s %s %s", impl->name,
++           result, exp_result);
++      ret = 1;
++      return;
++    }
++
++  if (HP_TIMING_AVAIL)
++    {
++      hp_timing_t start __attribute ((unused));
++      hp_timing_t stop __attribute ((unused));
++      hp_timing_t best_time = ~(hp_timing_t) 0;
++      size_t i;
++
++      for (i = 0; i < 32; ++i)
++      {
++        HP_TIMING_NOW (start);
++        CALL (impl, s1, s2);
++        HP_TIMING_NOW (stop);
++        HP_TIMING_BEST (best_time, start, stop);
++      }
++
++      printf ("\t%zd", (size_t) best_time);
++    }
++}
++
++
++static void
++do_test (size_t align1, size_t align2, size_t len1, size_t len2,
++       int fail)
++{
++  char *s1 = (char *) (buf1 + align1);
++  char *s2 = (char *) (buf2 + align2);
++
++  static const char d[] = "1234567890abcdef";
++#define dl (sizeof (d) - 1)
++  char *ss2 = s2;
++  for (size_t l = len2; l > 0; l = l > dl ? l - dl : 0)
++    {
++      size_t t = l > dl ? dl : l;
++      ss2 = mempcpy (ss2, d, t);
++    }
++  s2[len2] = '\0';
++
++  if (fail)
++    {
++      char *ss1 = s1;
++      for (size_t l = len1; l > 0; l = l > dl ? l - dl : 0)
++      {
++        size_t t = l > dl ? dl : l;
++        memcpy (ss1, d, t);
++        ++ss1[len2 > 7 ? 7 : len2 - 1];
++        ss1 += t;
++      }
++    }
++  else
++    {
++      memset (s1, '0', len1);
++      memcpy (s1 + len1 - len2, s2, len2);
++    }
++  s1[len1] = '\0';
++
++  if (HP_TIMING_AVAIL)
++    printf ("Length %4zd/%zd, alignment %2zd/%2zd, %s:",
++          len1, len2, align1, align2, fail ? "fail" : "found");
++
++  FOR_EACH_IMPL (impl, 0)
++    do_one_test (impl, s1, s2, fail ? NULL : s1 + len1 - len2);
++
++  if (HP_TIMING_AVAIL)
++    putchar ('\n');
++}
++
++
++static int
++test_main (void)
++{
++  test_init ();
++
++  printf ("%23s", "");
++  FOR_EACH_IMPL (impl, 0)
++    printf ("\t%s", impl->name);
++  putchar ('\n');
++
++  for (size_t klen = 2; klen < 32; ++klen)
++    for (size_t hlen = 2 * klen; hlen < 16 * klen; hlen += klen)
++      {
++      do_test (0, 0, hlen, klen, 0);
++      do_test (0, 0, hlen, klen, 1);
++      do_test (0, 3, hlen, klen, 0);
++      do_test (0, 3, hlen, klen, 1);
++      do_test (0, 9, hlen, klen, 0);
++      do_test (0, 9, hlen, klen, 1);
++      do_test (0, 15, hlen, klen, 0);
++      do_test (0, 15, hlen, klen, 1);
++
++      do_test (3, 0, hlen, klen, 0);
++      do_test (3, 0, hlen, klen, 1);
++      do_test (3, 3, hlen, klen, 0);
++      do_test (3, 3, hlen, klen, 1);
++      do_test (3, 9, hlen, klen, 0);
++      do_test (3, 9, hlen, klen, 1);
++      do_test (3, 15, hlen, klen, 0);
++      do_test (3, 15, hlen, klen, 1);
++
++      do_test (9, 0, hlen, klen, 0);
++      do_test (9, 0, hlen, klen, 1);
++      do_test (9, 3, hlen, klen, 0);
++      do_test (9, 3, hlen, klen, 1);
++      do_test (9, 9, hlen, klen, 0);
++      do_test (9, 9, hlen, klen, 1);
++      do_test (9, 15, hlen, klen, 0);
++      do_test (9, 15, hlen, klen, 1);
++
++      do_test (15, 0, hlen, klen, 0);
++      do_test (15, 0, hlen, klen, 1);
++      do_test (15, 3, hlen, klen, 0);
++      do_test (15, 3, hlen, klen, 1);
++      do_test (15, 9, hlen, klen, 0);
++      do_test (15, 9, hlen, klen, 1);
++      do_test (15, 15, hlen, klen, 0);
++      do_test (15, 15, hlen, klen, 1);
++      }
++
++  do_test (0, 0, page_size - 1, 16, 0);
++  do_test (0, 0, page_size - 1, 16, 1);
++
++  return ret;
++}
++
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/string/tester.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/tester.c
++++ glibc-2.12-2-gc4ccff1/string/tester.c
+@@ -441,20 +441,21 @@ test_strnlen (void)
+   check (strnlen ("", 10) == 0, 1);           /* Empty. */
+   check (strnlen ("a", 10) == 1, 2);          /* Single char. */
+   check (strnlen ("abcd", 10) == 4, 3);               /* Multiple chars. */
+-  check (strnlen ("foo", (size_t)-1) == 3, 4);        /* limits of n. */
++  check (strnlen ("foo", (size_t) -1) == 3, 4);       /* limits of n. */
++  check (strnlen ("abcd", 0) == 0, 5);                /* Restricted. */
++  check (strnlen ("abcd", 1) == 1, 6);                /* Restricted. */
++  check (strnlen ("abcd", 2) == 2, 7);                /* Restricted. */
++  check (strnlen ("abcd", 3) == 3, 8);                /* Restricted. */
++  check (strnlen ("abcd", 4) == 4, 9);                /* Restricted. */
+-  {
+-    char buf[4096];
+-    int i;
+-    char *p;
+-    for (i=0; i < 0x100; i++)
+-      {
+-      p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
+-      strcpy (p, "OK");
+-      strcpy (p+3, "BAD/WRONG");
+-      check (strnlen (p, 100) == 2, 5+i);
+-      }
+-   }
++  char buf[4096];
++  for (int i = 0; i < 0x100; ++i)
++    {
++      char *p = (char *) ((unsigned long int)(buf + 0xff) & ~0xff) + i;
++      strcpy (p, "OK");
++      strcpy (p + 3, "BAD/WRONG");
++      check (strnlen (p, 100) == 2, 10 + i);
++    }
+ }
+ static void
+Index: glibc-2.12-2-gc4ccff1/string/tst-strlen.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/tst-strlen.c
++++ glibc-2.12-2-gc4ccff1/string/tst-strlen.c
+@@ -31,11 +31,21 @@ main(int argc, char *argv[])
+             buf[words * 4 + 3] = (last & 8) != 0 ? 'e' : '\0';
+             buf[words * 4 + 4] = '\0';
+-            if (strlen (buf) != words * 4 + lens[last]
+-                || strnlen (buf, -1) != words * 4 + lens[last])
++            if (strlen (buf) != words * 4 + lens[last])
+               {
+-                printf ("failed for base=%Zu, words=%Zu, and last=%Zu\n",
+-                        base, words, last);
++                printf ("\
++strlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n",
++                        base, words, last,
++                        strlen (buf), words * 4 + lens[last]);
++                return 1;
++              }
++
++            if (strnlen (buf, -1) != words * 4 + lens[last])
++              {
++                printf ("\
++strnlen failed for base=%Zu, words=%Zu, and last=%Zu (is %zd, expected %zd)\n",
++                        base, words, last,
++                        strnlen (buf, -1), words * 4 + lens[last]);
+                 return 1;
+               }
+           }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+@@ -9,7 +9,7 @@ sysdep_routines += bzero-sse2 memset-sse
+                  memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \
+                  memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \
+                  strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \
+-                 memcmp-ssse3 memcmp-sse4
++                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+@@ -17,6 +17,7 @@ CFLAGS-strpbrk-c.c += -msse4
+ CFLAGS-strspn-c.c += -msse4
+ CFLAGS-strstr.c += -msse4
+ CFLAGS-strcasestr.c += -msse4
++CFLAGS-strcasestr-nonascii.c += -msse4
+ endif
+ endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strcasestr-nonascii.c
+@@ -0,0 +1,2 @@
++#include <nmmintrin.h>
++#include <sysdeps/x86_64/multiarch/strcasestr-nonascii.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/Makefile
+@@ -12,7 +12,8 @@ sysdep_routines += _mcount
+ endif
+ ifeq ($(subdir),string)
+-sysdep_routines += cacheinfo
++sysdep_routines += cacheinfo strcasecmp_l-nonascii strncase_l-nonascii
++gen-as-const-headers += locale-defines.sym
+ endif
+ ifeq ($(subdir),elf)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/locale-defines.sym
+@@ -0,0 +1,11 @@
++#include <locale/localeinfo.h>
++#include <langinfo.h>
++#include <stddef.h>
++
++--
++
++LOCALE_T___LOCALES            offsetof (struct __locale_struct, __locales)
++LC_CTYPE
++_NL_CTYPE_NONASCII_CASE
++LOCALE_DATA_VALUES            offsetof (struct __locale_data, values)
++SIZEOF_VALUES                 sizeof (((struct __locale_data *) 0)->values[0])
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+@@ -5,7 +5,9 @@ endif
+ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+-                 strend-sse4 memcmp-sse4
++                 strend-sse4 memcmp-sse4 \
++                 strcasestr-nonascii strcasecmp_l-ssse3 \
++                 strncase_l-ssse3
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+@@ -13,5 +15,6 @@ CFLAGS-strpbrk-c.c += -msse4
+ CFLAGS-strspn-c.c += -msse4
+ CFLAGS-strstr.c += -msse4
+ CFLAGS-strcasestr.c += -msse4
++CFLAGS-strcasestr-nonascii.c += -msse4
+ endif
+ endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l-ssse3.S
+@@ -0,0 +1,6 @@
++#define USE_SSSE3 1
++#define USE_AS_STRCASECMP_L
++#define NO_NOLOCALE_ALIAS
++#define STRCMP __strcasecmp_l_ssse3
++#define __strcasecmp __strcasecmp_ssse3
++#include "../strcmp.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasecmp_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strcasecmp_l
++#define USE_AS_STRCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strcasecmp_l, strcasecmp_l)
++libc_hidden_def (strcasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr-nonascii.c
+@@ -0,0 +1,50 @@
++/* strstr with SSE4.2 intrinsics
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++# include <ctype.h>
++
++
++/* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C
++   locale.  */
++static inline __m128i
++__m128i_strloadu_tolower (const unsigned char *p)
++{
++  union
++    {
++      char b[16];
++      __m128i x;
++    } u;
++
++  for (int i = 0; i < 16; ++i)
++    if (p[i] == 0)
++      {
++      u.b[i] = 0;
++      break;
++      }
++    else
++      u.b[i] = tolower (p[i]);
++
++  return u.x;
++}
++
++
++#define STRCASESTR_NONASCII
++#define USE_AS_STRCASESTR
++#define STRSTR_SSE42 __strcasestr_sse42_nonascii
++#include "strstr.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcasestr.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcasestr.c
+@@ -1,3 +1,7 @@
++extern char *__strcasestr_sse42_nonascii (const unsigned char *s1,
++                                        const unsigned char *s2)
++  attribute_hidden;
++
+ #define USE_AS_STRCASESTR
+ #define STRSTR_SSE42 __strcasestr_sse42
+ #include "strstr.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+@@ -24,7 +24,7 @@
+ #ifdef USE_AS_STRNCMP
+ /* Since the counter, %r11, is unsigned, we branch to strcmp_exitz
+    if the new counter > the old one or is 0.  */
+-#define UPDATE_STRNCMP_COUNTER                                \
++# define UPDATE_STRNCMP_COUNTER                               \
+       /* calculate left number to compare */          \
+       lea     -16(%rcx, %r11), %r9;                   \
+       cmp     %r9, %r11;                              \
+@@ -33,23 +33,50 @@
+       je      LABEL(strcmp_exitz_sse4_2);             \
+       mov     %r9, %r11
+-#define STRCMP_SSE42  __strncmp_sse42
+-#define STRCMP_SSSE3  __strncmp_ssse3
+-#define STRCMP_SSE2   __strncmp_sse2
+-#define __GI_STRCMP   __GI_strncmp
++# define STRCMP_SSE42 __strncmp_sse42
++# define STRCMP_SSSE3 __strncmp_ssse3
++# define STRCMP_SSE2  __strncmp_sse2
++# define __GI_STRCMP  __GI_strncmp
++#elif defined USE_AS_STRCASECMP_L
++# include "locale-defines.h"
++
++# define UPDATE_STRNCMP_COUNTER
++
++# define STRCMP_SSE42 __strcasecmp_l_sse42
++# define STRCMP_SSSE3 __strcasecmp_l_ssse3
++# define STRCMP_SSE2  __strcasecmp_l_sse2
++# define __GI_STRCMP  __GI___strcasecmp_l
++#elif defined USE_AS_STRNCASECMP_L
++# include "locale-defines.h"
++
++/* Since the counter, %r11, is unsigned, we branch to strcmp_exitz
++   if the new counter > the old one or is 0.  */
++# define UPDATE_STRNCMP_COUNTER                               \
++      /* calculate left number to compare */          \
++      lea     -16(%rcx, %r11), %r9;                   \
++      cmp     %r9, %r11;                              \
++      jb      LABEL(strcmp_exitz_sse4_2);             \
++      test    %r9, %r9;                               \
++      je      LABEL(strcmp_exitz_sse4_2);             \
++      mov     %r9, %r11
++
++# define STRCMP_SSE42 __strncasecmp_l_sse42
++# define STRCMP_SSSE3 __strncasecmp_l_ssse3
++# define STRCMP_SSE2  __strncasecmp_l_sse2
++# define __GI_STRCMP  __GI___strncasecmp_l
+ #else
+-#define UPDATE_STRNCMP_COUNTER
+-#ifndef STRCMP
+-#define STRCMP                strcmp
+-#define STRCMP_SSE42  __strcmp_sse42
+-#define STRCMP_SSSE3  __strcmp_ssse3
+-#define STRCMP_SSE2   __strcmp_sse2
+-#define __GI_STRCMP   __GI_strcmp
+-#endif
++# define UPDATE_STRNCMP_COUNTER
++# ifndef STRCMP
++#  define STRCMP      strcmp
++#  define STRCMP_SSE42        __strcmp_sse42
++#  define STRCMP_SSSE3        __strcmp_ssse3
++#  define STRCMP_SSE2 __strcmp_sse2
++#  define __GI_STRCMP __GI_strcmp
++# endif
+ #endif
+ #ifndef LABEL
+-#define LABEL(l) L(l)
++# define LABEL(l) L(l)
+ #endif
+ /* Define multiple versions only for the definition in libc.  Don't
+@@ -73,6 +100,43 @@ ENTRY(STRCMP)
+ 2:    ret
+ END(STRCMP)
++# ifdef USE_AS_STRCASECMP_L
++ENTRY(__strcasecmp)
++      .type   __strcasecmp, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:
++      leaq    __strcasecmp_sse42(%rip), %rax
++      testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
++      jnz     2f
++      leaq    __strcasecmp_ssse3(%rip), %rax
++      testl   $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
++      jnz     2f
++      leaq    __strcasecmp_sse2(%rip), %rax
++2:    ret
++END(__strcasecmp)
++weak_alias (__strcasecmp, strcasecmp)
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++ENTRY(__strncasecmp)
++      .type   __strncasecmp, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:
++      leaq    __strncasecmp_sse42(%rip), %rax
++      testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
++      jnz     2f
++      leaq    __strncasecmp_ssse3(%rip), %rax
++      testl   $bit_SSSE3, __cpu_features+CPUID_OFFSET+index_SSSE3(%rip)
++      jnz     2f
++      leaq    __strncasecmp_sse2(%rip), %rax
++2:    ret
++END(__strncasecmp)
++weak_alias (__strncasecmp, strncasecmp)
++# endif
++
+ /* We use 0x1a:
+       _SIDD_SBYTE_OPS
+       | _SIDD_CMP_EQUAL_EACH
+@@ -101,8 +165,31 @@ END(STRCMP)
+       /* Put all SSE 4.2 functions together.  */
+       .section .text.sse4.2,"ax",@progbits
+-      .align  16
++      .align  16
+       .type   STRCMP_SSE42, @function
++# ifdef USE_AS_STRCASECMP_L
++ENTRY (__strcasecmp_sse42)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rdx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END (__strcasecmp_sse42)
++      /* FALLTHROUGH to strcasecmp_l.  */
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++ENTRY (__strncasecmp_sse42)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rcx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END (__strncasecmp_sse42)
++      /* FALLTHROUGH to strncasecmp_l.  */
++# endif
++
+ STRCMP_SSE42:
+       cfi_startproc
+       CALL_MCOUNT
+@@ -110,24 +197,87 @@ STRCMP_SSE42:
+ /*
+  * This implementation uses SSE to compare up to 16 bytes at a time.
+  */
+-#ifdef USE_AS_STRNCMP
++# ifdef USE_AS_STRCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax
++#  else
++      movq    (%rdx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strcasecmp_l_nonascii
++# endif
++# ifdef USE_AS_STRNCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax
++#  else
++      movq    (%rcx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strncasecmp_l_nonascii
++# endif
++
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       test    %rdx, %rdx
+       je      LABEL(strcmp_exitz_sse4_2)
+       cmp     $1, %rdx
+       je      LABEL(Byte0_sse4_2)
+       mov     %rdx, %r11
+-#endif
++# endif
+       mov     %esi, %ecx
+       mov     %edi, %eax
+ /* Use 64bit AND here to avoid long NOP padding.  */
+       and     $0x3f, %rcx             /* rsi alignment in cache line */
+       and     $0x3f, %rax             /* rdi alignment in cache line */
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      .section .rodata.cst16,"aM",@progbits,16
++      .align 16
++.Lbelowupper_sse4:
++      .quad   0x4040404040404040
++      .quad   0x4040404040404040
++.Ltopupper_sse4:
++      .quad   0x5b5b5b5b5b5b5b5b
++      .quad   0x5b5b5b5b5b5b5b5b
++.Ltouppermask_sse4:
++      .quad   0x2020202020202020
++      .quad   0x2020202020202020
++      .previous
++      movdqa  .Lbelowupper_sse4(%rip), %xmm4
++#  define UCLOW_reg %xmm4
++      movdqa  .Ltopupper_sse4(%rip), %xmm5
++#  define UCHIGH_reg %xmm5
++      movdqa  .Ltouppermask_sse4(%rip), %xmm6
++#  define LCQWORD_reg %xmm6
++# endif
+       cmp     $0x30, %ecx
+       ja      LABEL(crosscache_sse4_2)/* rsi: 16-byte load will cross cache line */
+       cmp     $0x30, %eax
+       ja      LABEL(crosscache_sse4_2)/* rdi: 16-byte load will cross cache line */
+       movdqu  (%rdi), %xmm1
+       movdqu  (%rsi), %xmm2
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++#  define TOLOWER(reg1, reg2) \
++      movdqa  reg1, %xmm7;                                    \
++      movdqa  UCHIGH_reg, %xmm8;                              \
++      movdqa  reg2, %xmm9;                                    \
++      movdqa  UCHIGH_reg, %xmm10;                             \
++      pcmpgtb UCLOW_reg, %xmm7;                               \
++      pcmpgtb reg1, %xmm8;                                    \
++      pcmpgtb UCLOW_reg, %xmm9;                               \
++      pcmpgtb reg2, %xmm10;                                   \
++      pand    %xmm8, %xmm7;                                   \
++      pand    %xmm10, %xmm9;                                  \
++      pand    LCQWORD_reg, %xmm7;                             \
++      pand    LCQWORD_reg, %xmm9;                             \
++      por     %xmm7, reg1;                                    \
++      por     %xmm9, reg2
++      TOLOWER (%xmm1, %xmm2)
++# else
++#  define TOLOWER(reg1, reg2)
++# endif
+       pxor    %xmm0, %xmm0            /* clear %xmm0 for null char checks */
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pcmpeqb %xmm2, %xmm1            /* compare first 16 bytes for equality */
+@@ -135,10 +285,10 @@ STRCMP_SSE42:
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx           /* if first 16 bytes are same, edx == 0xffff */
+       jnz     LABEL(less16bytes_sse4_2)/* If not, find different value or null char */
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)/* finish comparision */
+-#endif
++# endif
+       add     $16, %rsi               /* prepare to search next 16 bytes */
+       add     $16, %rdi               /* prepare to search next 16 bytes */
+@@ -180,7 +330,13 @@ LABEL(ashr_0_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pxor    %xmm0, %xmm0                    /* clear %xmm0 for null char check */
+       pcmpeqb %xmm1, %xmm0                    /* Any null chars? */
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpeqb (%rdi), %xmm1                   /* compare 16 bytes for equality */
++# else
++      movdqa  (%rdi), %xmm2
++      TOLOWER (%xmm1, %xmm2)
++      pcmpeqb %xmm2, %xmm1                    /* compare 16 bytes for equality */
++# endif
+       psubb   %xmm0, %xmm1                    /* packed sub of comparison results*/
+       pmovmskb %xmm1, %r9d
+       shr     %cl, %edx                       /* adjust 0xffff for offset */
+@@ -204,44 +360,60 @@ LABEL(ashr_0_sse4_2):
+       .p2align 4
+ LABEL(ashr_0_use_sse4_2):
+       movdqa  (%rdi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       lea     16(%rdx), %rdx
+       jbe     LABEL(ashr_0_use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       movdqa  (%rdi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       lea     16(%rdx), %rdx
+       jbe     LABEL(ashr_0_use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       jmp     LABEL(ashr_0_use_sse4_2)
+       .p2align 4
+ LABEL(ashr_0_use_sse4_2_exit):
+       jnc     LABEL(strcmp_exitz_sse4_2)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rcx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       lea     -16(%rdx, %rcx), %rcx
+       movzbl  (%rdi, %rcx), %eax
+       movzbl  (%rsi, %rcx), %edx
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx
++      movl    (%rcx,%rax,4), %eax
++      movl    (%rcx,%rdx,4), %edx
++# endif
+       sub     %edx, %eax
+       ret
+-
+ /*
+  * The following cases will be handled by ashr_1
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(15)            n -15            0(15 +(n-15) - n)         ashr_1
+  */
+       .p2align 4
+@@ -251,6 +423,7 @@ LABEL(ashr_1_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pslldq  $15, %xmm2              /* shift first string to align with second */
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2            /* compare 16 bytes for equality */
+       psubb   %xmm0, %xmm2            /* packed sub of comparison results*/
+       pmovmskb %xmm2, %r9d
+@@ -281,12 +454,18 @@ LABEL(loop_ashr_1_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -294,12 +473,18 @@ LABEL(loop_ashr_1_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_1_use_sse4_2)
+@@ -309,10 +494,10 @@ LABEL(nibble_ashr_1_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $1, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $14, %ecx
+       ja      LABEL(loop_ashr_1_use_sse4_2)
+@@ -320,7 +505,7 @@ LABEL(nibble_ashr_1_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_2
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(14~15)            n -14         1(15 +(n-14) - n)         ashr_2
+  */
+       .p2align 4
+@@ -330,6 +515,7 @@ LABEL(ashr_2_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $14, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -360,12 +546,18 @@ LABEL(loop_ashr_2_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -373,12 +565,18 @@ LABEL(loop_ashr_2_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_2_use_sse4_2)
+@@ -388,10 +586,10 @@ LABEL(nibble_ashr_2_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $2, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $13, %ecx
+       ja      LABEL(loop_ashr_2_use_sse4_2)
+@@ -409,6 +607,7 @@ LABEL(ashr_3_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $13, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -439,12 +638,18 @@ LABEL(loop_ashr_3_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -452,12 +657,18 @@ LABEL(loop_ashr_3_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_3_use_sse4_2)
+@@ -467,10 +678,10 @@ LABEL(nibble_ashr_3_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $3, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $12, %ecx
+       ja      LABEL(loop_ashr_3_use_sse4_2)
+@@ -488,6 +699,7 @@ LABEL(ashr_4_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $12, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -519,12 +731,18 @@ LABEL(loop_ashr_4_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -532,12 +750,18 @@ LABEL(loop_ashr_4_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_4_use_sse4_2)
+@@ -547,10 +771,10 @@ LABEL(nibble_ashr_4_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $4, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $11, %ecx
+       ja      LABEL(loop_ashr_4_use_sse4_2)
+@@ -559,7 +783,7 @@ LABEL(nibble_ashr_4_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_5
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(11~15)          n - 11              4(15 +(n-11) - n)         ashr_5
++ *        n(11~15)          n - 11              4(15 +(n-11) - n)         ashr_5
+  */
+       .p2align 4
+ LABEL(ashr_5_sse4_2):
+@@ -568,6 +792,7 @@ LABEL(ashr_5_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $11, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -599,12 +824,18 @@ LABEL(loop_ashr_5_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -613,12 +844,18 @@ LABEL(loop_ashr_5_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_5_use_sse4_2)
+@@ -628,10 +865,10 @@ LABEL(nibble_ashr_5_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $5, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $10, %ecx
+       ja      LABEL(loop_ashr_5_use_sse4_2)
+@@ -640,7 +877,7 @@ LABEL(nibble_ashr_5_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_6
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(10~15)          n - 10              5(15 +(n-10) - n)         ashr_6
++ *        n(10~15)          n - 10              5(15 +(n-10) - n)         ashr_6
+  */
+       .p2align 4
+ LABEL(ashr_6_sse4_2):
+@@ -649,6 +886,7 @@ LABEL(ashr_6_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $10, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -680,12 +918,18 @@ LABEL(loop_ashr_6_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -693,12 +937,18 @@ LABEL(loop_ashr_6_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_6_use_sse4_2)
+@@ -708,10 +958,10 @@ LABEL(nibble_ashr_6_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $6, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $9, %ecx
+       ja      LABEL(loop_ashr_6_use_sse4_2)
+@@ -720,7 +970,7 @@ LABEL(nibble_ashr_6_use_sse4_2):
+ /*
+  * The following cases will be handled by ashr_7
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(9~15)          n - 9                      6(15 +(n - 9) - n)         ashr_7
++ *        n(9~15)          n - 9                6(15 +(n - 9) - n)         ashr_7
+  */
+       .p2align 4
+ LABEL(ashr_7_sse4_2):
+@@ -729,6 +979,7 @@ LABEL(ashr_7_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $9, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -760,12 +1011,18 @@ LABEL(loop_ashr_7_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -773,12 +1030,18 @@ LABEL(loop_ashr_7_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_7_use_sse4_2)
+@@ -788,10 +1051,10 @@ LABEL(nibble_ashr_7_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $7, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $8, %ecx
+       ja      LABEL(loop_ashr_7_use_sse4_2)
+@@ -800,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_8
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(8~15)          n - 8                      7(15 +(n - 8) - n)         ashr_8
++ *        n(8~15)          n - 8                7(15 +(n - 8) - n)         ashr_8
+  */
+       .p2align 4
+ LABEL(ashr_8_sse4_2):
+@@ -809,6 +1072,7 @@ LABEL(ashr_8_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $8, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -840,12 +1104,18 @@ LABEL(loop_ashr_8_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -853,12 +1123,18 @@ LABEL(loop_ashr_8_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_8_use_sse4_2)
+@@ -868,10 +1144,10 @@ LABEL(nibble_ashr_8_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $8, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $7, %ecx
+       ja      LABEL(loop_ashr_8_use_sse4_2)
+@@ -880,7 +1156,7 @@ LABEL(nibble_ashr_8_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_9
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(7~15)          n - 7                      8(15 +(n - 7) - n)         ashr_9
++ *        n(7~15)          n - 7                8(15 +(n - 7) - n)         ashr_9
+  */
+       .p2align 4
+ LABEL(ashr_9_sse4_2):
+@@ -889,6 +1165,7 @@ LABEL(ashr_9_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $7, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -921,12 +1198,18 @@ LABEL(loop_ashr_9_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -934,12 +1217,18 @@ LABEL(loop_ashr_9_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_9_use_sse4_2)
+@@ -949,10 +1238,10 @@ LABEL(nibble_ashr_9_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $9, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $6, %ecx
+       ja      LABEL(loop_ashr_9_use_sse4_2)
+@@ -961,7 +1250,7 @@ LABEL(nibble_ashr_9_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_10
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(6~15)          n - 6                      9(15 +(n - 6) - n)         ashr_10
++ *        n(6~15)          n - 6                9(15 +(n - 6) - n)         ashr_10
+  */
+       .p2align 4
+ LABEL(ashr_10_sse4_2):
+@@ -970,6 +1259,7 @@ LABEL(ashr_10_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $6, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1001,12 +1291,18 @@ LABEL(loop_ashr_10_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1014,12 +1310,18 @@ LABEL(loop_ashr_10_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_10_use_sse4_2)
+@@ -1029,10 +1331,10 @@ LABEL(nibble_ashr_10_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $10, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $5, %ecx
+       ja      LABEL(loop_ashr_10_use_sse4_2)
+@@ -1041,7 +1343,7 @@ LABEL(nibble_ashr_10_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_11
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(5~15)          n - 5                      10(15 +(n - 5) - n)         ashr_11
++ *        n(5~15)          n - 5                10(15 +(n - 5) - n)         ashr_11
+  */
+       .p2align 4
+ LABEL(ashr_11_sse4_2):
+@@ -1050,6 +1352,7 @@ LABEL(ashr_11_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $5, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1081,12 +1384,18 @@ LABEL(loop_ashr_11_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1094,12 +1403,18 @@ LABEL(loop_ashr_11_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_11_use_sse4_2)
+@@ -1109,10 +1424,10 @@ LABEL(nibble_ashr_11_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $11, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $4, %ecx
+       ja      LABEL(loop_ashr_11_use_sse4_2)
+@@ -1121,7 +1436,7 @@ LABEL(nibble_ashr_11_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_12
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(4~15)          n - 4                      11(15 +(n - 4) - n)         ashr_12
++ *        n(4~15)          n - 4                11(15 +(n - 4) - n)         ashr_12
+  */
+       .p2align 4
+ LABEL(ashr_12_sse4_2):
+@@ -1130,6 +1445,7 @@ LABEL(ashr_12_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $4, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1161,12 +1477,18 @@ LABEL(loop_ashr_12_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1174,12 +1496,18 @@ LABEL(loop_ashr_12_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_12_use_sse4_2)
+@@ -1189,10 +1517,10 @@ LABEL(nibble_ashr_12_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $12, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $3, %ecx
+       ja      LABEL(loop_ashr_12_use_sse4_2)
+@@ -1201,7 +1529,7 @@ LABEL(nibble_ashr_12_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_13
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(3~15)          n - 3                      12(15 +(n - 3) - n)         ashr_13
++ *        n(3~15)          n - 3                12(15 +(n - 3) - n)         ashr_13
+  */
+       .p2align 4
+ LABEL(ashr_13_sse4_2):
+@@ -1210,6 +1538,7 @@ LABEL(ashr_13_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $3, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1242,12 +1571,18 @@ LABEL(loop_ashr_13_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1255,12 +1590,18 @@ LABEL(loop_ashr_13_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_13_use_sse4_2)
+@@ -1270,10 +1611,10 @@ LABEL(nibble_ashr_13_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $13, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $2, %ecx
+       ja      LABEL(loop_ashr_13_use_sse4_2)
+@@ -1282,7 +1623,7 @@ LABEL(nibble_ashr_13_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_14
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(2~15)          n - 2                      13(15 +(n - 2) - n)         ashr_14
++ *        n(2~15)          n - 2                13(15 +(n - 2) - n)         ashr_14
+  */
+       .p2align 4
+ LABEL(ashr_14_sse4_2):
+@@ -1291,6 +1632,7 @@ LABEL(ashr_14_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $2, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1323,12 +1665,18 @@ LABEL(loop_ashr_14_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1336,12 +1684,18 @@ LABEL(loop_ashr_14_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+-      pcmpistri       $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_14_use_sse4_2)
+@@ -1351,10 +1705,10 @@ LABEL(nibble_ashr_14_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $14, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $1, %ecx
+       ja      LABEL(loop_ashr_14_use_sse4_2)
+@@ -1363,7 +1717,7 @@ LABEL(nibble_ashr_14_use_sse4_2):
+ /*
+  *  The following cases will be handled by ashr_15
+  *  rcx(offset of rsi)  rax(offset of rdi)        relative offset      corresponding case
+- *        n(1~15)          n - 1                      14(15 +(n - 1) - n)         ashr_15
++ *        n(1~15)          n - 1                14(15 +(n - 1) - n)         ashr_15
+  */
+       .p2align 4
+ LABEL(ashr_15_sse4_2):
+@@ -1372,6 +1726,7 @@ LABEL(ashr_15_sse4_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $1, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1406,12 +1761,18 @@ LABEL(loop_ashr_15_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+-      pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       add     $16, %r10
+@@ -1419,12 +1780,18 @@ LABEL(loop_ashr_15_use_sse4_2):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+-      pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
++      pcmpistri $0x1a, (%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       jbe     LABEL(use_sse4_2_exit)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     $16, %rdx
+       jmp     LABEL(loop_ashr_15_use_sse4_2)
+@@ -1434,22 +1801,28 @@ LABEL(nibble_ashr_15_use_sse4_2):
+       movdqa  -16(%rdi, %rdx), %xmm0
+       psrldq  $15, %xmm0
+       pcmpistri      $0x3a,%xmm0, %xmm0
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       cmp     %r11, %rcx
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+-#endif
++# endif
+       cmp     $0, %ecx
+       ja      LABEL(loop_ashr_15_use_sse4_2)
+ LABEL(nibble_ashr_use_sse4_2_exit):
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpistri      $0x1a,(%rsi,%rdx), %xmm0
++# else
++      movdqa  (%rsi,%rdx), %xmm1
++      TOLOWER (%xmm0, %xmm1)
++      pcmpistri $0x1a, %xmm1, %xmm0
++# endif
+       .p2align 4
+ LABEL(use_sse4_2_exit):
+       jnc     LABEL(strcmp_exitz_sse4_2)
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rcx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       add     %rcx, %rdx
+       lea     -16(%rdi, %r9), %rdi
+       movzbl  (%rdi, %rdx), %eax
+@@ -1458,6 +1831,12 @@ LABEL(use_sse4_2_exit):
+       jz      LABEL(use_sse4_2_ret_sse4_2)
+       xchg    %eax, %edx
+ LABEL(use_sse4_2_ret_sse4_2):
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rcx
++      movl    (%rcx,%rdx,4), %edx
++      movl    (%rcx,%rax,4), %eax
++# endif
++
+       sub     %edx, %eax
+       ret
+@@ -1473,13 +1852,19 @@ LABEL(ret_sse4_2):
+ LABEL(less16bytes_sse4_2):
+       bsf     %rdx, %rdx              /* find and store bit index in %rdx */
+-#ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rdx, %r11
+       jbe     LABEL(strcmp_exitz_sse4_2)
+-#endif
++# endif
+       movzbl  (%rsi, %rdx), %ecx
+       movzbl  (%rdi, %rdx), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+@@ -1488,15 +1873,27 @@ LABEL(strcmp_exitz_sse4_2):
+       ret
+       .p2align 4
++      // XXX Same as code above
+ LABEL(Byte0_sse4_2):
+       movzx   (%rsi), %ecx
+       movzx   (%rdi), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+       cfi_endproc
+       .size   STRCMP_SSE42, .-STRCMP_SSE42
++# undef UCLOW_reg
++# undef UCHIGH_reg
++# undef LCQWORD_reg
++# undef TOLOWER
++
+       /* Put all SSE 4.2 functions together.  */
+       .section .rodata.sse4.2,"a",@progbits
+       .p2align 3
+@@ -1528,6 +1925,27 @@ LABEL(unaligned_table_sse4_2):
+ # undef END
+ # define END(name) \
+       cfi_endproc; .size STRCMP_SSE2, .-STRCMP_SSE2
++
++# ifdef USE_AS_STRCASECMP_L
++#  define ENTRY2(name) \
++      .type __strcasecmp_sse2, @function; \
++      .align 16; \
++      __strcasecmp_sse2: cfi_startproc; \
++      CALL_MCOUNT
++#  define END2(name) \
++      cfi_endproc; .size __strcasecmp_sse2, .-__strcasecmp_sse2
++# endif
++
++# ifdef USE_AS_STRNCASECMP_L
++#  define ENTRY2(name) \
++      .type __strncasecmp_sse2, @function; \
++      .align 16; \
++      __strncasecmp_sse2: cfi_startproc; \
++      CALL_MCOUNT
++#  define END2(name) \
++      cfi_endproc; .size __strncasecmp_sse2, .-__strncasecmp_sse2
++# endif
++
+ # undef libc_hidden_builtin_def
+ /* It doesn't make sense to send libc-internal strcmp calls through a PLT.
+    The speedup we get from using SSE4.2 instruction is likely eaten away
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l-ssse3.S
+@@ -0,0 +1,6 @@
++#define USE_SSSE3 1
++#define USE_AS_STRNCASECMP_L
++#define NO_NOLOCALE_ALIAS
++#define STRCMP __strncasecmp_l_ssse3
++#define __strncasecmp __strncasecmp_ssse3
++#include "../strcmp.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strncase_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strncasecmp_l
++#define USE_AS_STRNCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strncasecmp_l, strncasecmp_l)
++libc_hidden_def (strncasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strstr.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strstr.c
+@@ -67,10 +67,10 @@
+    case               ECX     CFlag   ZFlag   SFlag
+     3          X        1       0       0/1
+-    4a                 0        1       0       0
+-    4b                 0        1       0       1
+-    4c                0 < X     1       0       0/1
+-    5         16        0       1       0
++    4a                 0        1       0       0
++    4b                 0        1       0       1
++    4c                0 < X     1       0       0/1
++    5         16        0       1       0
+    3. An initial ordered-comparison fragment match, we fix up to do
+       subsequent string comparison
+@@ -147,8 +147,7 @@ __m128i_shift_right (__m128i value, int 
+    If EOS occurs within less than 16B before 4KB boundary, we don't
+    cross to next page.  */
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
++static inline __m128i
+ __m128i_strloadu (const unsigned char * p)
+ {
+   int offset = ((size_t) p & (16 - 1));
+@@ -164,59 +163,36 @@ __m128i_strloadu (const unsigned char * 
+   return _mm_loadu_si128 ((__m128i *) p);
+ }
+-#ifdef USE_AS_STRCASESTR
++#if defined USE_AS_STRCASESTR && !defined STRCASESTR_NONASCII
+ /* Similar to __m128i_strloadu.  Convert to lower case for POSIX/C
+    locale.  */
+-
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
+-__m128i_strloadu_tolower_posix (const unsigned char * p)
++static inline __m128i
++__m128i_strloadu_tolower (const unsigned char *p, __m128i rangeuc,
++                        __m128i u2ldelta)
+ {
+   __m128i frag = __m128i_strloadu (p);
+-  /* Convert frag to lower case for POSIX/C locale.  */
+-  __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41);
+-  __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0);
+-  __m128i mask1 = _mm_cmpistrm (rangeuc, frag, 0x44);
+-  __m128i mask2 = _mm_blendv_epi8 (u2ldelta, frag, mask1);
+-  mask2 = _mm_sub_epi8 (mask2, u2ldelta);
+-  return  _mm_blendv_epi8 (frag, mask2, mask1);
++#define UCLOW 0x4040404040404040ULL
++#define UCHIGH 0x5b5b5b5b5b5b5b5bULL
++#define LCQWORD 0x2020202020202020ULL
++  /* Compare if 'Z' > bytes. Inverted way to get a mask for byte <= 'Z'.  */
++  __m128i r2 = _mm_cmpgt_epi8 (_mm_set1_epi64x (UCHIGH), frag);
++  /* Compare if bytes are > 'A' - 1.  */
++  __m128i r1 = _mm_cmpgt_epi8 (frag, _mm_set1_epi64x (UCLOW));
++  /* Mask byte == ff if byte(r2) <= 'Z' and byte(r1) > 'A' - 1.  */
++  __m128i mask = _mm_and_si128 (r2, r1);
++  /* Apply lowercase bit 6 mask for above mask bytes == ff.  */
++  return _mm_or_si128 (frag, _mm_and_si128 (mask, _mm_set1_epi64x (LCQWORD)));
+ }
+-/* Similar to __m128i_strloadu.  Convert to lower case for none-POSIX/C
+-   locale.  */
+-
+-static __m128i
+-__attribute__ ((section (".text.sse4.2")))
+-__m128i_strloadu_tolower (const unsigned char * p)
+-{
+-  union
+-    {
+-      char b[16];
+-      __m128i x;
+-    } u;
+-
+-  for (int i = 0; i < 16; i++)
+-    if (p[i] == 0)
+-      {
+-      u.b[i] = 0;
+-      break;
+-      }
+-    else
+-      u.b[i] = tolower (p[i]);
+-
+-  return u.x;
+-}
+ #endif
+ /* Calculate Knuth-Morris-Pratt string searching algorithm (or KMP
+    algorithm) overlap for a fully populated 16B vector.
+    Input parameter: 1st 16Byte loaded from the reference string of a
+                   strstr function.
+-   We don't use KMP algorithm if reference string is less than 16B.
+- */
+-
++   We don't use KMP algorithm if reference string is less than 16B.  */
+ static int
+ __inline__ __attribute__ ((__always_inline__,))
+ KMP16Bovrlap (__m128i s2)
+@@ -236,7 +212,7 @@ KMP16Bovrlap (__m128i s2)
+     return 1;
+   else if (!k1)
+     {
+-      /* There are al least two ditinct char in s2.  If byte 0 and 1 are
++      /* There are al least two distinct chars in s2.  If byte 0 and 1 are
+        idential and the distinct value lies farther down, we can deduce
+        the next byte offset to restart full compare is least no earlier
+        than byte 3.  */
+@@ -256,23 +232,30 @@ STRSTR_SSE42 (const unsigned char *s1, c
+ #define p1 s1
+   const unsigned char *p2 = s2;
+-  if (p2[0] == '\0')
++#ifndef STRCASESTR_NONASCII
++  if (__builtin_expect (p2[0] == '\0', 0))
+     return (char *) p1;
+-  if (p1[0] == '\0')
++  if (__builtin_expect (p1[0] == '\0', 0))
+     return NULL;
+   /* Check if p1 length is 1 byte long.  */
+-  if (p1[1] == '\0')
++  if (__builtin_expect (p1[1] == '\0', 0))
+     return p2[1] == '\0' && CMPBYTE (p1[0], p2[0]) ? (char *) p1 : NULL;
++#endif
+ #ifdef USE_AS_STRCASESTR
+-  __m128i (*strloadu) (const unsigned char *);
+-
+-  if (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE) == 0)
+-    strloadu = __m128i_strloadu_tolower_posix;
+-  else
+-    strloadu = __m128i_strloadu_tolower;
++# ifndef STRCASESTR_NONASCII
++  if (__builtin_expect (_NL_CURRENT_WORD (LC_CTYPE, _NL_CTYPE_NONASCII_CASE)
++                      != 0, 0))
++    return __strcasestr_sse42_nonascii (s1, s2);
++
++  const __m128i rangeuc = _mm_set_epi64x (0x0, 0x5a41);
++  const __m128i u2ldelta = _mm_set1_epi64x (0xe0e0e0e0e0e0e0e0);
++#  define strloadu(p) __m128i_strloadu_tolower (p, rangeuc, u2ldelta)
++# else
++#  define strloadu __m128i_strloadu_tolower
++# endif
+ #else
+ # define strloadu __m128i_strloadu
+ #endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp.S
+@@ -0,0 +1 @@
++/* In strcasecmp_l.S.  */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l-nonascii.c
+@@ -0,0 +1,8 @@
++#include <string.h>
++
++extern int __strcasecmp_l_nonascii (__const char *__s1, __const char *__s2,
++                                  __locale_t __loc);
++
++#define __strcasecmp_l __strcasecmp_l_nonascii
++#define USE_IN_EXTENDED_LOCALE_MODEL    1
++#include <string/strcasecmp.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcasecmp_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strcasecmp_l
++#define USE_AS_STRCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strcasecmp_l, strcasecmp_l)
++libc_hidden_def (strcasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strcmp.S
+@@ -51,6 +51,31 @@
+       je      LABEL(strcmp_exitz);                    \
+       mov     %r9, %r11
++#elif defined USE_AS_STRCASECMP_L
++# include "locale-defines.h"
++
++/* No support for strcasecmp outside libc so far since it is not needed.  */
++# ifdef NOT_IN_lib
++#  error "strcasecmp_l not implemented so far"
++# endif
++
++# define UPDATE_STRNCMP_COUNTER
++#elif defined USE_AS_STRNCASECMP_L
++# include "locale-defines.h"
++
++/* No support for strncasecmp outside libc so far since it is not needed.  */
++# ifdef NOT_IN_lib
++#  error "strncasecmp_l not implemented so far"
++# endif
++
++# define UPDATE_STRNCMP_COUNTER                               \
++      /* calculate left number to compare */          \
++      lea     -16(%rcx, %r11), %r9;                   \
++      cmp     %r9, %r11;                              \
++      jb      LABEL(strcmp_exitz);                    \
++      test    %r9, %r9;                               \
++      je      LABEL(strcmp_exitz);                    \
++      mov     %r9, %r11
+ #else
+ # define UPDATE_STRNCMP_COUNTER
+ # ifndef STRCMP
+@@ -64,6 +89,46 @@
+       .section .text.ssse3,"ax",@progbits
+ #endif
++#ifdef USE_AS_STRCASECMP_L
++# ifndef ENTRY2
++#  define ENTRY2(name) ENTRY (name)
++#  define END2(name) END (name)
++# endif
++
++ENTRY2 (__strcasecmp)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rdx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END2 (__strcasecmp)
++# ifndef NO_NOLOCALE_ALIAS
++weak_alias (__strcasecmp, strcasecmp)
++libc_hidden_def (__strcasecmp)
++# endif
++      /* FALLTHROUGH to strcasecmp_l.  */
++#elif defined USE_AS_STRNCASECMP_L
++# ifndef ENTRY2
++#  define ENTRY2(name) ENTRY (name)
++#  define END2(name) END (name)
++# endif
++
++ENTRY2 (__strncasecmp)
++      movq    __libc_tsd_LOCALE@gottpoff(%rip),%rax
++      movq    %fs:(%rax),%rcx
++
++      // XXX 5 byte should be before the function
++      /* 5-byte NOP.  */
++      .byte   0x0f,0x1f,0x44,0x00,0x00
++END2 (__strncasecmp)
++# ifndef NO_NOLOCALE_ALIAS
++weak_alias (__strncasecmp, strncasecmp)
++libc_hidden_def (__strncasecmp)
++# endif
++      /* FALLTHROUGH to strncasecmp_l.  */
++#endif
++
+ ENTRY (BP_SYM (STRCMP))
+ #ifdef NOT_IN_libc
+ /* Simple version since we can't use SSE registers in ld.so.  */
+@@ -84,10 +149,32 @@ L(neq):   movl    $1, %eax
+       ret
+ END (BP_SYM (STRCMP))
+ #else /* NOT_IN_libc */
++# ifdef USE_AS_STRCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rdx), %rax
++#  else
++      movq    (%rdx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strcasecmp_l_nonascii
++# elif defined USE_AS_STRNCASECMP_L
++      /* We have to fall back on the C implementation for locales
++         with encodings not matching ASCII for single bytes.  */
++#  if LOCALE_T___LOCALES != 0 || LC_CTYPE != 0
++      movq    LOCALE_T___LOCALES+LC_CTYPE*8(%rcx), %rax
++#  else
++      movq    (%rcx), %rax
++#  endif
++      testl   $0, LOCALE_DATA_VALUES+_NL_CTYPE_NONASCII_CASE*SIZEOF_VALUES(%rax)
++      jne     __strncasecmp_l_nonascii
++# endif
++
+ /*
+  * This implementation uses SSE to compare up to 16 bytes at a time.
+  */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       test    %rdx, %rdx
+       je      LABEL(strcmp_exitz)
+       cmp     $1, %rdx
+@@ -99,6 +186,26 @@ END (BP_SYM (STRCMP))
+ /* Use 64bit AND here to avoid long NOP padding.  */
+       and     $0x3f, %rcx             /* rsi alignment in cache line */
+       and     $0x3f, %rax             /* rdi alignment in cache line */
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      .section .rodata.cst16,"aM",@progbits,16
++      .align 16
++.Lbelowupper:
++      .quad   0x4040404040404040
++      .quad   0x4040404040404040
++.Ltopupper:
++      .quad   0x5b5b5b5b5b5b5b5b
++      .quad   0x5b5b5b5b5b5b5b5b
++.Ltouppermask:
++      .quad   0x2020202020202020
++      .quad   0x2020202020202020
++      .previous
++      movdqa  .Lbelowupper(%rip), %xmm5
++#  define UCLOW_reg %xmm5
++      movdqa  .Ltopupper(%rip), %xmm6
++#  define UCHIGH_reg %xmm6
++      movdqa  .Ltouppermask(%rip), %xmm7
++#  define LCQWORD_reg %xmm7
++# endif
+       cmp     $0x30, %ecx
+       ja      LABEL(crosscache)       /* rsi: 16-byte load will cross cache line */
+       cmp     $0x30, %eax
+@@ -107,6 +214,26 @@ END (BP_SYM (STRCMP))
+       movlpd  (%rsi), %xmm2
+       movhpd  8(%rdi), %xmm1
+       movhpd  8(%rsi), %xmm2
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++#  define TOLOWER(reg1, reg2) \
++      movdqa  reg1, %xmm8;                                    \
++      movdqa  UCHIGH_reg, %xmm9;                              \
++      movdqa  reg2, %xmm10;                                   \
++      movdqa  UCHIGH_reg, %xmm11;                             \
++      pcmpgtb UCLOW_reg, %xmm8;                               \
++      pcmpgtb reg1, %xmm9;                                    \
++      pcmpgtb UCLOW_reg, %xmm10;                              \
++      pcmpgtb reg2, %xmm11;                                   \
++      pand    %xmm9, %xmm8;                                   \
++      pand    %xmm11, %xmm10;                                 \
++      pand    LCQWORD_reg, %xmm8;                             \
++      pand    LCQWORD_reg, %xmm10;                            \
++      por     %xmm8, reg1;                                    \
++      por     %xmm10, reg2
++      TOLOWER (%xmm1, %xmm2)
++# else
++#  define TOLOWER(reg1, reg2)
++# endif
+       pxor    %xmm0, %xmm0            /* clear %xmm0 for null char checks */
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pcmpeqb %xmm2, %xmm1            /* compare first 16 bytes for equality */
+@@ -114,7 +241,7 @@ END (BP_SYM (STRCMP))
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx           /* if first 16 bytes are same, edx == 0xffff */
+       jnz     LABEL(less16bytes)      /* If not, find different value or null char */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)     /* finish comparision */
+ # endif
+@@ -159,7 +286,13 @@ LABEL(ashr_0):
+       movdqa  (%rsi), %xmm1
+       pxor    %xmm0, %xmm0                    /* clear %xmm0 for null char check */
+       pcmpeqb %xmm1, %xmm0                    /* Any null chars? */
++# if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+       pcmpeqb (%rdi), %xmm1                   /* compare 16 bytes for equality */
++# else
++      movdqa  (%rdi), %xmm2
++      TOLOWER (%xmm1, %xmm2)
++      pcmpeqb %xmm2, %xmm1                    /* compare 16 bytes for equality */
++# endif
+       psubb   %xmm0, %xmm1                    /* packed sub of comparison results*/
+       pmovmskb %xmm1, %r9d
+       shr     %cl, %edx                       /* adjust 0xffff for offset */
+@@ -183,6 +316,7 @@ LABEL(ashr_0):
+ LABEL(loop_ashr_0):
+       movdqa  (%rsi, %rcx), %xmm1
+       movdqa  (%rdi, %rcx), %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -191,13 +325,14 @@ LABEL(loop_ashr_0):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)             /* mismatch or null char seen */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+       add     $16, %rcx
+       movdqa  (%rsi, %rcx), %xmm1
+       movdqa  (%rdi, %rcx), %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -205,7 +340,7 @@ LABEL(loop_ashr_0):
+       pmovmskb %xmm1, %edx
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -214,7 +349,7 @@ LABEL(loop_ashr_0):
+ /*
+  * The following cases will be handled by ashr_1
+- * rcx(offset of rsi)  rax(offset of rdi)   relative offset           corresponding case
++ * rcx(offset of rsi)  rax(offset of rdi)   relative offset   corresponding case
+  *        n(15)            n -15            0(15 +(n-15) - n)         ashr_1
+  */
+       .p2align 4
+@@ -224,6 +359,7 @@ LABEL(ashr_1):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0            /* Any null chars? */
+       pslldq  $15, %xmm2              /* shift first string to align with second */
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2            /* compare 16 bytes for equality */
+       psubb   %xmm0, %xmm2            /* packed sub of comparison results*/
+       pmovmskb %xmm2, %r9d
+@@ -263,6 +399,7 @@ LABEL(gobble_ashr_1):
+ # else
+       palignr $1, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -271,7 +408,7 @@ LABEL(gobble_ashr_1):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -292,6 +429,7 @@ LABEL(gobble_ashr_1):
+ # else
+       palignr $1, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -300,7 +438,7 @@ LABEL(gobble_ashr_1):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -319,8 +457,8 @@ LABEL(nibble_ashr_1):
+       test    $0xfffe, %edx
+       jnz     LABEL(ashr_1_exittail)  /* find null char*/
+-# ifdef USE_AS_STRNCMP
+-      cmp     $14, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $15, %r11
+       jbe     LABEL(ashr_1_exittail)
+ # endif
+@@ -351,6 +489,7 @@ LABEL(ashr_2):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $14, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -390,6 +529,7 @@ LABEL(gobble_ashr_2):
+ # else
+       palignr $2, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -398,7 +538,7 @@ LABEL(gobble_ashr_2):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -420,6 +560,7 @@ LABEL(gobble_ashr_2):
+ # else
+       palignr $2, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -428,7 +569,7 @@ LABEL(gobble_ashr_2):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -444,8 +585,8 @@ LABEL(nibble_ashr_2):
+       test    $0xfffc, %edx
+       jnz     LABEL(ashr_2_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $13, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $14, %r11
+       jbe     LABEL(ashr_2_exittail)
+ # endif
+@@ -472,6 +613,7 @@ LABEL(ashr_3):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $13, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -512,6 +654,7 @@ LABEL(gobble_ashr_3):
+ # else
+       palignr $3, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -520,7 +663,7 @@ LABEL(gobble_ashr_3):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -542,6 +685,7 @@ LABEL(gobble_ashr_3):
+ # else
+       palignr $3, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -550,7 +694,7 @@ LABEL(gobble_ashr_3):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -566,8 +710,8 @@ LABEL(nibble_ashr_3):
+       test    $0xfff8, %edx
+       jnz     LABEL(ashr_3_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $12, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $13, %r11
+       jbe     LABEL(ashr_3_exittail)
+ # endif
+@@ -594,6 +738,7 @@ LABEL(ashr_4):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $12, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -634,6 +779,7 @@ LABEL(gobble_ashr_4):
+ # else
+       palignr $4, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -642,7 +788,7 @@ LABEL(gobble_ashr_4):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -664,6 +810,7 @@ LABEL(gobble_ashr_4):
+ # else
+       palignr $4, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -672,7 +819,7 @@ LABEL(gobble_ashr_4):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -688,8 +835,8 @@ LABEL(nibble_ashr_4):
+       test    $0xfff0, %edx
+       jnz     LABEL(ashr_4_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $11, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $12, %r11
+       jbe     LABEL(ashr_4_exittail)
+ # endif
+@@ -716,6 +863,7 @@ LABEL(ashr_5):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $11, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -756,6 +904,7 @@ LABEL(gobble_ashr_5):
+ # else
+       palignr $5, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -764,7 +913,7 @@ LABEL(gobble_ashr_5):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -786,6 +935,7 @@ LABEL(gobble_ashr_5):
+ # else
+       palignr $5, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -794,7 +944,7 @@ LABEL(gobble_ashr_5):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -810,8 +960,8 @@ LABEL(nibble_ashr_5):
+       test    $0xffe0, %edx
+       jnz     LABEL(ashr_5_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $10, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $11, %r11
+       jbe     LABEL(ashr_5_exittail)
+ # endif
+@@ -838,6 +988,7 @@ LABEL(ashr_6):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $10, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -878,6 +1029,7 @@ LABEL(gobble_ashr_6):
+ # else
+       palignr $6, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -886,7 +1038,7 @@ LABEL(gobble_ashr_6):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -908,6 +1060,7 @@ LABEL(gobble_ashr_6):
+ # else
+       palignr $6, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -916,7 +1069,7 @@ LABEL(gobble_ashr_6):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -932,8 +1085,8 @@ LABEL(nibble_ashr_6):
+       test    $0xffc0, %edx
+       jnz     LABEL(ashr_6_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $9, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $10, %r11
+       jbe     LABEL(ashr_6_exittail)
+ # endif
+@@ -960,6 +1113,7 @@ LABEL(ashr_7):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $9, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1000,6 +1154,7 @@ LABEL(gobble_ashr_7):
+ # else
+       palignr $7, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1008,7 +1163,7 @@ LABEL(gobble_ashr_7):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1030,6 +1185,7 @@ LABEL(gobble_ashr_7):
+ # else
+       palignr $7, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1038,7 +1194,7 @@ LABEL(gobble_ashr_7):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1054,8 +1210,8 @@ LABEL(nibble_ashr_7):
+       test    $0xff80, %edx
+       jnz     LABEL(ashr_7_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $8, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $9, %r11
+       jbe     LABEL(ashr_7_exittail)
+ # endif
+@@ -1082,6 +1238,7 @@ LABEL(ashr_8):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $8, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1122,6 +1279,7 @@ LABEL(gobble_ashr_8):
+ # else
+       palignr $8, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1130,7 +1288,7 @@ LABEL(gobble_ashr_8):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1152,6 +1310,7 @@ LABEL(gobble_ashr_8):
+ # else
+       palignr $8, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1160,7 +1319,7 @@ LABEL(gobble_ashr_8):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1176,8 +1335,8 @@ LABEL(nibble_ashr_8):
+       test    $0xff00, %edx
+       jnz     LABEL(ashr_8_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $7, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $8, %r11
+       jbe     LABEL(ashr_8_exittail)
+ # endif
+@@ -1204,6 +1363,7 @@ LABEL(ashr_9):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $7, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1244,6 +1404,7 @@ LABEL(gobble_ashr_9):
+ # else
+       palignr $9, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1252,7 +1413,7 @@ LABEL(gobble_ashr_9):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1274,6 +1435,7 @@ LABEL(gobble_ashr_9):
+ # else
+       palignr $9, %xmm3, %xmm2        /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1282,7 +1444,7 @@ LABEL(gobble_ashr_9):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1298,8 +1460,8 @@ LABEL(nibble_ashr_9):
+       test    $0xfe00, %edx
+       jnz     LABEL(ashr_9_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $6, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $7, %r11
+       jbe     LABEL(ashr_9_exittail)
+ # endif
+@@ -1326,6 +1488,7 @@ LABEL(ashr_10):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $6, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1366,6 +1529,7 @@ LABEL(gobble_ashr_10):
+ # else
+       palignr $10, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1374,7 +1538,7 @@ LABEL(gobble_ashr_10):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1396,6 +1560,7 @@ LABEL(gobble_ashr_10):
+ # else
+       palignr $10, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1404,7 +1569,7 @@ LABEL(gobble_ashr_10):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1420,8 +1585,8 @@ LABEL(nibble_ashr_10):
+       test    $0xfc00, %edx
+       jnz     LABEL(ashr_10_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $5, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $6, %r11
+       jbe     LABEL(ashr_10_exittail)
+ # endif
+@@ -1448,6 +1613,7 @@ LABEL(ashr_11):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $5, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1488,6 +1654,7 @@ LABEL(gobble_ashr_11):
+ # else
+       palignr $11, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1496,7 +1663,7 @@ LABEL(gobble_ashr_11):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1518,6 +1685,7 @@ LABEL(gobble_ashr_11):
+ # else
+       palignr $11, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1526,7 +1694,7 @@ LABEL(gobble_ashr_11):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1542,8 +1710,8 @@ LABEL(nibble_ashr_11):
+       test    $0xf800, %edx
+       jnz     LABEL(ashr_11_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $4, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $5, %r11
+       jbe     LABEL(ashr_11_exittail)
+ # endif
+@@ -1570,6 +1738,7 @@ LABEL(ashr_12):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $4, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1610,6 +1779,7 @@ LABEL(gobble_ashr_12):
+ # else
+       palignr $12, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1618,7 +1788,7 @@ LABEL(gobble_ashr_12):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1640,6 +1810,7 @@ LABEL(gobble_ashr_12):
+ # else
+       palignr $12, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1648,7 +1819,7 @@ LABEL(gobble_ashr_12):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1664,8 +1835,8 @@ LABEL(nibble_ashr_12):
+       test    $0xf000, %edx
+       jnz     LABEL(ashr_12_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $3, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $4, %r11
+       jbe     LABEL(ashr_12_exittail)
+ # endif
+@@ -1692,6 +1863,7 @@ LABEL(ashr_13):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $3, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1732,6 +1904,7 @@ LABEL(gobble_ashr_13):
+ # else
+       palignr $13, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1740,7 +1913,7 @@ LABEL(gobble_ashr_13):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1762,6 +1935,7 @@ LABEL(gobble_ashr_13):
+ # else
+       palignr $13, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1770,7 +1944,7 @@ LABEL(gobble_ashr_13):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1786,8 +1960,8 @@ LABEL(nibble_ashr_13):
+       test    $0xe000, %edx
+       jnz     LABEL(ashr_13_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $2, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $3, %r11
+       jbe     LABEL(ashr_13_exittail)
+ # endif
+@@ -1814,6 +1988,7 @@ LABEL(ashr_14):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $2, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1854,6 +2029,7 @@ LABEL(gobble_ashr_14):
+ # else
+       palignr $14, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1862,7 +2038,7 @@ LABEL(gobble_ashr_14):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1884,6 +2060,7 @@ LABEL(gobble_ashr_14):
+ # else
+       palignr $14, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1892,7 +2069,7 @@ LABEL(gobble_ashr_14):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP | defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -1908,8 +2085,8 @@ LABEL(nibble_ashr_14):
+       test    $0xc000, %edx
+       jnz     LABEL(ashr_14_exittail)
+-# ifdef USE_AS_STRNCMP
+-      cmp     $1, %r11
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmp     $2, %r11
+       jbe     LABEL(ashr_14_exittail)
+ # endif
+@@ -1936,6 +2113,7 @@ LABEL(ashr_15):
+       movdqa  (%rsi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pslldq  $1, %xmm2
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm2
+       psubb   %xmm0, %xmm2
+       pmovmskb %xmm2, %r9d
+@@ -1978,6 +2156,7 @@ LABEL(gobble_ashr_15):
+ # else
+       palignr $15, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -1986,7 +2165,7 @@ LABEL(gobble_ashr_15):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -2008,6 +2187,7 @@ LABEL(gobble_ashr_15):
+ # else
+       palignr $15, %xmm3, %xmm2       /* merge into one 16byte value */
+ # endif
++      TOLOWER (%xmm1, %xmm2)
+       pcmpeqb %xmm1, %xmm0
+       pcmpeqb %xmm2, %xmm1
+@@ -2016,7 +2196,7 @@ LABEL(gobble_ashr_15):
+       sub     $0xffff, %edx
+       jnz     LABEL(exit)
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     $16, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+@@ -2032,9 +2212,9 @@ LABEL(nibble_ashr_15):
+       test    $0x8000, %edx
+       jnz     LABEL(ashr_15_exittail)
+-# ifdef USE_AS_STRNCMP
+-      test    %r11, %r11
+-      je      LABEL(ashr_15_exittail)
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
++      cmpq    $1, %r11
++      jbe     LABEL(ashr_15_exittail)
+ # endif
+       pxor    %xmm0, %xmm0
+@@ -2049,6 +2229,7 @@ LABEL(ashr_15_exittail):
+       .p2align 4
+ LABEL(aftertail):
++      TOLOWER (%xmm1, %xmm3)
+       pcmpeqb %xmm3, %xmm1
+       psubb   %xmm0, %xmm1
+       pmovmskb %xmm1, %edx
+@@ -2069,13 +2250,19 @@ LABEL(ret):
+ LABEL(less16bytes):
+       bsf     %rdx, %rdx              /* find and store bit index in %rdx */
+-# ifdef USE_AS_STRNCMP
++# if defined USE_AS_STRNCMP || defined USE_AS_STRNCASECMP_L
+       sub     %rdx, %r11
+       jbe     LABEL(strcmp_exitz)
+ # endif
+       movzbl  (%rsi, %rdx), %ecx
+       movzbl  (%rdi, %rdx), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+@@ -2088,6 +2275,12 @@ LABEL(Byte0):
+       movzx   (%rsi), %ecx
+       movzx   (%rdi), %eax
++# if defined USE_AS_STRCASECMP_L || defined USE_AS_STRNCASECMP_L
++      leaq    _nl_C_LC_CTYPE_tolower+128*4(%rip), %rdx
++      movl    (%rdx,%rcx,4), %ecx
++      movl    (%rdx,%rax,4), %eax
++# endif
++
+       sub     %ecx, %eax
+       ret
+ END (BP_SYM (STRCMP))
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase.S
+@@ -0,0 +1 @@
++/* In strncase_l.S.  */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l-nonascii.c
+@@ -0,0 +1,8 @@
++#include <string.h>
++
++extern int __strncasecmp_l_nonascii (__const char *__s1, __const char *__s2,
++                                   size_t __n, __locale_t __loc);
++
++#define __strncasecmp_l __strncasecmp_l_nonascii
++#define USE_IN_EXTENDED_LOCALE_MODEL    1
++#include <string/strncase.c>
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strncase_l.S
+@@ -0,0 +1,6 @@
++#define STRCMP __strncasecmp_l
++#define USE_AS_STRNCASECMP_L
++#include "strcmp.S"
++
++weak_alias (__strncasecmp_l, strncasecmp_l)
++libc_hidden_def (strncasecmp_l)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strnlen.S
+@@ -0,0 +1,64 @@
++/* strnlen(str,maxlen) -- determine the length of the string STR up to MAXLEN.
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Ulrich Drepper <drepper@redhat.com>.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++
++
++      .text
++ENTRY(__strnlen)
++      movq    %rsi, %rax
++      testq   %rsi, %rsi
++      jz      3f
++      pxor    %xmm2, %xmm2
++      movq    %rdi, %rcx
++      movq    %rdi, %r8
++      movq    $16, %r9
++      andq    $~15, %rdi
++      movdqa  %xmm2, %xmm1
++      pcmpeqb (%rdi), %xmm2
++      orl     $0xffffffff, %r10d
++      subq    %rdi, %rcx
++      shll    %cl, %r10d
++      subq    %rcx, %r9
++      pmovmskb %xmm2, %edx
++      andl    %r10d, %edx
++      jnz     1f
++      subq    %r9, %rsi
++      jbe     3f
++
++2:    movdqa  16(%rdi), %xmm0
++      leaq    16(%rdi), %rdi
++      pcmpeqb %xmm1, %xmm0
++      pmovmskb %xmm0, %edx
++      testl   %edx, %edx
++      jnz     1f
++      subq    $16, %rsi
++      jnbe    2b
++3:    ret
++
++1:    subq    %r8, %rdi
++      bsfl    %edx, %edx
++      addq    %rdi, %rdx
++      cmpq    %rdx, %rax
++      cmovnbq %rdx, %rax
++      ret
++END(__strnlen)
++weak_alias (__strnlen, strnlen)
++libc_hidden_def (strnlen)
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wcsatcliff.c
++++ glibc-2.12-2-gc4ccff1/wcsmbs/wcsatcliff.c
+@@ -16,6 +16,8 @@
+ #define MEMCPY wmemcpy
+ #define MEMPCPY wmempcpy
+ #define MEMCHR wmemchr
++#define STRCMP wcscmp
++#define STRNCMP wcsncmp
+ #include "../string/stratcliff.c"
diff --git a/src/patches/glibc/glibc-rh607010.patch b/src/patches/glibc/glibc-rh607010.patch
new file mode 100644 (file)
index 0000000..6952dad
--- /dev/null
@@ -0,0 +1,26 @@
+2010-09-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/cacheinfo.c (init_cacheinfo): Round cache sizes
+       up to multiple of 256 bytes.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -661,12 +661,16 @@ init_cacheinfo (void)
+   if (data > 0)
+     {
++      /* Round data cache size up to multiple of 256 bytes.  */
++      data = (data + 255) & ~255L;
+       __x86_64_data_cache_size_half = data / 2;
+       __x86_64_data_cache_size = data;
+     }
+   if (shared > 0)
+     {
++      /* Round shared cache size up to multiple of 256 bytes.  */
++      shared = (shared + 255) & ~255L;
+       __x86_64_shared_cache_size_half = shared / 2;
+       __x86_64_shared_cache_size = shared;
+     }
diff --git a/src/patches/glibc/glibc-rh607461.patch b/src/patches/glibc/glibc-rh607461.patch
new file mode 100644 (file)
index 0000000..79fc72c
--- /dev/null
@@ -0,0 +1,22 @@
+Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c
++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+@@ -994,7 +994,16 @@ setxid_mark_thread (struct xid_command *
+       /* If the thread is exiting right now, ignore it.  */
+       if ((ch & EXITING_BITMASK) != 0)
+-      return;
++      {
++        /* Release the futex if there is no other setxid in
++           progress.  */
++        if ((ch & SETXID_BITMASK) == 0)
++          {
++            t->setxid_futex = 1;
++            lll_futex_wake (&t->setxid_futex, 1, LLL_PRIVATE);
++          }
++        return;
++      }
+     }
+   while (atomic_compare_and_exchange_bool_acq (&t->cancelhandling,
+                                              ch | SETXID_BITMASK, ch));
diff --git a/src/patches/glibc/glibc-rh615090.patch b/src/patches/glibc/glibc-rh615090.patch
new file mode 100644 (file)
index 0000000..e6c00f0
--- /dev/null
@@ -0,0 +1,21 @@
+2010-07-27  Andreas Schwab  <schwab@redhat.com>
+
+       * manual/memory.texi (Malloc Tunable Parameters): Document
+       M_PERTURB.
+
+Index: glibc-2.12-2-gc4ccff1/manual/memory.texi
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/manual/memory.texi
++++ glibc-2.12-2-gc4ccff1/manual/memory.texi
+@@ -702,6 +702,11 @@ be allocated via @code{mmap}.
+ @item M_MMAP_MAX
+ The maximum number of chunks to allocate with @code{mmap}.  Setting this
+ to zero disables all use of @code{mmap}.
++@item M_PERTURB
++If non-zero, memory blocks are filled with values depending on some
++low order bits of this parameter when they are allocated (except when
++allocated by @code{calloc}) and freed.  This can be used to debug the
++use of uninitialized or freed heap memory.
+ @end table
+ @end deftypefun
diff --git a/src/patches/glibc/glibc-rh615701.patch b/src/patches/glibc/glibc-rh615701.patch
new file mode 100644 (file)
index 0000000..283e3fe
--- /dev/null
@@ -0,0 +1,23 @@
+2010-07-20  Roland McGrath  <roland@redhat.com>
+
+       * elf/dl-sysdep.c (_dl_important_hwcaps): Add dsocaps mask to
+       dl_hwcap_mask as well as dl_hwcap.  Without this, dsocaps matching in
+       ld.so.cache was broken.  With it, there is no way to disable dsocaps
+       like LD_HWCAP_MASK can disable hwcaps.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-sysdep.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-sysdep.c
+@@ -425,6 +425,11 @@ _dl_important_hwcaps (const char *platfo
+     {
+       const ElfW(Word) mask = ((const ElfW(Word) *) dsocaps)[-1];
+       GLRO(dl_hwcap) |= (uint64_t) mask << _DL_FIRST_EXTRA;
++      /* Note that we add the dsocaps to the set already chosen by the
++       LD_HWCAP_MASK environment variable (or default HWCAP_IMPORTANT).
++       So there is no way to request ignoring an OS-supplied dsocap
++       string and bit like you can ignore an OS-supplied HWCAP bit.  */
++      GLRO(dl_hwcap_mask) |= (uint64_t) mask << _DL_FIRST_EXTRA;
+       size_t len;
+       for (const char *p = dsocaps; p < dsocaps + dsocapslen; p += len + 1)
+       {
diff --git a/src/patches/glibc/glibc-rh621959.patch b/src/patches/glibc/glibc-rh621959.patch
new file mode 100644 (file)
index 0000000..315521f
--- /dev/null
@@ -0,0 +1,120 @@
+2010-08-06  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+       Also fail if tpwd after pwuid call is NULL.
+
+2010-06-21  Andreas Schwab <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid):
+       Restore proper fallback handling.
+
+2010-06-19  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getlogin_r.c (__getlogin_r_loginuid): Handle
+       OOM in getpwuid_r correctly.  Return error number when the caller
+       should return, otherwise -1.
+       (getlogin_r): Adjust to return also for result of __getlogin_r_loginuid
+       call returning > 0 value.
+       * sysdeps/unix/sysv/linux/getlogin.c (getlogin): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin.c
+@@ -32,8 +32,9 @@
+ char *
+ getlogin (void)
+ {
+-  if (__getlogin_r_loginuid (name, sizeof (name)) == 0)
+-    return name;
++  int res = __getlogin_r_loginuid (name, sizeof (name));
++  if (res >= 0)
++    return res == 0 ? name : NULL;
+   return getlogin_fd0 ();
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getlogin_r.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getlogin_r.c
+@@ -27,6 +27,10 @@ static int getlogin_r_fd0 (char *name, s
+ #undef getlogin_r
++/* Try to determine login name from /proc/self/loginuid and return 0
++   if successful.  If /proc/self/loginuid cannot be read return -1.
++   Otherwise return the error number.  */
++
+ int
+ attribute_hidden
+ __getlogin_r_loginuid (name, namesize)
+@@ -35,7 +39,7 @@ __getlogin_r_loginuid (name, namesize)
+ {
+   int fd = open_not_cancel_2 ("/proc/self/loginuid", O_RDONLY);
+   if (fd == -1)
+-    return 1;
++    return -1;
+   /* We are reading a 32-bit number.  12 bytes are enough for the text
+      representation.  If not, something is wrong.  */
+@@ -51,37 +55,38 @@ __getlogin_r_loginuid (name, namesize)
+       || (uidbuf[n] = '\0',
+         uid = strtoul (uidbuf, &endp, 10),
+         endp == uidbuf || *endp != '\0'))
+-    return 1;
++    return -1;
+   size_t buflen = 1024;
+   char *buf = alloca (buflen);
+   bool use_malloc = false;
+   struct passwd pwd;
+   struct passwd *tpwd;
++  int result = 0;
+   int res;
+-  while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) != 0)
++  while ((res = __getpwuid_r (uid, &pwd, buf, buflen, &tpwd)) == ERANGE)
+     if (__libc_use_alloca (2 * buflen))
+-      extend_alloca (buf, buflen, 2 * buflen);
++      buf = extend_alloca (buf, buflen, 2 * buflen);
+     else
+       {
+       buflen *= 2;
+       char *newp = realloc (use_malloc ? buf : NULL, buflen);
+       if (newp == NULL)
+         {
+-        fail:
+-          if (use_malloc)
+-            free (buf);
+-          return 1;
++          result = ENOMEM;
++          goto out;
+         }
+       buf = newp;
+       use_malloc = true;
+       }
+-  if (tpwd == NULL)
+-    goto fail;
++  if (res != 0 || tpwd == NULL)
++    {
++      result = -1;
++      goto out;
++    }
+-  int result = 0;
+   size_t needed = strlen (pwd.pw_name) + 1;
+   if (needed > namesize)
+     {
+@@ -109,8 +114,9 @@ getlogin_r (name, namesize)
+      char *name;
+      size_t namesize;
+ {
+-  if (__getlogin_r_loginuid (name, namesize) == 0)
+-    return 0;
++  int res = __getlogin_r_loginuid (name, namesize);
++  if (res >= 0)
++    return res;
+   return getlogin_r_fd0 (name, namesize);
+ }
diff --git a/src/patches/glibc/glibc-rh623187.patch b/src/patches/glibc/glibc-rh623187.patch
new file mode 100644 (file)
index 0000000..596fdd6
--- /dev/null
@@ -0,0 +1,18 @@
+2010-08-10  Dinakar Guniguntala  <dino@in.ibm.com>
+           Stefan Hajnoczi  <stefanha@linux.vnet.ibm.com>
+
+       * sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S: If
+       FUTEX_WAKE_OP fails make sure to call FUTEX_WAKE instead.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
+@@ -163,7 +163,6 @@ __pthread_cond_signal:
+ #endif
+       orl     $FUTEX_WAKE, %ecx
+-      xorl    $(FUTEX_WAKE ^ FUTEX_WAKE_OP), %ecx
+       movl    $SYS_futex, %eax
+       /* %edx should be 1 already from $FUTEX_WAKE_OP syscall.
+       movl    $1, %edx  */
diff --git a/src/patches/glibc/glibc-rh625893.patch b/src/patches/glibc/glibc-rh625893.patch
new file mode 100644 (file)
index 0000000..5337a42
--- /dev/null
@@ -0,0 +1,79 @@
+2010-08-12  Andreas Schwab  <schwab@redhat.com>
+
+       [BZ #11904]
+       * locale/programs/locale.c (print_assignment): New function.
+       (show_locale_vars): Use it.
+
+Index: glibc-2.12-2-gc4ccff1/locale/programs/locale.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/programs/locale.c
++++ glibc-2.12-2-gc4ccff1/locale/programs/locale.c
+@@ -762,6 +762,29 @@ write_charmaps (void)
+   twalk (all_data, print_names);
+ }
++/* Print a properly quoted assignment of NAME with VAL, using double
++   quotes iff DQUOTE is true.  */
++static void
++print_assignment (const char *name, const char *val, bool dquote)
++{
++  printf ("%s=", name);
++  if (dquote)
++    putchar ('"');
++  while (*val != '\0')
++    {
++      size_t segment
++      = strcspn (val, dquote ? "$`\"\\" : "~|&;<>()$`\\\"' \t\n");
++      printf ("%.*s", (int) segment, val);
++      val += segment;
++      if (*val == '\0')
++      break;
++      putchar ('\\');
++      putchar (*val++);
++    }
++  if (dquote)
++    putchar ('"');
++  putchar ('\n');
++}
+ /* We have to show the contents of the environments determining the
+    locale.  */
+@@ -769,7 +792,7 @@ static void
+ show_locale_vars (void)
+ {
+   size_t cat_no;
+-  const char *lcall = getenv ("LC_ALL");
++  const char *lcall = getenv ("LC_ALL") ? : "";
+   const char *lang = getenv ("LANG") ? : "";
+   auto void get_source (const char *name);
+@@ -778,15 +801,15 @@ show_locale_vars (void)
+     {
+       char *val = getenv (name);
+-      if ((lcall ?: "")[0] != '\0' || val == NULL)
+-      printf ("%s=\"%s\"\n", name,
+-              (lcall ?: "")[0] ? lcall : (lang ?: "")[0] ? lang : "POSIX");
++      if (lcall[0] != '\0' || val == NULL)
++      print_assignment (name, lcall[0] ? lcall : lang[0] ? lang : "POSIX",
++                        true);
+       else
+-      printf ("%s=%s\n", name, val);
++      print_assignment (name, val, false);
+     }
+   /* LANG has to be the first value.  */
+-  printf ("LANG=%s\n", lang);
++  print_assignment ("LANG", lang, false);
+   /* Now all categories in an unspecified order.  */
+   for (cat_no = 0; cat_no < NCATEGORIES; ++cat_no)
+@@ -794,7 +817,7 @@ show_locale_vars (void)
+       get_source (category[cat_no].name);
+   /* The last is the LC_ALL value.  */
+-  printf ("LC_ALL=%s\n", lcall ? : "");
++  print_assignment ("LC_ALL", lcall, false);
+ }
diff --git a/src/patches/glibc/glibc-rh630801.patch b/src/patches/glibc/glibc-rh630801.patch
new file mode 100644 (file)
index 0000000..5bd3c66
--- /dev/null
@@ -0,0 +1,29 @@
+2010-05-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #11640]
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Properly check family and model.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -62,15 +62,15 @@ __init_cpu_features (void)
+       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
+       unsigned int extended_family = (eax >> 20) & 0xff;
+       unsigned int extended_model = (eax >> 12) & 0xf0;
+-      if (__cpu_features.family == 0x0f)
++      if (family == 0x0f)
+       {
+         family += extended_family;
+         model += extended_model;
+       }
+-      else if (__cpu_features.family == 0x06)
++      else if (family == 0x06)
+       {
+         model += extended_model;
+-        switch (__cpu_features.model)
++        switch (model)
+           {
+           case 0x1a:
+           case 0x1e:
diff --git a/src/patches/glibc/glibc-rh631011.patch b/src/patches/glibc/glibc-rh631011.patch
new file mode 100644 (file)
index 0000000..42a1a56
--- /dev/null
@@ -0,0 +1,17 @@
+2010-08-19  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/i386/i686/multiarch/strspn.S [!SHARED]: Fix SSE4.2 check.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strspn.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strspn.S
+@@ -65,7 +65,7 @@ ENTRY(strspn)
+       jne     1f
+       call    __init_cpu_features
+ 1:    leal    __strspn_ia32, %eax
+-      testl   $index_SSE2, CPUID_OFFSET+index_SSE4_2+__cpu_features
++      testl   $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features
+       jz      2f
+       leal    __strspn_sse42, %eax
+ 2:    ret
diff --git a/src/patches/glibc/glibc-rh641128.patch b/src/patches/glibc/glibc-rh641128.patch
new file mode 100644 (file)
index 0000000..52df4ae
--- /dev/null
@@ -0,0 +1,78 @@
+2010-10-06  Ulrich Drepper  <drepper@gmail.com>
+
+       * string/bug-strstr1.c: New file.
+       * string/Makefile: Add rules to build and run bug-strstr1.
+
+2010-10-05  Eric Blake  <eblake@redhat.com>
+
+       [BZ #12092]
+       * string/str-two-way.h (two_way_long_needle): Always clear memory
+       when skipping input due to the shift table.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -54,7 +54,8 @@ tests                := tester inl-tester noinl-tester
+                  bug-strncat1 bug-strspn1 bug-strpbrk1 tst-bswap      \
+                  tst-strtok tst-strxfrm bug-strcoll1 tst-strfry       \
+                  bug-strtok1 $(addprefix test-,$(strop-tests))        \
+-                 bug-envz1 tst-strxfrm2 tst-endian tst-svc2
++                 bug-envz1 tst-strxfrm2 tst-endian tst-svc2           \
++                 bug-strstr1
+ distribute    := memcopy.h pagecopy.h tst-svc.expect test-string.h    \
+                  str-two-way.h
+@@ -73,6 +74,7 @@ CFLAGS-tst-strlen.c = -fno-builtin
+ CFLAGS-stratcliff.c = -fno-builtin
+ CFLAGS-test-ffs.c = -fno-builtin
+ CFLAGS-tst-inlcall.c = -fno-builtin
++CFLAGS-bug-strstr1.c = -fno-builtin
+ ifeq ($(cross-compiling),no)
+ tests: $(objpfx)tst-svc.out
+Index: glibc-2.12-2-gc4ccff1/string/bug-strstr1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/bug-strstr1.c
+@@ -0,0 +1,26 @@
++#include <stdio.h>
++#include <string.h>
++
++int main (int argc, char** argv)
++{
++  const char haystack[] =
++    "F_BD_CE_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_88_20_EF_BF_BD_EF_BF_BD_EF_BF_BD_C3_A7_20_EF_BF_BD";
++
++  const char needle[] =
++    "_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD_EF_BF_BD";
++
++  const char* sub = strstr (haystack, needle);
++
++  if (sub != NULL)
++    {
++      int j;
++
++      fprintf (stderr, "BUG: expected NULL, got:\n%s\n%s\n", sub, needle);
++      for (j = 0; needle[j] != '\0'; ++j)
++        putchar (needle[j] == sub[j] ? ' ' : '^');
++      puts ("");
++      return 1;
++    }
++
++  return 0;
++}
+Index: glibc-2.12-2-gc4ccff1/string/str-two-way.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/str-two-way.h
++++ glibc-2.12-2-gc4ccff1/string/str-two-way.h
+@@ -350,8 +350,8 @@ two_way_long_needle (const unsigned char
+                    a byte out of place, there can be no match until
+                    after the mismatch.  */
+                 shift = needle_len - period;
+-                memory = 0;
+               }
++            memory = 0;
+             j += shift;
+             continue;
+           }
diff --git a/src/patches/glibc/glibc-rh642584.patch b/src/patches/glibc/glibc-rh642584.patch
new file mode 100644 (file)
index 0000000..7fd390d
--- /dev/null
@@ -0,0 +1,41 @@
+2010-10-13  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12113]
+       * sysdeps/x86_64/pthreaddef.h (TCB_ALIGNMENT): Changed to 32.
+       * sysdeps/x86_64/tls.h (TLS_TCB_ALIGN): Defined with alignment
+       of "struct pthread".
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/pthreaddef.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/pthreaddef.h
+@@ -27,8 +27,9 @@
+ /* Minimal stack size after allocating thread descriptor and guard size.  */
+ #define MINIMAL_REST_STACK    2048
+-/* Alignment requirement for TCB.  */
+-#define TCB_ALIGNMENT         16
++/* Alignment requirement for TCB.  Need to store post-AVX vector registers
++   in the TCB and we want the storage to be aligned at 32-byte.  */
++#define TCB_ALIGNMENT         32
+ /* Location of current stack frame.  The frame pointer is not usable.  */
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/x86_64/tls.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/x86_64/tls.h
+@@ -117,12 +117,7 @@ typedef struct
+ # define TLS_TCB_SIZE sizeof (struct pthread)
+ /* Alignment requirements for the TCB.  */
+-//# define TLS_TCB_ALIGN __alignof__ (struct pthread)
+-// Normally the above would be correct  But we have to store post-AVX
+-// vector registers in the TCB and we want the storage to be aligned.
+-// unfortunately there isn't yet a type for these values and hence no
+-// 32-byte alignment requirement.  Make this explicit, for now.
+-# define TLS_TCB_ALIGN 32
++# define TLS_TCB_ALIGN __alignof__ (struct pthread)
+ /* The TCB can have any size and the memory following the address the
+    thread pointer points to is unspecified.  Allocate the TCB there.  */
diff --git a/src/patches/glibc/glibc-rh643822.patch b/src/patches/glibc/glibc-rh643822.patch
new file mode 100644 (file)
index 0000000..c32c1fe
--- /dev/null
@@ -0,0 +1,64 @@
+2010-12-09  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-object.c (_dl_new_object): Ignore origin of privileged
+       program.
+
+2010-10-18  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-open.c (dl_open_worker): Don't expand DST here, let
+       _dl_map_object do it.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c
+@@ -214,6 +214,9 @@ _dl_new_object (char *realname, const ch
+     out:
+       new->l_origin = origin;
+     }
++  else if (INTUSE(__libc_enable_secure) && type == lt_executable)
++    /* The origin of a privileged program cannot be trusted.  */
++    new->l_origin = (char *) -1;
+   return new;
+ }
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -221,35 +221,6 @@ dl_open_worker (void *a)
+   assert (_dl_debug_initialize (0, args->nsid)->r_state == RT_CONSISTENT);
+-  /* Maybe we have to expand a DST.  */
+-  if (__builtin_expect (dst != NULL, 0))
+-    {
+-      size_t len = strlen (file);
+-
+-      /* Determine how much space we need.  We have to allocate the
+-       memory locally.  */
+-      size_t required = DL_DST_REQUIRED (call_map, file, len,
+-                                       _dl_dst_count (dst, 0));
+-
+-      /* Get space for the new file name.  */
+-      char *new_file = (char *) alloca (required + 1);
+-
+-      /* Generate the new file name.  */
+-      _dl_dst_substitute (call_map, file, new_file, 0);
+-
+-      /* If the substitution failed don't try to load.  */
+-      if (*new_file == '\0')
+-      _dl_signal_error (0, "dlopen", NULL,
+-                        N_("empty dynamic string token substitution"));
+-
+-      /* Now we have a new file name.  */
+-      file = new_file;
+-
+-      /* It does not matter whether call_map is set even if we
+-       computed it only because of the DST.  Since the path contains
+-       a slash the value is not used.  See dl-load.c.  */
+-    }
+-
+   /* Load the named object.  */
+   struct link_map *new;
+   args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0,
diff --git a/src/patches/glibc/glibc-rh645672.patch b/src/patches/glibc/glibc-rh645672.patch
new file mode 100644 (file)
index 0000000..644614e
--- /dev/null
@@ -0,0 +1,215 @@
+2010-10-22  Andreas Schwab  <schwab@redhat.com>
+
+       * include/dlfcn.h (__RTLD_SECURE): Define.
+       * elf/dl-load.c (_dl_map_object): Remove preloaded parameter.  Use
+       mode & __RTLD_SECURE instead.
+       (open_path): Remove preloaded parameter to secure.
+       * sysdeps/generic/ldsodefs.h (_dl_map_object): Adjust declaration.
+       * elf/dl-open.c (dl_open_worker): Adjust call to _dl_map_object.
+       * elf/dl-deps.c (openaux): Likewise.
+       * elf/rtld.c (struct map_args): Remove is_preloaded.
+       (map_doit): Don't use it.
+       (dl_main): Likewise.
+       (do_preload): Use __RTLD_SECURE instead of is_preloaded.
+       (dlmopen_doit): Add __RTLD_SECURE to mode bits.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+@@ -62,7 +62,7 @@ openaux (void *a)
+ {
+   struct openaux_args *args = (struct openaux_args *) a;
+-  args->aux = _dl_map_object (args->map, args->name, 0,
++  args->aux = _dl_map_object (args->map, args->name,
+                             (args->map->l_type == lt_executable
+                              ? lt_library : args->map->l_type),
+                             args->trace_mode, args->open_mode,
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -1811,7 +1811,7 @@ open_verify (const char *name, struct fi
+    if MAY_FREE_DIRS is true.  */
+ static int
+-open_path (const char *name, size_t namelen, int preloaded,
++open_path (const char *name, size_t namelen, int secure,
+          struct r_search_path_struct *sps, char **realname,
+          struct filebuf *fbp, struct link_map *loader, int whatcode,
+          bool *found_other_class)
+@@ -1893,7 +1893,7 @@ open_path (const char *name, size_t name
+         /* Remember whether we found any existing directory.  */
+         here_any |= this_dir->status[cnt] != nonexisting;
+-        if (fd != -1 && __builtin_expect (preloaded, 0)
++        if (fd != -1 && __builtin_expect (secure, 0)
+             && INTUSE(__libc_enable_secure))
+           {
+             /* This is an extra security effort to make sure nobody can
+@@ -1962,7 +1962,7 @@ open_path (const char *name, size_t name
+ struct link_map *
+ internal_function
+-_dl_map_object (struct link_map *loader, const char *name, int preloaded,
++_dl_map_object (struct link_map *loader, const char *name,
+               int type, int trace_mode, int mode, Lmid_t nsid)
+ {
+   int fd;
+@@ -2066,7 +2066,8 @@ _dl_map_object (struct link_map *loader,
+         for (l = loader; l; l = l->l_loader)
+           if (cache_rpath (l, &l->l_rpath_dirs, DT_RPATH, "RPATH"))
+             {
+-              fd = open_path (name, namelen, preloaded, &l->l_rpath_dirs,
++              fd = open_path (name, namelen, mode & __RTLD_SECURE,
++                              &l->l_rpath_dirs,
+                               &realname, &fb, loader, LA_SER_RUNPATH,
+                               &found_other_class);
+               if (fd != -1)
+@@ -2081,14 +2082,15 @@ _dl_map_object (struct link_map *loader,
+             && main_map != NULL && main_map->l_type != lt_loaded
+             && cache_rpath (main_map, &main_map->l_rpath_dirs, DT_RPATH,
+                             "RPATH"))
+-          fd = open_path (name, namelen, preloaded, &main_map->l_rpath_dirs,
++          fd = open_path (name, namelen, mode & __RTLD_SECURE,
++                          &main_map->l_rpath_dirs,
+                           &realname, &fb, loader ?: main_map, LA_SER_RUNPATH,
+                           &found_other_class);
+       }
+       /* Try the LD_LIBRARY_PATH environment variable.  */
+       if (fd == -1 && env_path_list.dirs != (void *) -1)
+-      fd = open_path (name, namelen, preloaded, &env_path_list,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE, &env_path_list,
+                       &realname, &fb,
+                       loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded,
+                       LA_SER_LIBPATH, &found_other_class);
+@@ -2097,12 +2099,12 @@ _dl_map_object (struct link_map *loader,
+       if (fd == -1 && loader != NULL
+         && cache_rpath (loader, &loader->l_runpath_dirs,
+                         DT_RUNPATH, "RUNPATH"))
+-      fd = open_path (name, namelen, preloaded,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE,
+                       &loader->l_runpath_dirs, &realname, &fb, loader,
+                       LA_SER_RUNPATH, &found_other_class);
+       if (fd == -1
+-        && (__builtin_expect (! preloaded, 1)
++        && (__builtin_expect (! (mode & __RTLD_SECURE), 1)
+             || ! INTUSE(__libc_enable_secure)))
+       {
+         /* Check the list of libraries in the file /etc/ld.so.cache,
+@@ -2168,7 +2170,7 @@ _dl_map_object (struct link_map *loader,
+         && ((l = loader ?: GL(dl_ns)[nsid]._ns_loaded) == NULL
+             || __builtin_expect (!(l->l_flags_1 & DF_1_NODEFLIB), 1))
+         && rtld_search_dirs.dirs != (void *) -1)
+-      fd = open_path (name, namelen, preloaded, &rtld_search_dirs,
++      fd = open_path (name, namelen, mode & __RTLD_SECURE, &rtld_search_dirs,
+                       &realname, &fb, l, LA_SER_DEFAULT, &found_other_class);
+       /* Add another newline when we are tracing the library loading.  */
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -252,7 +252,7 @@ dl_open_worker (void *a)
+   /* Load the named object.  */
+   struct link_map *new;
+-  args->map = new = _dl_map_object (call_map, file, 0, lt_loaded, 0,
++  args->map = new = _dl_map_object (call_map, file, lt_loaded, 0,
+                                   mode | __RTLD_CALLMAP, args->nsid);
+   /* If the pointer returned is NULL this means the RTLD_NOLOAD flag is
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -589,7 +589,6 @@ struct map_args
+   /* Argument to map_doit.  */
+   char *str;
+   struct link_map *loader;
+-  int is_preloaded;
+   int mode;
+   /* Return value of map_doit.  */
+   struct link_map *map;
+@@ -627,16 +626,17 @@ static void
+ map_doit (void *a)
+ {
+   struct map_args *args = (struct map_args *) a;
+-  args->map = _dl_map_object (args->loader, args->str,
+-                            args->is_preloaded, lt_library, 0, args->mode,
+-                            LM_ID_BASE);
++  args->map = _dl_map_object (args->loader, args->str, lt_library, 0,
++                            args->mode, LM_ID_BASE);
+ }
+ static void
+ dlmopen_doit (void *a)
+ {
+   struct dlmopen_args *args = (struct dlmopen_args *) a;
+-  args->map = _dl_open (args->fname, RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT,
++  args->map = _dl_open (args->fname,
++                      (RTLD_LAZY | __RTLD_DLOPEN | __RTLD_AUDIT
++                       | __RTLD_SECURE),
+                       dl_main, LM_ID_NEWLM, _dl_argc, INTUSE(_dl_argv),
+                       __environ);
+ }
+@@ -806,8 +806,7 @@ do_preload (char *fname, struct link_map
+   args.str = fname;
+   args.loader = main_map;
+-  args.is_preloaded = 1;
+-  args.mode = 0;
++  args.mode = __RTLD_SECURE;
+   unsigned int old_nloaded = GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
+@@ -1054,7 +1053,6 @@ of this helper program; chances are you 
+         args.str = rtld_progname;
+         args.loader = NULL;
+-        args.is_preloaded = 0;
+         args.mode = __RTLD_OPENEXEC;
+         (void) _dl_catch_error (&objname, &err_str, &malloced, map_doit,
+                                 &args);
+@@ -1066,7 +1064,7 @@ of this helper program; chances are you 
+       else
+       {
+         HP_TIMING_NOW (start);
+-        _dl_map_object (NULL, rtld_progname, 0, lt_library, 0,
++        _dl_map_object (NULL, rtld_progname, lt_library, 0,
+                         __RTLD_OPENEXEC, LM_ID_BASE);
+         HP_TIMING_NOW (stop);
+Index: glibc-2.12-2-gc4ccff1/include/dlfcn.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/dlfcn.h
++++ glibc-2.12-2-gc4ccff1/include/dlfcn.h
+@@ -9,6 +9,7 @@
+ #define __RTLD_OPENEXEC       0x20000000
+ #define __RTLD_CALLMAP        0x10000000
+ #define __RTLD_AUDIT  0x08000000
++#define __RTLD_SECURE 0x04000000 /* Apply additional security checks.  */
+ #define __LM_ID_CALLER        -2
+Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+@@ -824,11 +824,9 @@ extern void _dl_receive_error (receiver_
+ /* Open the shared object NAME and map in its segments.
+    LOADER's DT_RPATH is used in searching for NAME.
+-   If the object is already opened, returns its existing map.
+-   For preloaded shared objects PRELOADED is set to a non-zero
+-   value to allow additional security checks.  */
++   If the object is already opened, returns its existing map.  */
+ extern struct link_map *_dl_map_object (struct link_map *loader,
+-                                      const char *name, int preloaded,
++                                      const char *name,
+                                       int type, int trace_mode, int mode,
+                                       Lmid_t nsid)
+      internal_function attribute_hidden;
diff --git a/src/patches/glibc/glibc-rh646954.patch b/src/patches/glibc/glibc-rh646954.patch
new file mode 100644 (file)
index 0000000..bbb959e
--- /dev/null
@@ -0,0 +1,216 @@
+2010-10-26  Ulrich Drepper  <drepper@gmail.com>
+
+       * elf/rtld.c (dl_main): Move assertion after the point where rtld map
+       is added to the list.
+
+2010-10-20  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+           Ulrich Drepper  <drepper@gmail.com>
+
+       * elf/dl-object.c (_dl_new_object): Don't append the new object to
+       the global list here.  Move code to...
+       (_dl_add_to_namespace_list): ...here.  New function.
+       * elf/rtld.c (dl_main): Invoke _dl_add_to_namespace_list.
+       * sysdeps/generic/ldsodefs.h (_dl_add_to_namespace_list): Declare.
+       * elf/dl-load.c (lose): Don't remove the element from the list.
+       (_dl_map_object_from_fd): Invoke _dl_add_to_namespace_list.
+       (_dl_map_object): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -797,22 +797,7 @@ lose (int code, int fd, const char *name
+   /* The file might already be closed.  */
+   if (fd != -1)
+     (void) __close (fd);
+-  if (l != NULL)
+-    {
+-      /* We modify the list of loaded objects.  */
+-      __rtld_lock_lock_recursive (GL(dl_load_write_lock));
+-      /* Remove the stillborn object from the list and free it.  */
+-      assert (l->l_next == NULL);
+-      if (l->l_prev == NULL)
+-      /* No other module loaded. This happens only in the static library,
+-         or in rtld under --verify.  */
+-      GL(dl_ns)[l->l_ns]._ns_loaded = NULL;
+-      else
+-      l->l_prev->l_next = NULL;
+-      --GL(dl_ns)[l->l_ns]._ns_nloaded;
+-      free (l);
+-      __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
+-    }
++  free (l);
+   free (realname);
+   if (r != NULL)
+@@ -897,6 +882,9 @@ _dl_map_object_from_fd (const char *name
+        never be unloaded.  */
+       __close (fd);
++      /* Add the map for the mirrored object to the object list.  */
++      _dl_add_to_namespace_list (l, nsid);
++
+       return l;
+     }
+ #endif
+@@ -1491,6 +1479,9 @@ cannot enable executable stack as shared
+     add_name_to_object (l, ((const char *) D_PTR (l, l_info[DT_STRTAB])
+                           + l->l_info[DT_SONAME]->d_un.d_val));
++  /* Now that the object is fully initialized add it to the object list.  */
++  _dl_add_to_namespace_list (l, nsid);
++
+ #ifdef SHARED
+   /* Auditing checkpoint: we have a new object.  */
+   if (__builtin_expect (GLRO(dl_naudit) > 0, 0)
+@@ -2215,7 +2206,7 @@ _dl_map_object (struct link_map *loader,
+            have.  */
+         static const Elf_Symndx dummy_bucket = STN_UNDEF;
+-        /* Enter the new object in the list of loaded objects.  */
++        /* Allocate a new object map.  */
+         if ((name_copy = local_strdup (name)) == NULL
+             || (l = _dl_new_object (name_copy, name, type, loader,
+                                     mode, nsid)) == NULL)
+@@ -2233,6 +2224,9 @@ _dl_map_object (struct link_map *loader,
+         l->l_nbuckets = 1;
+         l->l_relocated = 1;
++        /* Enter the object in the object list.  */
++        _dl_add_to_namespace_list (l, nsid);
++
+         return l;
+       }
+       else if (found_other_class)
+Index: glibc-2.12-2-gc4ccff1/elf/dl-object.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-object.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-object.c
+@@ -26,16 +26,41 @@
+ #include <assert.h>
++/* Add the new link_map NEW to the end of the namespace list.  */
++void
++internal_function
++_dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
++{
++  /* We modify the list of loaded objects.  */
++  __rtld_lock_lock_recursive (GL(dl_load_write_lock));
++
++  if (GL(dl_ns)[nsid]._ns_loaded != NULL)
++    {
++      struct link_map *l = GL(dl_ns)[nsid]._ns_loaded;
++      while (l->l_next != NULL)
++      l = l->l_next;
++      new->l_prev = l;
++      /* new->l_next = NULL;   Would be necessary but we use calloc.  */
++      l->l_next = new;
++    }
++  else
++    GL(dl_ns)[nsid]._ns_loaded = new;
++  ++GL(dl_ns)[nsid]._ns_nloaded;
++  new->l_serial = GL(dl_load_adds);
++  ++GL(dl_load_adds);
++
++  __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
++}
++
++
+ /* Allocate a `struct link_map' for a new object being loaded,
+    and enter it into the _dl_loaded list.  */
+-
+ struct link_map *
+ internal_function
+ _dl_new_object (char *realname, const char *libname, int type,
+               struct link_map *loader, int mode, Lmid_t nsid)
+ {
+   struct link_map *l;
+-  int idx;
+   size_t libname_len = strlen (libname) + 1;
+   struct link_map *new;
+   struct libname_list *newname;
+@@ -93,31 +118,12 @@ _dl_new_object (char *realname, const ch
+   new->l_scope = new->l_scope_mem;
+   new->l_scope_max = sizeof (new->l_scope_mem) / sizeof (new->l_scope_mem[0]);
+-  /* We modify the list of loaded objects.  */
+-  __rtld_lock_lock_recursive (GL(dl_load_write_lock));
+-
+   /* Counter for the scopes we have to handle.  */
+-  idx = 0;
++  int idx = 0;
+   if (GL(dl_ns)[nsid]._ns_loaded != NULL)
+-    {
+-      l = GL(dl_ns)[nsid]._ns_loaded;
+-      while (l->l_next != NULL)
+-      l = l->l_next;
+-      new->l_prev = l;
+-      /* new->l_next = NULL;  Would be necessary but we use calloc.  */
+-      l->l_next = new;
+-
+-      /* Add the global scope.  */
+-      new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
+-    }
+-  else
+-    GL(dl_ns)[nsid]._ns_loaded = new;
+-  ++GL(dl_ns)[nsid]._ns_nloaded;
+-  new->l_serial = GL(dl_load_adds);
+-  ++GL(dl_load_adds);
+-
+-  __rtld_lock_unlock_recursive (GL(dl_load_write_lock));
++    /* Add the global scope.  */
++    new->l_scope[idx++] = &GL(dl_ns)[nsid]._ns_loaded->l_searchlist;
+   /* If we have no loader the new object acts as it.  */
+   if (loader == NULL)
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -1108,11 +1108,15 @@ of this helper program; chances are you 
+       main_map = _dl_new_object ((char *) "", "", lt_executable, NULL,
+                                __RTLD_OPENEXEC, LM_ID_BASE);
+       assert (main_map != NULL);
+-      assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
+       main_map->l_phdr = phdr;
+       main_map->l_phnum = phnum;
+       main_map->l_entry = *user_entry;
++      /* Even though the link map is not yet fully initialized we can add
++       it to the map list since there are no possible users running yet.  */
++      _dl_add_to_namespace_list (main_map, LM_ID_BASE);
++      assert (main_map == GL(dl_ns)[LM_ID_BASE]._ns_loaded);
++
+       /* At this point we are in a bit of trouble.  We would have to
+        fill in the values for l_dev and l_ino.  But in general we
+        do not know where the file is.  We also do not handle AT_EXECFD
+@@ -1380,6 +1384,9 @@ of this helper program; chances are you 
+             l->l_libname->name = memcpy (copy, dsoname, len);
+           }
++        /* Add the vDSO to the object list.  */
++        _dl_add_to_namespace_list (l, LM_ID_BASE);
++
+         /* Rearrange the list so this DSO appears after rtld_map.  */
+         assert (l->l_next == NULL);
+         assert (l->l_prev == main_map);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/generic/ldsodefs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/generic/ldsodefs.h
+@@ -891,8 +891,11 @@ extern lookup_t _dl_lookup_symbol_x (con
+ extern ElfW(Addr) _dl_symbol_value (struct link_map *map, const char *name)
+      internal_function;
+-/* Allocate a `struct link_map' for a new object being loaded,
+-   and enter it into the _dl_main_map list.  */
++/* Add the new link_map NEW to the end of the namespace list.  */
++extern void _dl_add_to_namespace_list (struct link_map *new, Lmid_t nsid)
++     internal_function attribute_hidden;
++
++/* Allocate a `struct link_map' for a new object being loaded.  */
+ extern struct link_map *_dl_new_object (char *realname, const char *libname,
+                                       int type, struct link_map *loader,
+                                       int mode, Lmid_t nsid)
diff --git a/src/patches/glibc/glibc-rh647448.patch b/src/patches/glibc/glibc-rh647448.patch
new file mode 100644 (file)
index 0000000..ff55945
--- /dev/null
@@ -0,0 +1,58 @@
+2010-10-25  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #12159]
+       * sysdeps/x86_64/multiarch/strchr.S: Fix propagation of search byte
+       into all bytes of SSE register.
+       Patch by Richard Li <richardpku@gmail.com>.
+
+Index: glibc-2.12-2-gc4ccff1/string/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/Makefile
++++ glibc-2.12-2-gc4ccff1/string/Makefile
+@@ -55,7 +55,7 @@ tests                := tester inl-tester noinl-tester
+                  tst-strtok tst-strxfrm bug-strcoll1 tst-strfry       \
+                  bug-strtok1 $(addprefix test-,$(strop-tests))        \
+                  bug-envz1 tst-strxfrm2 tst-endian tst-svc2           \
+-                 bug-strstr1
++                 bug-strstr1 bug-strchr1
+ distribute    := memcopy.h pagecopy.h tst-svc.expect test-string.h    \
+                  str-two-way.h
+Index: glibc-2.12-2-gc4ccff1/string/bug-strchr1.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/string/bug-strchr1.c
+@@ -0,0 +1,14 @@
++#include <stdio.h>
++#include <string.h>
++
++static int
++do_test (void)
++{
++  char s[] __attribute__((aligned(16))) = "\xff";
++  char *p = strchr (s, '\xfe');
++  printf ("%p\n", p);
++  return p != NULL;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strchr.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strchr.S
+@@ -87,13 +87,13 @@ __strchr_sse42:
+       pxor    %xmm2, %xmm2
+       movd    %esi, %xmm1
+       movl    %edi, %ecx
++      pshufb  %xmm2, %xmm1
+       andl    $15, %ecx
+       movq    %rdi, %r8
+       je      L(aligned_start)
+ /* Handle unaligned string.  */
+       andq    $-16, %r8
+-      pshufb  %xmm2, %xmm1
+       movdqa  (%r8), %xmm0
+       pcmpeqb  %xmm0, %xmm2
+       pcmpeqb  %xmm1, %xmm0
diff --git a/src/patches/glibc/glibc-rh652661.patch b/src/patches/glibc/glibc-rh652661.patch
new file mode 100644 (file)
index 0000000..79a3212
--- /dev/null
@@ -0,0 +1,21 @@
+2010-05-20  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/sys/timex.h: Use __REDIRECT_NTH.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/sys/timex.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/sys/timex.h
+@@ -140,9 +140,9 @@ __BEGIN_DECLS
+ extern int __adjtimex (struct timex *__ntx) __THROW;
+ extern int adjtimex (struct timex *__ntx) __THROW;
+-#if defined __GNUC__ && __GNUC__ >= 2
+-extern int ntp_gettime (struct ntptimeval *__ntv)
+-     __asm__ ("ntp_gettimex") __THROW;
++#ifdef __REDIRECT_NTH
++extern int __REDIRECT_NTH (ntp_gettime, (struct ntptimeval *__ntv),
++                         ntp_gettimex);
+ #else
+ extern int ntp_gettimex (struct ntptimeval *__ntv) __THROW;
+ # define ntp_gettime ntp_gettimex
diff --git a/src/patches/glibc/glibc-rh656014.patch b/src/patches/glibc/glibc-rh656014.patch
new file mode 100644 (file)
index 0000000..5ef68dc
--- /dev/null
@@ -0,0 +1,45 @@
+2010-11-24  Andreas Schwab  <schwab@redhat.com>
+
+       * resolv/nss_dns/dns-host.c (getanswer_r): Don't handle ttl == 0
+       specially.
+       (gaih_getanswer_slice): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/nss_dns/dns-host.c
++++ glibc-2.12-2-gc4ccff1/resolv/nss_dns/dns-host.c
+@@ -599,7 +599,6 @@ getanswer_r (const querybuf *answer, int
+   int (*name_ok) (const char *);
+   u_char packtmp[NS_MAXCDNAME];
+   int have_to_map = 0;
+-  int32_t ttl = 0;
+   uintptr_t pad = -(uintptr_t) buffer % __alignof__ (struct host_data);
+   buffer += pad;
+   if (__builtin_expect (buflen < sizeof (struct host_data) + pad, 0))
+@@ -733,7 +732,7 @@ getanswer_r (const querybuf *answer, int
+       cp += INT16SZ;                  /* type */
+       class = __ns_get16 (cp);
+       cp += INT16SZ;                  /* class */
+-      ttl = __ns_get32 (cp);
++      int32_t ttl = __ns_get32 (cp);
+       cp += INT32SZ;                  /* TTL */
+       n = __ns_get16 (cp);
+       cp += INT16SZ;                  /* len */
+@@ -907,7 +906,7 @@ getanswer_r (const querybuf *answer, int
+           {
+             register int nn;
+-            if (ttlp != NULL && ttl != 0)
++            if (ttlp != NULL)
+               *ttlp = ttl;
+             if (canonp != NULL)
+               *canonp = bp;
+@@ -1163,7 +1162,7 @@ gaih_getanswer_slice (const querybuf *an
+       if (*firstp)
+       {
+-        if (ttl != 0 && ttlp != NULL)
++        if (ttlp != NULL)
+           *ttlp = ttl;
+         (*pat)->name = canon ?: h_name;
diff --git a/src/patches/glibc/glibc-rh656530.patch b/src/patches/glibc/glibc-rh656530.patch
new file mode 100644 (file)
index 0000000..f101430
--- /dev/null
@@ -0,0 +1,21 @@
+2010-11-10  Luis Machado  <luisgpm@br.ibm.com>
+
+       * sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c (__ieee754_sqrtl): Force
+         signed comparison.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/ieee754/ldbl-128ibm/e_sqrtl.c
+@@ -73,9 +73,9 @@ long double __ieee754_sqrtl(long double 
+       m = ((a.i[2] >> 20) & 0x7ff) - 54;
+       }
+       m += n;
+-      if (m > 0)
++      if ((int) m > 0)
+       a.i[2] = (a.i[2] & 0x800fffff) | (m << 20);
+-      else if (m <= -54) {
++      else if ((int) m <= -54) {
+       a.i[2] &= 0x80000000;
+       a.i[3] = 0;
+       } else {
diff --git a/src/patches/glibc/glibc-rh657572.patch b/src/patches/glibc/glibc-rh657572.patch
new file mode 100644 (file)
index 0000000..a720130
--- /dev/null
@@ -0,0 +1,141 @@
+commit 42c5011242e48f846111237552d3bf3ca18c4885
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Fri Dec 23 09:51:10 2011 -0500
+
+    Various fixes to fi_FI
+
+ 2011-12-23  Ulrich Drepper  <drepper@gmail.com>
+       [BZ #12962]
+       * locales/fi_FI: Various fixups.
+       Patch by Marko Myllynen <myllynen@redhat.com>.
+
+diff --git a/localedata/locales/fi_FI b/localedata/locales/fi_FI
+index acc9ce6..f51700c 100644
+--- a/localedata/locales/fi_FI
++++ b/localedata/locales/fi_FI
+@@ -1,4 +1,4 @@
+-escape_char   /
++escape_char     /
+ comment_char    %
+ % Finnish language locale for Finland
+@@ -45,10 +45,10 @@ category  "fi_FI:2000";LC_NUMERIC
+ category  "fi_FI:2000";LC_MONETARY
+ category  "fi_FI:2000";LC_MESSAGES
+ category  "fi_FI:2000";LC_PAPER
++category  "fi_FI:2000";LC_MEASUREMENT
+ category  "fi_FI:2000";LC_NAME
+ category  "fi_FI:2000";LC_ADDRESS
+ category  "fi_FI:2000";LC_TELEPHONE
+-
+ END LC_IDENTIFICATION
+ LC_COLLATE
+@@ -125,7 +125,6 @@ reorder-after <U0044>
+ <U0110> <d>;<OBL>;<CAP>;IGNORE
+ reorder-end
+-
+ END LC_COLLATE
+ LC_CTYPE
+@@ -146,12 +145,10 @@ positive_sign        ""
+ negative_sign        "<U002D>"
+ int_frac_digits      2
+ frac_digits          2
+-% int_curr_symbol precedes
+-% curr_symbol succeeds
+ p_cs_precedes        0
+-p_sep_by_space       2
++p_sep_by_space       1
+ n_cs_precedes        0
+-n_sep_by_space       2
++n_sep_by_space       1
+ p_sign_posn          1
+ n_sign_posn          1
+ END LC_MONETARY
+@@ -173,18 +170,18 @@ day      "<U0073><U0075><U006E><U006E><U0075><U006E><U0074><U0061><U0069>";/
+          "<U0074><U006F><U0072><U0073><U0074><U0061><U0069>";/
+          "<U0070><U0065><U0072><U006A><U0061><U006E><U0074><U0061><U0069>";/
+          "<U006C><U0061><U0075><U0061><U006E><U0074><U0061><U0069>"
+-abmon    "<U0074><U0061><U006D><U006D><U0069><U00A0>";/
+-         "<U0068><U0065><U006C><U006D><U0069><U00A0>";/
++abmon    "<U0074><U0061><U006D><U006D><U0069>";/
++         "<U0068><U0065><U006C><U006D><U0069>";/
+          "<U006D><U0061><U0061><U006C><U0069><U0073>";/
+-         "<U0068><U0075><U0068><U0074><U0069><U00A0>";/
+-         "<U0074><U006F><U0075><U006B><U006F><U00A0>";/
+-         "<U006B><U0065><U0073><U00E4><U00A0><U00A0>";/
+-         "<U0068><U0065><U0069><U006E><U00E4><U00A0>";/
+-         "<U0065><U006C><U006F><U00A0><U00A0><U00A0>";/
+-         "<U0073><U0079><U0079><U0073><U00A0><U00A0>";/
+-         "<U006C><U006F><U006B><U0061><U00A0><U00A0>";/
++         "<U0068><U0075><U0068><U0074><U0069>";/
++         "<U0074><U006F><U0075><U006B><U006F>";/
++         "<U006B><U0065><U0073><U00E4>";/
++         "<U0068><U0065><U0069><U006E><U00E4>";/
++         "<U0065><U006C><U006F>";/
++         "<U0073><U0079><U0079><U0073>";/
++         "<U006C><U006F><U006B><U0061>";/
+          "<U006D><U0061><U0072><U0072><U0061><U0073>";/
+-         "<U006A><U006F><U0075><U006C><U0075><U00A0>"
++         "<U006A><U006F><U0075><U006C><U0075>"
+ mon      "<U0074><U0061><U006D><U006D><U0069><U006B><U0075><U0075>";/
+          "<U0068><U0065><U006C><U006D><U0069><U006B><U0075><U0075>";/
+          "<U006D><U0061><U0061><U006C><U0069><U0073><U006B><U0075><U0075>";/
+@@ -207,13 +204,14 @@ t_fmt_ampm  ""
+ date_fmt       "<U0025><U0061><U0020><U0025><U002D><U0064><U002E><U0025>/
+ <U002D><U006D><U002E><U0025><U0059><U0020><U0025><U0048><U002E><U0025>/
+ <U004D><U002E><U0025><U0053><U0020><U0025><U007A>"
++week     7;19971130;4
+ first_weekday 2 % Monday
+ first_workday 2 % Monday
+ END LC_TIME
+ LC_MESSAGES
+-yesexpr  "<U005E><U005B><U004B><U006B><U004A><U006A><U0059><U0079><U005D><U002E><U002A>"
+-noexpr   "<U005E><U005B><U004E><U006E><U0045><U0065><U005D><U002E><U002A>"
++yesexpr  "<U005E><U005B><U004B><U006B><U0059><U0079><U005D><U002E><U002A>"
++noexpr   "<U005E><U005B><U0045><U0065><U004E><U006E><U005D><U002E><U002A>"
+ END LC_MESSAGES
+ LC_PAPER
+@@ -222,6 +220,7 @@ width    210
+ END LC_PAPER
+ LC_TELEPHONE
++tel_dom_fmt    "<U0028><U0025><U0041><U0029><U0020><U0025><U006C>"
+ tel_int_fmt    "<U002B><U0025><U0063><U0020><U0025><U0061><U0020><U0025>/
+ <U006C>"
+ int_prefix     "<U0033><U0035><U0038>"
+@@ -235,15 +234,25 @@ END LC_MEASUREMENT
+ LC_NAME
+ name_fmt    "<U0025><U0064><U0025><U0074><U0025><U0067><U0025><U0074>/
+ <U0025><U006D><U0025><U0074><U0025><U0066>"
++% Finnish equivalents for Mr/Mrs/Miss/Ms are herra/rouva/rouva/neiti
++% but they are practically never used, thus we don't define them here.
+ END LC_NAME
+ LC_ADDRESS
+-postal_fmt    "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/
+-<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/
+-<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/
+-<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
++postal_fmt   "<U0025><U0066><U0025><U004E><U0025><U0064><U0025><U004E>/
++<U0025><U0062><U0025><U004E><U0025><U0061><U0025><U004E><U0025><U0073>/
++<U0020><U0025><U0068><U0025><U0074><U0025><U0065><U0025><U0074><U0025>/
++<U0072><U0025><U004E><U0025><U007A><U0020><U0025><U0054><U0025>/
+ <U004E><U0025><U0063><U0025><U004E>"
+ country_ab2 "<U0046><U0049>"
+ country_ab3 "<U0046><U0049><U004E>"
+ country_num 246
++country_name "<U0053><U0075><U006F><U006D><U0069>"
++country_post "<U0046><U0049>"
++country_car  "<U0046><U0049><U004E>"
++country_isbn 952
++lang_name    "<U0073><U0075><U006F><U006D><U0069>"
++lang_ab      "<U0066><U0069>"
++lang_term    "<U0066><U0069><U006E>"
++lang_lib     "<U0066><U0069><U006E>"
+ END LC_ADDRESS
diff --git a/src/patches/glibc/glibc-rh661982.patch b/src/patches/glibc/glibc-rh661982.patch
new file mode 100644 (file)
index 0000000..60b840b
--- /dev/null
@@ -0,0 +1,188 @@
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
+       * wcsmbs/wchar.h (wcpcpy, wcpncpy): Only declare under
+       _GNU_SOURCE.
+
+2010-12-10  Andreas Schwab  <schwab@redhat.com>
+
+       * wcsmbs/wchar.h (wcpcpy, wcpncpy): Add __restrict.
+       * wcsmbs/bits/wchar2.h (__wmemmove_chk_warn, wmemmove, wmemset):
+       Remove __restrict.
+       (wcscpy, __wcpcpy_chk, __wcpcpy_alias, wcpcpy, wcsncpy, wcpncpy)
+       (wcscat, wcsncat, __wcrtomb_chk, wcrtomb): Add __restrict.
+
+2010-12-09  Jakub Jelinek  <jakub@redhat.com>
+
+       * string/bits/string3.h (memmove, bcopy): Remove __restrict.
+
+Index: glibc-2.12-2-gc4ccff1/string/bits/string3.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/bits/string3.h
++++ glibc-2.12-2-gc4ccff1/string/bits/string3.h
+@@ -53,8 +53,7 @@ __NTH (memcpy (void *__restrict __dest, 
+ }
+ __extern_always_inline void *
+-__NTH (memmove (void *__restrict __dest, __const void *__restrict __src,
+-              size_t __len))
++__NTH (memmove (void *__dest, __const void *__src, size_t __len))
+ {
+   return __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+ }
+@@ -88,8 +87,7 @@ __NTH (memset (void *__dest, int __ch, s
+ #ifdef __USE_BSD
+ __extern_always_inline void
+-__NTH (bcopy (__const void *__restrict __src, void *__restrict __dest,
+-            size_t __len))
++__NTH (bcopy (__const void *__src, void *__dest, size_t __len))
+ {
+   (void) __builtin___memmove_chk (__dest, __src, __len, __bos0 (__dest));
+ }
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/bits/wchar2.h
++++ glibc-2.12-2-gc4ccff1/wcsmbs/bits/wchar2.h
+@@ -60,15 +60,13 @@ extern wchar_t *__REDIRECT_NTH (__wmemmo
+                                                  __const wchar_t *__s2,
+                                                  size_t __n), wmemmove);
+ extern wchar_t *__REDIRECT_NTH (__wmemmove_chk_warn,
+-                              (wchar_t *__restrict __s1,
+-                               __const wchar_t *__restrict __s2, size_t __n,
+-                               size_t __ns1), __wmemmove_chk)
++                              (wchar_t *__s1, __const wchar_t *__s2,
++                               size_t __n, size_t __ns1), __wmemmove_chk)
+      __warnattr ("wmemmove called with length bigger than size of destination "
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wmemmove (wchar_t *__restrict __s1, __const wchar_t *__restrict __s2,
+-               size_t __n))
++__NTH (wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n))
+ {
+   if (__bos0 (__s1) != (size_t) -1)
+     {
+@@ -129,7 +127,7 @@ extern wchar_t *__REDIRECT_NTH (__wmemse
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wmemset (wchar_t *__restrict __s, wchar_t __c, size_t __n))
++__NTH (wmemset (wchar_t *__s, wchar_t __c, size_t __n))
+ {
+   if (__bos0 (__s) != (size_t) -1)
+     {
+@@ -152,7 +150,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscpy
+                                __const wchar_t *__restrict __src), wcscpy);
+ __extern_always_inline wchar_t *
+-__NTH (wcscpy (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcscpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcscpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -160,14 +158,15 @@ __NTH (wcscpy (wchar_t *__dest, __const 
+ }
+-extern wchar_t *__wcpcpy_chk (wchar_t *__dest, __const wchar_t *__src,
++extern wchar_t *__wcpcpy_chk (wchar_t *__restrict __dest,
++                            __const wchar_t *__restrict __src,
+                             size_t __destlen) __THROW;
+-extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias, (wchar_t *__dest,
+-                                               __const wchar_t *__src),
+-                              wcpcpy);
++extern wchar_t *__REDIRECT_NTH (__wcpcpy_alias,
++                              (wchar_t *__restrict __dest,
++                               __const wchar_t *__restrict __src), wcpcpy);
+ __extern_always_inline wchar_t *
+-__NTH (wcpcpy (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcpcpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcpcpy_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -190,7 +189,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsncp
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wcsncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcsncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     {
+@@ -220,7 +220,8 @@ extern wchar_t *__REDIRECT_NTH (__wcpncp
+                "buffer");
+ __extern_always_inline wchar_t *
+-__NTH (wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcpncpy (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     {
+@@ -243,7 +244,7 @@ extern wchar_t *__REDIRECT_NTH (__wcscat
+                                __const wchar_t *__restrict __src), wcscat);
+ __extern_always_inline wchar_t *
+-__NTH (wcscat (wchar_t *__dest, __const wchar_t *__src))
++__NTH (wcscat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcscat_chk (__dest, __src, __bos (__dest) / sizeof (wchar_t));
+@@ -260,7 +261,8 @@ extern wchar_t *__REDIRECT_NTH (__wcsnca
+                                size_t __n), wcsncat);
+ __extern_always_inline wchar_t *
+-__NTH (wcsncat (wchar_t *__dest, __const wchar_t *__src, size_t __n))
++__NTH (wcsncat (wchar_t *__restrict __dest, __const wchar_t *__restrict __src,
++              size_t __n))
+ {
+   if (__bos (__dest) != (size_t) -1)
+     return __wcsncat_chk (__dest, __src, __n,
+@@ -428,14 +430,16 @@ fgetws_unlocked (wchar_t *__restrict __s
+ #endif
+-extern size_t __wcrtomb_chk (char *__s, wchar_t __wchar, mbstate_t *__p,
+-                        size_t __buflen) __THROW __wur;
++extern size_t __wcrtomb_chk (char *__restrict __s, wchar_t __wchar,
++                           mbstate_t *__restrict __p,
++                           size_t __buflen) __THROW __wur;
+ extern size_t __REDIRECT_NTH (__wcrtomb_alias,
+                             (char *__restrict __s, wchar_t __wchar,
+                              mbstate_t *__restrict __ps), wcrtomb) __wur;
+ __extern_always_inline __wur size_t
+-__NTH (wcrtomb (char *__s, wchar_t __wchar, mbstate_t *__ps))
++__NTH (wcrtomb (char *__restrict __s, wchar_t __wchar,
++              mbstate_t *__restrict __ps))
+ {
+   /* We would have to include <limits.h> to get a definition of MB_LEN_MAX.
+      But this would only disturb the namespace.  So we define our own
+Index: glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/wcsmbs/wchar.h
++++ glibc-2.12-2-gc4ccff1/wcsmbs/wchar.h
+@@ -555,17 +555,17 @@ extern float wcstof_l (__const wchar_t *
+ extern long double wcstold_l (__const wchar_t *__restrict __nptr,
+                             wchar_t **__restrict __endptr,
+                             __locale_t __loc) __THROW;
+-#endif /* GNU */
+-#ifdef        __USE_XOPEN2K8
+ /* Copy SRC to DEST, returning the address of the terminating L'\0' in
+    DEST.  */
+-extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW;
++extern wchar_t *wcpcpy (wchar_t *__restrict __dest,
++                      __const wchar_t *__restrict __src) __THROW;
+ /* Copy no more than N characters of SRC to DEST, returning the address of
+    the last character written into DEST.  */
+-extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
++extern wchar_t *wcpncpy (wchar_t *__restrict __dest,
++                       __const wchar_t *__restrict __src, size_t __n)
+      __THROW;
+ #endif        /* use GNU */
diff --git a/src/patches/glibc/glibc-rh667974.patch b/src/patches/glibc/glibc-rh667974.patch
new file mode 100644 (file)
index 0000000..48aacac
--- /dev/null
@@ -0,0 +1,160 @@
+2011-03-14  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/dl-load.c (is_dst): Remove parameter secure, all callers
+       changed.  Don't check for isolated use.
+       (_dl_dst_substitute): Ignore rpath elements containing
+       non-isolated use of $ORIGIN when privileged.
+
+       * elf/dl-load.c (_dl_dst_substitute): When skipping the first
+       rpath element also skip the following colon.
+       (expand_dynamic_string_token): Add is_path parameter and pass
+       down to DL_DST_REQUIRED and _dl_dst_substitute.
+       (decompose_rpath): Call expand_dynamic_string_token with
+       non-zero is_path.  Ignore empty rpaths.
+       (_dl_map_object_from_fd): Call expand_dynamic_string_token
+       with zero is_path.
+
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -169,8 +169,7 @@ local_strdup (const char *s)
+ static size_t
+-is_dst (const char *start, const char *name, const char *str,
+-      int is_path, int secure)
++is_dst (const char *start, const char *name, const char *str, int is_path)
+ {
+   size_t len;
+   bool is_curly = false;
+@@ -199,11 +198,6 @@ is_dst (const char *start, const char *n
+          && (!is_path || name[len] != ':'))
+     return 0;
+-  if (__builtin_expect (secure, 0)
+-      && ((name[len] != '\0' && (!is_path || name[len] != ':'))
+-        || (name != start + 1 && (!is_path || name[-2] != ':'))))
+-    return 0;
+-
+   return len;
+ }
+@@ -218,13 +212,10 @@ _dl_dst_count (const char *name, int is_
+     {
+       size_t len;
+-      /* $ORIGIN is not expanded for SUID/GUID programs (except if it
+-       is $ORIGIN alone) and it must always appear first in path.  */
+       ++name;
+-      if ((len = is_dst (start, name, "ORIGIN", is_path,
+-                       INTUSE(__libc_enable_secure))) != 0
+-        || (len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0
+-        || (len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++      if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0
++        || (len = is_dst (start, name, "PLATFORM", is_path)) != 0
++        || (len = is_dst (start, name, "LIB", is_path)) != 0)
+       ++cnt;
+       name = strchr (name + len, '$');
+@@ -256,9 +247,16 @@ _dl_dst_substitute (struct link_map *l, 
+         size_t len;
+         ++name;
+-        if ((len = is_dst (start, name, "ORIGIN", is_path,
+-                           INTUSE(__libc_enable_secure))) != 0)
++        if ((len = is_dst (start, name, "ORIGIN", is_path)) != 0)
+           {
++            /* $ORIGIN is not expanded for SUID/GUID programs
++               (except if it is $ORIGIN alone) and it must always
++               appear first in path.  */
++            if (__builtin_expect (INTUSE(__libc_enable_secure), 0)
++                && ((name[len] != '\0' && (!is_path || name[len] != ':'))
++                    || (name != start + 1 && (!is_path || name[-2] != ':'))))
++              repl = (const char *) -1;
++            else
+ #ifndef SHARED
+             if (l == NULL)
+               repl = _dl_get_origin ();
+@@ -266,9 +264,9 @@ _dl_dst_substitute (struct link_map *l, 
+ #endif
+               repl = l->l_origin;
+           }
+-        else if ((len = is_dst (start, name, "PLATFORM", is_path, 0)) != 0)
++        else if ((len = is_dst (start, name, "PLATFORM", is_path)) != 0)
+           repl = GLRO(dl_platform);
+-        else if ((len = is_dst (start, name, "LIB", is_path, 0)) != 0)
++        else if ((len = is_dst (start, name, "LIB", is_path)) != 0)
+           repl = DL_DST_LIB;
+         if (repl != NULL && repl != (const char *) -1)
+@@ -284,6 +282,10 @@ _dl_dst_substitute (struct link_map *l, 
+             name += len;
+             while (*name != '\0' && (!is_path || *name != ':'))
+               ++name;
++            /* Also skip following colon if this is the first rpath
++               element, but keep an empty element at the end.  */
++            if (wp == result && is_path && *name == ':' && name[1] != '\0')
++              ++name;
+           }
+         else
+           /* No DST we recognize.  */
+@@ -310,7 +312,7 @@ _dl_dst_substitute (struct link_map *l, 
+    belonging to the map is loaded.  In this case the path element
+    containing $ORIGIN is left out.  */
+ static char *
+-expand_dynamic_string_token (struct link_map *l, const char *s)
++expand_dynamic_string_token (struct link_map *l, const char *s, int is_path)
+ {
+   /* We make two runs over the string.  First we determine how large the
+      resulting string is and then we copy it over.  Since this is no
+@@ -321,7 +323,7 @@ expand_dynamic_string_token (struct link
+   char *result;
+   /* Determine the number of DST elements.  */
+-  cnt = DL_DST_COUNT (s, 1);
++  cnt = DL_DST_COUNT (s, is_path);
+   /* If we do not have to replace anything simply copy the string.  */
+   if (__builtin_expect (cnt, 0) == 0)
+@@ -335,7 +337,7 @@ expand_dynamic_string_token (struct link
+   if (result == NULL)
+     return NULL;
+-  return _dl_dst_substitute (l, s, result, 1);
++  return _dl_dst_substitute (l, s, result, is_path);
+ }
+@@ -551,13 +553,21 @@ decompose_rpath (struct r_search_path_st
+   /* Make a writable copy.  At the same time expand possible dynamic
+      string tokens.  */
+-  copy = expand_dynamic_string_token (l, rpath);
++  copy = expand_dynamic_string_token (l, rpath, 1);
+   if (copy == NULL)
+     {
+       errstring = N_("cannot create RUNPATH/RPATH copy");
+       goto signal_error;
+     }
++  /* Ignore empty rpaths.  */
++  if (*copy == 0)
++    {
++      free (copy);
++      sps->dirs = (char *) -1;
++      return false;
++    }
++
+   /* Count the number of necessary elements in the result array.  */
+   nelems = 0;
+   for (cp = copy; *cp != '\0'; ++cp)
+@@ -2176,7 +2186,7 @@ _dl_map_object (struct link_map *loader,
+     {
+       /* The path may contain dynamic string tokens.  */
+       realname = (loader
+-                ? expand_dynamic_string_token (loader, name)
++                ? expand_dynamic_string_token (loader, name, 0)
+                 : local_strdup (name));
+       if (realname == NULL)
+       fd = -1;
diff --git a/src/patches/glibc/glibc-rh676076.patch b/src/patches/glibc/glibc-rh676076.patch
new file mode 100644 (file)
index 0000000..c5aa2d4
--- /dev/null
@@ -0,0 +1,714 @@
+2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+           Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/memset.S: After aligning destination, code
+       branches to different locations depending on the value of
+       misalignment, when multiarch is enabled. Fix this.
+
+2011-03-02  Harsha Jagasia  <harsha.jagasia@amd.com>
+
+       * sysdeps/x86_64/cacheinfo.c (init_cacheinfo):
+       Set _x86_64_preferred_memory_instruction for AMD processsors.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Set bit_Prefer_SSE_for_memop for AMD processors.
+
+2010-11-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/memset.S: Check USE_MULTIARCH and USE_SSE2 for
+       IFUNC support.
+       * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+       memset-x86-64.
+       * sysdeps/x86_64/multiarch/bzero.S: New file.
+       * sysdeps/x86_64/multiarch/cacheinfo.c: New file.
+       * sysdeps/x86_64/multiarch/memset-x86-64.S: New file.
+       * sysdeps/x86_64/multiarch/memset.S: New file.
+       * sysdeps/x86_64/multiarch/memset_chk.S: New file.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Set bit_Prefer_SSE_for_memop for Intel processors.
+       * sysdeps/x86_64/multiarch/init-arch.h (bit_Prefer_SSE_for_memop):
+       Define.
+       (index_Prefer_SSE_for_memop): Define.
+       (HAS_PREFER_SSE_FOR_MEMOP): Define.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -613,6 +613,25 @@ init_cacheinfo (void)
+       long int core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
+       shared = handle_amd (_SC_LEVEL3_CACHE_SIZE);
++#ifndef DISABLE_PREFERRED_MEMORY_INSTRUCTION
++# ifdef USE_MULTIARCH
++      eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
++      ebx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ebx;
++      ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
++      edx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].edx;
++# else
++      __cpuid (1, eax, ebx, ecx, edx);
++# endif
++
++      /* AMD prefers SSSE3 instructions for memory/string routines
++       if they are avaiable, otherwise it prefers integer
++       instructions.  */
++      if ((ecx & 0x200))
++      __x86_64_preferred_memory_instruction = 3;
++      else
++      __x86_64_preferred_memory_instruction = 0;
++#endif
++
+       /* Get maximum extended function. */
+       __cpuid (0x80000000, max_cpuid_ex, ebx, ecx, edx);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/memset.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/memset.S
+@@ -24,7 +24,7 @@
+ #define __STOS_UPPER_BOUNDARY $65536
+         .text
+-#ifndef NOT_IN_libc
++#if !defined NOT_IN_libc && !defined USE_MULTIARCH
+ ENTRY(__bzero)
+       mov     %rsi,%rdx       /* Adjust parameter.  */
+       xorl    %esi,%esi       /* Fill with 0s.  */
+@@ -34,10 +34,10 @@ weak_alias (__bzero, bzero)
+ #endif
+ #if defined PIC && !defined NOT_IN_libc
+-ENTRY (__memset_chk)
++ENTRY_CHK (__memset_chk)
+       cmpq    %rdx, %rcx
+       jb      HIDDEN_JUMPTARGET (__chk_fail)
+-END (__memset_chk)
++END_CHK (__memset_chk)
+ #endif
+ ENTRY (memset)
+ L(memset_entry):
+@@ -591,157 +591,15 @@ L(A6Q1):    mov    %dx,-0xe(%rdi)
+ L(A7Q0):    mov    %dl,-0x7(%rdi)
+ L(A6Q0):    mov    %dx,-0x6(%rdi)
+       mov    %edx,-0x4(%rdi)
+-      jmp    L(aligned_now)
+-
+-      .balign     16
+-L(aligned_now):
+-
+-       cmpl   $0x1,__x86_64_preferred_memory_instruction(%rip)
+-       jg     L(SSE_pre)
+-
+-L(8byte_move_try):
+-      cmpq    __STOS_LOWER_BOUNDARY,%r8
+-      jae     L(8byte_stos_try)
+-
+-      .balign     16
+-L(8byte_move):
+-      movq    %r8,%rcx
+-      shrq    $7,%rcx
+-      jz      L(8byte_move_skip)
+-
+-      .p2align 4
+-
+-L(8byte_move_loop):
+-      decq    %rcx
+-
+-      movq    %rdx,    (%rdi)
+-      movq    %rdx,  8 (%rdi)
+-      movq    %rdx, 16 (%rdi)
+-      movq    %rdx, 24 (%rdi)
+-      movq    %rdx, 32 (%rdi)
+-      movq    %rdx, 40 (%rdi)
+-      movq    %rdx, 48 (%rdi)
+-      movq    %rdx, 56 (%rdi)
+-      movq    %rdx, 64 (%rdi)
+-      movq    %rdx, 72 (%rdi)
+-      movq    %rdx, 80 (%rdi)
+-      movq    %rdx, 88 (%rdi)
+-      movq    %rdx, 96 (%rdi)
+-      movq    %rdx, 104 (%rdi)
+-      movq    %rdx, 112 (%rdi)
+-      movq    %rdx, 120 (%rdi)
+-
+-      leaq    128 (%rdi),%rdi
+-
+-      jnz     L(8byte_move_loop)
+-
+-L(8byte_move_skip):
+-      andl    $127,%r8d
+-      lea     (%rdi,%r8,1),%rdi
+-
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
+-#else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
+-#endif
+-
+-      .balign     16
+-L(8byte_stos_try):
+-      mov    __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size
+-      cmpq    %r8,%r9         // calculate the lesser of remaining
+-      cmovaq  %r8,%r9         // bytes and largest cache size
+-      jbe     L(8byte_stos)
+-
+-L(8byte_move_reuse_try):
+-      cmp     __STOS_UPPER_BOUNDARY,%r8
+-      jae     L(8byte_move)
+-
+-      .balign     16
+-L(8byte_stos):
+-      movq    %r9,%rcx
+-      andq    $-8,%r9
+-
+-      shrq    $3,%rcx
+-      jz      L(8byte_stos_skip)
+-
+-      xchgq   %rax,%rdx
+-
+-      rep
+-      stosq
+-
+-      xchgq   %rax,%rdx
+-
+-L(8byte_stos_skip):
+-      subq    %r9,%r8
+-      ja      L(8byte_nt_move)
+-
+-      andl    $7,%r8d
+-      lea     (%rdi,%r8,1),%rdi
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
+-#else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
+-#endif
+-      .balign     16
+-L(8byte_nt_move):
+-      movq    %r8,%rcx
+-      shrq    $7,%rcx
+-      jz      L(8byte_nt_move_skip)
+-
+-      .balign     16
+-L(8byte_nt_move_loop):
+-      decq    %rcx
+-
+-      movntiq %rdx,     (%rdi)
+-      movntiq %rdx,   8 (%rdi)
+-      movntiq %rdx,  16 (%rdi)
+-      movntiq %rdx,  24 (%rdi)
+-      movntiq %rdx,  32 (%rdi)
+-      movntiq %rdx,  40 (%rdi)
+-      movntiq %rdx,  48 (%rdi)
+-      movntiq %rdx,  56 (%rdi)
+-      movntiq %rdx,  64 (%rdi)
+-      movntiq %rdx,  72 (%rdi)
+-      movntiq %rdx,  80 (%rdi)
+-      movntiq %rdx,  88 (%rdi)
+-      movntiq %rdx,  96 (%rdi)
+-      movntiq %rdx, 104 (%rdi)
+-      movntiq %rdx, 112 (%rdi)
+-      movntiq %rdx, 120 (%rdi)
+-
+-      leaq    128 (%rdi),%rdi
+-
+-      jnz     L(8byte_nt_move_loop)
+-
+-      sfence
+-
+-L(8byte_nt_move_skip):
+-      andl    $127,%r8d
++#ifndef USE_MULTIARCH
++      jmp    L(aligned_now)
+-      lea     (%rdi,%r8,1),%rdi
+-#ifndef PIC
+-      lea     L(setPxQx)(%rip),%r11
+-      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++L(SSE_pre):
+ #else
+-      lea     L(Got0)(%rip),%r11
+-      lea     L(setPxQx)(%rip),%rcx
+-      movswq  (%rcx,%r8,2),%rcx
+-      lea     (%rcx,%r11,1),%r11
+-      jmpq    *%r11
++L(aligned_now):
+ #endif
+-
+-L(SSE_pre):
++#if !defined USE_MULTIARCH || defined USE_SSE2
+        # fill RegXMM0 with the pattern
+        movd   %rdx,%xmm0
+        punpcklqdq %xmm0,%xmm0
+@@ -1342,11 +1200,162 @@ L(SSExDx):
+       .short     L(SSE15QB)-L(SSE0Q0)
+ #endif
+       .popsection
++#endif /* !defined USE_MULTIARCH || defined USE_SSE2  */
++
++      .balign     16
++#ifndef USE_MULTIARCH
++L(aligned_now):
++
++       cmpl   $0x1,__x86_64_preferred_memory_instruction(%rip)
++       jg     L(SSE_pre)
++#endif /* USE_MULTIARCH */
++
++L(8byte_move_try):
++      cmpq    __STOS_LOWER_BOUNDARY,%r8
++      jae     L(8byte_stos_try)
++
++      .balign     16
++L(8byte_move):
++      movq    %r8,%rcx
++      shrq    $7,%rcx
++      jz      L(8byte_move_skip)
++
++      .p2align 4
++
++L(8byte_move_loop):
++      decq    %rcx
++
++      movq    %rdx,    (%rdi)
++      movq    %rdx,  8 (%rdi)
++      movq    %rdx, 16 (%rdi)
++      movq    %rdx, 24 (%rdi)
++      movq    %rdx, 32 (%rdi)
++      movq    %rdx, 40 (%rdi)
++      movq    %rdx, 48 (%rdi)
++      movq    %rdx, 56 (%rdi)
++      movq    %rdx, 64 (%rdi)
++      movq    %rdx, 72 (%rdi)
++      movq    %rdx, 80 (%rdi)
++      movq    %rdx, 88 (%rdi)
++      movq    %rdx, 96 (%rdi)
++      movq    %rdx, 104 (%rdi)
++      movq    %rdx, 112 (%rdi)
++      movq    %rdx, 120 (%rdi)
++
++      leaq    128 (%rdi),%rdi
++
++      jnz     L(8byte_move_loop)
++
++L(8byte_move_skip):
++      andl    $127,%r8d
++      lea     (%rdi,%r8,1),%rdi
++
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
++
++      .balign     16
++L(8byte_stos_try):
++      mov    __x86_64_shared_cache_size(%rip),%r9d // ck largest cache size
++      cmpq    %r8,%r9         // calculate the lesser of remaining
++      cmovaq  %r8,%r9         // bytes and largest cache size
++      jbe     L(8byte_stos)
++
++L(8byte_move_reuse_try):
++      cmp     __STOS_UPPER_BOUNDARY,%r8
++      jae     L(8byte_move)
++
++      .balign     16
++L(8byte_stos):
++      movq    %r9,%rcx
++      andq    $-8,%r9
++
++      shrq    $3,%rcx
++      jz      L(8byte_stos_skip)
++
++      xchgq   %rax,%rdx
++
++      rep
++      stosq
++
++      xchgq   %rax,%rdx
++
++L(8byte_stos_skip):
++      subq    %r9,%r8
++      ja      L(8byte_nt_move)
++
++      andl    $7,%r8d
++      lea     (%rdi,%r8,1),%rdi
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
++
++      .balign     16
++L(8byte_nt_move):
++      movq    %r8,%rcx
++      shrq    $7,%rcx
++      jz      L(8byte_nt_move_skip)
++
++      .balign     16
++L(8byte_nt_move_loop):
++      decq    %rcx
++
++      movntiq %rdx,     (%rdi)
++      movntiq %rdx,   8 (%rdi)
++      movntiq %rdx,  16 (%rdi)
++      movntiq %rdx,  24 (%rdi)
++      movntiq %rdx,  32 (%rdi)
++      movntiq %rdx,  40 (%rdi)
++      movntiq %rdx,  48 (%rdi)
++      movntiq %rdx,  56 (%rdi)
++      movntiq %rdx,  64 (%rdi)
++      movntiq %rdx,  72 (%rdi)
++      movntiq %rdx,  80 (%rdi)
++      movntiq %rdx,  88 (%rdi)
++      movntiq %rdx,  96 (%rdi)
++      movntiq %rdx, 104 (%rdi)
++      movntiq %rdx, 112 (%rdi)
++      movntiq %rdx, 120 (%rdi)
++
++      leaq    128 (%rdi),%rdi
++
++      jnz     L(8byte_nt_move_loop)
++
++      sfence
++
++L(8byte_nt_move_skip):
++      andl    $127,%r8d
++
++      lea     (%rdi,%r8,1),%rdi
++#ifndef PIC
++      lea     L(setPxQx)(%rip),%r11
++      jmpq    *(%r11,%r8,8) # old scheme remained for nonPIC
++#else
++      lea     L(Got0)(%rip),%r11
++      lea     L(setPxQx)(%rip),%rcx
++      movswq  (%rcx,%r8,2),%rcx
++      lea     (%rcx,%r11,1),%r11
++      jmpq    *%r11
++#endif
+ END (memset)
+ libc_hidden_builtin_def (memset)
+-#if defined PIC && !defined NOT_IN_libc
++#if defined PIC && !defined NOT_IN_libc && !defined USE_MULTIARCH
+ strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
+       .section .gnu.warning.__memset_zero_constant_len_parameter
+       .string "memset used with constant zero length parameter; this could be due to transposed parameters"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/Makefile
+@@ -7,7 +7,8 @@ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+                  strend-sse4 memcmp-sse4 \
+                  strcasestr-nonascii strcasecmp_l-ssse3 \
+-                 strncase_l-ssse3
++                 strncase_l-ssse3 \
++                 memset-x86-64
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/bzero.S
+@@ -0,0 +1,56 @@
++/* Multiple versions of bzero
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++      .text
++ENTRY(__bzero)
++      .type   __bzero, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __bzero_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __bzero_sse2(%rip), %rax
++2:    ret
++END(__bzero)
++
++      .type   __bzero_sse2, @function
++__bzero_sse2:
++      cfi_startproc
++      CALL_MCOUNT
++      mov     %rsi,%rdx       /* Adjust parameter.  */
++      xorl    %esi,%esi       /* Fill with 0s.  */
++      jmp     __memset_sse2
++      cfi_endproc
++      .size __bzero_sse2, .-__bzero_sse2
++
++      .type   __bzero_x86_64, @function
++__bzero_x86_64:
++      cfi_startproc
++      CALL_MCOUNT
++      mov     %rsi,%rdx       /* Adjust parameter.  */
++      xorl    %esi,%esi       /* Fill with 0s.  */
++      jmp     __memset_x86_64
++      cfi_endproc
++      .size __bzero_x86_64, .-__bzero_x86_64
++
++weak_alias (__bzero, bzero)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/cacheinfo.c
+@@ -0,0 +1,2 @@
++#define DISABLE_PREFERRED_MEMORY_INSTRUCTION
++#include "../cacheinfo.c"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -59,6 +59,11 @@ __init_cpu_features (void)
+       get_common_indeces (&family, &model);
++      /* Intel processors prefer SSE instruction for memory/string
++       routines if they are avaiable.  */
++      __cpu_features.feature[index_Prefer_SSE_for_memop]
++      |= bit_Prefer_SSE_for_memop;
++
+       unsigned int eax = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].eax;
+       unsigned int extended_family = (eax >> 20) & 0xff;
+       unsigned int extended_model = (eax >> 12) & 0xf0;
+@@ -92,6 +97,14 @@ __init_cpu_features (void)
+       kind = arch_kind_amd;
+       get_common_indeces (&family, &model);
++
++      unsigned int ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
++
++      /* AMD processors prefer SSE instructions for memory/string routines
++       if they are available, otherwise they prefer integer instructions.  */
++      if ((ecx & 0x200))
++      __cpu_features.feature[index_Prefer_SSE_for_memop]
++        |= bit_Prefer_SSE_for_memop;
+     }
+   else
+     kind = arch_kind_other;
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.h
+@@ -16,7 +16,8 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
+-#define bit_Fast_Rep_String   (1 << 0)
++#define bit_Fast_Rep_String           (1 << 0)
++#define bit_Prefer_SSE_for_memop      (1 << 3)
+ #ifdef        __ASSEMBLER__
+@@ -33,6 +34,7 @@
+ # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
+ #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE
++# define index_Prefer_SSE_for_memop   FEATURE_INDEX_1*FEATURE_SIZE
+ #else /* __ASSEMBLER__ */
+@@ -103,5 +105,12 @@ extern const struct cpu_features *__get_
+ # define HAS_FMA      HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12)
+ # define index_Fast_Rep_String        FEATURE_INDEX_1
++# define index_Prefer_SSE_for_memop   FEATURE_INDEX_1
++
++#define HAS_ARCH_FEATURE(idx, bit) \
++  ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++
++#define HAS_PREFER_SSE_FOR_MEMOP \
++  HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
+ #endif        /* __ASSEMBLER__ */
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset-x86-64.S
+@@ -0,0 +1,18 @@
++#include <sysdep.h>
++
++#ifndef NOT_IN_libc
++# undef ENTRY_CHK
++# define ENTRY_CHK(name) \
++      .type __memset_chk_x86_64, @function; \
++      .globl __memset_chk_x86_64; \
++      .p2align 4; \
++      __memset_chk_x86_64: cfi_startproc; \
++      CALL_MCOUNT
++# undef END_CHK
++# define END_CHK(name) \
++      cfi_endproc; .size __memset_chk_x86_64, .-__memset_chk_x86_64
++
++# define libc_hidden_builtin_def(name)
++# define memset __memset_x86_64
++# include "../memset.S"
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset.S
+@@ -0,0 +1,74 @@
++/* Multiple versions of memset
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++/* Define multiple versions only for the definition in lib.  */
++#ifndef NOT_IN_libc
++ENTRY(memset)
++      .type   memset, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __memset_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __memset_sse2(%rip), %rax
++2:    ret
++END(memset)
++
++# define USE_SSE2 1
++
++# undef ENTRY
++# define ENTRY(name) \
++      .type __memset_sse2, @function; \
++      .globl __memset_sse2; \
++      .p2align 4; \
++      __memset_sse2: cfi_startproc; \
++      CALL_MCOUNT
++# undef END
++# define END(name) \
++      cfi_endproc; .size __memset_sse2, .-__memset_sse2
++
++# undef ENTRY_CHK
++# define ENTRY_CHK(name) \
++      .type __memset_chk_sse2, @function; \
++      .globl __memset_chk_sse2; \
++      .p2align 4; \
++      __memset_chk_sse2: cfi_startproc; \
++      CALL_MCOUNT
++# undef END_CHK
++# define END_CHK(name) \
++      cfi_endproc; .size __memset_chk_sse2, .-__memset_chk_sse2
++
++# ifdef SHARED
++#  undef libc_hidden_builtin_def
++/* It doesn't make sense to send libc-internal memset calls through a PLT.
++   The speedup we get from using GPR instruction is likely eaten away
++   by the indirect call in the PLT.  */
++#  define libc_hidden_builtin_def(name) \
++      .globl __GI_memset; __GI_memset = __memset_sse2
++# endif
++
++# undef strong_alias
++# define strong_alias(original, alias)
++#endif
++
++#include "../memset.S"
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/memset_chk.S
+@@ -0,0 +1,44 @@
++/* Multiple versions of __memset_chk
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <sysdep.h>
++#include <init-arch.h>
++
++/* Define multiple versions only for the definition in lib.  */
++#ifndef NOT_IN_libc
++# ifdef SHARED
++ENTRY(__memset_chk)
++      .type   __memset_chk, @gnu_indirect_function
++      cmpl    $0, __cpu_features+KIND_OFFSET(%rip)
++      jne     1f
++      call    __init_cpu_features
++1:    leaq    __memset_chk_x86_64(%rip), %rax
++      testl   $bit_Prefer_SSE_for_memop, __cpu_features+FEATURE_OFFSET+index_Prefer_SSE_for_memop(%rip)
++      jz      2f
++      leaq    __memset_chk_sse2(%rip), %rax
++2:    ret
++END(__memset_chk)
++
++strong_alias (__memset_chk, __memset_zero_constant_len_parameter)
++      .section .gnu.warning.__memset_zero_constant_len_parameter
++      .string "memset used with constant zero length parameter; this could be due to transposed parameters"
++# else
++#  include "../memset_chk.S"
++# endif
++#endif
diff --git a/src/patches/glibc/glibc-rh676591.patch b/src/patches/glibc/glibc-rh676591.patch
new file mode 100644 (file)
index 0000000..fd6df1e
--- /dev/null
@@ -0,0 +1,352 @@
+2011-05-15  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #11901]
+       * include/stdlib.h: Move include protection to the right place.
+       Define abort_msg_s.  Declare __abort_msg with it.
+       * stdlib/abort.c (__abort_msg): Adjust type.
+       * assert/assert.c (__assert_fail_base): New function.  Majority
+       of code from __assert_fail.  Allocate memory for __abort_msg with
+       mmap.
+       (__assert_fail): Now call __assert_fail_base.
+       * assert/assert-perr.c: Remove bulk of implementation.  Use
+       __assert_fail_base.
+       * include/assert.hL Declare __assert_fail_base.
+       * sysdeps/posix/libc_fatal.c: Allocate memory for __abort_msg with
+       mmap.
+       * sysdeps/unix/sysv/linux/libc_fatal.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/assert/assert-perr.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/assert/assert-perr.c
++++ glibc-2.12-2-gc4ccff1/assert/assert-perr.c
+@@ -17,66 +17,23 @@
+    02111-1307 USA.  */
+ #include <assert.h>
+-#include <atomic.h>
+ #include <libintl.h>
+-#include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+-#include <sysdep.h>
+-#include <unistd.h>
+-extern const char *__progname;
+-
+-#ifdef USE_IN_LIBIO
+-# include <wchar.h>
+-# include <libio/iolibio.h>
+-# define fflush(s) INTUSE(_IO_fflush) (s)
+-#endif
+-
+ /* This function, when passed an error number, a filename, and a line
+    number, prints a message on the standard error stream of the form:
+-      a.c:10: foobar: Unexpected error: Computer bought the farm
++      a.c:10: foobar: Unexpected error: Computer bought the farm
+    It then aborts program execution via a call to `abort'.  */
+-
+-#ifdef FATAL_PREPARE_INCLUDE
+-# include FATAL_PREPARE_INCLUDE
+-#endif
+-
+ void
+ __assert_perror_fail (int errnum,
+                     const char *file, unsigned int line,
+                     const char *function)
+ {
+   char errbuf[1024];
+-  char *buf;
+-
+-#ifdef FATAL_PREPARE
+-  FATAL_PREPARE;
+-#endif
+-
+-  if (__asprintf (&buf, _("%s%s%s:%u: %s%sUnexpected error: %s.\n"),
+-                __progname, __progname[0] ? ": " : "",
+-                file, line,
+-                function ? function : "", function ? ": " : "",
+-                __strerror_r (errnum, errbuf, sizeof errbuf)) >= 0)
+-    {
+-      /* Print the message.  */
+-      (void) __fxprintf (NULL, "%s", buf);
+-      (void) fflush (stderr);
+-
+-      /* We have to free the old buffer since the application might
+-       catch the SIGABRT signal.  */
+-      char *old = atomic_exchange_acq (&__abort_msg, buf);
+-      free (old);
+-    }
+-  else
+-    {
+-      /* At least print a minimal message.  */
+-      static const char errstr[] = "Unexpected error.\n";
+-      __libc_write (STDERR_FILENO, errstr, sizeof (errstr) - 1);
+-    }
+-  abort ();
++  char *e = __strerror_r (errnum, errbuf, sizeof errbuf);
++  __assert_fail_base (_("%s%s%s:%u: %s%sUnexpected error: %s.\n"),
++                    e, file, line, function);
+ }
+ libc_hidden_def (__assert_perror_fail)
+Index: glibc-2.12-2-gc4ccff1/assert/assert.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/assert/assert.c
++++ glibc-2.12-2-gc4ccff1/assert/assert.c
+@@ -19,11 +19,13 @@
+ #include <assert.h>
+ #include <atomic.h>
++#include <ldsodefs.h>
+ #include <libintl.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <sysdep.h>
+ #include <unistd.h>
++#include <sys/mman.h>
+ extern const char *__progname;
+@@ -45,31 +47,44 @@ extern const char *__progname;
+ #endif
+-#undef __assert_fail
+ void
+-__assert_fail (const char *assertion, const char *file, unsigned int line,
+-             const char *function)
++__assert_fail_base (const char *fmt, const char *assertion, const char *file,
++                  unsigned int line, const char *function)
+ {
+-  char *buf;
++  char *str;
+ #ifdef FATAL_PREPARE
+   FATAL_PREPARE;
+ #endif
+-  if (__asprintf (&buf, _("%s%s%s:%u: %s%sAssertion `%s' failed.\n"),
++  int total;
++  if (__asprintf (&str, fmt,
+                 __progname, __progname[0] ? ": " : "",
+                 file, line,
+                 function ? function : "", function ? ": " : "",
+-                assertion) >= 0)
++                assertion, &total) >= 0)
+     {
+       /* Print the message.  */
+-      (void) __fxprintf (NULL, "%s", buf);
++      (void) __fxprintf (NULL, "%s", str);
+       (void) fflush (stderr);
+-      /* We have to free the old buffer since the application might
+-       catch the SIGABRT signal.  */
+-      char *old = atomic_exchange_acq (&__abort_msg, buf);
+-      free (old);
++      total = (total + 1 + GLRO(dl_pagesize) - 1) & ~(GLRO(dl_pagesize) - 1);
++      struct abort_msg_s *buf = __mmap (NULL, total, PROT_READ | PROT_WRITE,
++                                      MAP_ANON | MAP_PRIVATE, -1, 0);
++      if (__builtin_expect (buf != MAP_FAILED, 1))
++      {
++        buf->size = total;
++        strcpy (buf->msg, str);
++
++        /* We have to free the old buffer since the application might
++           catch the SIGABRT signal.  */
++        struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg, buf);
++
++        if (old != NULL)
++          __munmap (old, old->size);
++      }
++
++      free (str);
+     }
+   else
+     {
+@@ -80,4 +95,14 @@ __assert_fail (const char *assertion, co
+   abort ();
+ }
++
++
++#undef __assert_fail
++void
++__assert_fail (const char *assertion, const char *file, unsigned int line,
++             const char *function)
++{
++  __assert_fail_base (_("%s%s%s:%u: %s%sAssertion `%s' failed.\n%n"),
++                    assertion, file, line, function);
++}
+ hidden_def(__assert_fail)
+Index: glibc-2.12-2-gc4ccff1/include/assert.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/assert.h
++++ glibc-2.12-2-gc4ccff1/include/assert.h
+@@ -13,6 +13,12 @@ extern void __assert_perror_fail (int __
+                                 __const char *__function)
+      __THROW __attribute__ ((__noreturn__));
++/* The real implementation of the two functions above.  */
++extern void __assert_fail_base (const char *fmt, const char *assertion,
++                              const char *file, unsigned int line,
++                              const char *function)
++     __THROW  __attribute__ ((__noreturn__));
++
+ #if !defined NOT_IN_libc || defined IS_IN_rtld
+ hidden_proto (__assert_fail)
+ hidden_proto (__assert_perror_fail)
+Index: glibc-2.12-2-gc4ccff1/include/stdlib.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/stdlib.h
++++ glibc-2.12-2-gc4ccff1/include/stdlib.h
+@@ -223,16 +223,21 @@ extern int __qfcvt_r (long double __valu
+ # define __cxa_atexit(func, arg, d) INTUSE(__cxa_atexit) (func, arg, d)
+ # endif
+-#endif
+-
+ extern void *__default_morecore (ptrdiff_t) __THROW;
+ libc_hidden_proto (__default_morecore)
+-extern char *__abort_msg;
++struct abort_msg_s
++{
++  unsigned int size;
++  char msg[0];
++};
++extern struct abort_msg_s *__abort_msg;
+ libc_hidden_proto (__abort_msg)
+ __END_DECLS
++#endif
++
+ #undef __Need_M_And_C
+ #endif  /* include/stdlib.h */
+Index: glibc-2.12-2-gc4ccff1/stdlib/abort.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/stdlib/abort.c
++++ glibc-2.12-2-gc4ccff1/stdlib/abort.c
+@@ -37,7 +37,7 @@
+ #endif
+ /* Exported variable to locate abort message in core files etc.  */
+-char *__abort_msg __attribute__ ((nocommon));
++struct abort_msg_s *__abort_msg __attribute__ ((nocommon));
+ libc_hidden_def (__abort_msg)
+ /* We must avoid to run in circles.  Therefore we remember how far we
+Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/libc_fatal.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/libc_fatal.c
+@@ -20,6 +20,7 @@
+ #include <atomic.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <ldsodefs.h>
+ #include <paths.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+@@ -125,18 +126,28 @@ __libc_message (int do_abort, const char
+       if (TEMP_FAILURE_RETRY (__writev (fd, iov, nlist)) == total)
+       written = true;
+-      char *buf = do_abort ? malloc (total + 1) : NULL;
+-      if (buf != NULL)
++      if (do_abort)
+       {
+-        char *wp = buf;
+-        for (int cnt = 0; cnt < nlist; ++cnt)
+-          wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+-        *wp = '\0';
+-
+-        /* We have to free the old buffer since the application might
+-           catch the SIGABRT signal.  */
+-        char *old = atomic_exchange_acq (&__abort_msg, buf);
+-        free (old);
++        total = ((total + 1 + GLRO(dl_pagesize) - 1)
++                 & ~(GLRO(dl_pagesize) - 1));
++        struct abort_msg_s *buf = __mmap (NULL, total,
++                                          PROT_READ | PROT_WRITE,
++                                          MAP_ANON | MAP_PRIVATE, -1, 0);
++        if (buf != MAP_FAILED)
++          {
++            buf->size = total;
++            char *wp = buf->msg;
++            for (int cnt = 0; cnt < nlist; ++cnt)
++              wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
++            *wp = '\0';
++
++            /* We have to free the old buffer since the application might
++               catch the SIGABRT signal.  */
++            struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg,
++                                                           buf);
++            if (old != NULL)
++              __munmap (old, old->size);
++          }
+       }
+     }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/libc_fatal.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/libc_fatal.c
+@@ -20,6 +20,7 @@
+ #include <atomic.h>
+ #include <errno.h>
+ #include <fcntl.h>
++#include <ldsodefs.h>
+ #include <paths.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+@@ -28,6 +29,7 @@
+ #include <string.h>
+ #include <sysdep.h>
+ #include <unistd.h>
++#include <sys/mman.h>
+ #include <sys/syslog.h>
+ #include <execinfo.h>
+@@ -134,18 +136,28 @@ __libc_message (int do_abort, const char
+       if (cnt == total)
+       written = true;
+-      char *buf = do_abort ? malloc (total + 1) : NULL;
+-      if (buf != NULL)
++      if (do_abort)
+       {
+-        char *wp = buf;
+-        for (int cnt = 0; cnt < nlist; ++cnt)
+-          wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
+-        *wp = '\0';
+-
+-        /* We have to free the old buffer since the application might
+-           catch the SIGABRT signal.  */
+-        char *old = atomic_exchange_acq (&__abort_msg, buf);
+-        free (old);
++        total = ((total + 1 + GLRO(dl_pagesize) - 1)
++                 & ~(GLRO(dl_pagesize) - 1));
++        struct abort_msg_s *buf = __mmap (NULL, total,
++                                          PROT_READ | PROT_WRITE,
++                                          MAP_ANON | MAP_PRIVATE, -1, 0);
++        if (__builtin_expect (buf != MAP_FAILED, 1))
++          {
++            buf->size = total;
++            char *wp = buf->msg;
++            for (int cnt = 0; cnt < nlist; ++cnt)
++              wp = mempcpy (wp, iov[cnt].iov_base, iov[cnt].iov_len);
++            *wp = '\0';
++
++            /* We have to free the old buffer since the application might
++               catch the SIGABRT signal.  */
++            struct abort_msg_s *old = atomic_exchange_acq (&__abort_msg,
++                                                           buf);
++            if (old != NULL)
++              __munmap (old, old->size);
++          }
+       }
+     }
diff --git a/src/patches/glibc/glibc-rh681054.patch b/src/patches/glibc/glibc-rh681054.patch
new file mode 100644 (file)
index 0000000..27b7361
--- /dev/null
@@ -0,0 +1,514 @@
+2011-03-18  Ulrich Drepper  <drepper@gmail.com>
+
+       * posix/fnmatch.c (fnmatch): Check size of pattern in wide
+       character representation.
+       Partly based on a patch by Tomas Hoger <thoger@redhat.com>.
+
+2010-11-11  Andreas Schwab  <schwab@redhat.com>
+
+       * posix/fnmatch_loop.c (NEW_PATTERN): Fix use of alloca.
+       * posix/Makefile (tests): Add $(objpfx)tst-fnmatch-mem.
+       (tst-fnmatch-ENV): Set MALLOC_TRACE.
+       ($(objpfx)tst-fnmatch-mem): New rule.
+       (generated): Add tst-fnmatch-mem and tst-fnmatch.mtrace.
+       * posix/tst-fnmatch.c (main): Call mtrace.
+
+2010-08-09  Ulrich Drepper  <drepper@redhat.com>
+
+       [BZ #11883]
+       * posix/fnmatch.c: Keep track of alloca use and fall back on malloc.
+       * posix/fnmatch_loop.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/posix/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/Makefile
++++ glibc-2.12-2-gc4ccff1/posix/Makefile
+@@ -114,7 +114,8 @@ generated := $(addprefix wordexp-test-re
+            tst-rxspencer-mem tst-rxspencer.mtrace tst-getconf.out \
+            tst-pcre-mem tst-pcre.mtrace tst-boost-mem tst-boost.mtrace \
+            bug-ga2.mtrace bug-ga2-mem bug-glob2.mtrace bug-glob2-mem \
+-           tst-vfork3-mem tst-vfork3.mtrace getconf.speclist
++           tst-vfork3-mem tst-vfork3.mtrace getconf.speclist \
++           tst-fnmatch-mem tst-fnmatch.mtrace
+ include ../Rules
+@@ -226,7 +227,7 @@ ifeq (no,$(cross-compiling))
+ tests: $(objpfx)bug-regex2-mem $(objpfx)bug-regex14-mem \
+   $(objpfx)bug-regex21-mem $(objpfx)tst-rxspencer-mem \
+   $(objpfx)tst-pcre-mem $(objpfx)tst-boost-mem $(objpfx)tst-getconf.out \
+-  $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem
++  $(objpfx)bug-glob2-mem $(objpfx)tst-vfork3-mem $(objpfx)tst-fnmatch-mem
+ xtests: $(objpfx)bug-ga2-mem
+ endif
+@@ -238,6 +239,11 @@ annexc-CFLAGS = -O
+ $(objpfx)annexc: annexc.c
+       $(native-compile)
++tst-fnmatch-ENV += MALLOC_TRACE=$(objpfx)tst-fnmatch.mtrace
++
++$(objpfx)tst-fnmatch-mem: $(objpfx)tst-fnmatch.out
++      $(common-objpfx)malloc/mtrace $(objpfx)tst-fnmatch.mtrace > $@
++
+ bug-regex2-ENV = MALLOC_TRACE=$(objpfx)bug-regex2.mtrace
+ $(objpfx)bug-regex2-mem: $(objpfx)bug-regex2.out
+Index: glibc-2.12-2-gc4ccff1/posix/fnmatch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch.c
++++ glibc-2.12-2-gc4ccff1/posix/fnmatch.c
+@@ -41,6 +41,12 @@
+ # include <stdlib.h>
+ #endif
++#ifdef _LIBC
++# include <alloca.h>
++#else
++# define alloca_account(size., var) alloca (size)
++#endif
++
+ /* For platform which support the ISO C amendement 1 functionality we
+    support user defined character classes.  */
+ #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
+@@ -330,8 +336,11 @@ fnmatch (pattern, string, flags)
+       mbstate_t ps;
+       size_t n;
+       const char *p;
++      wchar_t *wpattern_malloc = NULL;
+       wchar_t *wpattern;
++      wchar_t *wstring_malloc = NULL;
+       wchar_t *wstring;
++      size_t alloca_used = 0;
+       /* Convert the strings into wide characters.  */
+       memset (&ps, '\0', sizeof (ps));
+@@ -343,7 +352,8 @@ fnmatch (pattern, string, flags)
+ #endif
+       if (__builtin_expect (n < 1024, 1))
+       {
+-        wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        wpattern = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++                                               alloca_used);
+         n = mbsrtowcs (wpattern, &p, n + 1, &ps);
+         if (__builtin_expect (n == (size_t) -1, 0))
+           /* Something wrong.
+@@ -365,8 +375,16 @@ fnmatch (pattern, string, flags)
+              XXX Do we have to set `errno' to something which mbsrtows hasn't
+              already done?  */
+           return -1;
+-        wpattern = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
++          {
++            __set_errno (ENOMEM);
++            return -2;
++          }
++        wpattern_malloc = wpattern
++          = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
+         assert (mbsinit (&ps));
++        if (wpattern == NULL)
++          return -2;
+         (void) mbsrtowcs (wpattern, &pattern, n + 1, &ps);
+       }
+@@ -379,13 +397,18 @@ fnmatch (pattern, string, flags)
+       p = string;
+       if (__builtin_expect (n < 1024, 1))
+       {
+-        wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++        wstring = (wchar_t *) alloca_account ((n + 1) * sizeof (wchar_t),
++                                              alloca_used);
+         n = mbsrtowcs (wstring, &p, n + 1, &ps);
+         if (__builtin_expect (n == (size_t) -1, 0))
+-          /* Something wrong.
+-             XXX Do we have to set `errno' to something which mbsrtows hasn't
+-             already done?  */
+-          return -1;
++          {
++            /* Something wrong.
++               XXX Do we have to set `errno' to something which
++               mbsrtows hasn't already done?  */
++          free_return:
++            free (wpattern_malloc);
++            return -1;
++          }
+         if (p)
+           {
+             memset (&ps, '\0', sizeof (ps));
+@@ -400,19 +423,38 @@ fnmatch (pattern, string, flags)
+           /* Something wrong.
+              XXX Do we have to set `errno' to something which mbsrtows hasn't
+              already done?  */
+-          return -1;
+-        wstring = (wchar_t *) alloca ((n + 1) * sizeof (wchar_t));
++          goto free_return;
++        if (__builtin_expect (n >= (size_t) -1 / sizeof (wchar_t), 0))
++          {
++            free (wpattern_malloc);
++            __set_errno (ENOMEM);
++            return -2;
++          }
++
++        wstring_malloc = wstring
++          = (wchar_t *) malloc ((n + 1) * sizeof (wchar_t));
++        if (wstring == NULL)
++          {
++            free (wpattern_malloc);
++            return -2;
++          }
+         assert (mbsinit (&ps));
+         (void) mbsrtowcs (wstring, &string, n + 1, &ps);
+       }
+-      return internal_fnwmatch (wpattern, wstring, wstring + n,
+-                              flags & FNM_PERIOD, flags, NULL);
++      int res = internal_fnwmatch (wpattern, wstring, wstring + n,
++                                 flags & FNM_PERIOD, flags, NULL,
++                                 alloca_used);
++
++      free (wstring_malloc);
++      free (wpattern_malloc);
++
++      return res;
+     }
+ # endif  /* mbstate_t and mbsrtowcs or _LIBC.  */
+   return internal_fnmatch (pattern, string, string + strlen (string),
+-                         flags & FNM_PERIOD, flags, NULL);
++                         flags & FNM_PERIOD, flags, NULL, 0);
+ }
+ # ifdef _LIBC
+Index: glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/fnmatch_loop.c
++++ glibc-2.12-2-gc4ccff1/posix/fnmatch_loop.c
+@@ -28,22 +28,24 @@ struct STRUCT
+    it matches, nonzero if not.  */
+ static int FCT (const CHAR *pattern, const CHAR *string,
+               const CHAR *string_end, int no_leading_period, int flags,
+-              struct STRUCT *ends)
++              struct STRUCT *ends, size_t alloca_used)
+      internal_function;
+ static int EXT (INT opt, const CHAR *pattern, const CHAR *string,
+-              const CHAR *string_end, int no_leading_period, int flags)
++              const CHAR *string_end, int no_leading_period, int flags,
++              size_t alloca_used)
+      internal_function;
+ static const CHAR *END (const CHAR *patternp) internal_function;
+ static int
+ internal_function
+-FCT (pattern, string, string_end, no_leading_period, flags, ends)
++FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+      const CHAR *pattern;
+      const CHAR *string;
+      const CHAR *string_end;
+      int no_leading_period;
+      int flags;
+      struct STRUCT *ends;
++     size_t alloca_used;
+ {
+   register const CHAR *p = pattern, *n = string;
+   register UCHAR c;
+@@ -67,10 +69,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('?'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period,
+-                       flags);
++            int res = EXT (c, p, n, string_end, no_leading_period,
++                           flags, alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -99,10 +99,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('*'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period,
+-                       flags);
++            int res = EXT (c, p, n, string_end, no_leading_period,
++                           flags, alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -191,7 +189,7 @@ FCT (pattern, string, string_end, no_lea
+                 for (--p; n < endp; ++n, no_leading_period = 0)
+                   if (FCT (p, n, string_end, no_leading_period, flags2,
+-                           &end) == 0)
++                           &end, alloca_used) == 0)
+                     goto found;
+               }
+             else if (c == L('/') && (flags & FNM_FILE_NAME))
+@@ -200,7 +198,7 @@ FCT (pattern, string, string_end, no_lea
+                   ++n;
+                 if (n < string_end && *n == L('/')
+                     && (FCT (p, n + 1, string_end, flags & FNM_PERIOD, flags,
+-                             NULL) == 0))
++                             NULL, alloca_used) == 0))
+                   return 0;
+               }
+             else
+@@ -214,7 +212,7 @@ FCT (pattern, string, string_end, no_lea
+                 for (--p; n < endp; ++n, no_leading_period = 0)
+                   if (FOLD ((UCHAR) *n) == c
+                       && (FCT (p, n, string_end, no_leading_period, flags2,
+-                               &end) == 0))
++                               &end, alloca_used) == 0))
+                     {
+                     found:
+                       if (end.pattern == NULL)
+@@ -749,7 +747,7 @@ FCT (pattern, string, string_end, no_lea
+                                              _NL_COLLATE_SYMB_EXTRAMB);
+                               /* Locate the character in the hashing
+-                                   table.  */
++                                 table.  */
+                               hash = elem_hash (str, c1);
+                               idx = 0;
+@@ -971,9 +969,8 @@ FCT (pattern, string, string_end, no_lea
+       case L('!'):
+         if (__builtin_expect (flags & FNM_EXTMATCH, 0) && *p == '(')
+           {
+-            int res;
+-
+-            res = EXT (c, p, n, string_end, no_leading_period, flags);
++            int res = EXT (c, p, n, string_end, no_leading_period, flags,
++                           alloca_used);
+             if (res != -1)
+               return res;
+           }
+@@ -1052,26 +1049,32 @@ END (const CHAR *pattern)
+ static int
+ internal_function
+ EXT (INT opt, const CHAR *pattern, const CHAR *string, const CHAR *string_end,
+-     int no_leading_period, int flags)
++     int no_leading_period, int flags, size_t alloca_used)
+ {
+   const CHAR *startp;
+   int level;
+   struct patternlist
+   {
+     struct patternlist *next;
++    CHAR malloced;
+     CHAR str[0];
+   } *list = NULL;
+   struct patternlist **lastp = &list;
+   size_t pattern_len = STRLEN (pattern);
++  int any_malloced = 0;
+   const CHAR *p;
+   const CHAR *rs;
++  int retval = 0;
+   /* Parse the pattern.  Store the individual parts in the list.  */
+   level = 0;
+   for (startp = p = pattern + 1; level >= 0; ++p)
+     if (*p == L('\0'))
+-      /* This is an invalid pattern.  */
+-      return -1;
++      {
++      /* This is an invalid pattern.  */
++      retval = -1;
++      goto out;
++      }
+     else if (*p == L('['))
+       {
+       /* Handle brackets special.  */
+@@ -1088,8 +1091,11 @@ EXT (INT opt, const CHAR *pattern, const
+       /* Skip over all characters of the list.  */
+       while (*p != L(']'))
+         if (*p++ == L('\0'))
+-          /* This is no valid pattern.  */
+-          return -1;
++          {
++            /* This is no valid pattern.  */
++            retval = -1;
++            goto out;
++          }
+       }
+     else if ((*p == L('?') || *p == L('*') || *p == L('+') || *p == L('@')
+             || *p == L('!')) && p[1] == L('('))
+@@ -1102,15 +1108,25 @@ EXT (INT opt, const CHAR *pattern, const
+           /* This means we found the end of the pattern.  */
+ #define NEW_PATTERN \
+           struct patternlist *newp;                                         \
+-                                                                            \
+-          if (opt == L('?') || opt == L('@'))                               \
+-            newp = alloca (sizeof (struct patternlist)                      \
+-                           + (pattern_len * sizeof (CHAR)));                \
++          size_t slen = (opt == L('?') || opt == L('@')                     \
++                         ? pattern_len : (p - startp + 1));                 \
++          slen = sizeof (struct patternlist) + (slen * sizeof (CHAR));      \
++          int malloced = ! __libc_use_alloca (alloca_used + slen);          \
++          if (__builtin_expect (malloced, 0))                               \
++            {                                                               \
++              newp = malloc (slen);                                         \
++              if (newp == NULL)                                             \
++                {                                                           \
++                  retval = -2;                                              \
++                  goto out;                                                 \
++                }                                                           \
++              any_malloced = 1;                                             \
++            }                                                               \
+           else                                                              \
+-            newp = alloca (sizeof (struct patternlist)                      \
+-                           + ((p - startp + 1) * sizeof (CHAR)));           \
+-          *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0');    \
++            newp = alloca_account (slen, alloca_used);                      \
+           newp->next = NULL;                                                \
++          newp->malloced = malloced;                                        \
++          *((CHAR *) MEMPCPY (newp->str, startp, p - startp)) = L('\0');    \
+           *lastp = newp;                                                    \
+           lastp = &newp->next
+           NEW_PATTERN;
+@@ -1131,8 +1147,9 @@ EXT (INT opt, const CHAR *pattern, const
+   switch (opt)
+     {
+     case L('*'):
+-      if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+-      return 0;
++      if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++             alloca_used) == 0)
++      goto success;
+       /* FALLTHROUGH */
+     case L('+'):
+@@ -1143,7 +1160,7 @@ EXT (INT opt, const CHAR *pattern, const
+              current pattern.  */
+           if (FCT (list->str, string, rs, no_leading_period,
+                    flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                   NULL) == 0
++                   NULL, alloca_used) == 0
+               /* This was successful.  Now match the rest with the rest
+                  of the pattern.  */
+               && (FCT (p, rs, string_end,
+@@ -1151,7 +1168,7 @@ EXT (INT opt, const CHAR *pattern, const
+                        ? no_leading_period
+                        : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+                        flags & FNM_FILE_NAME
+-                       ? flags : flags & ~FNM_PERIOD, NULL) == 0
++                       ? flags : flags & ~FNM_PERIOD, NULL, alloca_used) == 0
+                   /* This didn't work.  Try the whole pattern.  */
+                   || (rs != string
+                       && FCT (pattern - 1, rs, string_end,
+@@ -1160,18 +1177,21 @@ EXT (INT opt, const CHAR *pattern, const
+                               : (rs[-1] == '/' && NO_LEADING_PERIOD (flags)
+                                  ? 1 : 0),
+                               flags & FNM_FILE_NAME
+-                              ? flags : flags & ~FNM_PERIOD, NULL) == 0)))
++                              ? flags : flags & ~FNM_PERIOD, NULL,
++                              alloca_used) == 0)))
+             /* It worked.  Signal success.  */
+-            return 0;
++            goto success;
+       }
+       while ((list = list->next) != NULL);
+       /* None of the patterns lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     case L('?'):
+-      if (FCT (p, string, string_end, no_leading_period, flags, NULL) == 0)
+-      return 0;
++      if (FCT (p, string, string_end, no_leading_period, flags, NULL,
++             alloca_used) == 0)
++      goto success;
+       /* FALLTHROUGH */
+     case L('@'):
+@@ -1183,13 +1203,14 @@ EXT (INT opt, const CHAR *pattern, const
+       if (FCT (STRCAT (list->str, p), string, string_end,
+                no_leading_period,
+                flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-               NULL) == 0)
++               NULL, alloca_used) == 0)
+         /* It worked.  Signal success.  */
+-        return 0;
++        goto success;
+       while ((list = list->next) != NULL);
+       /* None of the patterns lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     case L('!'):
+       for (rs = string; rs <= string_end; ++rs)
+@@ -1199,7 +1220,7 @@ EXT (INT opt, const CHAR *pattern, const
+         for (runp = list; runp != NULL; runp = runp->next)
+           if (FCT (runp->str, string, rs,  no_leading_period,
+                    flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                   NULL) == 0)
++                   NULL, alloca_used) == 0)
+             break;
+         /* If none of the patterns matched see whether the rest does.  */
+@@ -1209,21 +1230,34 @@ EXT (INT opt, const CHAR *pattern, const
+                      ? no_leading_period
+                      : rs[-1] == '/' && NO_LEADING_PERIOD (flags) ? 1 : 0,
+                      flags & FNM_FILE_NAME ? flags : flags & ~FNM_PERIOD,
+-                     NULL) == 0))
++                     NULL, alloca_used) == 0))
+           /* This is successful.  */
+-          return 0;
++          goto success;
+       }
+       /* None of the patterns together with the rest of the pattern
+        lead to a match.  */
+-      return FNM_NOMATCH;
++      retval = FNM_NOMATCH;
++      break;
+     default:
+       assert (! "Invalid extended matching operator");
++      retval = -1;
+       break;
+     }
+-  return -1;
++ success:
++ out:
++  if (any_malloced)
++    while (list != NULL)
++      {
++      struct patternlist *old = list;
++      list = list->next;
++      if (old->malloced)
++        free (old);
++      }
++
++  return retval;
+ }
+Index: glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/posix/tst-fnmatch.c
++++ glibc-2.12-2-gc4ccff1/posix/tst-fnmatch.c
+@@ -25,6 +25,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
++#include <mcheck.h>
+ static char *next_input (char **line, int first, int last);
+@@ -46,6 +47,8 @@ main (void)
+   size_t escpatternlen = 0;
+   int nr = 0;
++  mtrace ();
++
+   /* Read lines from stdin with the following format:
+        locale  input-string  match-string  flags  result
diff --git a/src/patches/glibc/glibc-rh688720.patch b/src/patches/glibc/glibc-rh688720.patch
new file mode 100644 (file)
index 0000000..0c86f25
--- /dev/null
@@ -0,0 +1,1638 @@
+2011-11-11  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #13147]
+       * locales/de_AT: Use de_DE for LC_NUMERIC.
+       * locales/es_BO: Use es_ES for LC_MESSAGES and LC_NUMERIC.
+       * locales/es_CL: Likewise.
+       * locales/es_CO: Likewise.
+       * locales/es_DO: Likewise.
+       * locales/es_EC: Likewise.
+       * locales/es_GT: Likewise.
+       * locales/es_HN: Likewise.
+       * locales/es_MX: Likewise.
+       * locales/es_NI: Likewise.
+       * locales/es_PA: Likewise.
+       * locales/es_PE: Likewise.
+       * locales/es_PR: Likewise.
+       * locales/es_PY: Likewise.
+       * locales/es_SV: Likewise.
+       * locales/es_UY: Likewise.
+       * locales/es_VE: Likewise.
+       * locales/es_ES: Fix LC_NUMERIC.
+       * locales/es_CR: Use es_ES for LC_MESSAGES.
+       * locales/fr_BE: Actually use grouping in LC_NUMERIC.
+       * locales/fr_CA: Use fr_FR for LC_MESSAGES and LC_NUMERIC.
+       * locales/fr_CH: Use de_CH for LC_NUMERIC.
+       * locales/fr_LU: Use same grouping in LC_NUMERIC as in LC_MONETARY.
+
+2010-05-17  Andreas Schwab  <schwab@redhat.com>
+
+       * locales/es_CR (LC_ADDRESS): Fix character names in lang_ab.
+
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/de_AT
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/de_AT
++++ glibc-2.12-2-gc4ccff1/localedata/locales/de_AT
+@@ -78,41 +78,39 @@ n_sign_posn               1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++copy "de_DE"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0053><U006F><U006E>";"<U004D><U006F><U006E>";/
+-        "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
+-        "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
+-        "<U0053><U0061><U006D>"
++      "<U0044><U0069><U0065>";"<U004D><U0069><U0074>";/
++      "<U0044><U006F><U006E>";"<U0046><U0072><U0065>";/
++      "<U0053><U0061><U006D>"
+ day     "<U0053><U006F><U006E><U006E><U0074><U0061><U0067>";/
+-        "<U004D><U006F><U006E><U0074><U0061><U0067>";/
+-        "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
+-        "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
+-        "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
+-        "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
+-        "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
++      "<U004D><U006F><U006E><U0074><U0061><U0067>";/
++      "<U0044><U0069><U0065><U006E><U0073><U0074><U0061><U0067>";/
++      "<U004D><U0069><U0074><U0074><U0077><U006F><U0063><U0068>";/
++      "<U0044><U006F><U006E><U006E><U0065><U0072><U0073><U0074><U0061><U0067>";/
++      "<U0046><U0072><U0065><U0069><U0074><U0061><U0067>";/
++      "<U0053><U0061><U006D><U0073><U0074><U0061><U0067>"
+ abmon   "<U004A><U00E4><U006E>";"<U0046><U0065><U0062>";/
+-        "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
+-        "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
+-        "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
+-        "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
+-        "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
++      "<U004D><U00E4><U0072>";"<U0041><U0070><U0072>";/
++      "<U004D><U0061><U0069>";"<U004A><U0075><U006E>";/
++      "<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/
++      "<U0053><U0065><U0070>";"<U004F><U006B><U0074>";/
++      "<U004E><U006F><U0076>";"<U0044><U0065><U007A>"
+ mon     "<U004A><U00E4><U006E><U006E><U0065><U0072>";/
+-        "<U0046><U0065><U0062><U0065><U0072>";/
+-        "<U004D><U00E4><U0072><U007A>";/
+-        "<U0041><U0070><U0072><U0069><U006C>";/
+-        "<U004D><U0061><U0069>";/
+-        "<U004A><U0075><U006E><U0069>";/
+-        "<U004A><U0075><U006C><U0069>";/
+-        "<U0041><U0075><U0067><U0075><U0073><U0074>";/
+-        "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
+-        "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
+-        "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
+-        "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
++      "<U0046><U0065><U0062><U0065><U0072>";/
++      "<U004D><U00E4><U0072><U007A>";/
++      "<U0041><U0070><U0072><U0069><U006C>";/
++      "<U004D><U0061><U0069>";/
++      "<U004A><U0075><U006E><U0069>";/
++      "<U004A><U0075><U006C><U0069>";/
++      "<U0041><U0075><U0067><U0075><U0073><U0074>";/
++      "<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/
++      "<U004F><U006B><U0074><U006F><U0062><U0065><U0072>";/
++      "<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/
++      "<U0044><U0065><U007A><U0065><U006D><U0062><U0065><U0072>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_BO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_BO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_BO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CL
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CL
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CL
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_CR
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_CR
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_CR
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,34 +78,34 @@ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0059>"
+ t_fmt   "<U0025><U0054>"
+@@ -157,7 +156,7 @@ country_post  "<U0043><U0052>"
+ country_car   "<U0043><U0052>"
+ country_isbn  "9930,9977,9968"
+ lang_name     "<U0045><U0073><U0070><U0061><U00F1><U006F><U006C>"
+-lang_ab       "<0065><0073>"
++lang_ab       "<U0065><U0073>"
+ lang_term     "<U0073><U0070><U0061>"
+ country_ab2   "<U0043><U0052>"
+ country_ab3   "<U0043><U0052><U0049>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_DO
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_DO
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_DO
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_EC
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_EC
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_EC
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_ES
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_ES
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_ES
+@@ -85,40 +85,40 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++thousands_sep        "<U002E>"
++grouping             3;3
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_GT
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_GT
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_GT
+@@ -55,8 +55,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -78,9 +77,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_HN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_HN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_HN
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_MX
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_MX
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_MX
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_NI
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_NI
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_NI
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -70,9 +69,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PA
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PA
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PA
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PE
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PR
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PR
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PR
+@@ -47,8 +47,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -70,41 +69,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_PY
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_PY
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_PY
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_SV
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_SV
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_SV
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,9 +78,7 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002E>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_UY
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_UY
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_UY
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/es_VE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/es_VE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/es_VE
+@@ -56,8 +56,7 @@ copy "es_ES"
+ END LC_CTYPE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U0073><U0053><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "es_ES"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -79,41 +78,39 @@ n_sign_posn          1
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point        "<U002C>"
+-thousands_sep        ""
+-grouping             0;0
++copy "es_ES"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U006F><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
+-        "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
+-        "<U0073><U00E1><U0062>"
++      "<U006D><U0061><U0072>";"<U006D><U0069><U00E9>";/
++      "<U006A><U0075><U0065>";"<U0076><U0069><U0065>";/
++      "<U0073><U00E1><U0062>"
+ day     "<U0064><U006F><U006D><U0069><U006E><U0067><U006F>";/
+-        "<U006C><U0075><U006E><U0065><U0073>";/
+-        "<U006D><U0061><U0072><U0074><U0065><U0073>";/
+-        "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
+-        "<U006A><U0075><U0065><U0076><U0065><U0073>";/
+-        "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
+-        "<U0073><U00E1><U0062><U0061><U0064><U006F>"
++      "<U006C><U0075><U006E><U0065><U0073>";/
++      "<U006D><U0061><U0072><U0074><U0065><U0073>";/
++      "<U006D><U0069><U00E9><U0072><U0063><U006F><U006C><U0065><U0073>";/
++      "<U006A><U0075><U0065><U0076><U0065><U0073>";/
++      "<U0076><U0069><U0065><U0072><U006E><U0065><U0073>";/
++      "<U0073><U00E1><U0062><U0061><U0064><U006F>"
+ abmon   "<U0065><U006E><U0065>";"<U0066><U0065><U0062>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
+-        "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0062><U0072>";/
++      "<U006D><U0061><U0079>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U006C>";"<U0061><U0067><U006F>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U0069><U0063>"
+ mon     "<U0065><U006E><U0065><U0072><U006F>";/
+-        "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
+-        "<U006D><U0061><U0072><U007A><U006F>";/
+-        "<U0061><U0062><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0079><U006F>";/
+-        "<U006A><U0075><U006E><U0069><U006F>";/
+-        "<U006A><U0075><U006C><U0069><U006F>";/
+-        "<U0061><U0067><U006F><U0073><U0074><U006F>";/
+-        "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U0065><U0062><U0072><U0065><U0072><U006F>";/
++      "<U006D><U0061><U0072><U007A><U006F>";/
++      "<U0061><U0062><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0079><U006F>";/
++      "<U006A><U0075><U006E><U0069><U006F>";/
++      "<U006A><U0075><U006C><U0069><U006F>";/
++      "<U0061><U0067><U006F><U0073><U0074><U006F>";/
++      "<U0073><U0065><U0070><U0074><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U0075><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0069><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U0069><U0063><U0069><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_BE
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_BE
+@@ -79,7 +79,7 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point             "<U002C>"
+ thousands_sep             "<U002E>"
+-grouping                  0;0
++grouping                  3;3
+ END LC_NUMERIC
+ LC_TIME
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CA
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CA
+@@ -55,8 +55,7 @@ copy "en_CA"
+ END LC_COLLATE
+ LC_MESSAGES
+-yesexpr "<U005E><U005B><U006F><U004F><U0079><U0059><U005D><U002E><U002A>"
+-noexpr  "<U005E><U005B><U006E><U004E><U005D><U002E><U002A>"
++copy "fr_FR"
+ END LC_MESSAGES
+ LC_MONETARY
+@@ -78,41 +77,39 @@ n_sign_posn               0
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             "<U0020>"
+-grouping                  0;0
++copy "fr_FR"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0059><U002D><U0025><U006D><U002D><U0025><U0064>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_CH
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_CH
+@@ -64,41 +64,39 @@ copy  "de_CH"
+ END LC_MONETARY
+ LC_NUMERIC
+-decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++copy "de_CH"
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002E><U0020><U0025><U006D><U002E><U0020><U0025><U0079>"
+ t_fmt   "<U0025><U0054>"
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/fr_LU
++++ glibc-2.12-2-gc4ccff1/localedata/locales/fr_LU
+@@ -78,40 +78,40 @@ END LC_MONETARY
+ LC_NUMERIC
+ decimal_point             "<U002C>"
+-thousands_sep             ""
+-grouping                  0;0
++thousands_sep             "<U0020>"
++grouping                  3;3
+ END LC_NUMERIC
+ LC_TIME
+ abday   "<U0064><U0069><U006D>";"<U006C><U0075><U006E>";/
+-        "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
+-        "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
+-        "<U0073><U0061><U006D>"
++      "<U006D><U0061><U0072>";"<U006D><U0065><U0072>";/
++      "<U006A><U0065><U0075>";"<U0076><U0065><U006E>";/
++      "<U0073><U0061><U006D>"
+ day     "<U0064><U0069><U006D><U0061><U006E><U0063><U0068><U0065>";/
+-        "<U006C><U0075><U006E><U0064><U0069>";/
+-        "<U006D><U0061><U0072><U0064><U0069>";/
+-        "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
+-        "<U006A><U0065><U0075><U0064><U0069>";/
+-        "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
+-        "<U0073><U0061><U006D><U0065><U0064><U0069>"
++      "<U006C><U0075><U006E><U0064><U0069>";/
++      "<U006D><U0061><U0072><U0064><U0069>";/
++      "<U006D><U0065><U0072><U0063><U0072><U0065><U0064><U0069>";/
++      "<U006A><U0065><U0075><U0064><U0069>";/
++      "<U0076><U0065><U006E><U0064><U0072><U0065><U0064><U0069>";/
++      "<U0073><U0061><U006D><U0065><U0064><U0069>"
+ abmon   "<U006A><U0061><U006E>";"<U0066><U00E9><U0076>";/
+-        "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
+-        "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
+-        "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
+-        "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
+-        "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
++      "<U006D><U0061><U0072>";"<U0061><U0076><U0072>";/
++      "<U006D><U0061><U0069>";"<U006A><U0075><U006E>";/
++      "<U006A><U0075><U0069>";"<U0061><U006F><U00FB>";/
++      "<U0073><U0065><U0070>";"<U006F><U0063><U0074>";/
++      "<U006E><U006F><U0076>";"<U0064><U00E9><U0063>"
+ mon     "<U006A><U0061><U006E><U0076><U0069><U0065><U0072>";/
+-        "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
+-        "<U006D><U0061><U0072><U0073>";/
+-        "<U0061><U0076><U0072><U0069><U006C>";/
+-        "<U006D><U0061><U0069>";/
+-        "<U006A><U0075><U0069><U006E>";/
+-        "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
+-        "<U0061><U006F><U00FB><U0074>";/
+-        "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
+-        "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
+-        "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
++      "<U0066><U00E9><U0076><U0072><U0069><U0065><U0072>";/
++      "<U006D><U0061><U0072><U0073>";/
++      "<U0061><U0076><U0072><U0069><U006C>";/
++      "<U006D><U0061><U0069>";/
++      "<U006A><U0075><U0069><U006E>";/
++      "<U006A><U0075><U0069><U006C><U006C><U0065><U0074>";/
++      "<U0061><U006F><U00FB><U0074>";/
++      "<U0073><U0065><U0070><U0074><U0065><U006D><U0062><U0072><U0065>";/
++      "<U006F><U0063><U0074><U006F><U0062><U0072><U0065>";/
++      "<U006E><U006F><U0076><U0065><U006D><U0062><U0072><U0065>";/
++      "<U0064><U00E9><U0063><U0065><U006D><U0062><U0072><U0065>"
+ d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>"
+ d_fmt   "<U0025><U0064><U002E><U0025><U006D><U002E><U0025><U0059>"
+ t_fmt   "<U0025><U0054>"
diff --git a/src/patches/glibc/glibc-rh688980.patch b/src/patches/glibc/glibc-rh688980.patch
new file mode 100644 (file)
index 0000000..ce98926
--- /dev/null
@@ -0,0 +1,20 @@
+2011-05-11  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12625]
+       * misc/mntent_r.c (addmntent): Flush the stream after the output
+
+Index: glibc-2.12-2-gc4ccff1/misc/mntent_r.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/misc/mntent_r.c
++++ glibc-2.12-2-gc4ccff1/misc/mntent_r.c
+@@ -263,8 +263,8 @@ __addmntent (FILE *stream, const struct 
+                  mntcopy.mnt_type,
+                  mntcopy.mnt_opts,
+                  mntcopy.mnt_freq,
+-                 mntcopy.mnt_passno)
+-        < 0 ? 1 : 0);
++                 mntcopy.mnt_passno) < 0
++        || fflush (stream) != 0);
+ }
+ weak_alias (__addmntent, addmntent)
diff --git a/src/patches/glibc/glibc-rh689471.patch b/src/patches/glibc/glibc-rh689471.patch
new file mode 100644 (file)
index 0000000..4c7fc8a
--- /dev/null
@@ -0,0 +1,333 @@
+2011-03-20  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #12597]
+       * string/test-strncmp.c (do_page_test): New function.
+       (check2): Likewise.
+       (test_main): Call check2.
+       * sysdeps/x86_64/multiarch/strcmp.S: Properly cross page boundary.
+
+Index: glibc-2.12-2-gc4ccff1/string/test-strncmp.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/string/test-strncmp.c
++++ glibc-2.12-2-gc4ccff1/string/test-strncmp.c
+@@ -200,6 +200,27 @@ do_test (size_t align1, size_t align2, s
+ }
+ static void
++do_page_test (size_t offset1, size_t offset2, char *s2)
++{
++  char *s1;
++  int exp_result;
++
++  if (offset1 >= page_size || offset2 >= page_size)
++    return;
++
++  s1 = (char *) (buf1 + offset1);
++  s2 += offset2;
++
++  exp_result= *s1;
++  
++  FOR_EACH_IMPL (impl, 0)
++    {
++      check_result (impl, s1, s2, page_size, -exp_result);
++      check_result (impl, s2, s1, page_size, exp_result);
++    }
++}
++
++static void
+ do_random_tests (void)
+ {
+   size_t i, j, n, align1, align2, pos, len1, len2, size;
+@@ -312,6 +333,25 @@ check1 (void)
+     }
+ }
++static void
++check2 (void)
++{
++  size_t i;
++  char *s1, *s2;
++
++  s1 = (char *) buf1;
++  for (i = 0; i < page_size - 1; i++)
++    s1[i] = 23;
++  s1[i] = 0;
++
++  s2 = strdup (s1);
++
++  for (i = 0; i < 64; ++i)
++    do_page_test (3990 + i, 2635, s2);
++
++  free (s2);
++}
++
+ int
+ test_main (void)
+ {
+@@ -320,6 +360,7 @@ test_main (void)
+   test_init ();
+   check1 ();
++  check2 ();
+   printf ("%23s", "");
+   FOR_EACH_IMPL (impl, 0)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strcmp.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strcmp.S
+@@ -452,6 +452,7 @@ LABEL(loop_ashr_1_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_1_use_sse4_2)
++LABEL(nibble_ashr_1_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $1, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -499,7 +500,7 @@ LABEL(nibble_ashr_1_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $14, %ecx
+-      ja      LABEL(loop_ashr_1_use_sse4_2)
++      ja      LABEL(nibble_ashr_1_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -544,6 +545,7 @@ LABEL(loop_ashr_2_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_2_use_sse4_2)
++LABEL(nibble_ashr_2_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $2, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -591,7 +593,7 @@ LABEL(nibble_ashr_2_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $13, %ecx
+-      ja      LABEL(loop_ashr_2_use_sse4_2)
++      ja      LABEL(nibble_ashr_2_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -636,6 +638,7 @@ LABEL(loop_ashr_3_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_3_use_sse4_2)
++LABEL(nibble_ashr_3_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $3, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -683,7 +686,7 @@ LABEL(nibble_ashr_3_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $12, %ecx
+-      ja      LABEL(loop_ashr_3_use_sse4_2)
++      ja      LABEL(nibble_ashr_3_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -729,6 +732,7 @@ LABEL(loop_ashr_4_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_4_use_sse4_2)
++LABEL(nibble_ashr_4_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $4, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -776,7 +780,7 @@ LABEL(nibble_ashr_4_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $11, %ecx
+-      ja      LABEL(loop_ashr_4_use_sse4_2)
++      ja      LABEL(nibble_ashr_4_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -822,6 +826,7 @@ LABEL(loop_ashr_5_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_5_use_sse4_2)
++LABEL(nibble_ashr_5_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $5, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -870,7 +875,7 @@ LABEL(nibble_ashr_5_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $10, %ecx
+-      ja      LABEL(loop_ashr_5_use_sse4_2)
++      ja      LABEL(nibble_ashr_5_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -916,6 +921,7 @@ LABEL(loop_ashr_6_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_6_use_sse4_2)
++LABEL(nibble_ashr_6_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $6, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -963,7 +969,7 @@ LABEL(nibble_ashr_6_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $9, %ecx
+-      ja      LABEL(loop_ashr_6_use_sse4_2)
++      ja      LABEL(nibble_ashr_6_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1009,6 +1015,7 @@ LABEL(loop_ashr_7_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_7_use_sse4_2)
++LABEL(nibble_ashr_7_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $7, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1056,7 +1063,7 @@ LABEL(nibble_ashr_7_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $8, %ecx
+-      ja      LABEL(loop_ashr_7_use_sse4_2)
++      ja      LABEL(nibble_ashr_7_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1102,6 +1109,7 @@ LABEL(loop_ashr_8_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_8_use_sse4_2)
++LABEL(nibble_ashr_8_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $8, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1149,7 +1157,7 @@ LABEL(nibble_ashr_8_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $7, %ecx
+-      ja      LABEL(loop_ashr_8_use_sse4_2)
++      ja      LABEL(nibble_ashr_8_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1195,6 +1203,7 @@ LABEL(loop_ashr_9_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_9_use_sse4_2)
++LABEL(nibble_ashr_9_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $9, -16(%rdi, %rdx), %xmm0
+@@ -1243,7 +1252,7 @@ LABEL(nibble_ashr_9_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $6, %ecx
+-      ja      LABEL(loop_ashr_9_use_sse4_2)
++      ja      LABEL(nibble_ashr_9_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1289,6 +1298,7 @@ LABEL(loop_ashr_10_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_10_use_sse4_2)
++LABEL(nibble_ashr_10_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $10, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1336,7 +1346,7 @@ LABEL(nibble_ashr_10_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $5, %ecx
+-      ja      LABEL(loop_ashr_10_use_sse4_2)
++      ja      LABEL(nibble_ashr_10_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1382,6 +1392,7 @@ LABEL(loop_ashr_11_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_11_use_sse4_2)
++LABEL(nibble_ashr_11_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $11, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1429,7 +1440,7 @@ LABEL(nibble_ashr_11_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $4, %ecx
+-      ja      LABEL(loop_ashr_11_use_sse4_2)
++      ja      LABEL(nibble_ashr_11_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1475,6 +1486,7 @@ LABEL(loop_ashr_12_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_12_use_sse4_2)
++LABEL(nibble_ashr_12_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $12, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1522,7 +1534,7 @@ LABEL(nibble_ashr_12_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $3, %ecx
+-      ja      LABEL(loop_ashr_12_use_sse4_2)
++      ja      LABEL(nibble_ashr_12_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1569,6 +1581,7 @@ LABEL(loop_ashr_13_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_13_use_sse4_2)
++LABEL(nibble_ashr_13_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $13, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1616,7 +1629,7 @@ LABEL(nibble_ashr_13_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $2, %ecx
+-      ja      LABEL(loop_ashr_13_use_sse4_2)
++      ja      LABEL(nibble_ashr_13_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1663,6 +1676,7 @@ LABEL(loop_ashr_14_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_14_use_sse4_2)
++LABEL(nibble_ashr_14_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $14, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1710,7 +1724,7 @@ LABEL(nibble_ashr_14_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $1, %ecx
+-      ja      LABEL(loop_ashr_14_use_sse4_2)
++      ja      LABEL(nibble_ashr_14_use_sse4_2_restart)
+       jmp     LABEL(nibble_ashr_use_sse4_2_exit)
+@@ -1759,6 +1773,7 @@ LABEL(loop_ashr_15_use_sse4_2):
+       add     $16, %r10
+       jg      LABEL(nibble_ashr_15_use_sse4_2)
++LABEL(nibble_ashr_15_use_sse4_2_restart):
+       movdqa  (%rdi, %rdx), %xmm0
+       palignr $15, -16(%rdi, %rdx), %xmm0
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
+@@ -1806,7 +1821,7 @@ LABEL(nibble_ashr_15_use_sse4_2):
+       jae     LABEL(nibble_ashr_use_sse4_2_exit)
+ # endif
+       cmp     $0, %ecx
+-      ja      LABEL(loop_ashr_15_use_sse4_2)
++      ja      LABEL(nibble_ashr_15_use_sse4_2_restart)
+ LABEL(nibble_ashr_use_sse4_2_exit):
+ # if !defined USE_AS_STRCASECMP_L && !defined USE_AS_STRNCASECMP_L
diff --git a/src/patches/glibc/glibc-rh692177.patch b/src/patches/glibc/glibc-rh692177.patch
new file mode 100644 (file)
index 0000000..1036769
--- /dev/null
@@ -0,0 +1,137 @@
+2011-03-22  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word): Increment
+       round counter.
+       * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise.
+
+2011-03-20  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12587]
+       * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_check_word):
+       Handle cache information in CPU leaf 4.
+       * sysdeps/x86_64/cacheinfo.c (intel_check_word): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/sysconf.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/sysconf.c
+@@ -186,6 +186,57 @@ intel_check_word (int name, unsigned int
+           /* No need to look further.  */
+           break;
+       }
++      else if (byte == 0xff)
++      {
++        /* CPUID leaf 0x4 contains all the information.  We need to
++           iterate over it.  */
++        unsigned int eax;
++        unsigned int ebx;
++        unsigned int ecx;
++        unsigned int edx;
++
++        unsigned int round = 0;
++        while (1)
++          {
++            asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
++                          : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
++                          : "0" (4), "2" (round));
++
++            enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f;
++            if (type == null)
++              /* That was the end.  */
++              break;
++
++            unsigned int level = (eax >> 5) & 0x7;
++
++            if ((level == 1 && type == data
++                 && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE))
++                || (level == 1 && type == inst
++                    && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE))
++                || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE))
++                || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
++                || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE)))
++              {
++                unsigned int offset = M(name) - folded_rel_name;
++
++                if (offset == 0)
++                  /* Cache size.  */
++                  return (((ebx >> 22) + 1)
++                          * (((ebx >> 12) & 0x3ff) + 1)
++                          * ((ebx & 0xfff) + 1)
++                          * (ecx + 1));
++                if (offset == 1)
++                  return (ebx >> 22) + 1;
++
++                assert (offset == 2);
++                return (ebx & 0xfff) + 1;
++              }
++
++            ++round;
++          }
++        /* There is no other cache information anywhere else.  */
++        break;
++      }
+       else
+       {
+         if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/cacheinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/cacheinfo.c
+@@ -181,6 +181,57 @@ intel_check_word (int name, unsigned int
+           /* No need to look further.  */
+           break;
+       }
++      else if (byte == 0xff)
++      {
++        /* CPUID leaf 0x4 contains all the information.  We need to
++           iterate over it.  */
++        unsigned int eax;
++        unsigned int ebx;
++        unsigned int ecx;
++        unsigned int edx;
++
++        unsigned int round = 0;
++        while (1)
++          {
++            asm volatile ("xchgl %%ebx, %1; cpuid; xchgl %%ebx, %1"
++                          : "=a" (eax), "=r" (ebx), "=c" (ecx), "=d" (edx)
++                          : "0" (4), "2" (round));
++
++            enum { null = 0, data = 1, inst = 2, uni = 3 } type = eax & 0x1f;
++            if (type == null)
++              /* That was the end.  */
++              break;
++
++            unsigned int level = (eax >> 5) & 0x7;
++
++            if ((level == 1 && type == data
++                 && folded_rel_name == M(_SC_LEVEL1_DCACHE_SIZE))
++                || (level == 1 && type == inst
++                    && folded_rel_name == M(_SC_LEVEL1_ICACHE_SIZE))
++                || (level == 2 && folded_rel_name == M(_SC_LEVEL2_CACHE_SIZE))
++                || (level == 3 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
++                || (level == 4 && folded_rel_name == M(_SC_LEVEL4_CACHE_SIZE)))
++              {
++                unsigned int offset = M(name) - folded_rel_name;
++
++                if (offset == 0)
++                  /* Cache size.  */
++                  return (((ebx >> 22) + 1)
++                          * (((ebx >> 12) & 0x3ff) + 1)
++                          * ((ebx & 0xfff) + 1)
++                          * (ecx + 1));
++                if (offset == 1)
++                  return (ebx >> 22) + 1;
++
++                assert (offset == 2);
++                return (ebx & 0xfff) + 1;
++              }
++
++            ++round;
++          }
++        /* There is no other cache information anywhere else.  */
++        break;
++      }
+       else
+       {
+         if (byte == 0x49 && folded_rel_name == M(_SC_LEVEL3_CACHE_SIZE))
diff --git a/src/patches/glibc/glibc-rh692838.patch b/src/patches/glibc/glibc-rh692838.patch
new file mode 100644 (file)
index 0000000..aa2adf1
--- /dev/null
@@ -0,0 +1,6165 @@
+2011-05-09  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12541]
+       * locales/ar_IN: Update currency_symbol.
+       * locales/as_IN: Likewise.
+       * locales/bn_IN: Likewise.
+       * locales/en_IN: Likewise.
+       * locales/gu_IN: Likewise.
+       * locales/hi_IN: Likewise.
+       * locales/kn_IN: Likewise.
+       * locales/kok_IN: Likewise.
+       * locales/ks_IN: Likewise.
+       * locales/ml_IN: Likewise.
+       * locales/mr_IN: Likewise.
+       * locales/or_IN: Likewise.
+       * locales/pa_IN: Likewise.
+       * locales/sa_IN: Likewise.
+       * locales/sd_IN: Likewise.
+       * locales/ta_IN: Likewise.
+       * locales/te_IN: Likewise.
+       Patch by pravin.d.s@gmail.com.
+
+2011-05-09  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12711]
+       * locale/C-translit.h.in: Add entry for U20B9.
+       Patch by pravin.d.s@gmail.com.
+
+Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h
++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h
+@@ -1,4 +1,4 @@
+-#define NTRANSLIT 1353
++#define NTRANSLIT 1354
+ static const uint32_t translit_from_idx[] =
+ {
+      0,    2,    4,    6,    8,   10,   12,   14,   16,   18,   20,   22,
+@@ -113,7 +113,7 @@ static const uint32_t translit_from_idx[
+   2616, 2618, 2620, 2622, 2624, 2626, 2628, 2630, 2632, 2634, 2636, 2638,
+   2640, 2642, 2644, 2646, 2648, 2650, 2652, 2654, 2656, 2658, 2660, 2662,
+   2664, 2666, 2668, 2670, 2672, 2674, 2676, 2678, 2680, 2682, 2684, 2686,
+-  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704
++  2688, 2690, 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2706
+ };
+ static const wchar_t translit_from_tbl[] =
+   L"\x00a0" L"\0" L"\x00a9" L"\0" L"\x00ab" L"\0" L"\x00ad" L"\0" L"\x00ae"
+@@ -134,334 +134,334 @@ static const wchar_t translit_from_tbl[]
+   L"\0" L"\x2035" L"\0" L"\x2036" L"\0" L"\x2037" L"\0" L"\x2039" L"\0"
+   L"\x203a" L"\0" L"\x203c" L"\0" L"\x2044" L"\0" L"\x2047" L"\0" L"\x2048"
+   L"\0" L"\x2049" L"\0" L"\x205f" L"\0" L"\x2060" L"\0" L"\x2061" L"\0"
+-  L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x2100"
+-  L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0" L"\x2106" L"\0"
+-  L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d" L"\0" L"\x210e"
+-  L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0" L"\x2113" L"\0"
+-  L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a" L"\0" L"\x211b"
+-  L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0" L"\x2122" L"\0"
+-  L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c" L"\0" L"\x212d"
+-  L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0" L"\x2131" L"\0"
+-  L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145" L"\0" L"\x2146"
+-  L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0" L"\x2153" L"\0"
+-  L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157" L"\0" L"\x2158"
+-  L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0" L"\x215c" L"\0"
+-  L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160" L"\0" L"\x2161"
+-  L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0" L"\x2165" L"\0"
+-  L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169" L"\0" L"\x216a"
+-  L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0" L"\x216e" L"\0"
+-  L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172" L"\0" L"\x2173"
+-  L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0" L"\x2177" L"\0"
+-  L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b" L"\0" L"\x217c"
+-  L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0" L"\x2190" L"\0"
+-  L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2" L"\0" L"\x21d4"
+-  L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0" L"\x2217" L"\0"
+-  L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264" L"\0" L"\x2265"
+-  L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0" L"\x22d9" L"\0"
+-  L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403" L"\0" L"\x2404"
+-  L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0" L"\x2408" L"\0"
+-  L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c" L"\0" L"\x240d"
+-  L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0" L"\x2411" L"\0"
+-  L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415" L"\0" L"\x2416"
+-  L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0" L"\x241a" L"\0"
+-  L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e" L"\0" L"\x241f"
+-  L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0" L"\x2424" L"\0"
+-  L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463" L"\0" L"\x2464"
+-  L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0" L"\x2468" L"\0"
+-  L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c" L"\0" L"\x246d"
+-  L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0" L"\x2471" L"\0"
+-  L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475" L"\0" L"\x2476"
+-  L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0" L"\x247a" L"\0"
+-  L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e" L"\0" L"\x247f"
+-  L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0" L"\x2483" L"\0"
+-  L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487" L"\0" L"\x2488"
+-  L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0" L"\x248c" L"\0"
+-  L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490" L"\0" L"\x2491"
+-  L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0" L"\x2495" L"\0"
+-  L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499" L"\0" L"\x249a"
+-  L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0" L"\x249e" L"\0"
+-  L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2" L"\0" L"\x24a3"
+-  L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0" L"\x24a7" L"\0"
+-  L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab" L"\0" L"\x24ac"
+-  L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0" L"\x24b0" L"\0"
+-  L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4" L"\0" L"\x24b5"
+-  L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0" L"\x24b9" L"\0"
+-  L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd" L"\0" L"\x24be"
+-  L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0" L"\x24c2" L"\0"
+-  L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6" L"\0" L"\x24c7"
+-  L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0" L"\x24cb" L"\0"
+-  L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf" L"\0" L"\x24d0"
+-  L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0" L"\x24d4" L"\0"
+-  L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8" L"\0" L"\x24d9"
+-  L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0" L"\x24dd" L"\0"
+-  L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1" L"\0" L"\x24e2"
+-  L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0" L"\x24e6" L"\0"
+-  L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea" L"\0" L"\x2500"
+-  L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0" L"\x2514" L"\0"
+-  L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c" L"\0" L"\x2534"
+-  L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0" L"\x2a75" L"\0"
+-  L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251" L"\0" L"\x3252"
+-  L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0" L"\x3256" L"\0"
+-  L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a" L"\0" L"\x325b"
+-  L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0" L"\x325f" L"\0"
+-  L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4" L"\0" L"\x32b5"
+-  L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0" L"\x32b9" L"\0"
+-  L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd" L"\0" L"\x32be"
+-  L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0" L"\x3373" L"\0"
+-  L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380" L"\0" L"\x3381"
+-  L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0" L"\x3385" L"\0"
+-  L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389" L"\0" L"\x338a"
+-  L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0" L"\x338e" L"\0"
+-  L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392" L"\0" L"\x3393"
+-  L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0" L"\x3397" L"\0"
+-  L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b" L"\0" L"\x339c"
+-  L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0" L"\x33a0" L"\0"
+-  L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4" L"\0" L"\x33a5"
+-  L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0" L"\x33a9" L"\0"
+-  L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad" L"\0" L"\x33ae"
+-  L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0" L"\x33b2" L"\0"
+-  L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6" L"\0" L"\x33b7"
+-  L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0" L"\x33bb" L"\0"
+-  L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf" L"\0" L"\x33c2"
+-  L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0" L"\x33c6" L"\0"
+-  L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca" L"\0" L"\x33cb"
+-  L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0" L"\x33cf" L"\0"
+-  L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3" L"\0" L"\x33d4"
+-  L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0" L"\x33d8" L"\0"
+-  L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc" L"\0" L"\x33dd"
+-  L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0" L"\xfb03" L"\0"
+-  L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00" L"\0" L"\xfe01"
+-  L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0" L"\xfe05" L"\0"
+-  L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09" L"\0" L"\xfe0a"
+-  L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0" L"\xfe0e" L"\0"
+-  L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f" L"\0" L"\xfe50"
+-  L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0" L"\xfe56" L"\0"
+-  L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b" L"\0" L"\xfe5c"
+-  L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0" L"\xfe62" L"\0"
+-  L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66" L"\0" L"\xfe68"
+-  L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0" L"\xfeff" L"\0"
+-  L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04" L"\0" L"\xff05"
+-  L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0" L"\xff09" L"\0"
+-  L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d" L"\0" L"\xff0e"
+-  L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0" L"\xff12" L"\0"
+-  L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16" L"\0" L"\xff17"
+-  L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0" L"\xff1b" L"\0"
+-  L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f" L"\0" L"\xff20"
+-  L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0" L"\xff24" L"\0"
+-  L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28" L"\0" L"\xff29"
+-  L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0" L"\xff2d" L"\0"
+-  L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31" L"\0" L"\xff32"
+-  L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0" L"\xff36" L"\0"
+-  L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a" L"\0" L"\xff3b"
+-  L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0" L"\xff3f" L"\0"
+-  L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43" L"\0" L"\xff44"
+-  L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0" L"\xff48" L"\0"
+-  L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c" L"\0" L"\xff4d"
+-  L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0" L"\xff51" L"\0"
+-  L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55" L"\0" L"\xff56"
+-  L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0" L"\xff5a" L"\0"
+-  L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e" L"\0"
+-  L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0" L"\x0001d403"
+-  L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406" L"\0"
+-  L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0" L"\x0001d40a"
+-  L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d" L"\0"
+-  L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0" L"\x0001d411"
+-  L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414" L"\0"
+-  L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0" L"\x0001d418"
+-  L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b" L"\0"
+-  L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0" L"\x0001d41f"
+-  L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422" L"\0"
+-  L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0" L"\x0001d426"
+-  L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429" L"\0"
+-  L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0" L"\x0001d42d"
+-  L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430" L"\0"
+-  L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0" L"\x0001d434"
+-  L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437" L"\0"
+-  L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0" L"\x0001d43b"
+-  L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e" L"\0"
+-  L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0" L"\x0001d442"
+-  L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445" L"\0"
+-  L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0" L"\x0001d449"
+-  L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c" L"\0"
+-  L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0" L"\x0001d450"
+-  L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453" L"\0"
+-  L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0" L"\x0001d458"
+-  L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b" L"\0"
+-  L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0" L"\x0001d45f"
+-  L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462" L"\0"
+-  L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0" L"\x0001d466"
+-  L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469" L"\0"
+-  L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0" L"\x0001d46d"
+-  L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470" L"\0"
+-  L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0" L"\x0001d474"
+-  L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477" L"\0"
+-  L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0" L"\x0001d47b"
+-  L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e" L"\0"
+-  L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0" L"\x0001d482"
+-  L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485" L"\0"
+-  L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0" L"\x0001d489"
+-  L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c" L"\0"
+-  L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0" L"\x0001d490"
+-  L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493" L"\0"
+-  L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0" L"\x0001d497"
+-  L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a" L"\0"
+-  L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0" L"\x0001d49f"
+-  L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6" L"\0"
+-  L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0" L"\x0001d4ac"
+-  L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0" L"\0"
+-  L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0" L"\x0001d4b4"
+-  L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7" L"\0"
+-  L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0" L"\x0001d4bd"
+-  L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0" L"\0"
+-  L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0" L"\x0001d4c6"
+-  L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9" L"\0"
+-  L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0" L"\x0001d4cd"
+-  L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0" L"\0"
+-  L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0" L"\x0001d4d4"
+-  L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7" L"\0"
+-  L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0" L"\x0001d4db"
+-  L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de" L"\0"
+-  L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0" L"\x0001d4e2"
+-  L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5" L"\0"
+-  L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0" L"\x0001d4e9"
+-  L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec" L"\0"
+-  L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0" L"\x0001d4f0"
+-  L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3" L"\0"
+-  L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0" L"\x0001d4f7"
+-  L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa" L"\0"
+-  L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0" L"\x0001d4fe"
+-  L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501" L"\0"
+-  L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0" L"\x0001d505"
+-  L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509" L"\0"
+-  L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0" L"\x0001d50f"
+-  L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512" L"\0"
+-  L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0" L"\x0001d517"
+-  L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a" L"\0"
+-  L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0" L"\x0001d51f"
+-  L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522" L"\0"
+-  L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0" L"\x0001d526"
+-  L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529" L"\0"
+-  L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0" L"\x0001d52d"
+-  L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530" L"\0"
+-  L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0" L"\x0001d534"
+-  L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537" L"\0"
+-  L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0" L"\x0001d53c"
+-  L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540" L"\0"
+-  L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0" L"\x0001d544"
+-  L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b" L"\0"
+-  L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0" L"\x0001d54f"
+-  L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553" L"\0"
+-  L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0" L"\x0001d557"
+-  L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a" L"\0"
+-  L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0" L"\x0001d55e"
+-  L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561" L"\0"
+-  L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0" L"\x0001d565"
+-  L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568" L"\0"
+-  L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0" L"\x0001d56c"
+-  L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f" L"\0"
+-  L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0" L"\x0001d573"
+-  L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576" L"\0"
+-  L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0" L"\x0001d57a"
+-  L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d" L"\0"
+-  L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0" L"\x0001d581"
+-  L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584" L"\0"
+-  L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0" L"\x0001d588"
+-  L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b" L"\0"
+-  L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0" L"\x0001d58f"
+-  L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592" L"\0"
+-  L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0" L"\x0001d596"
+-  L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599" L"\0"
+-  L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0" L"\x0001d59d"
+-  L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0" L"\0"
+-  L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0" L"\x0001d5a4"
+-  L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7" L"\0"
+-  L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0" L"\x0001d5ab"
+-  L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae" L"\0"
+-  L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0" L"\x0001d5b2"
+-  L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5" L"\0"
+-  L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0" L"\x0001d5b9"
+-  L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc" L"\0"
+-  L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0" L"\x0001d5c0"
+-  L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3" L"\0"
+-  L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0" L"\x0001d5c7"
+-  L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca" L"\0"
+-  L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0" L"\x0001d5ce"
+-  L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1" L"\0"
+-  L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0" L"\x0001d5d5"
+-  L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8" L"\0"
+-  L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0" L"\x0001d5dc"
+-  L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df" L"\0"
+-  L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0" L"\x0001d5e3"
+-  L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6" L"\0"
+-  L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0" L"\x0001d5ea"
+-  L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed" L"\0"
+-  L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0" L"\x0001d5f1"
+-  L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4" L"\0"
+-  L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0" L"\x0001d5f8"
+-  L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb" L"\0"
+-  L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0" L"\x0001d5ff"
+-  L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602" L"\0"
+-  L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0" L"\x0001d606"
+-  L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609" L"\0"
+-  L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0" L"\x0001d60d"
+-  L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610" L"\0"
+-  L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0" L"\x0001d614"
+-  L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617" L"\0"
+-  L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0" L"\x0001d61b"
+-  L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e" L"\0"
+-  L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0" L"\x0001d622"
+-  L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625" L"\0"
+-  L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0" L"\x0001d629"
+-  L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c" L"\0"
+-  L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0" L"\x0001d630"
+-  L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633" L"\0"
+-  L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0" L"\x0001d637"
+-  L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a" L"\0"
+-  L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0" L"\x0001d63e"
+-  L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641" L"\0"
+-  L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0" L"\x0001d645"
+-  L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648" L"\0"
+-  L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0" L"\x0001d64c"
+-  L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f" L"\0"
+-  L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0" L"\x0001d653"
+-  L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656" L"\0"
+-  L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0" L"\x0001d65a"
+-  L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d" L"\0"
+-  L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0" L"\x0001d661"
+-  L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664" L"\0"
+-  L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0" L"\x0001d668"
+-  L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b" L"\0"
+-  L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0" L"\x0001d66f"
+-  L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672" L"\0"
+-  L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0" L"\x0001d676"
+-  L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679" L"\0"
+-  L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0" L"\x0001d67d"
+-  L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680" L"\0"
+-  L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0" L"\x0001d684"
+-  L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687" L"\0"
+-  L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0" L"\x0001d68b"
+-  L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e" L"\0"
+-  L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0" L"\x0001d692"
+-  L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695" L"\0"
+-  L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0" L"\x0001d699"
+-  L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c" L"\0"
+-  L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0" L"\x0001d6a0"
+-  L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3" L"\0"
+-  L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0" L"\x0001d7d1"
+-  L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4" L"\0"
+-  L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0" L"\x0001d7d8"
+-  L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db" L"\0"
+-  L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0" L"\x0001d7df"
+-  L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2" L"\0"
+-  L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0" L"\x0001d7e6"
+-  L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9" L"\0"
+-  L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0" L"\x0001d7ed"
+-  L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0" L"\0"
+-  L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0" L"\x0001d7f4"
+-  L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7" L"\0"
+-  L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0" L"\x0001d7fb"
+-  L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe" L"\0"
+-  L"\x0001d7ff";
++  L"\x2062" L"\0" L"\x2063" L"\0" L"\x20a8" L"\0" L"\x20ac" L"\0" L"\x20b9"
++  L"\0" L"\x2100" L"\0" L"\x2101" L"\0" L"\x2102" L"\0" L"\x2105" L"\0"
++  L"\x2106" L"\0" L"\x210a" L"\0" L"\x210b" L"\0" L"\x210c" L"\0" L"\x210d"
++  L"\0" L"\x210e" L"\0" L"\x2110" L"\0" L"\x2111" L"\0" L"\x2112" L"\0"
++  L"\x2113" L"\0" L"\x2115" L"\0" L"\x2116" L"\0" L"\x2119" L"\0" L"\x211a"
++  L"\0" L"\x211b" L"\0" L"\x211c" L"\0" L"\x211d" L"\0" L"\x2121" L"\0"
++  L"\x2122" L"\0" L"\x2124" L"\0" L"\x2126" L"\0" L"\x2128" L"\0" L"\x212c"
++  L"\0" L"\x212d" L"\0" L"\x212e" L"\0" L"\x212f" L"\0" L"\x2130" L"\0"
++  L"\x2131" L"\0" L"\x2133" L"\0" L"\x2134" L"\0" L"\x2139" L"\0" L"\x2145"
++  L"\0" L"\x2146" L"\0" L"\x2147" L"\0" L"\x2148" L"\0" L"\x2149" L"\0"
++  L"\x2153" L"\0" L"\x2154" L"\0" L"\x2155" L"\0" L"\x2156" L"\0" L"\x2157"
++  L"\0" L"\x2158" L"\0" L"\x2159" L"\0" L"\x215a" L"\0" L"\x215b" L"\0"
++  L"\x215c" L"\0" L"\x215d" L"\0" L"\x215e" L"\0" L"\x215f" L"\0" L"\x2160"
++  L"\0" L"\x2161" L"\0" L"\x2162" L"\0" L"\x2163" L"\0" L"\x2164" L"\0"
++  L"\x2165" L"\0" L"\x2166" L"\0" L"\x2167" L"\0" L"\x2168" L"\0" L"\x2169"
++  L"\0" L"\x216a" L"\0" L"\x216b" L"\0" L"\x216c" L"\0" L"\x216d" L"\0"
++  L"\x216e" L"\0" L"\x216f" L"\0" L"\x2170" L"\0" L"\x2171" L"\0" L"\x2172"
++  L"\0" L"\x2173" L"\0" L"\x2174" L"\0" L"\x2175" L"\0" L"\x2176" L"\0"
++  L"\x2177" L"\0" L"\x2178" L"\0" L"\x2179" L"\0" L"\x217a" L"\0" L"\x217b"
++  L"\0" L"\x217c" L"\0" L"\x217d" L"\0" L"\x217e" L"\0" L"\x217f" L"\0"
++  L"\x2190" L"\0" L"\x2192" L"\0" L"\x2194" L"\0" L"\x21d0" L"\0" L"\x21d2"
++  L"\0" L"\x21d4" L"\0" L"\x2212" L"\0" L"\x2215" L"\0" L"\x2216" L"\0"
++  L"\x2217" L"\0" L"\x2223" L"\0" L"\x2236" L"\0" L"\x223c" L"\0" L"\x2264"
++  L"\0" L"\x2265" L"\0" L"\x226a" L"\0" L"\x226b" L"\0" L"\x22d8" L"\0"
++  L"\x22d9" L"\0" L"\x2400" L"\0" L"\x2401" L"\0" L"\x2402" L"\0" L"\x2403"
++  L"\0" L"\x2404" L"\0" L"\x2405" L"\0" L"\x2406" L"\0" L"\x2407" L"\0"
++  L"\x2408" L"\0" L"\x2409" L"\0" L"\x240a" L"\0" L"\x240b" L"\0" L"\x240c"
++  L"\0" L"\x240d" L"\0" L"\x240e" L"\0" L"\x240f" L"\0" L"\x2410" L"\0"
++  L"\x2411" L"\0" L"\x2412" L"\0" L"\x2413" L"\0" L"\x2414" L"\0" L"\x2415"
++  L"\0" L"\x2416" L"\0" L"\x2417" L"\0" L"\x2418" L"\0" L"\x2419" L"\0"
++  L"\x241a" L"\0" L"\x241b" L"\0" L"\x241c" L"\0" L"\x241d" L"\0" L"\x241e"
++  L"\0" L"\x241f" L"\0" L"\x2420" L"\0" L"\x2421" L"\0" L"\x2423" L"\0"
++  L"\x2424" L"\0" L"\x2460" L"\0" L"\x2461" L"\0" L"\x2462" L"\0" L"\x2463"
++  L"\0" L"\x2464" L"\0" L"\x2465" L"\0" L"\x2466" L"\0" L"\x2467" L"\0"
++  L"\x2468" L"\0" L"\x2469" L"\0" L"\x246a" L"\0" L"\x246b" L"\0" L"\x246c"
++  L"\0" L"\x246d" L"\0" L"\x246e" L"\0" L"\x246f" L"\0" L"\x2470" L"\0"
++  L"\x2471" L"\0" L"\x2472" L"\0" L"\x2473" L"\0" L"\x2474" L"\0" L"\x2475"
++  L"\0" L"\x2476" L"\0" L"\x2477" L"\0" L"\x2478" L"\0" L"\x2479" L"\0"
++  L"\x247a" L"\0" L"\x247b" L"\0" L"\x247c" L"\0" L"\x247d" L"\0" L"\x247e"
++  L"\0" L"\x247f" L"\0" L"\x2480" L"\0" L"\x2481" L"\0" L"\x2482" L"\0"
++  L"\x2483" L"\0" L"\x2484" L"\0" L"\x2485" L"\0" L"\x2486" L"\0" L"\x2487"
++  L"\0" L"\x2488" L"\0" L"\x2489" L"\0" L"\x248a" L"\0" L"\x248b" L"\0"
++  L"\x248c" L"\0" L"\x248d" L"\0" L"\x248e" L"\0" L"\x248f" L"\0" L"\x2490"
++  L"\0" L"\x2491" L"\0" L"\x2492" L"\0" L"\x2493" L"\0" L"\x2494" L"\0"
++  L"\x2495" L"\0" L"\x2496" L"\0" L"\x2497" L"\0" L"\x2498" L"\0" L"\x2499"
++  L"\0" L"\x249a" L"\0" L"\x249b" L"\0" L"\x249c" L"\0" L"\x249d" L"\0"
++  L"\x249e" L"\0" L"\x249f" L"\0" L"\x24a0" L"\0" L"\x24a1" L"\0" L"\x24a2"
++  L"\0" L"\x24a3" L"\0" L"\x24a4" L"\0" L"\x24a5" L"\0" L"\x24a6" L"\0"
++  L"\x24a7" L"\0" L"\x24a8" L"\0" L"\x24a9" L"\0" L"\x24aa" L"\0" L"\x24ab"
++  L"\0" L"\x24ac" L"\0" L"\x24ad" L"\0" L"\x24ae" L"\0" L"\x24af" L"\0"
++  L"\x24b0" L"\0" L"\x24b1" L"\0" L"\x24b2" L"\0" L"\x24b3" L"\0" L"\x24b4"
++  L"\0" L"\x24b5" L"\0" L"\x24b6" L"\0" L"\x24b7" L"\0" L"\x24b8" L"\0"
++  L"\x24b9" L"\0" L"\x24ba" L"\0" L"\x24bb" L"\0" L"\x24bc" L"\0" L"\x24bd"
++  L"\0" L"\x24be" L"\0" L"\x24bf" L"\0" L"\x24c0" L"\0" L"\x24c1" L"\0"
++  L"\x24c2" L"\0" L"\x24c3" L"\0" L"\x24c4" L"\0" L"\x24c5" L"\0" L"\x24c6"
++  L"\0" L"\x24c7" L"\0" L"\x24c8" L"\0" L"\x24c9" L"\0" L"\x24ca" L"\0"
++  L"\x24cb" L"\0" L"\x24cc" L"\0" L"\x24cd" L"\0" L"\x24ce" L"\0" L"\x24cf"
++  L"\0" L"\x24d0" L"\0" L"\x24d1" L"\0" L"\x24d2" L"\0" L"\x24d3" L"\0"
++  L"\x24d4" L"\0" L"\x24d5" L"\0" L"\x24d6" L"\0" L"\x24d7" L"\0" L"\x24d8"
++  L"\0" L"\x24d9" L"\0" L"\x24da" L"\0" L"\x24db" L"\0" L"\x24dc" L"\0"
++  L"\x24dd" L"\0" L"\x24de" L"\0" L"\x24df" L"\0" L"\x24e0" L"\0" L"\x24e1"
++  L"\0" L"\x24e2" L"\0" L"\x24e3" L"\0" L"\x24e4" L"\0" L"\x24e5" L"\0"
++  L"\x24e6" L"\0" L"\x24e7" L"\0" L"\x24e8" L"\0" L"\x24e9" L"\0" L"\x24ea"
++  L"\0" L"\x2500" L"\0" L"\x2502" L"\0" L"\x250c" L"\0" L"\x2510" L"\0"
++  L"\x2514" L"\0" L"\x2518" L"\0" L"\x251c" L"\0" L"\x2524" L"\0" L"\x252c"
++  L"\0" L"\x2534" L"\0" L"\x253c" L"\0" L"\x25e6" L"\0" L"\x2a74" L"\0"
++  L"\x2a75" L"\0" L"\x2a76" L"\0" L"\x3000" L"\0" L"\x30a0" L"\0" L"\x3251"
++  L"\0" L"\x3252" L"\0" L"\x3253" L"\0" L"\x3254" L"\0" L"\x3255" L"\0"
++  L"\x3256" L"\0" L"\x3257" L"\0" L"\x3258" L"\0" L"\x3259" L"\0" L"\x325a"
++  L"\0" L"\x325b" L"\0" L"\x325c" L"\0" L"\x325d" L"\0" L"\x325e" L"\0"
++  L"\x325f" L"\0" L"\x32b1" L"\0" L"\x32b2" L"\0" L"\x32b3" L"\0" L"\x32b4"
++  L"\0" L"\x32b5" L"\0" L"\x32b6" L"\0" L"\x32b7" L"\0" L"\x32b8" L"\0"
++  L"\x32b9" L"\0" L"\x32ba" L"\0" L"\x32bb" L"\0" L"\x32bc" L"\0" L"\x32bd"
++  L"\0" L"\x32be" L"\0" L"\x32bf" L"\0" L"\x3371" L"\0" L"\x3372" L"\0"
++  L"\x3373" L"\0" L"\x3374" L"\0" L"\x3375" L"\0" L"\x3376" L"\0" L"\x3380"
++  L"\0" L"\x3381" L"\0" L"\x3382" L"\0" L"\x3383" L"\0" L"\x3384" L"\0"
++  L"\x3385" L"\0" L"\x3386" L"\0" L"\x3387" L"\0" L"\x3388" L"\0" L"\x3389"
++  L"\0" L"\x338a" L"\0" L"\x338b" L"\0" L"\x338c" L"\0" L"\x338d" L"\0"
++  L"\x338e" L"\0" L"\x338f" L"\0" L"\x3390" L"\0" L"\x3391" L"\0" L"\x3392"
++  L"\0" L"\x3393" L"\0" L"\x3394" L"\0" L"\x3395" L"\0" L"\x3396" L"\0"
++  L"\x3397" L"\0" L"\x3398" L"\0" L"\x3399" L"\0" L"\x339a" L"\0" L"\x339b"
++  L"\0" L"\x339c" L"\0" L"\x339d" L"\0" L"\x339e" L"\0" L"\x339f" L"\0"
++  L"\x33a0" L"\0" L"\x33a1" L"\0" L"\x33a2" L"\0" L"\x33a3" L"\0" L"\x33a4"
++  L"\0" L"\x33a5" L"\0" L"\x33a6" L"\0" L"\x33a7" L"\0" L"\x33a8" L"\0"
++  L"\x33a9" L"\0" L"\x33aa" L"\0" L"\x33ab" L"\0" L"\x33ac" L"\0" L"\x33ad"
++  L"\0" L"\x33ae" L"\0" L"\x33af" L"\0" L"\x33b0" L"\0" L"\x33b1" L"\0"
++  L"\x33b2" L"\0" L"\x33b3" L"\0" L"\x33b4" L"\0" L"\x33b5" L"\0" L"\x33b6"
++  L"\0" L"\x33b7" L"\0" L"\x33b8" L"\0" L"\x33b9" L"\0" L"\x33ba" L"\0"
++  L"\x33bb" L"\0" L"\x33bc" L"\0" L"\x33bd" L"\0" L"\x33be" L"\0" L"\x33bf"
++  L"\0" L"\x33c2" L"\0" L"\x33c3" L"\0" L"\x33c4" L"\0" L"\x33c5" L"\0"
++  L"\x33c6" L"\0" L"\x33c7" L"\0" L"\x33c8" L"\0" L"\x33c9" L"\0" L"\x33ca"
++  L"\0" L"\x33cb" L"\0" L"\x33cc" L"\0" L"\x33cd" L"\0" L"\x33ce" L"\0"
++  L"\x33cf" L"\0" L"\x33d0" L"\0" L"\x33d1" L"\0" L"\x33d2" L"\0" L"\x33d3"
++  L"\0" L"\x33d4" L"\0" L"\x33d5" L"\0" L"\x33d6" L"\0" L"\x33d7" L"\0"
++  L"\x33d8" L"\0" L"\x33d9" L"\0" L"\x33da" L"\0" L"\x33db" L"\0" L"\x33dc"
++  L"\0" L"\x33dd" L"\0" L"\xfb00" L"\0" L"\xfb01" L"\0" L"\xfb02" L"\0"
++  L"\xfb03" L"\0" L"\xfb04" L"\0" L"\xfb06" L"\0" L"\xfb29" L"\0" L"\xfe00"
++  L"\0" L"\xfe01" L"\0" L"\xfe02" L"\0" L"\xfe03" L"\0" L"\xfe04" L"\0"
++  L"\xfe05" L"\0" L"\xfe06" L"\0" L"\xfe07" L"\0" L"\xfe08" L"\0" L"\xfe09"
++  L"\0" L"\xfe0a" L"\0" L"\xfe0b" L"\0" L"\xfe0c" L"\0" L"\xfe0d" L"\0"
++  L"\xfe0e" L"\0" L"\xfe0f" L"\0" L"\xfe4d" L"\0" L"\xfe4e" L"\0" L"\xfe4f"
++  L"\0" L"\xfe50" L"\0" L"\xfe52" L"\0" L"\xfe54" L"\0" L"\xfe55" L"\0"
++  L"\xfe56" L"\0" L"\xfe57" L"\0" L"\xfe59" L"\0" L"\xfe5a" L"\0" L"\xfe5b"
++  L"\0" L"\xfe5c" L"\0" L"\xfe5f" L"\0" L"\xfe60" L"\0" L"\xfe61" L"\0"
++  L"\xfe62" L"\0" L"\xfe63" L"\0" L"\xfe64" L"\0" L"\xfe65" L"\0" L"\xfe66"
++  L"\0" L"\xfe68" L"\0" L"\xfe69" L"\0" L"\xfe6a" L"\0" L"\xfe6b" L"\0"
++  L"\xfeff" L"\0" L"\xff01" L"\0" L"\xff02" L"\0" L"\xff03" L"\0" L"\xff04"
++  L"\0" L"\xff05" L"\0" L"\xff06" L"\0" L"\xff07" L"\0" L"\xff08" L"\0"
++  L"\xff09" L"\0" L"\xff0a" L"\0" L"\xff0b" L"\0" L"\xff0c" L"\0" L"\xff0d"
++  L"\0" L"\xff0e" L"\0" L"\xff0f" L"\0" L"\xff10" L"\0" L"\xff11" L"\0"
++  L"\xff12" L"\0" L"\xff13" L"\0" L"\xff14" L"\0" L"\xff15" L"\0" L"\xff16"
++  L"\0" L"\xff17" L"\0" L"\xff18" L"\0" L"\xff19" L"\0" L"\xff1a" L"\0"
++  L"\xff1b" L"\0" L"\xff1c" L"\0" L"\xff1d" L"\0" L"\xff1e" L"\0" L"\xff1f"
++  L"\0" L"\xff20" L"\0" L"\xff21" L"\0" L"\xff22" L"\0" L"\xff23" L"\0"
++  L"\xff24" L"\0" L"\xff25" L"\0" L"\xff26" L"\0" L"\xff27" L"\0" L"\xff28"
++  L"\0" L"\xff29" L"\0" L"\xff2a" L"\0" L"\xff2b" L"\0" L"\xff2c" L"\0"
++  L"\xff2d" L"\0" L"\xff2e" L"\0" L"\xff2f" L"\0" L"\xff30" L"\0" L"\xff31"
++  L"\0" L"\xff32" L"\0" L"\xff33" L"\0" L"\xff34" L"\0" L"\xff35" L"\0"
++  L"\xff36" L"\0" L"\xff37" L"\0" L"\xff38" L"\0" L"\xff39" L"\0" L"\xff3a"
++  L"\0" L"\xff3b" L"\0" L"\xff3c" L"\0" L"\xff3d" L"\0" L"\xff3e" L"\0"
++  L"\xff3f" L"\0" L"\xff40" L"\0" L"\xff41" L"\0" L"\xff42" L"\0" L"\xff43"
++  L"\0" L"\xff44" L"\0" L"\xff45" L"\0" L"\xff46" L"\0" L"\xff47" L"\0"
++  L"\xff48" L"\0" L"\xff49" L"\0" L"\xff4a" L"\0" L"\xff4b" L"\0" L"\xff4c"
++  L"\0" L"\xff4d" L"\0" L"\xff4e" L"\0" L"\xff4f" L"\0" L"\xff50" L"\0"
++  L"\xff51" L"\0" L"\xff52" L"\0" L"\xff53" L"\0" L"\xff54" L"\0" L"\xff55"
++  L"\0" L"\xff56" L"\0" L"\xff57" L"\0" L"\xff58" L"\0" L"\xff59" L"\0"
++  L"\xff5a" L"\0" L"\xff5b" L"\0" L"\xff5c" L"\0" L"\xff5d" L"\0" L"\xff5e"
++  L"\0" L"\x0001d400" L"\0" L"\x0001d401" L"\0" L"\x0001d402" L"\0"
++  L"\x0001d403" L"\0" L"\x0001d404" L"\0" L"\x0001d405" L"\0" L"\x0001d406"
++  L"\0" L"\x0001d407" L"\0" L"\x0001d408" L"\0" L"\x0001d409" L"\0"
++  L"\x0001d40a" L"\0" L"\x0001d40b" L"\0" L"\x0001d40c" L"\0" L"\x0001d40d"
++  L"\0" L"\x0001d40e" L"\0" L"\x0001d40f" L"\0" L"\x0001d410" L"\0"
++  L"\x0001d411" L"\0" L"\x0001d412" L"\0" L"\x0001d413" L"\0" L"\x0001d414"
++  L"\0" L"\x0001d415" L"\0" L"\x0001d416" L"\0" L"\x0001d417" L"\0"
++  L"\x0001d418" L"\0" L"\x0001d419" L"\0" L"\x0001d41a" L"\0" L"\x0001d41b"
++  L"\0" L"\x0001d41c" L"\0" L"\x0001d41d" L"\0" L"\x0001d41e" L"\0"
++  L"\x0001d41f" L"\0" L"\x0001d420" L"\0" L"\x0001d421" L"\0" L"\x0001d422"
++  L"\0" L"\x0001d423" L"\0" L"\x0001d424" L"\0" L"\x0001d425" L"\0"
++  L"\x0001d426" L"\0" L"\x0001d427" L"\0" L"\x0001d428" L"\0" L"\x0001d429"
++  L"\0" L"\x0001d42a" L"\0" L"\x0001d42b" L"\0" L"\x0001d42c" L"\0"
++  L"\x0001d42d" L"\0" L"\x0001d42e" L"\0" L"\x0001d42f" L"\0" L"\x0001d430"
++  L"\0" L"\x0001d431" L"\0" L"\x0001d432" L"\0" L"\x0001d433" L"\0"
++  L"\x0001d434" L"\0" L"\x0001d435" L"\0" L"\x0001d436" L"\0" L"\x0001d437"
++  L"\0" L"\x0001d438" L"\0" L"\x0001d439" L"\0" L"\x0001d43a" L"\0"
++  L"\x0001d43b" L"\0" L"\x0001d43c" L"\0" L"\x0001d43d" L"\0" L"\x0001d43e"
++  L"\0" L"\x0001d43f" L"\0" L"\x0001d440" L"\0" L"\x0001d441" L"\0"
++  L"\x0001d442" L"\0" L"\x0001d443" L"\0" L"\x0001d444" L"\0" L"\x0001d445"
++  L"\0" L"\x0001d446" L"\0" L"\x0001d447" L"\0" L"\x0001d448" L"\0"
++  L"\x0001d449" L"\0" L"\x0001d44a" L"\0" L"\x0001d44b" L"\0" L"\x0001d44c"
++  L"\0" L"\x0001d44d" L"\0" L"\x0001d44e" L"\0" L"\x0001d44f" L"\0"
++  L"\x0001d450" L"\0" L"\x0001d451" L"\0" L"\x0001d452" L"\0" L"\x0001d453"
++  L"\0" L"\x0001d454" L"\0" L"\x0001d456" L"\0" L"\x0001d457" L"\0"
++  L"\x0001d458" L"\0" L"\x0001d459" L"\0" L"\x0001d45a" L"\0" L"\x0001d45b"
++  L"\0" L"\x0001d45c" L"\0" L"\x0001d45d" L"\0" L"\x0001d45e" L"\0"
++  L"\x0001d45f" L"\0" L"\x0001d460" L"\0" L"\x0001d461" L"\0" L"\x0001d462"
++  L"\0" L"\x0001d463" L"\0" L"\x0001d464" L"\0" L"\x0001d465" L"\0"
++  L"\x0001d466" L"\0" L"\x0001d467" L"\0" L"\x0001d468" L"\0" L"\x0001d469"
++  L"\0" L"\x0001d46a" L"\0" L"\x0001d46b" L"\0" L"\x0001d46c" L"\0"
++  L"\x0001d46d" L"\0" L"\x0001d46e" L"\0" L"\x0001d46f" L"\0" L"\x0001d470"
++  L"\0" L"\x0001d471" L"\0" L"\x0001d472" L"\0" L"\x0001d473" L"\0"
++  L"\x0001d474" L"\0" L"\x0001d475" L"\0" L"\x0001d476" L"\0" L"\x0001d477"
++  L"\0" L"\x0001d478" L"\0" L"\x0001d479" L"\0" L"\x0001d47a" L"\0"
++  L"\x0001d47b" L"\0" L"\x0001d47c" L"\0" L"\x0001d47d" L"\0" L"\x0001d47e"
++  L"\0" L"\x0001d47f" L"\0" L"\x0001d480" L"\0" L"\x0001d481" L"\0"
++  L"\x0001d482" L"\0" L"\x0001d483" L"\0" L"\x0001d484" L"\0" L"\x0001d485"
++  L"\0" L"\x0001d486" L"\0" L"\x0001d487" L"\0" L"\x0001d488" L"\0"
++  L"\x0001d489" L"\0" L"\x0001d48a" L"\0" L"\x0001d48b" L"\0" L"\x0001d48c"
++  L"\0" L"\x0001d48d" L"\0" L"\x0001d48e" L"\0" L"\x0001d48f" L"\0"
++  L"\x0001d490" L"\0" L"\x0001d491" L"\0" L"\x0001d492" L"\0" L"\x0001d493"
++  L"\0" L"\x0001d494" L"\0" L"\x0001d495" L"\0" L"\x0001d496" L"\0"
++  L"\x0001d497" L"\0" L"\x0001d498" L"\0" L"\x0001d499" L"\0" L"\x0001d49a"
++  L"\0" L"\x0001d49b" L"\0" L"\x0001d49c" L"\0" L"\x0001d49e" L"\0"
++  L"\x0001d49f" L"\0" L"\x0001d4a2" L"\0" L"\x0001d4a5" L"\0" L"\x0001d4a6"
++  L"\0" L"\x0001d4a9" L"\0" L"\x0001d4aa" L"\0" L"\x0001d4ab" L"\0"
++  L"\x0001d4ac" L"\0" L"\x0001d4ae" L"\0" L"\x0001d4af" L"\0" L"\x0001d4b0"
++  L"\0" L"\x0001d4b1" L"\0" L"\x0001d4b2" L"\0" L"\x0001d4b3" L"\0"
++  L"\x0001d4b4" L"\0" L"\x0001d4b5" L"\0" L"\x0001d4b6" L"\0" L"\x0001d4b7"
++  L"\0" L"\x0001d4b8" L"\0" L"\x0001d4b9" L"\0" L"\x0001d4bb" L"\0"
++  L"\x0001d4bd" L"\0" L"\x0001d4be" L"\0" L"\x0001d4bf" L"\0" L"\x0001d4c0"
++  L"\0" L"\x0001d4c2" L"\0" L"\x0001d4c3" L"\0" L"\x0001d4c5" L"\0"
++  L"\x0001d4c6" L"\0" L"\x0001d4c7" L"\0" L"\x0001d4c8" L"\0" L"\x0001d4c9"
++  L"\0" L"\x0001d4ca" L"\0" L"\x0001d4cb" L"\0" L"\x0001d4cc" L"\0"
++  L"\x0001d4cd" L"\0" L"\x0001d4ce" L"\0" L"\x0001d4cf" L"\0" L"\x0001d4d0"
++  L"\0" L"\x0001d4d1" L"\0" L"\x0001d4d2" L"\0" L"\x0001d4d3" L"\0"
++  L"\x0001d4d4" L"\0" L"\x0001d4d5" L"\0" L"\x0001d4d6" L"\0" L"\x0001d4d7"
++  L"\0" L"\x0001d4d8" L"\0" L"\x0001d4d9" L"\0" L"\x0001d4da" L"\0"
++  L"\x0001d4db" L"\0" L"\x0001d4dc" L"\0" L"\x0001d4dd" L"\0" L"\x0001d4de"
++  L"\0" L"\x0001d4df" L"\0" L"\x0001d4e0" L"\0" L"\x0001d4e1" L"\0"
++  L"\x0001d4e2" L"\0" L"\x0001d4e3" L"\0" L"\x0001d4e4" L"\0" L"\x0001d4e5"
++  L"\0" L"\x0001d4e6" L"\0" L"\x0001d4e7" L"\0" L"\x0001d4e8" L"\0"
++  L"\x0001d4e9" L"\0" L"\x0001d4ea" L"\0" L"\x0001d4eb" L"\0" L"\x0001d4ec"
++  L"\0" L"\x0001d4ed" L"\0" L"\x0001d4ee" L"\0" L"\x0001d4ef" L"\0"
++  L"\x0001d4f0" L"\0" L"\x0001d4f1" L"\0" L"\x0001d4f2" L"\0" L"\x0001d4f3"
++  L"\0" L"\x0001d4f4" L"\0" L"\x0001d4f5" L"\0" L"\x0001d4f6" L"\0"
++  L"\x0001d4f7" L"\0" L"\x0001d4f8" L"\0" L"\x0001d4f9" L"\0" L"\x0001d4fa"
++  L"\0" L"\x0001d4fb" L"\0" L"\x0001d4fc" L"\0" L"\x0001d4fd" L"\0"
++  L"\x0001d4fe" L"\0" L"\x0001d4ff" L"\0" L"\x0001d500" L"\0" L"\x0001d501"
++  L"\0" L"\x0001d502" L"\0" L"\x0001d503" L"\0" L"\x0001d504" L"\0"
++  L"\x0001d505" L"\0" L"\x0001d507" L"\0" L"\x0001d508" L"\0" L"\x0001d509"
++  L"\0" L"\x0001d50a" L"\0" L"\x0001d50d" L"\0" L"\x0001d50e" L"\0"
++  L"\x0001d50f" L"\0" L"\x0001d510" L"\0" L"\x0001d511" L"\0" L"\x0001d512"
++  L"\0" L"\x0001d513" L"\0" L"\x0001d514" L"\0" L"\x0001d516" L"\0"
++  L"\x0001d517" L"\0" L"\x0001d518" L"\0" L"\x0001d519" L"\0" L"\x0001d51a"
++  L"\0" L"\x0001d51b" L"\0" L"\x0001d51c" L"\0" L"\x0001d51e" L"\0"
++  L"\x0001d51f" L"\0" L"\x0001d520" L"\0" L"\x0001d521" L"\0" L"\x0001d522"
++  L"\0" L"\x0001d523" L"\0" L"\x0001d524" L"\0" L"\x0001d525" L"\0"
++  L"\x0001d526" L"\0" L"\x0001d527" L"\0" L"\x0001d528" L"\0" L"\x0001d529"
++  L"\0" L"\x0001d52a" L"\0" L"\x0001d52b" L"\0" L"\x0001d52c" L"\0"
++  L"\x0001d52d" L"\0" L"\x0001d52e" L"\0" L"\x0001d52f" L"\0" L"\x0001d530"
++  L"\0" L"\x0001d531" L"\0" L"\x0001d532" L"\0" L"\x0001d533" L"\0"
++  L"\x0001d534" L"\0" L"\x0001d535" L"\0" L"\x0001d536" L"\0" L"\x0001d537"
++  L"\0" L"\x0001d538" L"\0" L"\x0001d539" L"\0" L"\x0001d53b" L"\0"
++  L"\x0001d53c" L"\0" L"\x0001d53d" L"\0" L"\x0001d53e" L"\0" L"\x0001d540"
++  L"\0" L"\x0001d541" L"\0" L"\x0001d542" L"\0" L"\x0001d543" L"\0"
++  L"\x0001d544" L"\0" L"\x0001d546" L"\0" L"\x0001d54a" L"\0" L"\x0001d54b"
++  L"\0" L"\x0001d54c" L"\0" L"\x0001d54d" L"\0" L"\x0001d54e" L"\0"
++  L"\x0001d54f" L"\0" L"\x0001d550" L"\0" L"\x0001d552" L"\0" L"\x0001d553"
++  L"\0" L"\x0001d554" L"\0" L"\x0001d555" L"\0" L"\x0001d556" L"\0"
++  L"\x0001d557" L"\0" L"\x0001d558" L"\0" L"\x0001d559" L"\0" L"\x0001d55a"
++  L"\0" L"\x0001d55b" L"\0" L"\x0001d55c" L"\0" L"\x0001d55d" L"\0"
++  L"\x0001d55e" L"\0" L"\x0001d55f" L"\0" L"\x0001d560" L"\0" L"\x0001d561"
++  L"\0" L"\x0001d562" L"\0" L"\x0001d563" L"\0" L"\x0001d564" L"\0"
++  L"\x0001d565" L"\0" L"\x0001d566" L"\0" L"\x0001d567" L"\0" L"\x0001d568"
++  L"\0" L"\x0001d569" L"\0" L"\x0001d56a" L"\0" L"\x0001d56b" L"\0"
++  L"\x0001d56c" L"\0" L"\x0001d56d" L"\0" L"\x0001d56e" L"\0" L"\x0001d56f"
++  L"\0" L"\x0001d570" L"\0" L"\x0001d571" L"\0" L"\x0001d572" L"\0"
++  L"\x0001d573" L"\0" L"\x0001d574" L"\0" L"\x0001d575" L"\0" L"\x0001d576"
++  L"\0" L"\x0001d577" L"\0" L"\x0001d578" L"\0" L"\x0001d579" L"\0"
++  L"\x0001d57a" L"\0" L"\x0001d57b" L"\0" L"\x0001d57c" L"\0" L"\x0001d57d"
++  L"\0" L"\x0001d57e" L"\0" L"\x0001d57f" L"\0" L"\x0001d580" L"\0"
++  L"\x0001d581" L"\0" L"\x0001d582" L"\0" L"\x0001d583" L"\0" L"\x0001d584"
++  L"\0" L"\x0001d585" L"\0" L"\x0001d586" L"\0" L"\x0001d587" L"\0"
++  L"\x0001d588" L"\0" L"\x0001d589" L"\0" L"\x0001d58a" L"\0" L"\x0001d58b"
++  L"\0" L"\x0001d58c" L"\0" L"\x0001d58d" L"\0" L"\x0001d58e" L"\0"
++  L"\x0001d58f" L"\0" L"\x0001d590" L"\0" L"\x0001d591" L"\0" L"\x0001d592"
++  L"\0" L"\x0001d593" L"\0" L"\x0001d594" L"\0" L"\x0001d595" L"\0"
++  L"\x0001d596" L"\0" L"\x0001d597" L"\0" L"\x0001d598" L"\0" L"\x0001d599"
++  L"\0" L"\x0001d59a" L"\0" L"\x0001d59b" L"\0" L"\x0001d59c" L"\0"
++  L"\x0001d59d" L"\0" L"\x0001d59e" L"\0" L"\x0001d59f" L"\0" L"\x0001d5a0"
++  L"\0" L"\x0001d5a1" L"\0" L"\x0001d5a2" L"\0" L"\x0001d5a3" L"\0"
++  L"\x0001d5a4" L"\0" L"\x0001d5a5" L"\0" L"\x0001d5a6" L"\0" L"\x0001d5a7"
++  L"\0" L"\x0001d5a8" L"\0" L"\x0001d5a9" L"\0" L"\x0001d5aa" L"\0"
++  L"\x0001d5ab" L"\0" L"\x0001d5ac" L"\0" L"\x0001d5ad" L"\0" L"\x0001d5ae"
++  L"\0" L"\x0001d5af" L"\0" L"\x0001d5b0" L"\0" L"\x0001d5b1" L"\0"
++  L"\x0001d5b2" L"\0" L"\x0001d5b3" L"\0" L"\x0001d5b4" L"\0" L"\x0001d5b5"
++  L"\0" L"\x0001d5b6" L"\0" L"\x0001d5b7" L"\0" L"\x0001d5b8" L"\0"
++  L"\x0001d5b9" L"\0" L"\x0001d5ba" L"\0" L"\x0001d5bb" L"\0" L"\x0001d5bc"
++  L"\0" L"\x0001d5bd" L"\0" L"\x0001d5be" L"\0" L"\x0001d5bf" L"\0"
++  L"\x0001d5c0" L"\0" L"\x0001d5c1" L"\0" L"\x0001d5c2" L"\0" L"\x0001d5c3"
++  L"\0" L"\x0001d5c4" L"\0" L"\x0001d5c5" L"\0" L"\x0001d5c6" L"\0"
++  L"\x0001d5c7" L"\0" L"\x0001d5c8" L"\0" L"\x0001d5c9" L"\0" L"\x0001d5ca"
++  L"\0" L"\x0001d5cb" L"\0" L"\x0001d5cc" L"\0" L"\x0001d5cd" L"\0"
++  L"\x0001d5ce" L"\0" L"\x0001d5cf" L"\0" L"\x0001d5d0" L"\0" L"\x0001d5d1"
++  L"\0" L"\x0001d5d2" L"\0" L"\x0001d5d3" L"\0" L"\x0001d5d4" L"\0"
++  L"\x0001d5d5" L"\0" L"\x0001d5d6" L"\0" L"\x0001d5d7" L"\0" L"\x0001d5d8"
++  L"\0" L"\x0001d5d9" L"\0" L"\x0001d5da" L"\0" L"\x0001d5db" L"\0"
++  L"\x0001d5dc" L"\0" L"\x0001d5dd" L"\0" L"\x0001d5de" L"\0" L"\x0001d5df"
++  L"\0" L"\x0001d5e0" L"\0" L"\x0001d5e1" L"\0" L"\x0001d5e2" L"\0"
++  L"\x0001d5e3" L"\0" L"\x0001d5e4" L"\0" L"\x0001d5e5" L"\0" L"\x0001d5e6"
++  L"\0" L"\x0001d5e7" L"\0" L"\x0001d5e8" L"\0" L"\x0001d5e9" L"\0"
++  L"\x0001d5ea" L"\0" L"\x0001d5eb" L"\0" L"\x0001d5ec" L"\0" L"\x0001d5ed"
++  L"\0" L"\x0001d5ee" L"\0" L"\x0001d5ef" L"\0" L"\x0001d5f0" L"\0"
++  L"\x0001d5f1" L"\0" L"\x0001d5f2" L"\0" L"\x0001d5f3" L"\0" L"\x0001d5f4"
++  L"\0" L"\x0001d5f5" L"\0" L"\x0001d5f6" L"\0" L"\x0001d5f7" L"\0"
++  L"\x0001d5f8" L"\0" L"\x0001d5f9" L"\0" L"\x0001d5fa" L"\0" L"\x0001d5fb"
++  L"\0" L"\x0001d5fc" L"\0" L"\x0001d5fd" L"\0" L"\x0001d5fe" L"\0"
++  L"\x0001d5ff" L"\0" L"\x0001d600" L"\0" L"\x0001d601" L"\0" L"\x0001d602"
++  L"\0" L"\x0001d603" L"\0" L"\x0001d604" L"\0" L"\x0001d605" L"\0"
++  L"\x0001d606" L"\0" L"\x0001d607" L"\0" L"\x0001d608" L"\0" L"\x0001d609"
++  L"\0" L"\x0001d60a" L"\0" L"\x0001d60b" L"\0" L"\x0001d60c" L"\0"
++  L"\x0001d60d" L"\0" L"\x0001d60e" L"\0" L"\x0001d60f" L"\0" L"\x0001d610"
++  L"\0" L"\x0001d611" L"\0" L"\x0001d612" L"\0" L"\x0001d613" L"\0"
++  L"\x0001d614" L"\0" L"\x0001d615" L"\0" L"\x0001d616" L"\0" L"\x0001d617"
++  L"\0" L"\x0001d618" L"\0" L"\x0001d619" L"\0" L"\x0001d61a" L"\0"
++  L"\x0001d61b" L"\0" L"\x0001d61c" L"\0" L"\x0001d61d" L"\0" L"\x0001d61e"
++  L"\0" L"\x0001d61f" L"\0" L"\x0001d620" L"\0" L"\x0001d621" L"\0"
++  L"\x0001d622" L"\0" L"\x0001d623" L"\0" L"\x0001d624" L"\0" L"\x0001d625"
++  L"\0" L"\x0001d626" L"\0" L"\x0001d627" L"\0" L"\x0001d628" L"\0"
++  L"\x0001d629" L"\0" L"\x0001d62a" L"\0" L"\x0001d62b" L"\0" L"\x0001d62c"
++  L"\0" L"\x0001d62d" L"\0" L"\x0001d62e" L"\0" L"\x0001d62f" L"\0"
++  L"\x0001d630" L"\0" L"\x0001d631" L"\0" L"\x0001d632" L"\0" L"\x0001d633"
++  L"\0" L"\x0001d634" L"\0" L"\x0001d635" L"\0" L"\x0001d636" L"\0"
++  L"\x0001d637" L"\0" L"\x0001d638" L"\0" L"\x0001d639" L"\0" L"\x0001d63a"
++  L"\0" L"\x0001d63b" L"\0" L"\x0001d63c" L"\0" L"\x0001d63d" L"\0"
++  L"\x0001d63e" L"\0" L"\x0001d63f" L"\0" L"\x0001d640" L"\0" L"\x0001d641"
++  L"\0" L"\x0001d642" L"\0" L"\x0001d643" L"\0" L"\x0001d644" L"\0"
++  L"\x0001d645" L"\0" L"\x0001d646" L"\0" L"\x0001d647" L"\0" L"\x0001d648"
++  L"\0" L"\x0001d649" L"\0" L"\x0001d64a" L"\0" L"\x0001d64b" L"\0"
++  L"\x0001d64c" L"\0" L"\x0001d64d" L"\0" L"\x0001d64e" L"\0" L"\x0001d64f"
++  L"\0" L"\x0001d650" L"\0" L"\x0001d651" L"\0" L"\x0001d652" L"\0"
++  L"\x0001d653" L"\0" L"\x0001d654" L"\0" L"\x0001d655" L"\0" L"\x0001d656"
++  L"\0" L"\x0001d657" L"\0" L"\x0001d658" L"\0" L"\x0001d659" L"\0"
++  L"\x0001d65a" L"\0" L"\x0001d65b" L"\0" L"\x0001d65c" L"\0" L"\x0001d65d"
++  L"\0" L"\x0001d65e" L"\0" L"\x0001d65f" L"\0" L"\x0001d660" L"\0"
++  L"\x0001d661" L"\0" L"\x0001d662" L"\0" L"\x0001d663" L"\0" L"\x0001d664"
++  L"\0" L"\x0001d665" L"\0" L"\x0001d666" L"\0" L"\x0001d667" L"\0"
++  L"\x0001d668" L"\0" L"\x0001d669" L"\0" L"\x0001d66a" L"\0" L"\x0001d66b"
++  L"\0" L"\x0001d66c" L"\0" L"\x0001d66d" L"\0" L"\x0001d66e" L"\0"
++  L"\x0001d66f" L"\0" L"\x0001d670" L"\0" L"\x0001d671" L"\0" L"\x0001d672"
++  L"\0" L"\x0001d673" L"\0" L"\x0001d674" L"\0" L"\x0001d675" L"\0"
++  L"\x0001d676" L"\0" L"\x0001d677" L"\0" L"\x0001d678" L"\0" L"\x0001d679"
++  L"\0" L"\x0001d67a" L"\0" L"\x0001d67b" L"\0" L"\x0001d67c" L"\0"
++  L"\x0001d67d" L"\0" L"\x0001d67e" L"\0" L"\x0001d67f" L"\0" L"\x0001d680"
++  L"\0" L"\x0001d681" L"\0" L"\x0001d682" L"\0" L"\x0001d683" L"\0"
++  L"\x0001d684" L"\0" L"\x0001d685" L"\0" L"\x0001d686" L"\0" L"\x0001d687"
++  L"\0" L"\x0001d688" L"\0" L"\x0001d689" L"\0" L"\x0001d68a" L"\0"
++  L"\x0001d68b" L"\0" L"\x0001d68c" L"\0" L"\x0001d68d" L"\0" L"\x0001d68e"
++  L"\0" L"\x0001d68f" L"\0" L"\x0001d690" L"\0" L"\x0001d691" L"\0"
++  L"\x0001d692" L"\0" L"\x0001d693" L"\0" L"\x0001d694" L"\0" L"\x0001d695"
++  L"\0" L"\x0001d696" L"\0" L"\x0001d697" L"\0" L"\x0001d698" L"\0"
++  L"\x0001d699" L"\0" L"\x0001d69a" L"\0" L"\x0001d69b" L"\0" L"\x0001d69c"
++  L"\0" L"\x0001d69d" L"\0" L"\x0001d69e" L"\0" L"\x0001d69f" L"\0"
++  L"\x0001d6a0" L"\0" L"\x0001d6a1" L"\0" L"\x0001d6a2" L"\0" L"\x0001d6a3"
++  L"\0" L"\x0001d7ce" L"\0" L"\x0001d7cf" L"\0" L"\x0001d7d0" L"\0"
++  L"\x0001d7d1" L"\0" L"\x0001d7d2" L"\0" L"\x0001d7d3" L"\0" L"\x0001d7d4"
++  L"\0" L"\x0001d7d5" L"\0" L"\x0001d7d6" L"\0" L"\x0001d7d7" L"\0"
++  L"\x0001d7d8" L"\0" L"\x0001d7d9" L"\0" L"\x0001d7da" L"\0" L"\x0001d7db"
++  L"\0" L"\x0001d7dc" L"\0" L"\x0001d7dd" L"\0" L"\x0001d7de" L"\0"
++  L"\x0001d7df" L"\0" L"\x0001d7e0" L"\0" L"\x0001d7e1" L"\0" L"\x0001d7e2"
++  L"\0" L"\x0001d7e3" L"\0" L"\x0001d7e4" L"\0" L"\x0001d7e5" L"\0"
++  L"\x0001d7e6" L"\0" L"\x0001d7e7" L"\0" L"\x0001d7e8" L"\0" L"\x0001d7e9"
++  L"\0" L"\x0001d7ea" L"\0" L"\x0001d7eb" L"\0" L"\x0001d7ec" L"\0"
++  L"\x0001d7ed" L"\0" L"\x0001d7ee" L"\0" L"\x0001d7ef" L"\0" L"\x0001d7f0"
++  L"\0" L"\x0001d7f1" L"\0" L"\x0001d7f2" L"\0" L"\x0001d7f3" L"\0"
++  L"\x0001d7f4" L"\0" L"\x0001d7f5" L"\0" L"\x0001d7f6" L"\0" L"\x0001d7f7"
++  L"\0" L"\x0001d7f8" L"\0" L"\x0001d7f9" L"\0" L"\x0001d7fa" L"\0"
++  L"\x0001d7fb" L"\0" L"\x0001d7fc" L"\0" L"\x0001d7fd" L"\0" L"\x0001d7fe"
++  L"\0" L"\x0001d7ff";
+ static const uint32_t translit_to_idx[] =
+ {
+      0,    3,    8,   12,   15,   20,   23,   26,   30,   37,   44,   51,
+@@ -471,22 +471,22 @@ static const uint32_t translit_to_idx[] 
+    180,  183,  186,  189,  192,  196,  199,  202,  205,  208,  211,  214,
+    217,  221,  224,  227,  230,  233,  237,  242,  245,  248,  252,  257,
+    260,  263,  267,  270,  274,  278,  282,  285,  287,  289,  291,  293,
+-   297,  302,  307,  312,  315,  320,  325,  328,  331,  334,  337,  340,
+-   343,  346,  349,  352,  355,  359,  362,  365,  368,  371,  374,  379,
+-   385,  388,  393,  396,  399,  402,  405,  408,  411,  414,  417,  420,
+-   423,  426,  429,  432,  435,  438,  445,  452,  459,  466,  473,  480,
+-   487,  494,  501,  508,  515,  522,  527,  530,  534,  539,  543,  546,
+-   550,  555,  561,  565,  568,  572,  577,  580,  583,  586,  589,  592,
+-   596,  601,  605,  608,  612,  617,  623,  627,  630,  634,  639,  642,
+-   645,  648,  651,  655,  659,  664,  668,  672,  677,  680,  683,  686,
+-   689,  692,  695,  698,  702,  706,  710,  714,  719,  724,  729,  734,
+-   739,  744,  749,  754,  759,  764,  768,  772,  776,  780,  784,  788,
+-   792,  796,  801,  806,  811,  816,  821,  826,  831,  836,  841,  845,
+-   850,  855,  859,  863,  867,  871,  875,  880,  883,  887,  892,  897,
+-   902,  907,  912,  917,  922,  927,  932,  938,  944,  950,  956,  962,
+-   968,  974,  980,  986,  992,  998, 1003, 1008, 1013, 1018, 1023, 1028,
+-  1033, 1038, 1043, 1049, 1055, 1061, 1067, 1073, 1079, 1085, 1091, 1097,
+-  1103, 1109, 1113, 1117, 1121, 1125, 1129, 1133, 1137, 1141, 1145, 1150,
++   297,  302,  307,  312,  317,  320,  325,  330,  333,  336,  339,  342,
++   345,  348,  351,  354,  357,  360,  364,  367,  370,  373,  376,  379,
++   384,  390,  393,  398,  401,  404,  407,  410,  413,  416,  419,  422,
++   425,  428,  431,  434,  437,  440,  443,  450,  457,  464,  471,  478,
++   485,  492,  499,  506,  513,  520,  527,  532,  535,  539,  544,  548,
++   551,  555,  560,  566,  570,  573,  577,  582,  585,  588,  591,  594,
++   597,  601,  606,  610,  613,  617,  622,  628,  632,  635,  639,  644,
++   647,  650,  653,  656,  660,  664,  669,  673,  677,  682,  685,  688,
++   691,  694,  697,  700,  703,  707,  711,  715,  719,  724,  729,  734,
++   739,  744,  749,  754,  759,  764,  769,  773,  777,  781,  785,  789,
++   793,  797,  801,  806,  811,  816,  821,  826,  831,  836,  841,  846,
++   850,  855,  860,  864,  868,  872,  876,  880,  885,  888,  892,  897,
++   902,  907,  912,  917,  922,  927,  932,  937,  943,  949,  955,  961,
++   967,  973,  979,  985,  991,  997, 1003, 1008, 1013, 1018, 1023, 1028,
++  1033, 1038, 1043, 1048, 1054, 1060, 1066, 1072, 1078, 1084, 1090, 1096,
++  1102, 1108, 1114, 1118, 1122, 1126, 1130, 1134, 1138, 1142, 1146, 1150,
+   1155, 1160, 1165, 1170, 1175, 1180, 1185, 1190, 1195, 1200, 1205, 1210,
+   1215, 1220, 1225, 1230, 1235, 1240, 1245, 1250, 1255, 1260, 1265, 1270,
+   1275, 1280, 1285, 1290, 1295, 1300, 1305, 1310, 1315, 1320, 1325, 1330,
+@@ -494,89 +494,89 @@ static const uint32_t translit_to_idx[] 
+   1395, 1400, 1405, 1410, 1415, 1420, 1425, 1430, 1435, 1440, 1445, 1450,
+   1455, 1460, 1465, 1470, 1475, 1480, 1485, 1490, 1495, 1500, 1505, 1510,
+   1515, 1520, 1525, 1530, 1535, 1540, 1545, 1550, 1555, 1560, 1565, 1570,
+-  1575, 1580, 1585, 1590, 1595, 1598, 1601, 1604, 1607, 1610, 1613, 1616,
+-  1619, 1622, 1625, 1628, 1631, 1636, 1640, 1645, 1648, 1651, 1657, 1663,
+-  1669, 1675, 1681, 1687, 1693, 1699, 1705, 1711, 1717, 1723, 1729, 1735,
+-  1741, 1747, 1753, 1759, 1765, 1771, 1777, 1783, 1789, 1795, 1801, 1807,
+-  1813, 1819, 1825, 1831, 1836, 1840, 1844, 1849, 1853, 1857, 1861, 1865,
+-  1869, 1873, 1877, 1881, 1885, 1889, 1894, 1900, 1904, 1908, 1912, 1916,
+-  1920, 1924, 1928, 1933, 1938, 1943, 1948, 1952, 1956, 1960, 1964, 1968,
+-  1972, 1976, 1980, 1984, 1988, 1994, 2000, 2005, 2011, 2017, 2023, 2028,
+-  2034, 2039, 2046, 2050, 2055, 2060, 2065, 2070, 2077, 2086, 2090, 2094,
+-  2098, 2102, 2106, 2110, 2114, 2118, 2122, 2126, 2130, 2134, 2138, 2142,
+-  2146, 2150, 2156, 2160, 2164, 2168, 2174, 2179, 2183, 2187, 2191, 2195,
+-  2199, 2203, 2207, 2211, 2215, 2219, 2224, 2228, 2232, 2237, 2242, 2246,
+-  2252, 2257, 2261, 2265, 2269, 2273, 2277, 2281, 2285, 2290, 2295, 2299,
+-  2302, 2304, 2306, 2308, 2310, 2312, 2314, 2316, 2318, 2320, 2322, 2324,
+-  2326, 2328, 2330, 2332, 2334, 2337, 2340, 2343, 2346, 2349, 2352, 2355,
+-  2358, 2361, 2364, 2367, 2370, 2373, 2376, 2379, 2382, 2385, 2388, 2391,
+-  2394, 2397, 2400, 2403, 2406, 2409, 2411, 2414, 2417, 2420, 2423, 2426,
+-  2429, 2432, 2435, 2438, 2441, 2444, 2447, 2450, 2453, 2456, 2459, 2462,
+-  2465, 2468, 2471, 2474, 2477, 2480, 2483, 2486, 2489, 2492, 2495, 2498,
+-  2501, 2504, 2507, 2510, 2513, 2516, 2519, 2522, 2525, 2528, 2531, 2534,
+-  2537, 2540, 2543, 2546, 2549, 2552, 2555, 2558, 2561, 2564, 2567, 2570,
+-  2573, 2576, 2579, 2582, 2585, 2588, 2591, 2594, 2597, 2600, 2603, 2606,
+-  2609, 2612, 2615, 2618, 2621, 2624, 2627, 2630, 2633, 2636, 2639, 2642,
+-  2645, 2648, 2651, 2654, 2657, 2660, 2663, 2666, 2669, 2672, 2675, 2678,
+-  2681, 2684, 2687, 2690, 2693, 2696, 2699, 2702, 2705, 2708, 2711, 2714,
+-  2717, 2720, 2723, 2726, 2729, 2732, 2735, 2738, 2741, 2744, 2747, 2750,
+-  2753, 2756, 2759, 2762, 2765, 2768, 2771, 2774, 2777, 2780, 2783, 2786,
+-  2789, 2792, 2795, 2798, 2801, 2804, 2807, 2810, 2813, 2816, 2819, 2822,
+-  2825, 2828, 2831, 2834, 2837, 2840, 2843, 2846, 2849, 2852, 2855, 2858,
+-  2861, 2864, 2867, 2870, 2873, 2876, 2879, 2882, 2885, 2888, 2891, 2894,
+-  2897, 2900, 2903, 2906, 2909, 2912, 2915, 2918, 2921, 2924, 2927, 2930,
+-  2933, 2936, 2939, 2942, 2945, 2948, 2951, 2954, 2957, 2960, 2963, 2966,
+-  2969, 2972, 2975, 2978, 2981, 2984, 2987, 2990, 2993, 2996, 2999, 3002,
+-  3005, 3008, 3011, 3014, 3017, 3020, 3023, 3026, 3029, 3032, 3035, 3038,
+-  3041, 3044, 3047, 3050, 3053, 3056, 3059, 3062, 3065, 3068, 3071, 3074,
+-  3077, 3080, 3083, 3086, 3089, 3092, 3095, 3098, 3101, 3104, 3107, 3110,
+-  3113, 3116, 3119, 3122, 3125, 3128, 3131, 3134, 3137, 3140, 3143, 3146,
+-  3149, 3152, 3155, 3158, 3161, 3164, 3167, 3170, 3173, 3176, 3179, 3182,
+-  3185, 3188, 3191, 3194, 3197, 3200, 3203, 3206, 3209, 3212, 3215, 3218,
+-  3221, 3224, 3227, 3230, 3233, 3236, 3239, 3242, 3245, 3248, 3251, 3254,
+-  3257, 3260, 3263, 3266, 3269, 3272, 3275, 3278, 3281, 3284, 3287, 3290,
+-  3293, 3296, 3299, 3302, 3305, 3308, 3311, 3314, 3317, 3320, 3323, 3326,
+-  3329, 3332, 3335, 3338, 3341, 3344, 3347, 3350, 3353, 3356, 3359, 3362,
+-  3365, 3368, 3371, 3374, 3377, 3380, 3383, 3386, 3389, 3392, 3395, 3398,
+-  3401, 3404, 3407, 3410, 3413, 3416, 3419, 3422, 3425, 3428, 3431, 3434,
+-  3437, 3440, 3443, 3446, 3449, 3452, 3455, 3458, 3461, 3464, 3467, 3470,
+-  3473, 3476, 3479, 3482, 3485, 3488, 3491, 3494, 3497, 3500, 3503, 3506,
+-  3509, 3512, 3515, 3518, 3521, 3524, 3527, 3530, 3533, 3536, 3539, 3542,
+-  3545, 3548, 3551, 3554, 3557, 3560, 3563, 3566, 3569, 3572, 3575, 3578,
+-  3581, 3584, 3587, 3590, 3593, 3596, 3599, 3602, 3605, 3608, 3611, 3614,
+-  3617, 3620, 3623, 3626, 3629, 3632, 3635, 3638, 3641, 3644, 3647, 3650,
+-  3653, 3656, 3659, 3662, 3665, 3668, 3671, 3674, 3677, 3680, 3683, 3686,
+-  3689, 3692, 3695, 3698, 3701, 3704, 3707, 3710, 3713, 3716, 3719, 3722,
+-  3725, 3728, 3731, 3734, 3737, 3740, 3743, 3746, 3749, 3752, 3755, 3758,
+-  3761, 3764, 3767, 3770, 3773, 3776, 3779, 3782, 3785, 3788, 3791, 3794,
+-  3797, 3800, 3803, 3806, 3809, 3812, 3815, 3818, 3821, 3824, 3827, 3830,
+-  3833, 3836, 3839, 3842, 3845, 3848, 3851, 3854, 3857, 3860, 3863, 3866,
+-  3869, 3872, 3875, 3878, 3881, 3884, 3887, 3890, 3893, 3896, 3899, 3902,
+-  3905, 3908, 3911, 3914, 3917, 3920, 3923, 3926, 3929, 3932, 3935, 3938,
+-  3941, 3944, 3947, 3950, 3953, 3956, 3959, 3962, 3965, 3968, 3971, 3974,
+-  3977, 3980, 3983, 3986, 3989, 3992, 3995, 3998, 4001, 4004, 4007, 4010,
+-  4013, 4016, 4019, 4022, 4025, 4028, 4031, 4034, 4037, 4040, 4043, 4046,
+-  4049, 4052, 4055, 4058, 4061, 4064, 4067, 4070, 4073, 4076, 4079, 4082,
+-  4085, 4088, 4091, 4094, 4097, 4100, 4103, 4106, 4109, 4112, 4115, 4118,
+-  4121, 4124, 4127, 4130, 4133, 4136, 4139, 4142, 4145, 4148, 4151, 4154,
+-  4157, 4160, 4163, 4166, 4169, 4172, 4175, 4178, 4181, 4184, 4187, 4190,
+-  4193, 4196, 4199, 4202, 4205, 4208, 4211, 4214, 4217, 4220, 4223, 4226,
+-  4229, 4232, 4235, 4238, 4241, 4244, 4247, 4250, 4253, 4256, 4259, 4262,
+-  4265, 4268, 4271, 4274, 4277, 4280, 4283, 4286, 4289, 4292, 4295, 4298,
+-  4301, 4304, 4307, 4310, 4313, 4316, 4319, 4322, 4325, 4328, 4331, 4334,
+-  4337, 4340, 4343, 4346, 4349, 4352, 4355, 4358, 4361, 4364, 4367, 4370,
+-  4373, 4376, 4379, 4382, 4385, 4388, 4391, 4394, 4397, 4400, 4403, 4406,
+-  4409, 4412, 4415, 4418, 4421, 4424, 4427, 4430, 4433, 4436, 4439, 4442,
+-  4445, 4448, 4451, 4454, 4457, 4460, 4463, 4466, 4469, 4472, 4475, 4478,
+-  4481, 4484, 4487, 4490, 4493, 4496, 4499, 4502, 4505, 4508, 4511, 4514,
+-  4517, 4520, 4523, 4526, 4529, 4532, 4535, 4538, 4541, 4544, 4547, 4550,
+-  4553, 4556, 4559, 4562, 4565, 4568, 4571, 4574, 4577, 4580, 4583, 4586,
+-  4589, 4592, 4595, 4598, 4601, 4604, 4607, 4610, 4613, 4616, 4619, 4622,
+-  4625, 4628, 4631, 4634, 4637, 4640, 4643, 4646, 4649, 4652, 4655, 4658,
+-  4661, 4664, 4667, 4670, 4673, 4676, 4679, 4682, 4685, 4688, 4691, 4694,
+-  4697, 4700, 4703, 4706, 4709, 4712, 4715, 4718, 4721, 4724, 4727, 4730,
+-  4733, 4736, 4739, 4742, 4745, 4748, 4751, 4754, 4757, 4760, 4763, 4766,
+-  4769, 4772, 4775, 4778, 4781, 4784, 4787, 4790, 4793
++  1575, 1580, 1585, 1590, 1595, 1600, 1603, 1606, 1609, 1612, 1615, 1618,
++  1621, 1624, 1627, 1630, 1633, 1636, 1641, 1645, 1650, 1653, 1656, 1662,
++  1668, 1674, 1680, 1686, 1692, 1698, 1704, 1710, 1716, 1722, 1728, 1734,
++  1740, 1746, 1752, 1758, 1764, 1770, 1776, 1782, 1788, 1794, 1800, 1806,
++  1812, 1818, 1824, 1830, 1836, 1841, 1845, 1849, 1854, 1858, 1862, 1866,
++  1870, 1874, 1878, 1882, 1886, 1890, 1894, 1899, 1905, 1909, 1913, 1917,
++  1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1957, 1961, 1965, 1969,
++  1973, 1977, 1981, 1985, 1989, 1993, 1999, 2005, 2010, 2016, 2022, 2028,
++  2033, 2039, 2044, 2051, 2055, 2060, 2065, 2070, 2075, 2082, 2091, 2095,
++  2099, 2103, 2107, 2111, 2115, 2119, 2123, 2127, 2131, 2135, 2139, 2143,
++  2147, 2151, 2155, 2161, 2165, 2169, 2173, 2179, 2184, 2188, 2192, 2196,
++  2200, 2204, 2208, 2212, 2216, 2220, 2224, 2229, 2233, 2237, 2242, 2247,
++  2251, 2257, 2262, 2266, 2270, 2274, 2278, 2282, 2286, 2290, 2295, 2300,
++  2304, 2307, 2309, 2311, 2313, 2315, 2317, 2319, 2321, 2323, 2325, 2327,
++  2329, 2331, 2333, 2335, 2337, 2339, 2342, 2345, 2348, 2351, 2354, 2357,
++  2360, 2363, 2366, 2369, 2372, 2375, 2378, 2381, 2384, 2387, 2390, 2393,
++  2396, 2399, 2402, 2405, 2408, 2411, 2414, 2416, 2419, 2422, 2425, 2428,
++  2431, 2434, 2437, 2440, 2443, 2446, 2449, 2452, 2455, 2458, 2461, 2464,
++  2467, 2470, 2473, 2476, 2479, 2482, 2485, 2488, 2491, 2494, 2497, 2500,
++  2503, 2506, 2509, 2512, 2515, 2518, 2521, 2524, 2527, 2530, 2533, 2536,
++  2539, 2542, 2545, 2548, 2551, 2554, 2557, 2560, 2563, 2566, 2569, 2572,
++  2575, 2578, 2581, 2584, 2587, 2590, 2593, 2596, 2599, 2602, 2605, 2608,
++  2611, 2614, 2617, 2620, 2623, 2626, 2629, 2632, 2635, 2638, 2641, 2644,
++  2647, 2650, 2653, 2656, 2659, 2662, 2665, 2668, 2671, 2674, 2677, 2680,
++  2683, 2686, 2689, 2692, 2695, 2698, 2701, 2704, 2707, 2710, 2713, 2716,
++  2719, 2722, 2725, 2728, 2731, 2734, 2737, 2740, 2743, 2746, 2749, 2752,
++  2755, 2758, 2761, 2764, 2767, 2770, 2773, 2776, 2779, 2782, 2785, 2788,
++  2791, 2794, 2797, 2800, 2803, 2806, 2809, 2812, 2815, 2818, 2821, 2824,
++  2827, 2830, 2833, 2836, 2839, 2842, 2845, 2848, 2851, 2854, 2857, 2860,
++  2863, 2866, 2869, 2872, 2875, 2878, 2881, 2884, 2887, 2890, 2893, 2896,
++  2899, 2902, 2905, 2908, 2911, 2914, 2917, 2920, 2923, 2926, 2929, 2932,
++  2935, 2938, 2941, 2944, 2947, 2950, 2953, 2956, 2959, 2962, 2965, 2968,
++  2971, 2974, 2977, 2980, 2983, 2986, 2989, 2992, 2995, 2998, 3001, 3004,
++  3007, 3010, 3013, 3016, 3019, 3022, 3025, 3028, 3031, 3034, 3037, 3040,
++  3043, 3046, 3049, 3052, 3055, 3058, 3061, 3064, 3067, 3070, 3073, 3076,
++  3079, 3082, 3085, 3088, 3091, 3094, 3097, 3100, 3103, 3106, 3109, 3112,
++  3115, 3118, 3121, 3124, 3127, 3130, 3133, 3136, 3139, 3142, 3145, 3148,
++  3151, 3154, 3157, 3160, 3163, 3166, 3169, 3172, 3175, 3178, 3181, 3184,
++  3187, 3190, 3193, 3196, 3199, 3202, 3205, 3208, 3211, 3214, 3217, 3220,
++  3223, 3226, 3229, 3232, 3235, 3238, 3241, 3244, 3247, 3250, 3253, 3256,
++  3259, 3262, 3265, 3268, 3271, 3274, 3277, 3280, 3283, 3286, 3289, 3292,
++  3295, 3298, 3301, 3304, 3307, 3310, 3313, 3316, 3319, 3322, 3325, 3328,
++  3331, 3334, 3337, 3340, 3343, 3346, 3349, 3352, 3355, 3358, 3361, 3364,
++  3367, 3370, 3373, 3376, 3379, 3382, 3385, 3388, 3391, 3394, 3397, 3400,
++  3403, 3406, 3409, 3412, 3415, 3418, 3421, 3424, 3427, 3430, 3433, 3436,
++  3439, 3442, 3445, 3448, 3451, 3454, 3457, 3460, 3463, 3466, 3469, 3472,
++  3475, 3478, 3481, 3484, 3487, 3490, 3493, 3496, 3499, 3502, 3505, 3508,
++  3511, 3514, 3517, 3520, 3523, 3526, 3529, 3532, 3535, 3538, 3541, 3544,
++  3547, 3550, 3553, 3556, 3559, 3562, 3565, 3568, 3571, 3574, 3577, 3580,
++  3583, 3586, 3589, 3592, 3595, 3598, 3601, 3604, 3607, 3610, 3613, 3616,
++  3619, 3622, 3625, 3628, 3631, 3634, 3637, 3640, 3643, 3646, 3649, 3652,
++  3655, 3658, 3661, 3664, 3667, 3670, 3673, 3676, 3679, 3682, 3685, 3688,
++  3691, 3694, 3697, 3700, 3703, 3706, 3709, 3712, 3715, 3718, 3721, 3724,
++  3727, 3730, 3733, 3736, 3739, 3742, 3745, 3748, 3751, 3754, 3757, 3760,
++  3763, 3766, 3769, 3772, 3775, 3778, 3781, 3784, 3787, 3790, 3793, 3796,
++  3799, 3802, 3805, 3808, 3811, 3814, 3817, 3820, 3823, 3826, 3829, 3832,
++  3835, 3838, 3841, 3844, 3847, 3850, 3853, 3856, 3859, 3862, 3865, 3868,
++  3871, 3874, 3877, 3880, 3883, 3886, 3889, 3892, 3895, 3898, 3901, 3904,
++  3907, 3910, 3913, 3916, 3919, 3922, 3925, 3928, 3931, 3934, 3937, 3940,
++  3943, 3946, 3949, 3952, 3955, 3958, 3961, 3964, 3967, 3970, 3973, 3976,
++  3979, 3982, 3985, 3988, 3991, 3994, 3997, 4000, 4003, 4006, 4009, 4012,
++  4015, 4018, 4021, 4024, 4027, 4030, 4033, 4036, 4039, 4042, 4045, 4048,
++  4051, 4054, 4057, 4060, 4063, 4066, 4069, 4072, 4075, 4078, 4081, 4084,
++  4087, 4090, 4093, 4096, 4099, 4102, 4105, 4108, 4111, 4114, 4117, 4120,
++  4123, 4126, 4129, 4132, 4135, 4138, 4141, 4144, 4147, 4150, 4153, 4156,
++  4159, 4162, 4165, 4168, 4171, 4174, 4177, 4180, 4183, 4186, 4189, 4192,
++  4195, 4198, 4201, 4204, 4207, 4210, 4213, 4216, 4219, 4222, 4225, 4228,
++  4231, 4234, 4237, 4240, 4243, 4246, 4249, 4252, 4255, 4258, 4261, 4264,
++  4267, 4270, 4273, 4276, 4279, 4282, 4285, 4288, 4291, 4294, 4297, 4300,
++  4303, 4306, 4309, 4312, 4315, 4318, 4321, 4324, 4327, 4330, 4333, 4336,
++  4339, 4342, 4345, 4348, 4351, 4354, 4357, 4360, 4363, 4366, 4369, 4372,
++  4375, 4378, 4381, 4384, 4387, 4390, 4393, 4396, 4399, 4402, 4405, 4408,
++  4411, 4414, 4417, 4420, 4423, 4426, 4429, 4432, 4435, 4438, 4441, 4444,
++  4447, 4450, 4453, 4456, 4459, 4462, 4465, 4468, 4471, 4474, 4477, 4480,
++  4483, 4486, 4489, 4492, 4495, 4498, 4501, 4504, 4507, 4510, 4513, 4516,
++  4519, 4522, 4525, 4528, 4531, 4534, 4537, 4540, 4543, 4546, 4549, 4552,
++  4555, 4558, 4561, 4564, 4567, 4570, 4573, 4576, 4579, 4582, 4585, 4588,
++  4591, 4594, 4597, 4600, 4603, 4606, 4609, 4612, 4615, 4618, 4621, 4624,
++  4627, 4630, 4633, 4636, 4639, 4642, 4645, 4648, 4651, 4654, 4657, 4660,
++  4663, 4666, 4669, 4672, 4675, 4678, 4681, 4684, 4687, 4690, 4693, 4696,
++  4699, 4702, 4705, 4708, 4711, 4714, 4717, 4720, 4723, 4726, 4729, 4732,
++  4735, 4738, 4741, 4744, 4747, 4750, 4753, 4756, 4759, 4762, 4765, 4768,
++  4771, 4774, 4777, 4780, 4783, 4786, 4789, 4792, 4795, 4798
+ };
+ static const wchar_t translit_to_tbl[] =
+   L" \0" L"\0" L"(C)\0" L"\0" L"<<\0" L"\0" L"-\0" L"\0" L"(R)\0" L"\0" L"u\0"
+@@ -594,73 +594,73 @@ static const wchar_t translit_to_tbl[] =
+   L"\0" L"..\0" L"\0" L"...\0" L"\0" L" \0" L"\0" L"`\0" L"\0" L"``\0" L"\0"
+   L"```\0" L"\0" L"<\0" L"\0" L">\0" L"\0" L"!!\0" L"\0" L"/\0" L"\0" L"??\0"
+   L"\0" L"?!\0" L"\0" L"!?\0" L"\0" L" \0" L"\0" L"\0" L"\0" L"\0" L"\0" L"\0"
+-  L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"a/c\0" L"\0" L"a/s\0" L"\0"
+-  L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0" L"H\0" L"\0" L"H\0"
+-  L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0" L"\0" L"L\0" L"\0"
+-  L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0" L"Q\0" L"\0" L"R\0"
+-  L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0" L"\0" L"Z\0" L"\0"
+-  L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0" L"e\0" L"\0" L"e\0"
+-  L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0" L"\0" L"i\0" L"\0"
+-  L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0" L"j\0" L"\0" L" 1/3 \0"
+-  L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0" L"\0" L" 3/5 \0" L"\0"
+-  L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0" L" 1/8 \0" L"\0"
+-  L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0" L"\0" L"I\0"
+-  L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0" L"VI\0" L"\0"
+-  L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0" L"XI\0" L"\0"
+-  L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0" L"\0" L"i\0"
+-  L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0" L"vi\0" L"\0"
+-  L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0" L"xi\0" L"\0"
+-  L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0" L"\0" L"<-\0"
+-  L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0" L"<=>\0"
+-  L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0" L"\0"
+-  L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0" L">>\0"
+-  L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0" L"STX\0"
+-  L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0" L"BEL\0"
+-  L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0" L"FF\0" L"\0"
+-  L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0" L"DC1\0" L"\0"
+-  L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0" L"SYN\0" L"\0"
+-  L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0" L"ESC\0" L"\0"
+-  L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0" L"SP\0" L"\0"
+-  L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0" L"(2)\0" L"\0"
+-  L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0" L"(7)\0" L"\0"
+-  L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0" L"(12)\0"
+-  L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0" L"\0"
+-  L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0" L"(1)\0"
+-  L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0"
+-  L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0"
+-  L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0"
+-  L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0"
+-  L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0" L"5.\0" L"\0"
+-  L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0" L"10.\0" L"\0"
+-  L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0" L"15.\0" L"\0"
+-  L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0" L"20.\0" L"\0"
+-  L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0"
+-  L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0"
+-  L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0"
+-  L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0"
+-  L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0"
+-  L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0" L"(D)\0" L"\0"
+-  L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0" L"(I)\0" L"\0"
+-  L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0" L"(N)\0" L"\0"
+-  L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0" L"(S)\0" L"\0"
+-  L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0" L"(X)\0" L"\0"
+-  L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0"
+-  L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0"
+-  L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0"
+-  L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0"
+-  L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0"
+-  L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0" L"-\0" L"\0"
+-  L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
+-  L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"o\0" L"\0"
+-  L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0" L"\0"
+-  L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0" L"(25)\0"
+-  L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0" L"\0"
+-  L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0" L"(34)\0"
+-  L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0" L"\0"
+-  L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0" L"(43)\0"
+-  L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0" L"\0"
+-  L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0" L"\0"
+-  L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0"
++  L"\0" L"\0" L"\0" L"Rs\0" L"\0" L"EUR\0" L"\0" L"INR\0" L"\0" L"a/c\0" L"\0"
++  L"a/s\0" L"\0" L"C\0" L"\0" L"c/o\0" L"\0" L"c/u\0" L"\0" L"g\0" L"\0"
++  L"H\0" L"\0" L"H\0" L"\0" L"H\0" L"\0" L"h\0" L"\0" L"I\0" L"\0" L"I\0"
++  L"\0" L"L\0" L"\0" L"l\0" L"\0" L"N\0" L"\0" L"No\0" L"\0" L"P\0" L"\0"
++  L"Q\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"R\0" L"\0" L"TEL\0" L"\0" L"(TM)\0"
++  L"\0" L"Z\0" L"\0" L"Ohm\0" L"\0" L"Z\0" L"\0" L"B\0" L"\0" L"C\0" L"\0"
++  L"e\0" L"\0" L"e\0" L"\0" L"E\0" L"\0" L"F\0" L"\0" L"M\0" L"\0" L"o\0"
++  L"\0" L"i\0" L"\0" L"D\0" L"\0" L"d\0" L"\0" L"e\0" L"\0" L"i\0" L"\0"
++  L"j\0" L"\0" L" 1/3 \0" L"\0" L" 2/3 \0" L"\0" L" 1/5 \0" L"\0" L" 2/5 \0"
++  L"\0" L" 3/5 \0" L"\0" L" 4/5 \0" L"\0" L" 1/6 \0" L"\0" L" 5/6 \0" L"\0"
++  L" 1/8 \0" L"\0" L" 3/8 \0" L"\0" L" 5/8 \0" L"\0" L" 7/8 \0" L"\0" L" 1/\0"
++  L"\0" L"I\0" L"\0" L"II\0" L"\0" L"III\0" L"\0" L"IV\0" L"\0" L"V\0" L"\0"
++  L"VI\0" L"\0" L"VII\0" L"\0" L"VIII\0" L"\0" L"IX\0" L"\0" L"X\0" L"\0"
++  L"XI\0" L"\0" L"XII\0" L"\0" L"L\0" L"\0" L"C\0" L"\0" L"D\0" L"\0" L"M\0"
++  L"\0" L"i\0" L"\0" L"ii\0" L"\0" L"iii\0" L"\0" L"iv\0" L"\0" L"v\0" L"\0"
++  L"vi\0" L"\0" L"vii\0" L"\0" L"viii\0" L"\0" L"ix\0" L"\0" L"x\0" L"\0"
++  L"xi\0" L"\0" L"xii\0" L"\0" L"l\0" L"\0" L"c\0" L"\0" L"d\0" L"\0" L"m\0"
++  L"\0" L"<-\0" L"\0" L"->\0" L"\0" L"<->\0" L"\0" L"<=\0" L"\0" L"=>\0" L"\0"
++  L"<=>\0" L"\0" L"-\0" L"\0" L"/\0" L"\0" L"\\\0" L"\0" L"*\0" L"\0" L"|\0"
++  L"\0" L":\0" L"\0" L"~\0" L"\0" L"<=\0" L"\0" L">=\0" L"\0" L"<<\0" L"\0"
++  L">>\0" L"\0" L"<<<\0" L"\0" L">>>\0" L"\0" L"NUL\0" L"\0" L"SOH\0" L"\0"
++  L"STX\0" L"\0" L"ETX\0" L"\0" L"EOT\0" L"\0" L"ENQ\0" L"\0" L"ACK\0" L"\0"
++  L"BEL\0" L"\0" L"BS\0" L"\0" L"HT\0" L"\0" L"LF\0" L"\0" L"VT\0" L"\0"
++  L"FF\0" L"\0" L"CR\0" L"\0" L"SO\0" L"\0" L"SI\0" L"\0" L"DLE\0" L"\0"
++  L"DC1\0" L"\0" L"DC2\0" L"\0" L"DC3\0" L"\0" L"DC4\0" L"\0" L"NAK\0" L"\0"
++  L"SYN\0" L"\0" L"ETB\0" L"\0" L"CAN\0" L"\0" L"EM\0" L"\0" L"SUB\0" L"\0"
++  L"ESC\0" L"\0" L"FS\0" L"\0" L"GS\0" L"\0" L"RS\0" L"\0" L"US\0" L"\0"
++  L"SP\0" L"\0" L"DEL\0" L"\0" L"_\0" L"\0" L"NL\0" L"\0" L"(1)\0" L"\0"
++  L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0" L"(6)\0" L"\0"
++  L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0" L"(11)\0" L"\0"
++  L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0" L"\0" L"(16)\0"
++  L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0" L"(20)\0" L"\0"
++  L"(1)\0" L"\0" L"(2)\0" L"\0" L"(3)\0" L"\0" L"(4)\0" L"\0" L"(5)\0" L"\0"
++  L"(6)\0" L"\0" L"(7)\0" L"\0" L"(8)\0" L"\0" L"(9)\0" L"\0" L"(10)\0" L"\0"
++  L"(11)\0" L"\0" L"(12)\0" L"\0" L"(13)\0" L"\0" L"(14)\0" L"\0" L"(15)\0"
++  L"\0" L"(16)\0" L"\0" L"(17)\0" L"\0" L"(18)\0" L"\0" L"(19)\0" L"\0"
++  L"(20)\0" L"\0" L"1.\0" L"\0" L"2.\0" L"\0" L"3.\0" L"\0" L"4.\0" L"\0"
++  L"5.\0" L"\0" L"6.\0" L"\0" L"7.\0" L"\0" L"8.\0" L"\0" L"9.\0" L"\0"
++  L"10.\0" L"\0" L"11.\0" L"\0" L"12.\0" L"\0" L"13.\0" L"\0" L"14.\0" L"\0"
++  L"15.\0" L"\0" L"16.\0" L"\0" L"17.\0" L"\0" L"18.\0" L"\0" L"19.\0" L"\0"
++  L"20.\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0" L"(c)\0" L"\0" L"(d)\0" L"\0"
++  L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0" L"(h)\0" L"\0" L"(i)\0" L"\0"
++  L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0" L"(m)\0" L"\0" L"(n)\0" L"\0"
++  L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0" L"(r)\0" L"\0" L"(s)\0" L"\0"
++  L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0" L"(w)\0" L"\0" L"(x)\0" L"\0"
++  L"(y)\0" L"\0" L"(z)\0" L"\0" L"(A)\0" L"\0" L"(B)\0" L"\0" L"(C)\0" L"\0"
++  L"(D)\0" L"\0" L"(E)\0" L"\0" L"(F)\0" L"\0" L"(G)\0" L"\0" L"(H)\0" L"\0"
++  L"(I)\0" L"\0" L"(J)\0" L"\0" L"(K)\0" L"\0" L"(L)\0" L"\0" L"(M)\0" L"\0"
++  L"(N)\0" L"\0" L"(O)\0" L"\0" L"(P)\0" L"\0" L"(Q)\0" L"\0" L"(R)\0" L"\0"
++  L"(S)\0" L"\0" L"(T)\0" L"\0" L"(U)\0" L"\0" L"(V)\0" L"\0" L"(W)\0" L"\0"
++  L"(X)\0" L"\0" L"(Y)\0" L"\0" L"(Z)\0" L"\0" L"(a)\0" L"\0" L"(b)\0" L"\0"
++  L"(c)\0" L"\0" L"(d)\0" L"\0" L"(e)\0" L"\0" L"(f)\0" L"\0" L"(g)\0" L"\0"
++  L"(h)\0" L"\0" L"(i)\0" L"\0" L"(j)\0" L"\0" L"(k)\0" L"\0" L"(l)\0" L"\0"
++  L"(m)\0" L"\0" L"(n)\0" L"\0" L"(o)\0" L"\0" L"(p)\0" L"\0" L"(q)\0" L"\0"
++  L"(r)\0" L"\0" L"(s)\0" L"\0" L"(t)\0" L"\0" L"(u)\0" L"\0" L"(v)\0" L"\0"
++  L"(w)\0" L"\0" L"(x)\0" L"\0" L"(y)\0" L"\0" L"(z)\0" L"\0" L"(0)\0" L"\0"
++  L"-\0" L"\0" L"|\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0"
++  L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0" L"+\0" L"\0"
++  L"o\0" L"\0" L"::=\0" L"\0" L"==\0" L"\0" L"===\0" L"\0" L" \0" L"\0" L"=\0"
++  L"\0" L"(21)\0" L"\0" L"(22)\0" L"\0" L"(23)\0" L"\0" L"(24)\0" L"\0"
++  L"(25)\0" L"\0" L"(26)\0" L"\0" L"(27)\0" L"\0" L"(28)\0" L"\0" L"(29)\0"
++  L"\0" L"(30)\0" L"\0" L"(31)\0" L"\0" L"(32)\0" L"\0" L"(33)\0" L"\0"
++  L"(34)\0" L"\0" L"(35)\0" L"\0" L"(36)\0" L"\0" L"(37)\0" L"\0" L"(38)\0"
++  L"\0" L"(39)\0" L"\0" L"(40)\0" L"\0" L"(41)\0" L"\0" L"(42)\0" L"\0"
++  L"(43)\0" L"\0" L"(44)\0" L"\0" L"(45)\0" L"\0" L"(46)\0" L"\0" L"(47)\0"
++  L"\0" L"(48)\0" L"\0" L"(49)\0" L"\0" L"(50)\0" L"\0" L"hPa\0" L"\0" L"da\0"
++  L"\0" L"AU\0" L"\0" L"bar\0" L"\0" L"oV\0" L"\0" L"pc\0" L"\0" L"pA\0" L"\0"
+   L"nA\0" L"\0" L"uA\0" L"\0" L"mA\0" L"\0" L"kA\0" L"\0" L"KB\0" L"\0"
+   L"MB\0" L"\0" L"GB\0" L"\0" L"cal\0" L"\0" L"kcal\0" L"\0" L"pF\0" L"\0"
+   L"nF\0" L"\0" L"uF\0" L"\0" L"ug\0" L"\0" L"mg\0" L"\0" L"kg\0" L"\0"
+Index: glibc-2.12-2-gc4ccff1/locale/C-translit.h.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/C-translit.h.in
++++ glibc-2.12-2-gc4ccff1/locale/C-translit.h.in
+@@ -105,6 +105,7 @@
+ "\x2063"      ""      /* <U2063> INVISIBLE SEPARATOR */
+ "\x20a8"      "Rs"    /* <U20A8> RUPEE SIGN */
+ "\x20ac"      "EUR"   /* <U20AC> EURO SIGN */
++"\x20b9"      "INR"   /* <U20B9> INDIAN RUPEE SIGN */
+ "\x2100"      "a/c"   /* <U2100> ACCOUNT OF */
+ "\x2101"      "a/s"   /* <U2101> ADDRESSED TO THE SUBJECT */
+ "\x2102"      "C"     /* <U2102> DOUBLE-STRUCK CAPITAL C */
+Index: glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/charmaps/UTF-8
++++ glibc-2.12-2-gc4ccff1/localedata/charmaps/UTF-8
+@@ -1312,6 +1312,10 @@ CHARMAP
+ <U0521>     /xd4/xa1     CYRILLIC SMALL LETTER EL WITH MIDDLE HOOK
+ <U0522>     /xd4/xa2     CYRILLIC CAPITAL LETTER EN WITH MIDDLE HOOK
+ <U0523>     /xd4/xa3     CYRILLIC SMALL LETTER EN WITH MIDDLE HOOK
++<U0524>     /xd4/xa4     CYRILLIC CAPITAL LETTER PE WITH DESCENDER
++<U0525>     /xd4/xa5     CYRILLIC SMALL LETTER PE WITH DESCENDER
++<U0526>     /xd4/xa6     CYRILLIC CAPITAL LETTER SHHA WITH DESCENDER
++<U0527>     /xd4/xa7     CYRILLIC SMALL LETTER SHHA WITH DESCENDER
+ <U0531>     /xd4/xb1     ARMENIAN CAPITAL LETTER AYB
+ <U0532>     /xd4/xb2     ARMENIAN CAPITAL LETTER BEN
+ <U0533>     /xd4/xb3     ARMENIAN CAPITAL LETTER GIM
+@@ -1513,6 +1517,7 @@ CHARMAP
+ <U061B>     /xd8/x9b     ARABIC SEMICOLON
+ <U061E>     /xd8/x9e     ARABIC TRIPLE DOT PUNCTUATION MARK
+ <U061F>     /xd8/x9f     ARABIC QUESTION MARK
++<U0620>     /xd8/xa0     ARABIC LETTER KASHMIRI YEH
+ <U0621>     /xd8/xa1     ARABIC LETTER HAMZA
+ <U0622>     /xd8/xa2     ARABIC LETTER ALEF WITH MADDA ABOVE
+ <U0623>     /xd8/xa3     ARABIC LETTER ALEF WITH HAMZA ABOVE
+@@ -1575,6 +1580,7 @@ CHARMAP
+ <U065C>     /xd9/x9c     ARABIC VOWEL SIGN DOT BELOW
+ <U065D>     /xd9/x9d     ARABIC REVERSED DAMMA
+ <U065E>     /xd9/x9e     ARABIC FATHA WITH TWO DOTS
++<U065F>     /xd9/x9f     ARABIC WAVY HAMZA BELOW
+ <U0660>     /xd9/xa0     ARABIC-INDIC DIGIT ZERO
+ <U0661>     /xd9/xa1     ARABIC-INDIC DIGIT ONE
+ <U0662>     /xd9/xa2     ARABIC-INDIC DIGIT TWO
+@@ -1969,6 +1975,97 @@ CHARMAP
+ <U07F8>     /xdf/xb8     NKO COMMA
+ <U07F9>     /xdf/xb9     NKO EXCLAMATION MARK
+ <U07FA>     /xdf/xba     NKO LAJANYALAN
++<U0800>     /xe0/xa0/x80 SAMARITAN LETTER ALAF
++<U0801>     /xe0/xa0/x81 SAMARITAN LETTER BIT
++<U0802>     /xe0/xa0/x82 SAMARITAN LETTER GAMAN
++<U0803>     /xe0/xa0/x83 SAMARITAN LETTER DALAT
++<U0804>     /xe0/xa0/x84 SAMARITAN LETTER IY
++<U0805>     /xe0/xa0/x85 SAMARITAN LETTER BAA
++<U0806>     /xe0/xa0/x86 SAMARITAN LETTER ZEN
++<U0807>     /xe0/xa0/x87 SAMARITAN LETTER IT
++<U0808>     /xe0/xa0/x88 SAMARITAN LETTER TIT
++<U0809>     /xe0/xa0/x89 SAMARITAN LETTER YUT
++<U080A>     /xe0/xa0/x8a SAMARITAN LETTER KAAF
++<U080B>     /xe0/xa0/x8b SAMARITAN LETTER LABAT
++<U080C>     /xe0/xa0/x8c SAMARITAN LETTER MIM
++<U080D>     /xe0/xa0/x8d SAMARITAN LETTER NUN
++<U080E>     /xe0/xa0/x8e SAMARITAN LETTER SINGAAT
++<U080F>     /xe0/xa0/x8f SAMARITAN LETTER IN
++<U0810>     /xe0/xa0/x90 SAMARITAN LETTER FI
++<U0811>     /xe0/xa0/x91 SAMARITAN LETTER TSAADIY
++<U0812>     /xe0/xa0/x92 SAMARITAN LETTER QUF
++<U0813>     /xe0/xa0/x93 SAMARITAN LETTER RISH
++<U0814>     /xe0/xa0/x94 SAMARITAN LETTER SHAN
++<U0815>     /xe0/xa0/x95 SAMARITAN LETTER TAAF
++<U0816>     /xe0/xa0/x96 SAMARITAN MARK IN
++<U0817>     /xe0/xa0/x97 SAMARITAN MARK IN-ALAF
++<U0818>     /xe0/xa0/x98 SAMARITAN MARK OCCLUSION
++<U0819>     /xe0/xa0/x99 SAMARITAN MARK DAGESH
++<U081A>     /xe0/xa0/x9a SAMARITAN MODIFIER LETTER EPENTHETIC YUT
++<U081B>     /xe0/xa0/x9b SAMARITAN MARK EPENTHETIC YUT
++<U081C>     /xe0/xa0/x9c SAMARITAN VOWEL SIGN LONG E
++<U081D>     /xe0/xa0/x9d SAMARITAN VOWEL SIGN E
++<U081E>     /xe0/xa0/x9e SAMARITAN VOWEL SIGN OVERLONG AA
++<U081F>     /xe0/xa0/x9f SAMARITAN VOWEL SIGN LONG AA
++<U0820>     /xe0/xa0/xa0 SAMARITAN VOWEL SIGN AA
++<U0821>     /xe0/xa0/xa1 SAMARITAN VOWEL SIGN OVERLONG A
++<U0822>     /xe0/xa0/xa2 SAMARITAN VOWEL SIGN LONG A
++<U0823>     /xe0/xa0/xa3 SAMARITAN VOWEL SIGN A
++<U0824>     /xe0/xa0/xa4 SAMARITAN MODIFIER LETTER SHORT A
++<U0825>     /xe0/xa0/xa5 SAMARITAN VOWEL SIGN SHORT A
++<U0826>     /xe0/xa0/xa6 SAMARITAN VOWEL SIGN LONG U
++<U0827>     /xe0/xa0/xa7 SAMARITAN VOWEL SIGN U
++<U0828>     /xe0/xa0/xa8 SAMARITAN MODIFIER LETTER I
++<U0829>     /xe0/xa0/xa9 SAMARITAN VOWEL SIGN LONG I
++<U082A>     /xe0/xa0/xaa SAMARITAN VOWEL SIGN I
++<U082B>     /xe0/xa0/xab SAMARITAN VOWEL SIGN O
++<U082C>     /xe0/xa0/xac SAMARITAN VOWEL SIGN SUKUN
++<U082D>     /xe0/xa0/xad SAMARITAN MARK NEQUDAA
++<U0830>     /xe0/xa0/xb0 SAMARITAN PUNCTUATION NEQUDAA
++<U0831>     /xe0/xa0/xb1 SAMARITAN PUNCTUATION AFSAAQ
++<U0832>     /xe0/xa0/xb2 SAMARITAN PUNCTUATION ANGED
++<U0833>     /xe0/xa0/xb3 SAMARITAN PUNCTUATION BAU
++<U0834>     /xe0/xa0/xb4 SAMARITAN PUNCTUATION ATMAAU
++<U0835>     /xe0/xa0/xb5 SAMARITAN PUNCTUATION SHIYYAALAA
++<U0836>     /xe0/xa0/xb6 SAMARITAN ABBREVIATION MARK
++<U0837>     /xe0/xa0/xb7 SAMARITAN PUNCTUATION MELODIC QITSA
++<U0838>     /xe0/xa0/xb8 SAMARITAN PUNCTUATION ZIQAA
++<U0839>     /xe0/xa0/xb9 SAMARITAN PUNCTUATION QITSA
++<U083A>     /xe0/xa0/xba SAMARITAN PUNCTUATION ZAEF
++<U083B>     /xe0/xa0/xbb SAMARITAN PUNCTUATION TURU
++<U083C>     /xe0/xa0/xbc SAMARITAN PUNCTUATION ARKAANU
++<U083D>     /xe0/xa0/xbd SAMARITAN PUNCTUATION SOF MASHFAAT
++<U083E>     /xe0/xa0/xbe SAMARITAN PUNCTUATION ANNAAU
++<U0840>     /xe0/xa1/x80 MANDAIC LETTER HALQA
++<U0841>     /xe0/xa1/x81 MANDAIC LETTER AB
++<U0842>     /xe0/xa1/x82 MANDAIC LETTER AG
++<U0843>     /xe0/xa1/x83 MANDAIC LETTER AD
++<U0844>     /xe0/xa1/x84 MANDAIC LETTER AH
++<U0845>     /xe0/xa1/x85 MANDAIC LETTER USHENNA
++<U0846>     /xe0/xa1/x86 MANDAIC LETTER AZ
++<U0847>     /xe0/xa1/x87 MANDAIC LETTER IT
++<U0848>     /xe0/xa1/x88 MANDAIC LETTER ATT
++<U0849>     /xe0/xa1/x89 MANDAIC LETTER AKSA
++<U084A>     /xe0/xa1/x8a MANDAIC LETTER AK
++<U084B>     /xe0/xa1/x8b MANDAIC LETTER AL
++<U084C>     /xe0/xa1/x8c MANDAIC LETTER AM
++<U084D>     /xe0/xa1/x8d MANDAIC LETTER AN
++<U084E>     /xe0/xa1/x8e MANDAIC LETTER AS
++<U084F>     /xe0/xa1/x8f MANDAIC LETTER IN
++<U0850>     /xe0/xa1/x90 MANDAIC LETTER AP
++<U0851>     /xe0/xa1/x91 MANDAIC LETTER ASZ
++<U0852>     /xe0/xa1/x92 MANDAIC LETTER AQ
++<U0853>     /xe0/xa1/x93 MANDAIC LETTER AR
++<U0854>     /xe0/xa1/x94 MANDAIC LETTER ASH
++<U0855>     /xe0/xa1/x95 MANDAIC LETTER AT
++<U0856>     /xe0/xa1/x96 MANDAIC LETTER DUSHENNA
++<U0857>     /xe0/xa1/x97 MANDAIC LETTER KAD
++<U0858>     /xe0/xa1/x98 MANDAIC LETTER AIN
++<U0859>     /xe0/xa1/x99 MANDAIC AFFRICATION MARK
++<U085A>     /xe0/xa1/x9a MANDAIC VOCALIZATION MARK
++<U085B>     /xe0/xa1/x9b MANDAIC GEMINATION MARK
++<U085E>     /xe0/xa1/x9e MANDAIC PUNCTUATION
++<U0900>     /xe0/xa4/x80 DEVANAGARI SIGN INVERTED CANDRABINDU
+ <U0901>     /xe0/xa4/x81 DEVANAGARI SIGN CANDRABINDU
+ <U0902>     /xe0/xa4/x82 DEVANAGARI SIGN ANUSVARA
+ <U0903>     /xe0/xa4/x83 DEVANAGARI SIGN VISARGA
+@@ -2026,6 +2123,8 @@ CHARMAP
+ <U0937>     /xe0/xa4/xb7 DEVANAGARI LETTER SSA
+ <U0938>     /xe0/xa4/xb8 DEVANAGARI LETTER SA
+ <U0939>     /xe0/xa4/xb9 DEVANAGARI LETTER HA
++<U093A>     /xe0/xa4/xba DEVANAGARI VOWEL SIGN OE
++<U093B>     /xe0/xa4/xbb DEVANAGARI VOWEL SIGN OOE
+ <U093C>     /xe0/xa4/xbc DEVANAGARI SIGN NUKTA
+ <U093D>     /xe0/xa4/xbd DEVANAGARI SIGN AVAGRAHA
+ <U093E>     /xe0/xa4/xbe DEVANAGARI VOWEL SIGN AA
+@@ -2044,11 +2143,16 @@ CHARMAP
+ <U094B>     /xe0/xa5/x8b DEVANAGARI VOWEL SIGN O
+ <U094C>     /xe0/xa5/x8c DEVANAGARI VOWEL SIGN AU
+ <U094D>     /xe0/xa5/x8d DEVANAGARI SIGN VIRAMA
++<U094E>     /xe0/xa5/x8e DEVANAGARI VOWEL SIGN PRISHTHAMATRA E
++<U094F>     /xe0/xa5/x8f DEVANAGARI VOWEL SIGN AW
+ <U0950>     /xe0/xa5/x90 DEVANAGARI OM
+ <U0951>     /xe0/xa5/x91 DEVANAGARI STRESS SIGN UDATTA
+ <U0952>     /xe0/xa5/x92 DEVANAGARI STRESS SIGN ANUDATTA
+ <U0953>     /xe0/xa5/x93 DEVANAGARI GRAVE ACCENT
+ <U0954>     /xe0/xa5/x94 DEVANAGARI ACUTE ACCENT
++<U0955>     /xe0/xa5/x95 DEVANAGARI VOWEL SIGN CANDRA LONG E
++<U0956>     /xe0/xa5/x96 DEVANAGARI VOWEL SIGN UE
++<U0957>     /xe0/xa5/x97 DEVANAGARI VOWEL SIGN UUE
+ <U0958>     /xe0/xa5/x98 DEVANAGARI LETTER QA
+ <U0959>     /xe0/xa5/x99 DEVANAGARI LETTER KHHA
+ <U095A>     /xe0/xa5/x9a DEVANAGARI LETTER GHHA
+@@ -2076,6 +2180,13 @@ CHARMAP
+ <U0970>     /xe0/xa5/xb0 DEVANAGARI ABBREVIATION SIGN
+ <U0971>     /xe0/xa5/xb1 DEVANAGARI SIGN HIGH SPACING DOT
+ <U0972>     /xe0/xa5/xb2 DEVANAGARI LETTER CANDRA A
++<U0973>     /xe0/xa5/xb3 DEVANAGARI LETTER OE
++<U0974>     /xe0/xa5/xb4 DEVANAGARI LETTER OOE
++<U0975>     /xe0/xa5/xb5 DEVANAGARI LETTER AW
++<U0976>     /xe0/xa5/xb6 DEVANAGARI LETTER UE
++<U0977>     /xe0/xa5/xb7 DEVANAGARI LETTER UUE
++<U0979>     /xe0/xa5/xb9 DEVANAGARI LETTER ZHA
++<U097A>     /xe0/xa5/xba DEVANAGARI LETTER HEAVY YA
+ <U097B>     /xe0/xa5/xbb DEVANAGARI LETTER GGA
+ <U097C>     /xe0/xa5/xbc DEVANAGARI LETTER JJA
+ <U097D>     /xe0/xa5/xbd DEVANAGARI LETTER GLOTTAL STOP
+@@ -2172,6 +2283,7 @@ CHARMAP
+ <U09F8>     /xe0/xa7/xb8 BENGALI CURRENCY NUMERATOR ONE LESS THAN THE DENOMINATOR
+ <U09F9>     /xe0/xa7/xb9 BENGALI CURRENCY DENOMINATOR SIXTEEN
+ <U09FA>     /xe0/xa7/xba BENGALI ISSHAR
++<U09FB>     /xe0/xa7/xbb BENGALI GANDA MARK
+ <U0A01>     /xe0/xa8/x81 GURMUKHI SIGN ADAK BINDI
+ <U0A02>     /xe0/xa8/x82 GURMUKHI SIGN BINDI
+ <U0A03>     /xe0/xa8/x83 GURMUKHI SIGN VISARGA
+@@ -2418,6 +2530,12 @@ CHARMAP
+ <U0B6F>     /xe0/xad/xaf ORIYA DIGIT NINE
+ <U0B70>     /xe0/xad/xb0 ORIYA ISSHAR
+ <U0B71>     /xe0/xad/xb1 ORIYA LETTER WA
++<U0B72>     /xe0/xad/xb2 ORIYA FRACTION ONE QUARTER
++<U0B73>     /xe0/xad/xb3 ORIYA FRACTION ONE HALF
++<U0B74>     /xe0/xad/xb4 ORIYA FRACTION THREE QUARTERS
++<U0B75>     /xe0/xad/xb5 ORIYA FRACTION ONE SIXTEENTH
++<U0B76>     /xe0/xad/xb6 ORIYA FRACTION ONE EIGHTH
++<U0B77>     /xe0/xad/xb7 ORIYA FRACTION THREE SIXTEENTHS
+ <U0B82>     /xe0/xae/x82 TAMIL SIGN ANUSVARA
+ <U0B83>     /xe0/xae/x83 TAMIL SIGN VISARGA
+ <U0B85>     /xe0/xae/x85 TAMIL LETTER A
+@@ -2705,6 +2823,7 @@ CHARMAP
+ <U0D26>     /xe0/xb4/xa6 MALAYALAM LETTER DA
+ <U0D27>     /xe0/xb4/xa7 MALAYALAM LETTER DHA
+ <U0D28>     /xe0/xb4/xa8 MALAYALAM LETTER NA
++<U0D29>     /xe0/xb4/xa9 MALAYALAM LETTER NNNA
+ <U0D2A>     /xe0/xb4/xaa MALAYALAM LETTER PA
+ <U0D2B>     /xe0/xb4/xab MALAYALAM LETTER PHA
+ <U0D2C>     /xe0/xb4/xac MALAYALAM LETTER BA
+@@ -2721,6 +2840,7 @@ CHARMAP
+ <U0D37>     /xe0/xb4/xb7 MALAYALAM LETTER SSA
+ <U0D38>     /xe0/xb4/xb8 MALAYALAM LETTER SA
+ <U0D39>     /xe0/xb4/xb9 MALAYALAM LETTER HA
++<U0D3A>     /xe0/xb4/xba MALAYALAM LETTER TTTA
+ <U0D3D>     /xe0/xb4/xbd MALAYALAM SIGN AVAGRAHA
+ <U0D3E>     /xe0/xb4/xbe MALAYALAM VOWEL SIGN AA
+ <U0D3F>     /xe0/xb4/xbf MALAYALAM VOWEL SIGN I
+@@ -2736,6 +2856,7 @@ CHARMAP
+ <U0D4B>     /xe0/xb5/x8b MALAYALAM VOWEL SIGN OO
+ <U0D4C>     /xe0/xb5/x8c MALAYALAM VOWEL SIGN AU
+ <U0D4D>     /xe0/xb5/x8d MALAYALAM SIGN VIRAMA
++<U0D4E>     /xe0/xb5/x8e MALAYALAM LETTER DOT REPH
+ <U0D57>     /xe0/xb5/x97 MALAYALAM AU LENGTH MARK
+ <U0D60>     /xe0/xb5/xa0 MALAYALAM LETTER VOCALIC RR
+ <U0D61>     /xe0/xb5/xa1 MALAYALAM LETTER VOCALIC LL
+@@ -3131,6 +3252,10 @@ CHARMAP
+ <U0F89>     /xe0/xbe/x89 TIBETAN SIGN MCHU CAN
+ <U0F8A>     /xe0/xbe/x8a TIBETAN SIGN GRU CAN RGYINGS
+ <U0F8B>     /xe0/xbe/x8b TIBETAN SIGN GRU MED RGYINGS
++<U0F8C>     /xe0/xbe/x8c TIBETAN SIGN INVERTED MCHU CAN
++<U0F8D>     /xe0/xbe/x8d TIBETAN SUBJOINED SIGN LCE TSA CAN
++<U0F8E>     /xe0/xbe/x8e TIBETAN SUBJOINED SIGN MCHU CAN
++<U0F8F>     /xe0/xbe/x8f TIBETAN SUBJOINED SIGN INVERTED MCHU CAN
+ <U0F90>     /xe0/xbe/x90 TIBETAN SUBJOINED LETTER KA
+ <U0F91>     /xe0/xbe/x91 TIBETAN SUBJOINED LETTER KHA
+ <U0F92>     /xe0/xbe/x92 TIBETAN SUBJOINED LETTER GA
+@@ -3197,6 +3322,12 @@ CHARMAP
+ <U0FD2>     /xe0/xbf/x92 TIBETAN MARK NYIS TSHEG
+ <U0FD3>     /xe0/xbf/x93 TIBETAN MARK INITIAL BRDA RNYING YIG MGO MDUN MA
+ <U0FD4>     /xe0/xbf/x94 TIBETAN MARK CLOSING BRDA RNYING YIG MGO SGAB MA
++<U0FD5>     /xe0/xbf/x95 RIGHT-FACING SVASTI SIGN
++<U0FD6>     /xe0/xbf/x96 LEFT-FACING SVASTI SIGN
++<U0FD7>     /xe0/xbf/x97 RIGHT-FACING SVASTI SIGN WITH DOTS
++<U0FD8>     /xe0/xbf/x98 LEFT-FACING SVASTI SIGN WITH DOTS
++<U0FD9>     /xe0/xbf/x99 TIBETAN MARK LEADING MCHAN RTAGS
++<U0FDA>     /xe0/xbf/x9a TIBETAN MARK TRAILING MCHAN RTAGS
+ <U1000>     /xe1/x80/x80 MYANMAR LETTER KA
+ <U1001>     /xe1/x80/x81 MYANMAR LETTER KHA
+ <U1002>     /xe1/x80/x82 MYANMAR LETTER GA
+@@ -3351,6 +3482,10 @@ CHARMAP
+ <U1097>     /xe1/x82/x97 MYANMAR SHAN DIGIT SEVEN
+ <U1098>     /xe1/x82/x98 MYANMAR SHAN DIGIT EIGHT
+ <U1099>     /xe1/x82/x99 MYANMAR SHAN DIGIT NINE
++<U109A>     /xe1/x82/x9a MYANMAR SIGN KHAMTI TONE-1
++<U109B>     /xe1/x82/x9b MYANMAR SIGN KHAMTI TONE-3
++<U109C>     /xe1/x82/x9c MYANMAR VOWEL SIGN AITON A
++<U109D>     /xe1/x82/x9d MYANMAR VOWEL SIGN AITON AI
+ <U109E>     /xe1/x82/x9e MYANMAR SYMBOL SHAN ONE
+ <U109F>     /xe1/x82/x9f MYANMAR SYMBOL SHAN EXCLAMATION
+ <U10A0>     /xe1/x82/xa0 GEORGIAN CAPITAL LETTER AN
+@@ -3526,6 +3661,11 @@ CHARMAP
+ <U1157>     /xe1/x85/x97 HANGUL CHOSEONG KAPYEOUNPHIEUPH
+ <U1158>     /xe1/x85/x98 HANGUL CHOSEONG SSANGHIEUH
+ <U1159>     /xe1/x85/x99 HANGUL CHOSEONG YEORINHIEUH
++<U115A>     /xe1/x85/x9a HANGUL CHOSEONG KIYEOK-TIKEUT
++<U115B>     /xe1/x85/x9b HANGUL CHOSEONG NIEUN-SIOS
++<U115C>     /xe1/x85/x9c HANGUL CHOSEONG NIEUN-CIEUC
++<U115D>     /xe1/x85/x9d HANGUL CHOSEONG NIEUN-HIEUH
++<U115E>     /xe1/x85/x9e HANGUL CHOSEONG TIKEUT-RIEUL
+ <U115F>     /xe1/x85/x9f HANGUL CHOSEONG FILLER
+ <U1160>     /xe1/x85/xa0 HANGUL JUNGSEONG FILLER
+ <U1161>     /xe1/x85/xa1 HANGUL JUNGSEONG A
+@@ -3594,6 +3734,11 @@ CHARMAP
+ <U11A0>     /xe1/x86/xa0 HANGUL JUNGSEONG ARAEA-U
+ <U11A1>     /xe1/x86/xa1 HANGUL JUNGSEONG ARAEA-I
+ <U11A2>     /xe1/x86/xa2 HANGUL JUNGSEONG SSANGARAEA
++<U11A3>     /xe1/x86/xa3 HANGUL JUNGSEONG A-EU
++<U11A4>     /xe1/x86/xa4 HANGUL JUNGSEONG YA-U
++<U11A5>     /xe1/x86/xa5 HANGUL JUNGSEONG YEO-YA
++<U11A6>     /xe1/x86/xa6 HANGUL JUNGSEONG O-YA
++<U11A7>     /xe1/x86/xa7 HANGUL JUNGSEONG O-YAE
+ <U11A8>     /xe1/x86/xa8 HANGUL JONGSEONG KIYEOK
+ <U11A9>     /xe1/x86/xa9 HANGUL JONGSEONG SSANGKIYEOK
+ <U11AA>     /xe1/x86/xaa HANGUL JONGSEONG KIYEOK-SIOS
+@@ -3676,6 +3821,12 @@ CHARMAP
+ <U11F7>     /xe1/x87/xb7 HANGUL JONGSEONG HIEUH-MIEUM
+ <U11F8>     /xe1/x87/xb8 HANGUL JONGSEONG HIEUH-PIEUP
+ <U11F9>     /xe1/x87/xb9 HANGUL JONGSEONG YEORINHIEUH
++<U11FA>     /xe1/x87/xba HANGUL JONGSEONG KIYEOK-NIEUN
++<U11FB>     /xe1/x87/xbb HANGUL JONGSEONG KIYEOK-PIEUP
++<U11FC>     /xe1/x87/xbc HANGUL JONGSEONG KIYEOK-CHIEUCH
++<U11FD>     /xe1/x87/xbd HANGUL JONGSEONG KIYEOK-KHIEUKH
++<U11FE>     /xe1/x87/xbe HANGUL JONGSEONG KIYEOK-HIEUH
++<U11FF>     /xe1/x87/xbf HANGUL JONGSEONG SSANGNIEUN
+ <U1200>     /xe1/x88/x80 ETHIOPIC SYLLABLE HA
+ <U1201>     /xe1/x88/x81 ETHIOPIC SYLLABLE HU
+ <U1202>     /xe1/x88/x82 ETHIOPIC SYLLABLE HI
+@@ -4002,6 +4153,8 @@ CHARMAP
+ <U1358>     /xe1/x8d/x98 ETHIOPIC SYLLABLE RYA
+ <U1359>     /xe1/x8d/x99 ETHIOPIC SYLLABLE MYA
+ <U135A>     /xe1/x8d/x9a ETHIOPIC SYLLABLE FYA
++<U135D>     /xe1/x8d/x9d ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
++<U135E>     /xe1/x8d/x9e ETHIOPIC COMBINING VOWEL LENGTH MARK
+ <U135F>     /xe1/x8d/x9f ETHIOPIC COMBINING GEMINATION MARK
+ <U1360>     /xe1/x8d/xa0 ETHIOPIC SECTION MARK
+ <U1361>     /xe1/x8d/xa1 ETHIOPIC WORDSPACE
+@@ -4143,6 +4296,7 @@ CHARMAP
+ <U13F2>     /xe1/x8f/xb2 CHEROKEE LETTER YO
+ <U13F3>     /xe1/x8f/xb3 CHEROKEE LETTER YU
+ <U13F4>     /xe1/x8f/xb4 CHEROKEE LETTER YV
++<U1400>     /xe1/x90/x80 CANADIAN SYLLABICS HYPHEN
+ <U1401>     /xe1/x90/x81 CANADIAN SYLLABICS E
+ <U1402>     /xe1/x90/x82 CANADIAN SYLLABICS AAI
+ <U1403>     /xe1/x90/x83 CANADIAN SYLLABICS I
+@@ -4773,6 +4927,15 @@ CHARMAP
+ <U1674>     /xe1/x99/xb4 CANADIAN SYLLABICS NNGOO
+ <U1675>     /xe1/x99/xb5 CANADIAN SYLLABICS NNGA
+ <U1676>     /xe1/x99/xb6 CANADIAN SYLLABICS NNGAA
++<U1677>     /xe1/x99/xb7 CANADIAN SYLLABICS WOODS-CREE THWEE
++<U1678>     /xe1/x99/xb8 CANADIAN SYLLABICS WOODS-CREE THWI
++<U1679>     /xe1/x99/xb9 CANADIAN SYLLABICS WOODS-CREE THWII
++<U167A>     /xe1/x99/xba CANADIAN SYLLABICS WOODS-CREE THWO
++<U167B>     /xe1/x99/xbb CANADIAN SYLLABICS WOODS-CREE THWOO
++<U167C>     /xe1/x99/xbc CANADIAN SYLLABICS WOODS-CREE THWA
++<U167D>     /xe1/x99/xbd CANADIAN SYLLABICS WOODS-CREE THWAA
++<U167E>     /xe1/x99/xbe CANADIAN SYLLABICS WOODS-CREE FINAL TH
++<U167F>     /xe1/x99/xbf CANADIAN SYLLABICS BLACKFOOT W
+ <U1680>     /xe1/x9a/x80 OGHAM SPACE MARK
+ <U1681>     /xe1/x9a/x81 OGHAM LETTER BEITH
+ <U1682>     /xe1/x9a/x82 OGHAM LETTER LUIS
+@@ -5234,6 +5397,76 @@ CHARMAP
+ <U18A8>     /xe1/xa2/xa8 MONGOLIAN LETTER MANCHU ALI GALI BHA
+ <U18A9>     /xe1/xa2/xa9 MONGOLIAN LETTER ALI GALI DAGALGA
+ <U18AA>     /xe1/xa2/xaa MONGOLIAN LETTER MANCHU ALI GALI LHA
++<U18B0>     /xe1/xa2/xb0 CANADIAN SYLLABICS OY
++<U18B1>     /xe1/xa2/xb1 CANADIAN SYLLABICS AY
++<U18B2>     /xe1/xa2/xb2 CANADIAN SYLLABICS AAY
++<U18B3>     /xe1/xa2/xb3 CANADIAN SYLLABICS WAY
++<U18B4>     /xe1/xa2/xb4 CANADIAN SYLLABICS POY
++<U18B5>     /xe1/xa2/xb5 CANADIAN SYLLABICS PAY
++<U18B6>     /xe1/xa2/xb6 CANADIAN SYLLABICS PWOY
++<U18B7>     /xe1/xa2/xb7 CANADIAN SYLLABICS TAY
++<U18B8>     /xe1/xa2/xb8 CANADIAN SYLLABICS KAY
++<U18B9>     /xe1/xa2/xb9 CANADIAN SYLLABICS KWAY
++<U18BA>     /xe1/xa2/xba CANADIAN SYLLABICS MAY
++<U18BB>     /xe1/xa2/xbb CANADIAN SYLLABICS NOY
++<U18BC>     /xe1/xa2/xbc CANADIAN SYLLABICS NAY
++<U18BD>     /xe1/xa2/xbd CANADIAN SYLLABICS LAY
++<U18BE>     /xe1/xa2/xbe CANADIAN SYLLABICS SOY
++<U18BF>     /xe1/xa2/xbf CANADIAN SYLLABICS SAY
++<U18C0>     /xe1/xa3/x80 CANADIAN SYLLABICS SHOY
++<U18C1>     /xe1/xa3/x81 CANADIAN SYLLABICS SHAY
++<U18C2>     /xe1/xa3/x82 CANADIAN SYLLABICS SHWOY
++<U18C3>     /xe1/xa3/x83 CANADIAN SYLLABICS YOY
++<U18C4>     /xe1/xa3/x84 CANADIAN SYLLABICS YAY
++<U18C5>     /xe1/xa3/x85 CANADIAN SYLLABICS RAY
++<U18C6>     /xe1/xa3/x86 CANADIAN SYLLABICS NWI
++<U18C7>     /xe1/xa3/x87 CANADIAN SYLLABICS OJIBWAY NWI
++<U18C8>     /xe1/xa3/x88 CANADIAN SYLLABICS NWII
++<U18C9>     /xe1/xa3/x89 CANADIAN SYLLABICS OJIBWAY NWII
++<U18CA>     /xe1/xa3/x8a CANADIAN SYLLABICS NWO
++<U18CB>     /xe1/xa3/x8b CANADIAN SYLLABICS OJIBWAY NWO
++<U18CC>     /xe1/xa3/x8c CANADIAN SYLLABICS NWOO
++<U18CD>     /xe1/xa3/x8d CANADIAN SYLLABICS OJIBWAY NWOO
++<U18CE>     /xe1/xa3/x8e CANADIAN SYLLABICS RWEE
++<U18CF>     /xe1/xa3/x8f CANADIAN SYLLABICS RWI
++<U18D0>     /xe1/xa3/x90 CANADIAN SYLLABICS RWII
++<U18D1>     /xe1/xa3/x91 CANADIAN SYLLABICS RWO
++<U18D2>     /xe1/xa3/x92 CANADIAN SYLLABICS RWOO
++<U18D3>     /xe1/xa3/x93 CANADIAN SYLLABICS RWA
++<U18D4>     /xe1/xa3/x94 CANADIAN SYLLABICS OJIBWAY P
++<U18D5>     /xe1/xa3/x95 CANADIAN SYLLABICS OJIBWAY T
++<U18D6>     /xe1/xa3/x96 CANADIAN SYLLABICS OJIBWAY K
++<U18D7>     /xe1/xa3/x97 CANADIAN SYLLABICS OJIBWAY C
++<U18D8>     /xe1/xa3/x98 CANADIAN SYLLABICS OJIBWAY M
++<U18D9>     /xe1/xa3/x99 CANADIAN SYLLABICS OJIBWAY N
++<U18DA>     /xe1/xa3/x9a CANADIAN SYLLABICS OJIBWAY S
++<U18DB>     /xe1/xa3/x9b CANADIAN SYLLABICS OJIBWAY SH
++<U18DC>     /xe1/xa3/x9c CANADIAN SYLLABICS EASTERN W
++<U18DD>     /xe1/xa3/x9d CANADIAN SYLLABICS WESTERN W
++<U18DE>     /xe1/xa3/x9e CANADIAN SYLLABICS FINAL SMALL RING
++<U18DF>     /xe1/xa3/x9f CANADIAN SYLLABICS FINAL RAISED DOT
++<U18E0>     /xe1/xa3/xa0 CANADIAN SYLLABICS R-CREE RWE
++<U18E1>     /xe1/xa3/xa1 CANADIAN SYLLABICS WEST-CREE LOO
++<U18E2>     /xe1/xa3/xa2 CANADIAN SYLLABICS WEST-CREE LAA
++<U18E3>     /xe1/xa3/xa3 CANADIAN SYLLABICS THWE
++<U18E4>     /xe1/xa3/xa4 CANADIAN SYLLABICS THWA
++<U18E5>     /xe1/xa3/xa5 CANADIAN SYLLABICS TTHWE
++<U18E6>     /xe1/xa3/xa6 CANADIAN SYLLABICS TTHOO
++<U18E7>     /xe1/xa3/xa7 CANADIAN SYLLABICS TTHAA
++<U18E8>     /xe1/xa3/xa8 CANADIAN SYLLABICS TLHWE
++<U18E9>     /xe1/xa3/xa9 CANADIAN SYLLABICS TLHOO
++<U18EA>     /xe1/xa3/xaa CANADIAN SYLLABICS SAYISI SHWE
++<U18EB>     /xe1/xa3/xab CANADIAN SYLLABICS SAYISI SHOO
++<U18EC>     /xe1/xa3/xac CANADIAN SYLLABICS SAYISI HOO
++<U18ED>     /xe1/xa3/xad CANADIAN SYLLABICS CARRIER GWU
++<U18EE>     /xe1/xa3/xae CANADIAN SYLLABICS CARRIER DENE GEE
++<U18EF>     /xe1/xa3/xaf CANADIAN SYLLABICS CARRIER GAA
++<U18F0>     /xe1/xa3/xb0 CANADIAN SYLLABICS CARRIER GWA
++<U18F1>     /xe1/xa3/xb1 CANADIAN SYLLABICS SAYISI JUU
++<U18F2>     /xe1/xa3/xb2 CANADIAN SYLLABICS CARRIER JWA
++<U18F3>     /xe1/xa3/xb3 CANADIAN SYLLABICS BEAVER DENE L
++<U18F4>     /xe1/xa3/xb4 CANADIAN SYLLABICS BEAVER DENE R
++<U18F5>     /xe1/xa3/xb5 CANADIAN SYLLABICS CARRIER DENTAL S
+ <U1900>     /xe1/xa4/x80 LIMBU VOWEL-CARRIER LETTER
+ <U1901>     /xe1/xa4/x81 LIMBU LETTER KA
+ <U1902>     /xe1/xa4/x82 LIMBU LETTER KHA
+@@ -5377,6 +5610,8 @@ CHARMAP
+ <U19A7>     /xe1/xa6/xa7 NEW TAI LUE LETTER HIGH XVA
+ <U19A8>     /xe1/xa6/xa8 NEW TAI LUE LETTER LOW KVA
+ <U19A9>     /xe1/xa6/xa9 NEW TAI LUE LETTER LOW XVA
++<U19AA>     /xe1/xa6/xaa NEW TAI LUE LETTER HIGH SUA
++<U19AB>     /xe1/xa6/xab NEW TAI LUE LETTER LOW SUA
+ <U19B0>     /xe1/xa6/xb0 NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
+ <U19B1>     /xe1/xa6/xb1 NEW TAI LUE VOWEL SIGN AA
+ <U19B2>     /xe1/xa6/xb2 NEW TAI LUE VOWEL SIGN II
+@@ -5413,6 +5648,7 @@ CHARMAP
+ <U19D7>     /xe1/xa7/x97 NEW TAI LUE DIGIT SEVEN
+ <U19D8>     /xe1/xa7/x98 NEW TAI LUE DIGIT EIGHT
+ <U19D9>     /xe1/xa7/x99 NEW TAI LUE DIGIT NINE
++<U19DA>     /xe1/xa7/x9a NEW TAI LUE THAM DIGIT ONE
+ <U19DE>     /xe1/xa7/x9e NEW TAI LUE SIGN LAE
+ <U19DF>     /xe1/xa7/x9f NEW TAI LUE SIGN LAEV
+ <U19E0>     /xe1/xa7/xa0 KHMER SYMBOL PATHAMASAT
+@@ -5477,6 +5713,133 @@ CHARMAP
+ <U1A1B>     /xe1/xa8/x9b BUGINESE VOWEL SIGN AE
+ <U1A1E>     /xe1/xa8/x9e BUGINESE PALLAWA
+ <U1A1F>     /xe1/xa8/x9f BUGINESE END OF SECTION
++<U1A20>     /xe1/xa8/xa0 TAI THAM LETTER HIGH KA
++<U1A21>     /xe1/xa8/xa1 TAI THAM LETTER HIGH KHA
++<U1A22>     /xe1/xa8/xa2 TAI THAM LETTER HIGH KXA
++<U1A23>     /xe1/xa8/xa3 TAI THAM LETTER LOW KA
++<U1A24>     /xe1/xa8/xa4 TAI THAM LETTER LOW KXA
++<U1A25>     /xe1/xa8/xa5 TAI THAM LETTER LOW KHA
++<U1A26>     /xe1/xa8/xa6 TAI THAM LETTER NGA
++<U1A27>     /xe1/xa8/xa7 TAI THAM LETTER HIGH CA
++<U1A28>     /xe1/xa8/xa8 TAI THAM LETTER HIGH CHA
++<U1A29>     /xe1/xa8/xa9 TAI THAM LETTER LOW CA
++<U1A2A>     /xe1/xa8/xaa TAI THAM LETTER LOW SA
++<U1A2B>     /xe1/xa8/xab TAI THAM LETTER LOW CHA
++<U1A2C>     /xe1/xa8/xac TAI THAM LETTER NYA
++<U1A2D>     /xe1/xa8/xad TAI THAM LETTER RATA
++<U1A2E>     /xe1/xa8/xae TAI THAM LETTER HIGH RATHA
++<U1A2F>     /xe1/xa8/xaf TAI THAM LETTER DA
++<U1A30>     /xe1/xa8/xb0 TAI THAM LETTER LOW RATHA
++<U1A31>     /xe1/xa8/xb1 TAI THAM LETTER RANA
++<U1A32>     /xe1/xa8/xb2 TAI THAM LETTER HIGH TA
++<U1A33>     /xe1/xa8/xb3 TAI THAM LETTER HIGH THA
++<U1A34>     /xe1/xa8/xb4 TAI THAM LETTER LOW TA
++<U1A35>     /xe1/xa8/xb5 TAI THAM LETTER LOW THA
++<U1A36>     /xe1/xa8/xb6 TAI THAM LETTER NA
++<U1A37>     /xe1/xa8/xb7 TAI THAM LETTER BA
++<U1A38>     /xe1/xa8/xb8 TAI THAM LETTER HIGH PA
++<U1A39>     /xe1/xa8/xb9 TAI THAM LETTER HIGH PHA
++<U1A3A>     /xe1/xa8/xba TAI THAM LETTER HIGH FA
++<U1A3B>     /xe1/xa8/xbb TAI THAM LETTER LOW PA
++<U1A3C>     /xe1/xa8/xbc TAI THAM LETTER LOW FA
++<U1A3D>     /xe1/xa8/xbd TAI THAM LETTER LOW PHA
++<U1A3E>     /xe1/xa8/xbe TAI THAM LETTER MA
++<U1A3F>     /xe1/xa8/xbf TAI THAM LETTER LOW YA
++<U1A40>     /xe1/xa9/x80 TAI THAM LETTER HIGH YA
++<U1A41>     /xe1/xa9/x81 TAI THAM LETTER RA
++<U1A42>     /xe1/xa9/x82 TAI THAM LETTER RUE
++<U1A43>     /xe1/xa9/x83 TAI THAM LETTER LA
++<U1A44>     /xe1/xa9/x84 TAI THAM LETTER LUE
++<U1A45>     /xe1/xa9/x85 TAI THAM LETTER WA
++<U1A46>     /xe1/xa9/x86 TAI THAM LETTER HIGH SHA
++<U1A47>     /xe1/xa9/x87 TAI THAM LETTER HIGH SSA
++<U1A48>     /xe1/xa9/x88 TAI THAM LETTER HIGH SA
++<U1A49>     /xe1/xa9/x89 TAI THAM LETTER HIGH HA
++<U1A4A>     /xe1/xa9/x8a TAI THAM LETTER LLA
++<U1A4B>     /xe1/xa9/x8b TAI THAM LETTER A
++<U1A4C>     /xe1/xa9/x8c TAI THAM LETTER LOW HA
++<U1A4D>     /xe1/xa9/x8d TAI THAM LETTER I
++<U1A4E>     /xe1/xa9/x8e TAI THAM LETTER II
++<U1A4F>     /xe1/xa9/x8f TAI THAM LETTER U
++<U1A50>     /xe1/xa9/x90 TAI THAM LETTER UU
++<U1A51>     /xe1/xa9/x91 TAI THAM LETTER EE
++<U1A52>     /xe1/xa9/x92 TAI THAM LETTER OO
++<U1A53>     /xe1/xa9/x93 TAI THAM LETTER LAE
++<U1A54>     /xe1/xa9/x94 TAI THAM LETTER GREAT SA
++<U1A55>     /xe1/xa9/x95 TAI THAM CONSONANT SIGN MEDIAL RA
++<U1A56>     /xe1/xa9/x96 TAI THAM CONSONANT SIGN MEDIAL LA
++<U1A57>     /xe1/xa9/x97 TAI THAM CONSONANT SIGN LA TANG LAI
++<U1A58>     /xe1/xa9/x98 TAI THAM SIGN MAI KANG LAI
++<U1A59>     /xe1/xa9/x99 TAI THAM CONSONANT SIGN FINAL NGA
++<U1A5A>     /xe1/xa9/x9a TAI THAM CONSONANT SIGN LOW PA
++<U1A5B>     /xe1/xa9/x9b TAI THAM CONSONANT SIGN HIGH RATHA OR LOW PA
++<U1A5C>     /xe1/xa9/x9c TAI THAM CONSONANT SIGN MA
++<U1A5D>     /xe1/xa9/x9d TAI THAM CONSONANT SIGN BA
++<U1A5E>     /xe1/xa9/x9e TAI THAM CONSONANT SIGN SA
++<U1A60>     /xe1/xa9/xa0 TAI THAM SIGN SAKOT
++<U1A61>     /xe1/xa9/xa1 TAI THAM VOWEL SIGN A
++<U1A62>     /xe1/xa9/xa2 TAI THAM VOWEL SIGN MAI SAT
++<U1A63>     /xe1/xa9/xa3 TAI THAM VOWEL SIGN AA
++<U1A64>     /xe1/xa9/xa4 TAI THAM VOWEL SIGN TALL AA
++<U1A65>     /xe1/xa9/xa5 TAI THAM VOWEL SIGN I
++<U1A66>     /xe1/xa9/xa6 TAI THAM VOWEL SIGN II
++<U1A67>     /xe1/xa9/xa7 TAI THAM VOWEL SIGN UE
++<U1A68>     /xe1/xa9/xa8 TAI THAM VOWEL SIGN UUE
++<U1A69>     /xe1/xa9/xa9 TAI THAM VOWEL SIGN U
++<U1A6A>     /xe1/xa9/xaa TAI THAM VOWEL SIGN UU
++<U1A6B>     /xe1/xa9/xab TAI THAM VOWEL SIGN O
++<U1A6C>     /xe1/xa9/xac TAI THAM VOWEL SIGN OA BELOW
++<U1A6D>     /xe1/xa9/xad TAI THAM VOWEL SIGN OY
++<U1A6E>     /xe1/xa9/xae TAI THAM VOWEL SIGN E
++<U1A6F>     /xe1/xa9/xaf TAI THAM VOWEL SIGN AE
++<U1A70>     /xe1/xa9/xb0 TAI THAM VOWEL SIGN OO
++<U1A71>     /xe1/xa9/xb1 TAI THAM VOWEL SIGN AI
++<U1A72>     /xe1/xa9/xb2 TAI THAM VOWEL SIGN THAM AI
++<U1A73>     /xe1/xa9/xb3 TAI THAM VOWEL SIGN OA ABOVE
++<U1A74>     /xe1/xa9/xb4 TAI THAM SIGN MAI KANG
++<U1A75>     /xe1/xa9/xb5 TAI THAM SIGN TONE-1
++<U1A76>     /xe1/xa9/xb6 TAI THAM SIGN TONE-2
++<U1A77>     /xe1/xa9/xb7 TAI THAM SIGN KHUEN TONE-3
++<U1A78>     /xe1/xa9/xb8 TAI THAM SIGN KHUEN TONE-4
++<U1A79>     /xe1/xa9/xb9 TAI THAM SIGN KHUEN TONE-5
++<U1A7A>     /xe1/xa9/xba TAI THAM SIGN RA HAAM
++<U1A7B>     /xe1/xa9/xbb TAI THAM SIGN MAI SAM
++<U1A7C>     /xe1/xa9/xbc TAI THAM SIGN KHUEN-LUE KARAN
++<U1A7F>     /xe1/xa9/xbf TAI THAM COMBINING CRYPTOGRAMMIC DOT
++<U1A80>     /xe1/xaa/x80 TAI THAM HORA DIGIT ZERO
++<U1A81>     /xe1/xaa/x81 TAI THAM HORA DIGIT ONE
++<U1A82>     /xe1/xaa/x82 TAI THAM HORA DIGIT TWO
++<U1A83>     /xe1/xaa/x83 TAI THAM HORA DIGIT THREE
++<U1A84>     /xe1/xaa/x84 TAI THAM HORA DIGIT FOUR
++<U1A85>     /xe1/xaa/x85 TAI THAM HORA DIGIT FIVE
++<U1A86>     /xe1/xaa/x86 TAI THAM HORA DIGIT SIX
++<U1A87>     /xe1/xaa/x87 TAI THAM HORA DIGIT SEVEN
++<U1A88>     /xe1/xaa/x88 TAI THAM HORA DIGIT EIGHT
++<U1A89>     /xe1/xaa/x89 TAI THAM HORA DIGIT NINE
++<U1A90>     /xe1/xaa/x90 TAI THAM THAM DIGIT ZERO
++<U1A91>     /xe1/xaa/x91 TAI THAM THAM DIGIT ONE
++<U1A92>     /xe1/xaa/x92 TAI THAM THAM DIGIT TWO
++<U1A93>     /xe1/xaa/x93 TAI THAM THAM DIGIT THREE
++<U1A94>     /xe1/xaa/x94 TAI THAM THAM DIGIT FOUR
++<U1A95>     /xe1/xaa/x95 TAI THAM THAM DIGIT FIVE
++<U1A96>     /xe1/xaa/x96 TAI THAM THAM DIGIT SIX
++<U1A97>     /xe1/xaa/x97 TAI THAM THAM DIGIT SEVEN
++<U1A98>     /xe1/xaa/x98 TAI THAM THAM DIGIT EIGHT
++<U1A99>     /xe1/xaa/x99 TAI THAM THAM DIGIT NINE
++<U1AA0>     /xe1/xaa/xa0 TAI THAM SIGN WIANG
++<U1AA1>     /xe1/xaa/xa1 TAI THAM SIGN WIANGWAAK
++<U1AA2>     /xe1/xaa/xa2 TAI THAM SIGN SAWAN
++<U1AA3>     /xe1/xaa/xa3 TAI THAM SIGN KEOW
++<U1AA4>     /xe1/xaa/xa4 TAI THAM SIGN HOY
++<U1AA5>     /xe1/xaa/xa5 TAI THAM SIGN DOKMAI
++<U1AA6>     /xe1/xaa/xa6 TAI THAM SIGN REVERSED ROTATED RANA
++<U1AA7>     /xe1/xaa/xa7 TAI THAM SIGN MAI YAMOK
++<U1AA8>     /xe1/xaa/xa8 TAI THAM SIGN KAAN
++<U1AA9>     /xe1/xaa/xa9 TAI THAM SIGN KAANKUU
++<U1AAA>     /xe1/xaa/xaa TAI THAM SIGN SATKAAN
++<U1AAB>     /xe1/xaa/xab TAI THAM SIGN SATKAANKUU
++<U1AAC>     /xe1/xaa/xac TAI THAM SIGN HANG
++<U1AAD>     /xe1/xaa/xad TAI THAM SIGN CAANG
+ <U1B00>     /xe1/xac/x80 BALINESE SIGN ULU RICEM
+ <U1B01>     /xe1/xac/x81 BALINESE SIGN ULU CANDRA
+ <U1B02>     /xe1/xac/x82 BALINESE SIGN CECEK
+@@ -5653,6 +6016,62 @@ CHARMAP
+ <U1BB7>     /xe1/xae/xb7 SUNDANESE DIGIT SEVEN
+ <U1BB8>     /xe1/xae/xb8 SUNDANESE DIGIT EIGHT
+ <U1BB9>     /xe1/xae/xb9 SUNDANESE DIGIT NINE
++<U1BC0>     /xe1/xaf/x80 BATAK LETTER A
++<U1BC1>     /xe1/xaf/x81 BATAK LETTER SIMALUNGUN A
++<U1BC2>     /xe1/xaf/x82 BATAK LETTER HA
++<U1BC3>     /xe1/xaf/x83 BATAK LETTER SIMALUNGUN HA
++<U1BC4>     /xe1/xaf/x84 BATAK LETTER MANDAILING HA
++<U1BC5>     /xe1/xaf/x85 BATAK LETTER BA
++<U1BC6>     /xe1/xaf/x86 BATAK LETTER KARO BA
++<U1BC7>     /xe1/xaf/x87 BATAK LETTER PA
++<U1BC8>     /xe1/xaf/x88 BATAK LETTER SIMALUNGUN PA
++<U1BC9>     /xe1/xaf/x89 BATAK LETTER NA
++<U1BCA>     /xe1/xaf/x8a BATAK LETTER MANDAILING NA
++<U1BCB>     /xe1/xaf/x8b BATAK LETTER WA
++<U1BCC>     /xe1/xaf/x8c BATAK LETTER SIMALUNGUN WA
++<U1BCD>     /xe1/xaf/x8d BATAK LETTER PAKPAK WA
++<U1BCE>     /xe1/xaf/x8e BATAK LETTER GA
++<U1BCF>     /xe1/xaf/x8f BATAK LETTER SIMALUNGUN GA
++<U1BD0>     /xe1/xaf/x90 BATAK LETTER JA
++<U1BD1>     /xe1/xaf/x91 BATAK LETTER DA
++<U1BD2>     /xe1/xaf/x92 BATAK LETTER RA
++<U1BD3>     /xe1/xaf/x93 BATAK LETTER SIMALUNGUN RA
++<U1BD4>     /xe1/xaf/x94 BATAK LETTER MA
++<U1BD5>     /xe1/xaf/x95 BATAK LETTER SIMALUNGUN MA
++<U1BD6>     /xe1/xaf/x96 BATAK LETTER SOUTHERN TA
++<U1BD7>     /xe1/xaf/x97 BATAK LETTER NORTHERN TA
++<U1BD8>     /xe1/xaf/x98 BATAK LETTER SA
++<U1BD9>     /xe1/xaf/x99 BATAK LETTER SIMALUNGUN SA
++<U1BDA>     /xe1/xaf/x9a BATAK LETTER MANDAILING SA
++<U1BDB>     /xe1/xaf/x9b BATAK LETTER YA
++<U1BDC>     /xe1/xaf/x9c BATAK LETTER SIMALUNGUN YA
++<U1BDD>     /xe1/xaf/x9d BATAK LETTER NGA
++<U1BDE>     /xe1/xaf/x9e BATAK LETTER LA
++<U1BDF>     /xe1/xaf/x9f BATAK LETTER SIMALUNGUN LA
++<U1BE0>     /xe1/xaf/xa0 BATAK LETTER NYA
++<U1BE1>     /xe1/xaf/xa1 BATAK LETTER CA
++<U1BE2>     /xe1/xaf/xa2 BATAK LETTER NDA
++<U1BE3>     /xe1/xaf/xa3 BATAK LETTER MBA
++<U1BE4>     /xe1/xaf/xa4 BATAK LETTER I
++<U1BE5>     /xe1/xaf/xa5 BATAK LETTER U
++<U1BE6>     /xe1/xaf/xa6 BATAK SIGN TOMPI
++<U1BE7>     /xe1/xaf/xa7 BATAK VOWEL SIGN E
++<U1BE8>     /xe1/xaf/xa8 BATAK VOWEL SIGN PAKPAK E
++<U1BE9>     /xe1/xaf/xa9 BATAK VOWEL SIGN EE
++<U1BEA>     /xe1/xaf/xaa BATAK VOWEL SIGN I
++<U1BEB>     /xe1/xaf/xab BATAK VOWEL SIGN KARO I
++<U1BEC>     /xe1/xaf/xac BATAK VOWEL SIGN O
++<U1BED>     /xe1/xaf/xad BATAK VOWEL SIGN KARO O
++<U1BEE>     /xe1/xaf/xae BATAK VOWEL SIGN U
++<U1BEF>     /xe1/xaf/xaf BATAK VOWEL SIGN U FOR SIMALUNGUN SA
++<U1BF0>     /xe1/xaf/xb0 BATAK CONSONANT SIGN NG
++<U1BF1>     /xe1/xaf/xb1 BATAK CONSONANT SIGN H
++<U1BF2>     /xe1/xaf/xb2 BATAK PANGOLAT
++<U1BF3>     /xe1/xaf/xb3 BATAK PANONGONAN
++<U1BFC>     /xe1/xaf/xbc BATAK SYMBOL BINDU NA METEK
++<U1BFD>     /xe1/xaf/xbd BATAK SYMBOL BINDU PINARBORAS
++<U1BFE>     /xe1/xaf/xbe BATAK SYMBOL BINDU JUDUL
++<U1BFF>     /xe1/xaf/xbf BATAK SYMBOL BINDU PANGOLAT
+ <U1C00>     /xe1/xb0/x80 LEPCHA LETTER KA
+ <U1C01>     /xe1/xb0/x81 LEPCHA LETTER KLA
+ <U1C02>     /xe1/xb0/x82 LEPCHA LETTER KHA
+@@ -5775,6 +6194,41 @@ CHARMAP
+ <U1C7D>     /xe1/xb1/xbd OL CHIKI AHAD
+ <U1C7E>     /xe1/xb1/xbe OL CHIKI PUNCTUATION MUCAAD
+ <U1C7F>     /xe1/xb1/xbf OL CHIKI PUNCTUATION DOUBLE MUCAAD
++<U1CD0>     /xe1/xb3/x90 VEDIC TONE KARSHANA
++<U1CD1>     /xe1/xb3/x91 VEDIC TONE SHARA
++<U1CD2>     /xe1/xb3/x92 VEDIC TONE PRENKHA
++<U1CD3>     /xe1/xb3/x93 VEDIC SIGN NIHSHVASA
++<U1CD4>     /xe1/xb3/x94 VEDIC SIGN YAJURVEDIC MIDLINE SVARITA
++<U1CD5>     /xe1/xb3/x95 VEDIC TONE YAJURVEDIC AGGRAVATED INDEPENDENT SVARITA
++<U1CD6>     /xe1/xb3/x96 VEDIC TONE YAJURVEDIC INDEPENDENT SVARITA
++<U1CD7>     /xe1/xb3/x97 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA
++<U1CD8>     /xe1/xb3/x98 VEDIC TONE CANDRA BELOW
++<U1CD9>     /xe1/xb3/x99 VEDIC TONE YAJURVEDIC KATHAKA INDEPENDENT SVARITA SCHROEDER
++<U1CDA>     /xe1/xb3/x9a VEDIC TONE DOUBLE SVARITA
++<U1CDB>     /xe1/xb3/x9b VEDIC TONE TRIPLE SVARITA
++<U1CDC>     /xe1/xb3/x9c VEDIC TONE KATHAKA ANUDATTA
++<U1CDD>     /xe1/xb3/x9d VEDIC TONE DOT BELOW
++<U1CDE>     /xe1/xb3/x9e VEDIC TONE TWO DOTS BELOW
++<U1CDF>     /xe1/xb3/x9f VEDIC TONE THREE DOTS BELOW
++<U1CE0>     /xe1/xb3/xa0 VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
++<U1CE1>     /xe1/xb3/xa1 VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
++<U1CE2>     /xe1/xb3/xa2 VEDIC SIGN VISARGA SVARITA
++<U1CE3>     /xe1/xb3/xa3 VEDIC SIGN VISARGA UDATTA
++<U1CE4>     /xe1/xb3/xa4 VEDIC SIGN REVERSED VISARGA UDATTA
++<U1CE5>     /xe1/xb3/xa5 VEDIC SIGN VISARGA ANUDATTA
++<U1CE6>     /xe1/xb3/xa6 VEDIC SIGN REVERSED VISARGA ANUDATTA
++<U1CE7>     /xe1/xb3/xa7 VEDIC SIGN VISARGA UDATTA WITH TAIL
++<U1CE8>     /xe1/xb3/xa8 VEDIC SIGN VISARGA ANUDATTA WITH TAIL
++<U1CE9>     /xe1/xb3/xa9 VEDIC SIGN ANUSVARA ANTARGOMUKHA
++<U1CEA>     /xe1/xb3/xaa VEDIC SIGN ANUSVARA BAHIRGOMUKHA
++<U1CEB>     /xe1/xb3/xab VEDIC SIGN ANUSVARA VAMAGOMUKHA
++<U1CEC>     /xe1/xb3/xac VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL
++<U1CED>     /xe1/xb3/xad VEDIC SIGN TIRYAK
++<U1CEE>     /xe1/xb3/xae VEDIC SIGN HEXIFORM LONG ANUSVARA
++<U1CEF>     /xe1/xb3/xaf VEDIC SIGN LONG ANUSVARA
++<U1CF0>     /xe1/xb3/xb0 VEDIC SIGN RTHANG LONG ANUSVARA
++<U1CF1>     /xe1/xb3/xb1 VEDIC SIGN ANUSVARA UBHAYATO MUKHA
++<U1CF2>     /xe1/xb3/xb2 VEDIC SIGN ARDHAVISARGA
+ <U1D00>     /xe1/xb4/x80 LATIN LETTER SMALL CAPITAL A
+ <U1D01>     /xe1/xb4/x81 LATIN LETTER SMALL CAPITAL AE
+ <U1D02>     /xe1/xb4/x82 LATIN SMALL LETTER TURNED AE
+@@ -6006,6 +6460,8 @@ CHARMAP
+ <U1DE4>     /xe1/xb7/xa4 COMBINING LATIN SMALL LETTER S
+ <U1DE5>     /xe1/xb7/xa5 COMBINING LATIN SMALL LETTER LONG S
+ <U1DE6>     /xe1/xb7/xa6 COMBINING LATIN SMALL LETTER Z
++<U1DFC>     /xe1/xb7/xbc COMBINING DOUBLE INVERTED BREVE BELOW
++<U1DFD>     /xe1/xb7/xbd COMBINING ALMOST EQUAL TO BELOW
+ <U1DFE>     /xe1/xb7/xbe COMBINING LEFT ARROWHEAD ABOVE
+ <U1DFF>     /xe1/xb7/xbf COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
+ <U1E00>     /xe1/xb8/x80 LATIN CAPITAL LETTER A WITH RING BELOW
+@@ -6638,6 +7094,14 @@ CHARMAP
+ <U2092>     /xe2/x82/x92 LATIN SUBSCRIPT SMALL LETTER O
+ <U2093>     /xe2/x82/x93 LATIN SUBSCRIPT SMALL LETTER X
+ <U2094>     /xe2/x82/x94 LATIN SUBSCRIPT SMALL LETTER SCHWA
++<U2095>     /xe2/x82/x95 LATIN SUBSCRIPT SMALL LETTER H
++<U2096>     /xe2/x82/x96 LATIN SUBSCRIPT SMALL LETTER K
++<U2097>     /xe2/x82/x97 LATIN SUBSCRIPT SMALL LETTER L
++<U2098>     /xe2/x82/x98 LATIN SUBSCRIPT SMALL LETTER M
++<U2099>     /xe2/x82/x99 LATIN SUBSCRIPT SMALL LETTER N
++<U209A>     /xe2/x82/x9a LATIN SUBSCRIPT SMALL LETTER P
++<U209B>     /xe2/x82/x9b LATIN SUBSCRIPT SMALL LETTER S
++<U209C>     /xe2/x82/x9c LATIN SUBSCRIPT SMALL LETTER T
+ <U20A0>     /xe2/x82/xa0 EURO-CURRENCY SIGN
+ <U20A1>     /xe2/x82/xa1 COLON SIGN
+ <U20A2>     /xe2/x82/xa2 CRUZEIRO SIGN
+@@ -6660,6 +7124,10 @@ CHARMAP
+ <U20B3>     /xe2/x82/xb3 AUSTRAL SIGN
+ <U20B4>     /xe2/x82/xb4 HRYVNIA SIGN
+ <U20B5>     /xe2/x82/xb5 CEDI SIGN
++<U20B6>     /xe2/x82/xb6 LIVRE TOURNOIS SIGN
++<U20B7>     /xe2/x82/xb7 SPESMILO SIGN
++<U20B8>     /xe2/x82/xb8 TENGE SIGN
++<U20B9>     /xe2/x82/xb9 INDIAN RUPEE SIGN
+ <U20D0>     /xe2/x83/x90 COMBINING LEFT HARPOON ABOVE
+ <U20D1>     /xe2/x83/x91 COMBINING RIGHT HARPOON ABOVE
+ <U20D2>     /xe2/x83/x92 COMBINING LONG VERTICAL LINE OVERLAY
+@@ -6773,6 +7241,9 @@ CHARMAP
+ <U214D>     /xe2/x85/x8d AKTIESELSKAB
+ <U214E>     /xe2/x85/x8e TURNED SMALL F
+ <U214F>     /xe2/x85/x8f SYMBOL FOR SAMARITAN SOURCE
++<U2150>     /xe2/x85/x90 VULGAR FRACTION ONE SEVENTH
++<U2151>     /xe2/x85/x91 VULGAR FRACTION ONE NINTH
++<U2152>     /xe2/x85/x92 VULGAR FRACTION ONE TENTH
+ <U2153>     /xe2/x85/x93 VULGAR FRACTION ONE THIRD
+ <U2154>     /xe2/x85/x94 VULGAR FRACTION TWO THIRDS
+ <U2155>     /xe2/x85/x95 VULGAR FRACTION ONE FIFTH
+@@ -6827,6 +7298,7 @@ CHARMAP
+ <U2186>     /xe2/x86/x86 ROMAN NUMERAL FIFTY EARLY FORM
+ <U2187>     /xe2/x86/x87 ROMAN NUMERAL FIFTY THOUSAND
+ <U2188>     /xe2/x86/x88 ROMAN NUMERAL ONE HUNDRED THOUSAND
++<U2189>     /xe2/x86/x89 VULGAR FRACTION ZERO THIRDS
+ <U2190>     /xe2/x86/x90 LEFTWARDS ARROW
+ <U2191>     /xe2/x86/x91 UPWARDS ARROW
+ <U2192>     /xe2/x86/x92 RIGHTWARDS ARROW
+@@ -7427,6 +7899,18 @@ CHARMAP
+ <U23E5>     /xe2/x8f/xa5 FLATNESS
+ <U23E6>     /xe2/x8f/xa6 AC CURRENT
+ <U23E7>     /xe2/x8f/xa7 ELECTRICAL INTERSECTION
++<U23E8>     /xe2/x8f/xa8 DECIMAL EXPONENT SYMBOL
++<U23E9>     /xe2/x8f/xa9 BLACK RIGHT-POINTING DOUBLE TRIANGLE
++<U23EA>     /xe2/x8f/xaa BLACK LEFT-POINTING DOUBLE TRIANGLE
++<U23EB>     /xe2/x8f/xab BLACK UP-POINTING DOUBLE TRIANGLE
++<U23EC>     /xe2/x8f/xac BLACK DOWN-POINTING DOUBLE TRIANGLE
++<U23ED>     /xe2/x8f/xad BLACK RIGHT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
++<U23EE>     /xe2/x8f/xae BLACK LEFT-POINTING DOUBLE TRIANGLE WITH VERTICAL BAR
++<U23EF>     /xe2/x8f/xaf BLACK RIGHT-POINTING TRIANGLE WITH DOUBLE VERTICAL BAR
++<U23F0>     /xe2/x8f/xb0 ALARM CLOCK
++<U23F1>     /xe2/x8f/xb1 STOPWATCH
++<U23F2>     /xe2/x8f/xb2 TIMER CLOCK
++<U23F3>     /xe2/x8f/xb3 HOURGLASS WITH FLOWING SAND
+ <U2400>     /xe2/x90/x80 SYMBOL FOR NULL
+ <U2401>     /xe2/x90/x81 SYMBOL FOR START OF HEADING
+ <U2402>     /xe2/x90/x82 SYMBOL FOR START OF TEXT
+@@ -8051,6 +8535,8 @@ CHARMAP
+ <U269B>     /xe2/x9a/x9b ATOM SYMBOL
+ <U269C>     /xe2/x9a/x9c FLEUR-DE-LIS
+ <U269D>     /xe2/x9a/x9d OUTLINED WHITE STAR
++<U269E>     /xe2/x9a/x9e THREE LINES CONVERGING RIGHT
++<U269F>     /xe2/x9a/x9f THREE LINES CONVERGING LEFT
+ <U26A0>     /xe2/x9a/xa0 WARNING SIGN
+ <U26A1>     /xe2/x9a/xa1 HIGH VOLTAGE SIGN
+ <U26A2>     /xe2/x9a/xa2 DOUBLED FEMALE SIGN
+@@ -8080,18 +8566,84 @@ CHARMAP
+ <U26BA>     /xe2/x9a/xba SEMISEXTILE
+ <U26BB>     /xe2/x9a/xbb QUINCUNX
+ <U26BC>     /xe2/x9a/xbc SESQUIQUADRATE
++<U26BD>     /xe2/x9a/xbd SOCCER BALL
++<U26BE>     /xe2/x9a/xbe BASEBALL
++<U26BF>     /xe2/x9a/xbf SQUARED KEY
+ <U26C0>     /xe2/x9b/x80 WHITE DRAUGHTS MAN
+ <U26C1>     /xe2/x9b/x81 WHITE DRAUGHTS KING
+ <U26C2>     /xe2/x9b/x82 BLACK DRAUGHTS MAN
+ <U26C3>     /xe2/x9b/x83 BLACK DRAUGHTS KING
++<U26C4>     /xe2/x9b/x84 SNOWMAN WITHOUT SNOW
++<U26C5>     /xe2/x9b/x85 SUN BEHIND CLOUD
++<U26C6>     /xe2/x9b/x86 RAIN
++<U26C7>     /xe2/x9b/x87 BLACK SNOWMAN
++<U26C8>     /xe2/x9b/x88 THUNDER CLOUD AND RAIN
++<U26C9>     /xe2/x9b/x89 TURNED WHITE SHOGI PIECE
++<U26CA>     /xe2/x9b/x8a TURNED BLACK SHOGI PIECE
++<U26CB>     /xe2/x9b/x8b WHITE DIAMOND IN SQUARE
++<U26CC>     /xe2/x9b/x8c CROSSING LANES
++<U26CD>     /xe2/x9b/x8d DISABLED CAR
++<U26CE>     /xe2/x9b/x8e OPHIUCHUS
++<U26CF>     /xe2/x9b/x8f PICK
++<U26D0>     /xe2/x9b/x90 CAR SLIDING
++<U26D1>     /xe2/x9b/x91 HELMET WITH WHITE CROSS
++<U26D2>     /xe2/x9b/x92 CIRCLED CROSSING LANES
++<U26D3>     /xe2/x9b/x93 CHAINS
++<U26D4>     /xe2/x9b/x94 NO ENTRY
++<U26D5>     /xe2/x9b/x95 ALTERNATE ONE-WAY LEFT WAY TRAFFIC
++<U26D6>     /xe2/x9b/x96 BLACK TWO-WAY LEFT WAY TRAFFIC
++<U26D7>     /xe2/x9b/x97 WHITE TWO-WAY LEFT WAY TRAFFIC
++<U26D8>     /xe2/x9b/x98 BLACK LEFT LANE MERGE
++<U26D9>     /xe2/x9b/x99 WHITE LEFT LANE MERGE
++<U26DA>     /xe2/x9b/x9a DRIVE SLOW SIGN
++<U26DB>     /xe2/x9b/x9b HEAVY WHITE DOWN-POINTING TRIANGLE
++<U26DC>     /xe2/x9b/x9c LEFT CLOSED ENTRY
++<U26DD>     /xe2/x9b/x9d SQUARED SALTIRE
++<U26DE>     /xe2/x9b/x9e FALLING DIAGONAL IN WHITE CIRCLE IN BLACK SQUARE
++<U26DF>     /xe2/x9b/x9f BLACK TRUCK
++<U26E0>     /xe2/x9b/xa0 RESTRICTED LEFT ENTRY-1
++<U26E1>     /xe2/x9b/xa1 RESTRICTED LEFT ENTRY-2
++<U26E2>     /xe2/x9b/xa2 ASTRONOMICAL SYMBOL FOR URANUS
++<U26E3>     /xe2/x9b/xa3 HEAVY CIRCLE WITH STROKE AND TWO DOTS ABOVE
++<U26E4>     /xe2/x9b/xa4 PENTAGRAM
++<U26E5>     /xe2/x9b/xa5 RIGHT-HANDED INTERLACED PENTAGRAM
++<U26E6>     /xe2/x9b/xa6 LEFT-HANDED INTERLACED PENTAGRAM
++<U26E7>     /xe2/x9b/xa7 INVERTED PENTAGRAM
++<U26E8>     /xe2/x9b/xa8 BLACK CROSS ON SHIELD
++<U26E9>     /xe2/x9b/xa9 SHINTO SHRINE
++<U26EA>     /xe2/x9b/xaa CHURCH
++<U26EB>     /xe2/x9b/xab CASTLE
++<U26EC>     /xe2/x9b/xac HISTORIC SITE
++<U26ED>     /xe2/x9b/xad GEAR WITHOUT HUB
++<U26EE>     /xe2/x9b/xae GEAR WITH HANDLES
++<U26EF>     /xe2/x9b/xaf MAP SYMBOL FOR LIGHTHOUSE
++<U26F0>     /xe2/x9b/xb0 MOUNTAIN
++<U26F1>     /xe2/x9b/xb1 UMBRELLA ON GROUND
++<U26F2>     /xe2/x9b/xb2 FOUNTAIN
++<U26F3>     /xe2/x9b/xb3 FLAG IN HOLE
++<U26F4>     /xe2/x9b/xb4 FERRY
++<U26F5>     /xe2/x9b/xb5 SAILBOAT
++<U26F6>     /xe2/x9b/xb6 SQUARE FOUR CORNERS
++<U26F7>     /xe2/x9b/xb7 SKIER
++<U26F8>     /xe2/x9b/xb8 ICE SKATE
++<U26F9>     /xe2/x9b/xb9 PERSON WITH BALL
++<U26FA>     /xe2/x9b/xba TENT
++<U26FB>     /xe2/x9b/xbb JAPANESE BANK SYMBOL
++<U26FC>     /xe2/x9b/xbc HEADSTONE GRAVEYARD SYMBOL
++<U26FD>     /xe2/x9b/xbd FUEL PUMP
++<U26FE>     /xe2/x9b/xbe CUP ON BLACK SQUARE
++<U26FF>     /xe2/x9b/xbf WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
+ <U2701>     /xe2/x9c/x81 UPPER BLADE SCISSORS
+ <U2702>     /xe2/x9c/x82 BLACK SCISSORS
+ <U2703>     /xe2/x9c/x83 LOWER BLADE SCISSORS
+ <U2704>     /xe2/x9c/x84 WHITE SCISSORS
++<U2705>     /xe2/x9c/x85 WHITE HEAVY CHECK MARK
+ <U2706>     /xe2/x9c/x86 TELEPHONE LOCATION SIGN
+ <U2707>     /xe2/x9c/x87 TAPE DRIVE
+ <U2708>     /xe2/x9c/x88 AIRPLANE
+ <U2709>     /xe2/x9c/x89 ENVELOPE
++<U270A>     /xe2/x9c/x8a RAISED FIST
++<U270B>     /xe2/x9c/x8b RAISED HAND
+ <U270C>     /xe2/x9c/x8c VICTORY HAND
+ <U270D>     /xe2/x9c/x8d WRITING HAND
+ <U270E>     /xe2/x9c/x8e LOWER RIGHT PENCIL
+@@ -8120,6 +8672,7 @@ CHARMAP
+ <U2725>     /xe2/x9c/xa5 FOUR CLUB-SPOKED ASTERISK
+ <U2726>     /xe2/x9c/xa6 BLACK FOUR POINTED STAR
+ <U2727>     /xe2/x9c/xa7 WHITE FOUR POINTED STAR
++<U2728>     /xe2/x9c/xa8 SPARKLES
+ <U2729>     /xe2/x9c/xa9 STRESS OUTLINED WHITE STAR
+ <U272A>     /xe2/x9c/xaa CIRCLED WHITE STAR
+ <U272B>     /xe2/x9c/xab OPEN CENTRE BLACK STAR
+@@ -8155,12 +8708,18 @@ CHARMAP
+ <U2749>     /xe2/x9d/x89 BALLOON-SPOKED ASTERISK
+ <U274A>     /xe2/x9d/x8a EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
+ <U274B>     /xe2/x9d/x8b HEAVY EIGHT TEARDROP-SPOKED PROPELLER ASTERISK
++<U274C>     /xe2/x9d/x8c CROSS MARK
+ <U274D>     /xe2/x9d/x8d SHADOWED WHITE CIRCLE
++<U274E>     /xe2/x9d/x8e NEGATIVE SQUARED CROSS MARK
+ <U274F>     /xe2/x9d/x8f LOWER RIGHT DROP-SHADOWED WHITE SQUARE
+ <U2750>     /xe2/x9d/x90 UPPER RIGHT DROP-SHADOWED WHITE SQUARE
+ <U2751>     /xe2/x9d/x91 LOWER RIGHT SHADOWED WHITE SQUARE
+ <U2752>     /xe2/x9d/x92 UPPER RIGHT SHADOWED WHITE SQUARE
++<U2753>     /xe2/x9d/x93 BLACK QUESTION MARK ORNAMENT
++<U2754>     /xe2/x9d/x94 WHITE QUESTION MARK ORNAMENT
++<U2755>     /xe2/x9d/x95 WHITE EXCLAMATION MARK ORNAMENT
+ <U2756>     /xe2/x9d/x96 BLACK DIAMOND MINUS WHITE X
++<U2757>     /xe2/x9d/x97 HEAVY EXCLAMATION MARK SYMBOL
+ <U2758>     /xe2/x9d/x98 LIGHT VERTICAL BAR
+ <U2759>     /xe2/x9d/x99 MEDIUM VERTICAL BAR
+ <U275A>     /xe2/x9d/x9a HEAVY VERTICAL BAR
+@@ -8168,6 +8727,8 @@ CHARMAP
+ <U275C>     /xe2/x9d/x9c HEAVY SINGLE COMMA QUOTATION MARK ORNAMENT
+ <U275D>     /xe2/x9d/x9d HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT
+ <U275E>     /xe2/x9d/x9e HEAVY DOUBLE COMMA QUOTATION MARK ORNAMENT
++<U275F>     /xe2/x9d/x9f HEAVY LOW SINGLE COMMA QUOTATION MARK ORNAMENT
++<U2760>     /xe2/x9d/xa0 HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT
+ <U2761>     /xe2/x9d/xa1 CURVED STEM PARAGRAPH SIGN ORNAMENT
+ <U2762>     /xe2/x9d/xa2 HEAVY EXCLAMATION MARK ORNAMENT
+ <U2763>     /xe2/x9d/xa3 HEAVY HEART EXCLAMATION MARK ORNAMENT
+@@ -8220,6 +8781,9 @@ CHARMAP
+ <U2792>     /xe2/x9e/x92 DINGBAT NEGATIVE CIRCLED SANS-SERIF DIGIT NINE
+ <U2793>     /xe2/x9e/x93 DINGBAT NEGATIVE CIRCLED SANS-SERIF NUMBER TEN
+ <U2794>     /xe2/x9e/x94 HEAVY WIDE-HEADED RIGHTWARDS ARROW
++<U2795>     /xe2/x9e/x95 HEAVY PLUS SIGN
++<U2796>     /xe2/x9e/x96 HEAVY MINUS SIGN
++<U2797>     /xe2/x9e/x97 HEAVY DIVISION SIGN
+ <U2798>     /xe2/x9e/x98 HEAVY SOUTH EAST ARROW
+ <U2799>     /xe2/x9e/x99 HEAVY RIGHTWARDS ARROW
+ <U279A>     /xe2/x9e/x9a HEAVY NORTH EAST ARROW
+@@ -8244,6 +8808,7 @@ CHARMAP
+ <U27AD>     /xe2/x9e/xad HEAVY LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27AE>     /xe2/x9e/xae HEAVY UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27AF>     /xe2/x9e/xaf NOTCHED LOWER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
++<U27B0>     /xe2/x9e/xb0 CURLY LOOP
+ <U27B1>     /xe2/x9e/xb1 NOTCHED UPPER RIGHT-SHADOWED WHITE RIGHTWARDS ARROW
+ <U27B2>     /xe2/x9e/xb2 CIRCLED HEAVY WHITE RIGHTWARDS ARROW
+ <U27B3>     /xe2/x9e/xb3 WHITE-FEATHERED RIGHTWARDS ARROW
+@@ -8258,6 +8823,7 @@ CHARMAP
+ <U27BC>     /xe2/x9e/xbc WEDGE-TAILED RIGHTWARDS ARROW
+ <U27BD>     /xe2/x9e/xbd HEAVY WEDGE-TAILED RIGHTWARDS ARROW
+ <U27BE>     /xe2/x9e/xbe OPEN-OUTLINED RIGHTWARDS ARROW
++<U27BF>     /xe2/x9e/xbf DOUBLE CURLY LOOP
+ <U27C0>     /xe2/x9f/x80 THREE DIMENSIONAL ANGLE
+ <U27C1>     /xe2/x9f/x81 WHITE TRIANGLE CONTAINING SMALL WHITE TRIANGLE
+ <U27C2>     /xe2/x9f/x82 PERPENDICULAR
+@@ -8270,6 +8836,8 @@ CHARMAP
+ <U27C9>     /xe2/x9f/x89 SUPERSET PRECEDING SOLIDUS
+ <U27CA>     /xe2/x9f/x8a VERTICAL BAR WITH HORIZONTAL STROKE
+ <U27CC>     /xe2/x9f/x8c LONG DIVISION
++<U27CE>     /xe2/x9f/x8e SQUARED LOGICAL AND
++<U27CF>     /xe2/x9f/x8f SQUARED LOGICAL OR
+ <U27D0>     /xe2/x9f/x90 WHITE DIAMOND WITH CENTRED DOT
+ <U27D1>     /xe2/x9f/x91 AND WITH DOT
+ <U27D2>     /xe2/x9f/x92 ELEMENT OF OPENING UPWARDS
+@@ -9168,6 +9736,11 @@ CHARMAP
+ <U2B52>     /xe2/xad/x92 WHITE SMALL STAR
+ <U2B53>     /xe2/xad/x93 BLACK RIGHT-POINTING PENTAGON
+ <U2B54>     /xe2/xad/x94 WHITE RIGHT-POINTING PENTAGON
++<U2B55>     /xe2/xad/x95 HEAVY LARGE CIRCLE
++<U2B56>     /xe2/xad/x96 HEAVY OVAL WITH OVAL INSIDE
++<U2B57>     /xe2/xad/x97 HEAVY CIRCLE WITH CIRCLE INSIDE
++<U2B58>     /xe2/xad/x98 HEAVY CIRCLE
++<U2B59>     /xe2/xad/x99 HEAVY CIRCLED SALTIRE
+ <U2C00>     /xe2/xb0/x80 GLAGOLITIC CAPITAL LETTER AZU
+ <U2C01>     /xe2/xb0/x81 GLAGOLITIC CAPITAL LETTER BUKY
+ <U2C02>     /xe2/xb0/x82 GLAGOLITIC CAPITAL LETTER VEDE
+@@ -9278,6 +9851,7 @@ CHARMAP
+ <U2C6D>     /xe2/xb1/xad LATIN CAPITAL LETTER ALPHA
+ <U2C6E>     /xe2/xb1/xae LATIN CAPITAL LETTER M WITH HOOK
+ <U2C6F>     /xe2/xb1/xaf LATIN CAPITAL LETTER TURNED A
++<U2C70>     /xe2/xb1/xb0 LATIN CAPITAL LETTER TURNED ALPHA
+ <U2C71>     /xe2/xb1/xb1 LATIN SMALL LETTER V WITH RIGHT HOOK
+ <U2C72>     /xe2/xb1/xb2 LATIN CAPITAL LETTER W WITH HOOK
+ <U2C73>     /xe2/xb1/xb3 LATIN SMALL LETTER W WITH HOOK
+@@ -9291,6 +9865,8 @@ CHARMAP
+ <U2C7B>     /xe2/xb1/xbb LATIN LETTER SMALL CAPITAL TURNED E
+ <U2C7C>     /xe2/xb1/xbc LATIN SUBSCRIPT SMALL LETTER J
+ <U2C7D>     /xe2/xb1/xbd MODIFIER LETTER CAPITAL V
++<U2C7E>     /xe2/xb1/xbe LATIN CAPITAL LETTER S WITH SWASH TAIL
++<U2C7F>     /xe2/xb1/xbf LATIN CAPITAL LETTER Z WITH SWASH TAIL
+ <U2C80>     /xe2/xb2/x80 COPTIC CAPITAL LETTER ALFA
+ <U2C81>     /xe2/xb2/x81 COPTIC SMALL LETTER ALFA
+ <U2C82>     /xe2/xb2/x82 COPTIC CAPITAL LETTER VIDA
+@@ -9398,6 +9974,13 @@ CHARMAP
+ <U2CE8>     /xe2/xb3/xa8 COPTIC SYMBOL TAU RO
+ <U2CE9>     /xe2/xb3/xa9 COPTIC SYMBOL KHI RO
+ <U2CEA>     /xe2/xb3/xaa COPTIC SYMBOL SHIMA SIMA
++<U2CEB>     /xe2/xb3/xab COPTIC CAPITAL LETTER CRYPTOGRAMMIC SHEI
++<U2CEC>     /xe2/xb3/xac COPTIC SMALL LETTER CRYPTOGRAMMIC SHEI
++<U2CED>     /xe2/xb3/xad COPTIC CAPITAL LETTER CRYPTOGRAMMIC GANGIA
++<U2CEE>     /xe2/xb3/xae COPTIC SMALL LETTER CRYPTOGRAMMIC GANGIA
++<U2CEF>     /xe2/xb3/xaf COPTIC COMBINING NI ABOVE
++<U2CF0>     /xe2/xb3/xb0 COPTIC COMBINING SPIRITUS ASPER
++<U2CF1>     /xe2/xb3/xb1 COPTIC COMBINING SPIRITUS LENIS
+ <U2CF9>     /xe2/xb3/xb9 COPTIC OLD NUBIAN FULL STOP
+ <U2CFA>     /xe2/xb3/xba COPTIC OLD NUBIAN DIRECT QUESTION MARK
+ <U2CFB>     /xe2/xb3/xbb COPTIC OLD NUBIAN INDIRECT QUESTION MARK
+@@ -9498,6 +10081,8 @@ CHARMAP
+ <U2D64>     /xe2/xb5/xa4 TIFINAGH LETTER TAWELLEMET YAZ
+ <U2D65>     /xe2/xb5/xa5 TIFINAGH LETTER YAZZ
+ <U2D6F>     /xe2/xb5/xaf TIFINAGH MODIFIER LETTER LABIALIZATION MARK
++<U2D70>     /xe2/xb5/xb0 TIFINAGH SEPARATOR MARK
++<U2D7F>     /xe2/xb5/xbf TIFINAGH CONSONANT JOINER
+ <U2D80>     /xe2/xb6/x80 ETHIOPIC SYLLABLE LOA
+ <U2D81>     /xe2/xb6/x81 ETHIOPIC SYLLABLE MOA
+ <U2D82>     /xe2/xb6/x82 ETHIOPIC SYLLABLE ROA
+@@ -9658,6 +10243,7 @@ CHARMAP
+ <U2E2E>     /xe2/xb8/xae REVERSED QUESTION MARK
+ <U2E2F>     /xe2/xb8/xaf VERTICAL TILDE
+ <U2E30>     /xe2/xb8/xb0 RING POINT
++<U2E31>     /xe2/xb8/xb1 WORD SEPARATOR MIDDLE DOT
+ <U2E80>     /xe2/xba/x80 CJK RADICAL REPEAT
+ <U2E81>     /xe2/xba/x81 CJK RADICAL CLIFF
+ <U2E82>     /xe2/xba/x82 CJK RADICAL SECOND ONE
+@@ -10427,6 +11013,9 @@ CHARMAP
+ <U31B5>     /xe3/x86/xb5 BOPOMOFO FINAL LETTER T
+ <U31B6>     /xe3/x86/xb6 BOPOMOFO FINAL LETTER K
+ <U31B7>     /xe3/x86/xb7 BOPOMOFO FINAL LETTER H
++<U31B8>     /xe3/x86/xb8 BOPOMOFO LETTER GH
++<U31B9>     /xe3/x86/xb9 BOPOMOFO LETTER LH
++<U31BA>     /xe3/x86/xba BOPOMOFO LETTER ZY
+ <U31C0>     /xe3/x87/x80 CJK STROKE T
+ <U31C1>     /xe3/x87/x81 CJK STROKE WG
+ <U31C2>     /xe3/x87/x82 CJK STROKE XG
+@@ -10546,6 +11135,18 @@ CHARMAP
+ <U3241>     /xe3/x89/x81 PARENTHESIZED IDEOGRAPH REST
+ <U3242>     /xe3/x89/x82 PARENTHESIZED IDEOGRAPH SELF
+ <U3243>     /xe3/x89/x83 PARENTHESIZED IDEOGRAPH REACH
++<U3244>     /xe3/x89/x84 CIRCLED IDEOGRAPH QUESTION
++<U3245>     /xe3/x89/x85 CIRCLED IDEOGRAPH KINDERGARTEN
++<U3246>     /xe3/x89/x86 CIRCLED IDEOGRAPH SCHOOL
++<U3247>     /xe3/x89/x87 CIRCLED IDEOGRAPH KOTO
++<U3248>     /xe3/x89/x88 CIRCLED NUMBER TEN ON BLACK SQUARE
++<U3249>     /xe3/x89/x89 CIRCLED NUMBER TWENTY ON BLACK SQUARE
++<U324A>     /xe3/x89/x8a CIRCLED NUMBER THIRTY ON BLACK SQUARE
++<U324B>     /xe3/x89/x8b CIRCLED NUMBER FORTY ON BLACK SQUARE
++<U324C>     /xe3/x89/x8c CIRCLED NUMBER FIFTY ON BLACK SQUARE
++<U324D>     /xe3/x89/x8d CIRCLED NUMBER SIXTY ON BLACK SQUARE
++<U324E>     /xe3/x89/x8e CIRCLED NUMBER SEVENTY ON BLACK SQUARE
++<U324F>     /xe3/x89/x8f CIRCLED NUMBER EIGHTY ON BLACK SQUARE
+ <U3250>     /xe3/x89/x90 PARTNERSHIP SIGN
+ <U3251>     /xe3/x89/x91 CIRCLED NUMBER TWENTY ONE
+ <U3252>     /xe3/x89/x92 CIRCLED NUMBER TWENTY TWO
+@@ -12691,6 +13292,54 @@ CHARMAP
+ <UA4C4>     /xea/x93/x84 YI RADICAL ZZIET
+ <UA4C5>     /xea/x93/x85 YI RADICAL NBIE
+ <UA4C6>     /xea/x93/x86 YI RADICAL KE
++<UA4D0>     /xea/x93/x90 LISU LETTER BA
++<UA4D1>     /xea/x93/x91 LISU LETTER PA
++<UA4D2>     /xea/x93/x92 LISU LETTER PHA
++<UA4D3>     /xea/x93/x93 LISU LETTER DA
++<UA4D4>     /xea/x93/x94 LISU LETTER TA
++<UA4D5>     /xea/x93/x95 LISU LETTER THA
++<UA4D6>     /xea/x93/x96 LISU LETTER GA
++<UA4D7>     /xea/x93/x97 LISU LETTER KA
++<UA4D8>     /xea/x93/x98 LISU LETTER KHA
++<UA4D9>     /xea/x93/x99 LISU LETTER JA
++<UA4DA>     /xea/x93/x9a LISU LETTER CA
++<UA4DB>     /xea/x93/x9b LISU LETTER CHA
++<UA4DC>     /xea/x93/x9c LISU LETTER DZA
++<UA4DD>     /xea/x93/x9d LISU LETTER TSA
++<UA4DE>     /xea/x93/x9e LISU LETTER TSHA
++<UA4DF>     /xea/x93/x9f LISU LETTER MA
++<UA4E0>     /xea/x93/xa0 LISU LETTER NA
++<UA4E1>     /xea/x93/xa1 LISU LETTER LA
++<UA4E2>     /xea/x93/xa2 LISU LETTER SA
++<UA4E3>     /xea/x93/xa3 LISU LETTER ZHA
++<UA4E4>     /xea/x93/xa4 LISU LETTER ZA
++<UA4E5>     /xea/x93/xa5 LISU LETTER NGA
++<UA4E6>     /xea/x93/xa6 LISU LETTER HA
++<UA4E7>     /xea/x93/xa7 LISU LETTER XA
++<UA4E8>     /xea/x93/xa8 LISU LETTER HHA
++<UA4E9>     /xea/x93/xa9 LISU LETTER FA
++<UA4EA>     /xea/x93/xaa LISU LETTER WA
++<UA4EB>     /xea/x93/xab LISU LETTER SHA
++<UA4EC>     /xea/x93/xac LISU LETTER YA
++<UA4ED>     /xea/x93/xad LISU LETTER GHA
++<UA4EE>     /xea/x93/xae LISU LETTER A
++<UA4EF>     /xea/x93/xaf LISU LETTER AE
++<UA4F0>     /xea/x93/xb0 LISU LETTER E
++<UA4F1>     /xea/x93/xb1 LISU LETTER EU
++<UA4F2>     /xea/x93/xb2 LISU LETTER I
++<UA4F3>     /xea/x93/xb3 LISU LETTER O
++<UA4F4>     /xea/x93/xb4 LISU LETTER U
++<UA4F5>     /xea/x93/xb5 LISU LETTER UE
++<UA4F6>     /xea/x93/xb6 LISU LETTER UH
++<UA4F7>     /xea/x93/xb7 LISU LETTER OE
++<UA4F8>     /xea/x93/xb8 LISU LETTER TONE MYA TI
++<UA4F9>     /xea/x93/xb9 LISU LETTER TONE NA PO
++<UA4FA>     /xea/x93/xba LISU LETTER TONE MYA CYA
++<UA4FB>     /xea/x93/xbb LISU LETTER TONE MYA BO
++<UA4FC>     /xea/x93/xbc LISU LETTER TONE MYA NA
++<UA4FD>     /xea/x93/xbd LISU LETTER TONE MYA JEU
++<UA4FE>     /xea/x93/xbe LISU PUNCTUATION COMMA
++<UA4FF>     /xea/x93/xbf LISU PUNCTUATION FULL STOP
+ <UA500>     /xea/x94/x80 VAI SYLLABLE EE
+ <UA501>     /xea/x94/x81 VAI SYLLABLE EEN
+ <UA502>     /xea/x94/x82 VAI SYLLABLE HEE
+@@ -13023,6 +13672,8 @@ CHARMAP
+ <UA65D>     /xea/x99/x9d CYRILLIC SMALL LETTER IOTIFIED CLOSED LITTLE YUS
+ <UA65E>     /xea/x99/x9e CYRILLIC CAPITAL LETTER YN
+ <UA65F>     /xea/x99/x9f CYRILLIC SMALL LETTER YN
++<UA660>     /xea/x99/xa0 CYRILLIC CAPITAL LETTER REVERSED TSE
++<UA661>     /xea/x99/xa1 CYRILLIC SMALL LETTER REVERSED TSE
+ <UA662>     /xea/x99/xa2 CYRILLIC CAPITAL LETTER SOFT DE
+ <UA663>     /xea/x99/xa3 CYRILLIC SMALL LETTER SOFT DE
+ <UA664>     /xea/x99/xa4 CYRILLIC CAPITAL LETTER SOFT EL
+@@ -13069,6 +13720,94 @@ CHARMAP
+ <UA695>     /xea/x9a/x95 CYRILLIC SMALL LETTER HWE
+ <UA696>     /xea/x9a/x96 CYRILLIC CAPITAL LETTER SHWE
+ <UA697>     /xea/x9a/x97 CYRILLIC SMALL LETTER SHWE
++<UA6A0>     /xea/x9a/xa0 BAMUM LETTER A
++<UA6A1>     /xea/x9a/xa1 BAMUM LETTER KA
++<UA6A2>     /xea/x9a/xa2 BAMUM LETTER U
++<UA6A3>     /xea/x9a/xa3 BAMUM LETTER KU
++<UA6A4>     /xea/x9a/xa4 BAMUM LETTER EE
++<UA6A5>     /xea/x9a/xa5 BAMUM LETTER REE
++<UA6A6>     /xea/x9a/xa6 BAMUM LETTER TAE
++<UA6A7>     /xea/x9a/xa7 BAMUM LETTER O
++<UA6A8>     /xea/x9a/xa8 BAMUM LETTER NYI
++<UA6A9>     /xea/x9a/xa9 BAMUM LETTER I
++<UA6AA>     /xea/x9a/xaa BAMUM LETTER LA
++<UA6AB>     /xea/x9a/xab BAMUM LETTER PA
++<UA6AC>     /xea/x9a/xac BAMUM LETTER RII
++<UA6AD>     /xea/x9a/xad BAMUM LETTER RIEE
++<UA6AE>     /xea/x9a/xae BAMUM LETTER LEEEE
++<UA6AF>     /xea/x9a/xaf BAMUM LETTER MEEEE
++<UA6B0>     /xea/x9a/xb0 BAMUM LETTER TAA
++<UA6B1>     /xea/x9a/xb1 BAMUM LETTER NDAA
++<UA6B2>     /xea/x9a/xb2 BAMUM LETTER NJAEM
++<UA6B3>     /xea/x9a/xb3 BAMUM LETTER M
++<UA6B4>     /xea/x9a/xb4 BAMUM LETTER SUU
++<UA6B5>     /xea/x9a/xb5 BAMUM LETTER MU
++<UA6B6>     /xea/x9a/xb6 BAMUM LETTER SHII
++<UA6B7>     /xea/x9a/xb7 BAMUM LETTER SI
++<UA6B8>     /xea/x9a/xb8 BAMUM LETTER SHEUX
++<UA6B9>     /xea/x9a/xb9 BAMUM LETTER SEUX
++<UA6BA>     /xea/x9a/xba BAMUM LETTER KYEE
++<UA6BB>     /xea/x9a/xbb BAMUM LETTER KET
++<UA6BC>     /xea/x9a/xbc BAMUM LETTER NUAE
++<UA6BD>     /xea/x9a/xbd BAMUM LETTER NU
++<UA6BE>     /xea/x9a/xbe BAMUM LETTER NJUAE
++<UA6BF>     /xea/x9a/xbf BAMUM LETTER YOQ
++<UA6C0>     /xea/x9b/x80 BAMUM LETTER SHU
++<UA6C1>     /xea/x9b/x81 BAMUM LETTER YUQ
++<UA6C2>     /xea/x9b/x82 BAMUM LETTER YA
++<UA6C3>     /xea/x9b/x83 BAMUM LETTER NSHA
++<UA6C4>     /xea/x9b/x84 BAMUM LETTER KEUX
++<UA6C5>     /xea/x9b/x85 BAMUM LETTER PEUX
++<UA6C6>     /xea/x9b/x86 BAMUM LETTER NJEE
++<UA6C7>     /xea/x9b/x87 BAMUM LETTER NTEE
++<UA6C8>     /xea/x9b/x88 BAMUM LETTER PUE
++<UA6C9>     /xea/x9b/x89 BAMUM LETTER WUE
++<UA6CA>     /xea/x9b/x8a BAMUM LETTER PEE
++<UA6CB>     /xea/x9b/x8b BAMUM LETTER FEE
++<UA6CC>     /xea/x9b/x8c BAMUM LETTER RU
++<UA6CD>     /xea/x9b/x8d BAMUM LETTER LU
++<UA6CE>     /xea/x9b/x8e BAMUM LETTER MI
++<UA6CF>     /xea/x9b/x8f BAMUM LETTER NI
++<UA6D0>     /xea/x9b/x90 BAMUM LETTER REUX
++<UA6D1>     /xea/x9b/x91 BAMUM LETTER RAE
++<UA6D2>     /xea/x9b/x92 BAMUM LETTER KEN
++<UA6D3>     /xea/x9b/x93 BAMUM LETTER NGKWAEN
++<UA6D4>     /xea/x9b/x94 BAMUM LETTER NGGA
++<UA6D5>     /xea/x9b/x95 BAMUM LETTER NGA
++<UA6D6>     /xea/x9b/x96 BAMUM LETTER SHO
++<UA6D7>     /xea/x9b/x97 BAMUM LETTER PUAE
++<UA6D8>     /xea/x9b/x98 BAMUM LETTER FU
++<UA6D9>     /xea/x9b/x99 BAMUM LETTER FOM
++<UA6DA>     /xea/x9b/x9a BAMUM LETTER WA
++<UA6DB>     /xea/x9b/x9b BAMUM LETTER NA
++<UA6DC>     /xea/x9b/x9c BAMUM LETTER LI
++<UA6DD>     /xea/x9b/x9d BAMUM LETTER PI
++<UA6DE>     /xea/x9b/x9e BAMUM LETTER LOQ
++<UA6DF>     /xea/x9b/x9f BAMUM LETTER KO
++<UA6E0>     /xea/x9b/xa0 BAMUM LETTER MBEN
++<UA6E1>     /xea/x9b/xa1 BAMUM LETTER REN
++<UA6E2>     /xea/x9b/xa2 BAMUM LETTER MEN
++<UA6E3>     /xea/x9b/xa3 BAMUM LETTER MA
++<UA6E4>     /xea/x9b/xa4 BAMUM LETTER TI
++<UA6E5>     /xea/x9b/xa5 BAMUM LETTER KI
++<UA6E6>     /xea/x9b/xa6 BAMUM LETTER MO
++<UA6E7>     /xea/x9b/xa7 BAMUM LETTER MBAA
++<UA6E8>     /xea/x9b/xa8 BAMUM LETTER TET
++<UA6E9>     /xea/x9b/xa9 BAMUM LETTER KPA
++<UA6EA>     /xea/x9b/xaa BAMUM LETTER TEN
++<UA6EB>     /xea/x9b/xab BAMUM LETTER NTUU
++<UA6EC>     /xea/x9b/xac BAMUM LETTER SAMBA
++<UA6ED>     /xea/x9b/xad BAMUM LETTER FAAMAE
++<UA6EE>     /xea/x9b/xae BAMUM LETTER KOVUU
++<UA6EF>     /xea/x9b/xaf BAMUM LETTER KOGHOM
++<UA6F0>     /xea/x9b/xb0 BAMUM COMBINING MARK KOQNDON
++<UA6F1>     /xea/x9b/xb1 BAMUM COMBINING MARK TUKWENTIS
++<UA6F2>     /xea/x9b/xb2 BAMUM NJAEMLI
++<UA6F3>     /xea/x9b/xb3 BAMUM FULL STOP
++<UA6F4>     /xea/x9b/xb4 BAMUM COLON
++<UA6F5>     /xea/x9b/xb5 BAMUM COMMA
++<UA6F6>     /xea/x9b/xb6 BAMUM SEMICOLON
++<UA6F7>     /xea/x9b/xb7 BAMUM QUESTION MARK
+ <UA700>     /xea/x9c/x80 MODIFIER LETTER CHINESE TONE YIN PING
+ <UA701>     /xea/x9c/x81 MODIFIER LETTER CHINESE TONE YANG PING
+ <UA702>     /xea/x9c/x82 MODIFIER LETTER CHINESE TONE YIN SHANG
+@@ -13210,6 +13949,21 @@ CHARMAP
+ <UA78A>     /xea/x9e/x8a MODIFIER LETTER SHORT EQUALS SIGN
+ <UA78B>     /xea/x9e/x8b LATIN CAPITAL LETTER SALTILLO
+ <UA78C>     /xea/x9e/x8c LATIN SMALL LETTER SALTILLO
++<UA78D>     /xea/x9e/x8d LATIN CAPITAL LETTER TURNED H
++<UA78E>     /xea/x9e/x8e LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
++<UA790>     /xea/x9e/x90 LATIN CAPITAL LETTER N WITH DESCENDER
++<UA791>     /xea/x9e/x91 LATIN SMALL LETTER N WITH DESCENDER
++<UA7A0>     /xea/x9e/xa0 LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
++<UA7A1>     /xea/x9e/xa1 LATIN SMALL LETTER G WITH OBLIQUE STROKE
++<UA7A2>     /xea/x9e/xa2 LATIN CAPITAL LETTER K WITH OBLIQUE STROKE
++<UA7A3>     /xea/x9e/xa3 LATIN SMALL LETTER K WITH OBLIQUE STROKE
++<UA7A4>     /xea/x9e/xa4 LATIN CAPITAL LETTER N WITH OBLIQUE STROKE
++<UA7A5>     /xea/x9e/xa5 LATIN SMALL LETTER N WITH OBLIQUE STROKE
++<UA7A6>     /xea/x9e/xa6 LATIN CAPITAL LETTER R WITH OBLIQUE STROKE
++<UA7A7>     /xea/x9e/xa7 LATIN SMALL LETTER R WITH OBLIQUE STROKE
++<UA7A8>     /xea/x9e/xa8 LATIN CAPITAL LETTER S WITH OBLIQUE STROKE
++<UA7A9>     /xea/x9e/xa9 LATIN SMALL LETTER S WITH OBLIQUE STROKE
++<UA7FA>     /xea/x9f/xba LATIN LETTER SMALL CAPITAL TURNED M
+ <UA7FB>     /xea/x9f/xbb LATIN EPIGRAPHIC LETTER REVERSED F
+ <UA7FC>     /xea/x9f/xbc LATIN EPIGRAPHIC LETTER REVERSED P
+ <UA7FD>     /xea/x9f/xbd LATIN EPIGRAPHIC LETTER INVERTED M
+@@ -13259,6 +14013,16 @@ CHARMAP
+ <UA829>     /xea/xa0/xa9 SYLOTI NAGRI POETRY MARK-2
+ <UA82A>     /xea/xa0/xaa SYLOTI NAGRI POETRY MARK-3
+ <UA82B>     /xea/xa0/xab SYLOTI NAGRI POETRY MARK-4
++<UA830>     /xea/xa0/xb0 NORTH INDIC FRACTION ONE QUARTER
++<UA831>     /xea/xa0/xb1 NORTH INDIC FRACTION ONE HALF
++<UA832>     /xea/xa0/xb2 NORTH INDIC FRACTION THREE QUARTERS
++<UA833>     /xea/xa0/xb3 NORTH INDIC FRACTION ONE SIXTEENTH
++<UA834>     /xea/xa0/xb4 NORTH INDIC FRACTION ONE EIGHTH
++<UA835>     /xea/xa0/xb5 NORTH INDIC FRACTION THREE SIXTEENTHS
++<UA836>     /xea/xa0/xb6 NORTH INDIC QUARTER MARK
++<UA837>     /xea/xa0/xb7 NORTH INDIC PLACEHOLDER MARK
++<UA838>     /xea/xa0/xb8 NORTH INDIC RUPEE MARK
++<UA839>     /xea/xa0/xb9 NORTH INDIC QUANTITY MARK
+ <UA840>     /xea/xa1/x80 PHAGS-PA LETTER KA
+ <UA841>     /xea/xa1/x81 PHAGS-PA LETTER KHA
+ <UA842>     /xea/xa1/x82 PHAGS-PA LETTER GA
+@@ -13396,6 +14160,34 @@ CHARMAP
+ <UA8D7>     /xea/xa3/x97 SAURASHTRA DIGIT SEVEN
+ <UA8D8>     /xea/xa3/x98 SAURASHTRA DIGIT EIGHT
+ <UA8D9>     /xea/xa3/x99 SAURASHTRA DIGIT NINE
++<UA8E0>     /xea/xa3/xa0 COMBINING DEVANAGARI DIGIT ZERO
++<UA8E1>     /xea/xa3/xa1 COMBINING DEVANAGARI DIGIT ONE
++<UA8E2>     /xea/xa3/xa2 COMBINING DEVANAGARI DIGIT TWO
++<UA8E3>     /xea/xa3/xa3 COMBINING DEVANAGARI DIGIT THREE
++<UA8E4>     /xea/xa3/xa4 COMBINING DEVANAGARI DIGIT FOUR
++<UA8E5>     /xea/xa3/xa5 COMBINING DEVANAGARI DIGIT FIVE
++<UA8E6>     /xea/xa3/xa6 COMBINING DEVANAGARI DIGIT SIX
++<UA8E7>     /xea/xa3/xa7 COMBINING DEVANAGARI DIGIT SEVEN
++<UA8E8>     /xea/xa3/xa8 COMBINING DEVANAGARI DIGIT EIGHT
++<UA8E9>     /xea/xa3/xa9 COMBINING DEVANAGARI DIGIT NINE
++<UA8EA>     /xea/xa3/xaa COMBINING DEVANAGARI LETTER A
++<UA8EB>     /xea/xa3/xab COMBINING DEVANAGARI LETTER U
++<UA8EC>     /xea/xa3/xac COMBINING DEVANAGARI LETTER KA
++<UA8ED>     /xea/xa3/xad COMBINING DEVANAGARI LETTER NA
++<UA8EE>     /xea/xa3/xae COMBINING DEVANAGARI LETTER PA
++<UA8EF>     /xea/xa3/xaf COMBINING DEVANAGARI LETTER RA
++<UA8F0>     /xea/xa3/xb0 COMBINING DEVANAGARI LETTER VI
++<UA8F1>     /xea/xa3/xb1 COMBINING DEVANAGARI SIGN AVAGRAHA
++<UA8F2>     /xea/xa3/xb2 DEVANAGARI SIGN SPACING CANDRABINDU
++<UA8F3>     /xea/xa3/xb3 DEVANAGARI SIGN CANDRABINDU VIRAMA
++<UA8F4>     /xea/xa3/xb4 DEVANAGARI SIGN DOUBLE CANDRABINDU VIRAMA
++<UA8F5>     /xea/xa3/xb5 DEVANAGARI SIGN CANDRABINDU TWO
++<UA8F6>     /xea/xa3/xb6 DEVANAGARI SIGN CANDRABINDU THREE
++<UA8F7>     /xea/xa3/xb7 DEVANAGARI SIGN CANDRABINDU AVAGRAHA
++<UA8F8>     /xea/xa3/xb8 DEVANAGARI SIGN PUSHPIKA
++<UA8F9>     /xea/xa3/xb9 DEVANAGARI GAP FILLER
++<UA8FA>     /xea/xa3/xba DEVANAGARI CARET
++<UA8FB>     /xea/xa3/xbb DEVANAGARI HEADSTROKE
+ <UA900>     /xea/xa4/x80 KAYAH LI DIGIT ZERO
+ <UA901>     /xea/xa4/x81 KAYAH LI DIGIT ONE
+ <UA902>     /xea/xa4/x82 KAYAH LI DIGIT TWO
+@@ -13481,6 +14273,126 @@ CHARMAP
+ <UA952>     /xea/xa5/x92 REJANG CONSONANT SIGN H
+ <UA953>     /xea/xa5/x93 REJANG VIRAMA
+ <UA95F>     /xea/xa5/x9f REJANG SECTION MARK
++<UA960>     /xea/xa5/xa0 HANGUL CHOSEONG TIKEUT-MIEUM
++<UA961>     /xea/xa5/xa1 HANGUL CHOSEONG TIKEUT-PIEUP
++<UA962>     /xea/xa5/xa2 HANGUL CHOSEONG TIKEUT-SIOS
++<UA963>     /xea/xa5/xa3 HANGUL CHOSEONG TIKEUT-CIEUC
++<UA964>     /xea/xa5/xa4 HANGUL CHOSEONG RIEUL-KIYEOK
++<UA965>     /xea/xa5/xa5 HANGUL CHOSEONG RIEUL-SSANGKIYEOK
++<UA966>     /xea/xa5/xa6 HANGUL CHOSEONG RIEUL-TIKEUT
++<UA967>     /xea/xa5/xa7 HANGUL CHOSEONG RIEUL-SSANGTIKEUT
++<UA968>     /xea/xa5/xa8 HANGUL CHOSEONG RIEUL-MIEUM
++<UA969>     /xea/xa5/xa9 HANGUL CHOSEONG RIEUL-PIEUP
++<UA96A>     /xea/xa5/xaa HANGUL CHOSEONG RIEUL-SSANGPIEUP
++<UA96B>     /xea/xa5/xab HANGUL CHOSEONG RIEUL-KAPYEOUNPIEUP
++<UA96C>     /xea/xa5/xac HANGUL CHOSEONG RIEUL-SIOS
++<UA96D>     /xea/xa5/xad HANGUL CHOSEONG RIEUL-CIEUC
++<UA96E>     /xea/xa5/xae HANGUL CHOSEONG RIEUL-KHIEUKH
++<UA96F>     /xea/xa5/xaf HANGUL CHOSEONG MIEUM-KIYEOK
++<UA970>     /xea/xa5/xb0 HANGUL CHOSEONG MIEUM-TIKEUT
++<UA971>     /xea/xa5/xb1 HANGUL CHOSEONG MIEUM-SIOS
++<UA972>     /xea/xa5/xb2 HANGUL CHOSEONG PIEUP-SIOS-THIEUTH
++<UA973>     /xea/xa5/xb3 HANGUL CHOSEONG PIEUP-KHIEUKH
++<UA974>     /xea/xa5/xb4 HANGUL CHOSEONG PIEUP-HIEUH
++<UA975>     /xea/xa5/xb5 HANGUL CHOSEONG SSANGSIOS-PIEUP
++<UA976>     /xea/xa5/xb6 HANGUL CHOSEONG IEUNG-RIEUL
++<UA977>     /xea/xa5/xb7 HANGUL CHOSEONG IEUNG-HIEUH
++<UA978>     /xea/xa5/xb8 HANGUL CHOSEONG SSANGCIEUC-HIEUH
++<UA979>     /xea/xa5/xb9 HANGUL CHOSEONG SSANGTHIEUTH
++<UA97A>     /xea/xa5/xba HANGUL CHOSEONG PHIEUPH-HIEUH
++<UA97B>     /xea/xa5/xbb HANGUL CHOSEONG HIEUH-SIOS
++<UA97C>     /xea/xa5/xbc HANGUL CHOSEONG SSANGYEORINHIEUH
++<UA980>     /xea/xa6/x80 JAVANESE SIGN PANYANGGA
++<UA981>     /xea/xa6/x81 JAVANESE SIGN CECAK
++<UA982>     /xea/xa6/x82 JAVANESE SIGN LAYAR
++<UA983>     /xea/xa6/x83 JAVANESE SIGN WIGNYAN
++<UA984>     /xea/xa6/x84 JAVANESE LETTER A
++<UA985>     /xea/xa6/x85 JAVANESE LETTER I KAWI
++<UA986>     /xea/xa6/x86 JAVANESE LETTER I
++<UA987>     /xea/xa6/x87 JAVANESE LETTER II
++<UA988>     /xea/xa6/x88 JAVANESE LETTER U
++<UA989>     /xea/xa6/x89 JAVANESE LETTER PA CEREK
++<UA98A>     /xea/xa6/x8a JAVANESE LETTER NGA LELET
++<UA98B>     /xea/xa6/x8b JAVANESE LETTER NGA LELET RASWADI
++<UA98C>     /xea/xa6/x8c JAVANESE LETTER E
++<UA98D>     /xea/xa6/x8d JAVANESE LETTER AI
++<UA98E>     /xea/xa6/x8e JAVANESE LETTER O
++<UA98F>     /xea/xa6/x8f JAVANESE LETTER KA
++<UA990>     /xea/xa6/x90 JAVANESE LETTER KA SASAK
++<UA991>     /xea/xa6/x91 JAVANESE LETTER KA MURDA
++<UA992>     /xea/xa6/x92 JAVANESE LETTER GA
++<UA993>     /xea/xa6/x93 JAVANESE LETTER GA MURDA
++<UA994>     /xea/xa6/x94 JAVANESE LETTER NGA
++<UA995>     /xea/xa6/x95 JAVANESE LETTER CA
++<UA996>     /xea/xa6/x96 JAVANESE LETTER CA MURDA
++<UA997>     /xea/xa6/x97 JAVANESE LETTER JA
++<UA998>     /xea/xa6/x98 JAVANESE LETTER NYA MURDA
++<UA999>     /xea/xa6/x99 JAVANESE LETTER JA MAHAPRANA
++<UA99A>     /xea/xa6/x9a JAVANESE LETTER NYA
++<UA99B>     /xea/xa6/x9b JAVANESE LETTER TTA
++<UA99C>     /xea/xa6/x9c JAVANESE LETTER TTA MAHAPRANA
++<UA99D>     /xea/xa6/x9d JAVANESE LETTER DDA
++<UA99E>     /xea/xa6/x9e JAVANESE LETTER DDA MAHAPRANA
++<UA99F>     /xea/xa6/x9f JAVANESE LETTER NA MURDA
++<UA9A0>     /xea/xa6/xa0 JAVANESE LETTER TA
++<UA9A1>     /xea/xa6/xa1 JAVANESE LETTER TA MURDA
++<UA9A2>     /xea/xa6/xa2 JAVANESE LETTER DA
++<UA9A3>     /xea/xa6/xa3 JAVANESE LETTER DA MAHAPRANA
++<UA9A4>     /xea/xa6/xa4 JAVANESE LETTER NA
++<UA9A5>     /xea/xa6/xa5 JAVANESE LETTER PA
++<UA9A6>     /xea/xa6/xa6 JAVANESE LETTER PA MURDA
++<UA9A7>     /xea/xa6/xa7 JAVANESE LETTER BA
++<UA9A8>     /xea/xa6/xa8 JAVANESE LETTER BA MURDA
++<UA9A9>     /xea/xa6/xa9 JAVANESE LETTER MA
++<UA9AA>     /xea/xa6/xaa JAVANESE LETTER YA
++<UA9AB>     /xea/xa6/xab JAVANESE LETTER RA
++<UA9AC>     /xea/xa6/xac JAVANESE LETTER RA AGUNG
++<UA9AD>     /xea/xa6/xad JAVANESE LETTER LA
++<UA9AE>     /xea/xa6/xae JAVANESE LETTER WA
++<UA9AF>     /xea/xa6/xaf JAVANESE LETTER SA MURDA
++<UA9B0>     /xea/xa6/xb0 JAVANESE LETTER SA MAHAPRANA
++<UA9B1>     /xea/xa6/xb1 JAVANESE LETTER SA
++<UA9B2>     /xea/xa6/xb2 JAVANESE LETTER HA
++<UA9B3>     /xea/xa6/xb3 JAVANESE SIGN CECAK TELU
++<UA9B4>     /xea/xa6/xb4 JAVANESE VOWEL SIGN TARUNG
++<UA9B5>     /xea/xa6/xb5 JAVANESE VOWEL SIGN TOLONG
++<UA9B6>     /xea/xa6/xb6 JAVANESE VOWEL SIGN WULU
++<UA9B7>     /xea/xa6/xb7 JAVANESE VOWEL SIGN WULU MELIK
++<UA9B8>     /xea/xa6/xb8 JAVANESE VOWEL SIGN SUKU
++<UA9B9>     /xea/xa6/xb9 JAVANESE VOWEL SIGN SUKU MENDUT
++<UA9BA>     /xea/xa6/xba JAVANESE VOWEL SIGN TALING
++<UA9BB>     /xea/xa6/xbb JAVANESE VOWEL SIGN DIRGA MURE
++<UA9BC>     /xea/xa6/xbc JAVANESE VOWEL SIGN PEPET
++<UA9BD>     /xea/xa6/xbd JAVANESE CONSONANT SIGN KERET
++<UA9BE>     /xea/xa6/xbe JAVANESE CONSONANT SIGN PENGKAL
++<UA9BF>     /xea/xa6/xbf JAVANESE CONSONANT SIGN CAKRA
++<UA9C0>     /xea/xa7/x80 JAVANESE PANGKON
++<UA9C1>     /xea/xa7/x81 JAVANESE LEFT RERENGGAN
++<UA9C2>     /xea/xa7/x82 JAVANESE RIGHT RERENGGAN
++<UA9C3>     /xea/xa7/x83 JAVANESE PADA ANDAP
++<UA9C4>     /xea/xa7/x84 JAVANESE PADA MADYA
++<UA9C5>     /xea/xa7/x85 JAVANESE PADA LUHUR
++<UA9C6>     /xea/xa7/x86 JAVANESE PADA WINDU
++<UA9C7>     /xea/xa7/x87 JAVANESE PADA PANGKAT
++<UA9C8>     /xea/xa7/x88 JAVANESE PADA LINGSA
++<UA9C9>     /xea/xa7/x89 JAVANESE PADA LUNGSI
++<UA9CA>     /xea/xa7/x8a JAVANESE PADA ADEG
++<UA9CB>     /xea/xa7/x8b JAVANESE PADA ADEG ADEG
++<UA9CC>     /xea/xa7/x8c JAVANESE PADA PISELEH
++<UA9CD>     /xea/xa7/x8d JAVANESE TURNED PADA PISELEH
++<UA9CF>     /xea/xa7/x8f JAVANESE PANGRANGKEP
++<UA9D0>     /xea/xa7/x90 JAVANESE DIGIT ZERO
++<UA9D1>     /xea/xa7/x91 JAVANESE DIGIT ONE
++<UA9D2>     /xea/xa7/x92 JAVANESE DIGIT TWO
++<UA9D3>     /xea/xa7/x93 JAVANESE DIGIT THREE
++<UA9D4>     /xea/xa7/x94 JAVANESE DIGIT FOUR
++<UA9D5>     /xea/xa7/x95 JAVANESE DIGIT FIVE
++<UA9D6>     /xea/xa7/x96 JAVANESE DIGIT SIX
++<UA9D7>     /xea/xa7/x97 JAVANESE DIGIT SEVEN
++<UA9D8>     /xea/xa7/x98 JAVANESE DIGIT EIGHT
++<UA9D9>     /xea/xa7/x99 JAVANESE DIGIT NINE
++<UA9DE>     /xea/xa7/x9e JAVANESE PADA TIRTA TUMETES
++<UA9DF>     /xea/xa7/x9f JAVANESE PADA ISEN-ISEN
+ <UAA00>     /xea/xa8/x80 CHAM LETTER A
+ <UAA01>     /xea/xa8/x81 CHAM LETTER I
+ <UAA02>     /xea/xa8/x82 CHAM LETTER U
+@@ -13564,6 +14476,194 @@ CHARMAP
+ <UAA5D>     /xea/xa9/x9d CHAM PUNCTUATION DANDA
+ <UAA5E>     /xea/xa9/x9e CHAM PUNCTUATION DOUBLE DANDA
+ <UAA5F>     /xea/xa9/x9f CHAM PUNCTUATION TRIPLE DANDA
++<UAA60>     /xea/xa9/xa0 MYANMAR LETTER KHAMTI GA
++<UAA61>     /xea/xa9/xa1 MYANMAR LETTER KHAMTI CA
++<UAA62>     /xea/xa9/xa2 MYANMAR LETTER KHAMTI CHA
++<UAA63>     /xea/xa9/xa3 MYANMAR LETTER KHAMTI JA
++<UAA64>     /xea/xa9/xa4 MYANMAR LETTER KHAMTI JHA
++<UAA65>     /xea/xa9/xa5 MYANMAR LETTER KHAMTI NYA
++<UAA66>     /xea/xa9/xa6 MYANMAR LETTER KHAMTI TTA
++<UAA67>     /xea/xa9/xa7 MYANMAR LETTER KHAMTI TTHA
++<UAA68>     /xea/xa9/xa8 MYANMAR LETTER KHAMTI DDA
++<UAA69>     /xea/xa9/xa9 MYANMAR LETTER KHAMTI DDHA
++<UAA6A>     /xea/xa9/xaa MYANMAR LETTER KHAMTI DHA
++<UAA6B>     /xea/xa9/xab MYANMAR LETTER KHAMTI NA
++<UAA6C>     /xea/xa9/xac MYANMAR LETTER KHAMTI SA
++<UAA6D>     /xea/xa9/xad MYANMAR LETTER KHAMTI HA
++<UAA6E>     /xea/xa9/xae MYANMAR LETTER KHAMTI HHA
++<UAA6F>     /xea/xa9/xaf MYANMAR LETTER KHAMTI FA
++<UAA70>     /xea/xa9/xb0 MYANMAR MODIFIER LETTER KHAMTI REDUPLICATION
++<UAA71>     /xea/xa9/xb1 MYANMAR LETTER KHAMTI XA
++<UAA72>     /xea/xa9/xb2 MYANMAR LETTER KHAMTI ZA
++<UAA73>     /xea/xa9/xb3 MYANMAR LETTER KHAMTI RA
++<UAA74>     /xea/xa9/xb4 MYANMAR LOGOGRAM KHAMTI OAY
++<UAA75>     /xea/xa9/xb5 MYANMAR LOGOGRAM KHAMTI QN
++<UAA76>     /xea/xa9/xb6 MYANMAR LOGOGRAM KHAMTI HM
++<UAA77>     /xea/xa9/xb7 MYANMAR SYMBOL AITON EXCLAMATION
++<UAA78>     /xea/xa9/xb8 MYANMAR SYMBOL AITON ONE
++<UAA79>     /xea/xa9/xb9 MYANMAR SYMBOL AITON TWO
++<UAA7A>     /xea/xa9/xba MYANMAR LETTER AITON RA
++<UAA7B>     /xea/xa9/xbb MYANMAR SIGN PAO KAREN TONE
++<UAA80>     /xea/xaa/x80 TAI VIET LETTER LOW KO
++<UAA81>     /xea/xaa/x81 TAI VIET LETTER HIGH KO
++<UAA82>     /xea/xaa/x82 TAI VIET LETTER LOW KHO
++<UAA83>     /xea/xaa/x83 TAI VIET LETTER HIGH KHO
++<UAA84>     /xea/xaa/x84 TAI VIET LETTER LOW KHHO
++<UAA85>     /xea/xaa/x85 TAI VIET LETTER HIGH KHHO
++<UAA86>     /xea/xaa/x86 TAI VIET LETTER LOW GO
++<UAA87>     /xea/xaa/x87 TAI VIET LETTER HIGH GO
++<UAA88>     /xea/xaa/x88 TAI VIET LETTER LOW NGO
++<UAA89>     /xea/xaa/x89 TAI VIET LETTER HIGH NGO
++<UAA8A>     /xea/xaa/x8a TAI VIET LETTER LOW CO
++<UAA8B>     /xea/xaa/x8b TAI VIET LETTER HIGH CO
++<UAA8C>     /xea/xaa/x8c TAI VIET LETTER LOW CHO
++<UAA8D>     /xea/xaa/x8d TAI VIET LETTER HIGH CHO
++<UAA8E>     /xea/xaa/x8e TAI VIET LETTER LOW SO
++<UAA8F>     /xea/xaa/x8f TAI VIET LETTER HIGH SO
++<UAA90>     /xea/xaa/x90 TAI VIET LETTER LOW NYO
++<UAA91>     /xea/xaa/x91 TAI VIET LETTER HIGH NYO
++<UAA92>     /xea/xaa/x92 TAI VIET LETTER LOW DO
++<UAA93>     /xea/xaa/x93 TAI VIET LETTER HIGH DO
++<UAA94>     /xea/xaa/x94 TAI VIET LETTER LOW TO
++<UAA95>     /xea/xaa/x95 TAI VIET LETTER HIGH TO
++<UAA96>     /xea/xaa/x96 TAI VIET LETTER LOW THO
++<UAA97>     /xea/xaa/x97 TAI VIET LETTER HIGH THO
++<UAA98>     /xea/xaa/x98 TAI VIET LETTER LOW NO
++<UAA99>     /xea/xaa/x99 TAI VIET LETTER HIGH NO
++<UAA9A>     /xea/xaa/x9a TAI VIET LETTER LOW BO
++<UAA9B>     /xea/xaa/x9b TAI VIET LETTER HIGH BO
++<UAA9C>     /xea/xaa/x9c TAI VIET LETTER LOW PO
++<UAA9D>     /xea/xaa/x9d TAI VIET LETTER HIGH PO
++<UAA9E>     /xea/xaa/x9e TAI VIET LETTER LOW PHO
++<UAA9F>     /xea/xaa/x9f TAI VIET LETTER HIGH PHO
++<UAAA0>     /xea/xaa/xa0 TAI VIET LETTER LOW FO
++<UAAA1>     /xea/xaa/xa1 TAI VIET LETTER HIGH FO
++<UAAA2>     /xea/xaa/xa2 TAI VIET LETTER LOW MO
++<UAAA3>     /xea/xaa/xa3 TAI VIET LETTER HIGH MO
++<UAAA4>     /xea/xaa/xa4 TAI VIET LETTER LOW YO
++<UAAA5>     /xea/xaa/xa5 TAI VIET LETTER HIGH YO
++<UAAA6>     /xea/xaa/xa6 TAI VIET LETTER LOW RO
++<UAAA7>     /xea/xaa/xa7 TAI VIET LETTER HIGH RO
++<UAAA8>     /xea/xaa/xa8 TAI VIET LETTER LOW LO
++<UAAA9>     /xea/xaa/xa9 TAI VIET LETTER HIGH LO
++<UAAAA>     /xea/xaa/xaa TAI VIET LETTER LOW VO
++<UAAAB>     /xea/xaa/xab TAI VIET LETTER HIGH VO
++<UAAAC>     /xea/xaa/xac TAI VIET LETTER LOW HO
++<UAAAD>     /xea/xaa/xad TAI VIET LETTER HIGH HO
++<UAAAE>     /xea/xaa/xae TAI VIET LETTER LOW O
++<UAAAF>     /xea/xaa/xaf TAI VIET LETTER HIGH O
++<UAAB0>     /xea/xaa/xb0 TAI VIET MAI KANG
++<UAAB1>     /xea/xaa/xb1 TAI VIET VOWEL AA
++<UAAB2>     /xea/xaa/xb2 TAI VIET VOWEL I
++<UAAB3>     /xea/xaa/xb3 TAI VIET VOWEL UE
++<UAAB4>     /xea/xaa/xb4 TAI VIET VOWEL U
++<UAAB5>     /xea/xaa/xb5 TAI VIET VOWEL E
++<UAAB6>     /xea/xaa/xb6 TAI VIET VOWEL O
++<UAAB7>     /xea/xaa/xb7 TAI VIET MAI KHIT
++<UAAB8>     /xea/xaa/xb8 TAI VIET VOWEL IA
++<UAAB9>     /xea/xaa/xb9 TAI VIET VOWEL UEA
++<UAABA>     /xea/xaa/xba TAI VIET VOWEL UA
++<UAABB>     /xea/xaa/xbb TAI VIET VOWEL AUE
++<UAABC>     /xea/xaa/xbc TAI VIET VOWEL AY
++<UAABD>     /xea/xaa/xbd TAI VIET VOWEL AN
++<UAABE>     /xea/xaa/xbe TAI VIET VOWEL AM
++<UAABF>     /xea/xaa/xbf TAI VIET TONE MAI EK
++<UAAC0>     /xea/xab/x80 TAI VIET TONE MAI NUENG
++<UAAC1>     /xea/xab/x81 TAI VIET TONE MAI THO
++<UAAC2>     /xea/xab/x82 TAI VIET TONE MAI SONG
++<UAADB>     /xea/xab/x9b TAI VIET SYMBOL KON
++<UAADC>     /xea/xab/x9c TAI VIET SYMBOL NUENG
++<UAADD>     /xea/xab/x9d TAI VIET SYMBOL SAM
++<UAADE>     /xea/xab/x9e TAI VIET SYMBOL HO HOI
++<UAADF>     /xea/xab/x9f TAI VIET SYMBOL KOI KOI
++<UAB01>     /xea/xac/x81 ETHIOPIC SYLLABLE TTHU
++<UAB02>     /xea/xac/x82 ETHIOPIC SYLLABLE TTHI
++<UAB03>     /xea/xac/x83 ETHIOPIC SYLLABLE TTHAA
++<UAB04>     /xea/xac/x84 ETHIOPIC SYLLABLE TTHEE
++<UAB05>     /xea/xac/x85 ETHIOPIC SYLLABLE TTHE
++<UAB06>     /xea/xac/x86 ETHIOPIC SYLLABLE TTHO
++<UAB09>     /xea/xac/x89 ETHIOPIC SYLLABLE DDHU
++<UAB0A>     /xea/xac/x8a ETHIOPIC SYLLABLE DDHI
++<UAB0B>     /xea/xac/x8b ETHIOPIC SYLLABLE DDHAA
++<UAB0C>     /xea/xac/x8c ETHIOPIC SYLLABLE DDHEE
++<UAB0D>     /xea/xac/x8d ETHIOPIC SYLLABLE DDHE
++<UAB0E>     /xea/xac/x8e ETHIOPIC SYLLABLE DDHO
++<UAB11>     /xea/xac/x91 ETHIOPIC SYLLABLE DZU
++<UAB12>     /xea/xac/x92 ETHIOPIC SYLLABLE DZI
++<UAB13>     /xea/xac/x93 ETHIOPIC SYLLABLE DZAA
++<UAB14>     /xea/xac/x94 ETHIOPIC SYLLABLE DZEE
++<UAB15>     /xea/xac/x95 ETHIOPIC SYLLABLE DZE
++<UAB16>     /xea/xac/x96 ETHIOPIC SYLLABLE DZO
++<UAB20>     /xea/xac/xa0 ETHIOPIC SYLLABLE CCHHA
++<UAB21>     /xea/xac/xa1 ETHIOPIC SYLLABLE CCHHU
++<UAB22>     /xea/xac/xa2 ETHIOPIC SYLLABLE CCHHI
++<UAB23>     /xea/xac/xa3 ETHIOPIC SYLLABLE CCHHAA
++<UAB24>     /xea/xac/xa4 ETHIOPIC SYLLABLE CCHHEE
++<UAB25>     /xea/xac/xa5 ETHIOPIC SYLLABLE CCHHE
++<UAB26>     /xea/xac/xa6 ETHIOPIC SYLLABLE CCHHO
++<UAB28>     /xea/xac/xa8 ETHIOPIC SYLLABLE BBA
++<UAB29>     /xea/xac/xa9 ETHIOPIC SYLLABLE BBU
++<UAB2A>     /xea/xac/xaa ETHIOPIC SYLLABLE BBI
++<UAB2B>     /xea/xac/xab ETHIOPIC SYLLABLE BBAA
++<UAB2C>     /xea/xac/xac ETHIOPIC SYLLABLE BBEE
++<UAB2D>     /xea/xac/xad ETHIOPIC SYLLABLE BBE
++<UAB2E>     /xea/xac/xae ETHIOPIC SYLLABLE BBO
++<UABC0>     /xea/xaf/x80 MEETEI MAYEK LETTER KOK
++<UABC1>     /xea/xaf/x81 MEETEI MAYEK LETTER SAM
++<UABC2>     /xea/xaf/x82 MEETEI MAYEK LETTER LAI
++<UABC3>     /xea/xaf/x83 MEETEI MAYEK LETTER MIT
++<UABC4>     /xea/xaf/x84 MEETEI MAYEK LETTER PA
++<UABC5>     /xea/xaf/x85 MEETEI MAYEK LETTER NA
++<UABC6>     /xea/xaf/x86 MEETEI MAYEK LETTER CHIL
++<UABC7>     /xea/xaf/x87 MEETEI MAYEK LETTER TIL
++<UABC8>     /xea/xaf/x88 MEETEI MAYEK LETTER KHOU
++<UABC9>     /xea/xaf/x89 MEETEI MAYEK LETTER NGOU
++<UABCA>     /xea/xaf/x8a MEETEI MAYEK LETTER THOU
++<UABCB>     /xea/xaf/x8b MEETEI MAYEK LETTER WAI
++<UABCC>     /xea/xaf/x8c MEETEI MAYEK LETTER YANG
++<UABCD>     /xea/xaf/x8d MEETEI MAYEK LETTER HUK
++<UABCE>     /xea/xaf/x8e MEETEI MAYEK LETTER UN
++<UABCF>     /xea/xaf/x8f MEETEI MAYEK LETTER I
++<UABD0>     /xea/xaf/x90 MEETEI MAYEK LETTER PHAM
++<UABD1>     /xea/xaf/x91 MEETEI MAYEK LETTER ATIYA
++<UABD2>     /xea/xaf/x92 MEETEI MAYEK LETTER GOK
++<UABD3>     /xea/xaf/x93 MEETEI MAYEK LETTER JHAM
++<UABD4>     /xea/xaf/x94 MEETEI MAYEK LETTER RAI
++<UABD5>     /xea/xaf/x95 MEETEI MAYEK LETTER BA
++<UABD6>     /xea/xaf/x96 MEETEI MAYEK LETTER JIL
++<UABD7>     /xea/xaf/x97 MEETEI MAYEK LETTER DIL
++<UABD8>     /xea/xaf/x98 MEETEI MAYEK LETTER GHOU
++<UABD9>     /xea/xaf/x99 MEETEI MAYEK LETTER DHOU
++<UABDA>     /xea/xaf/x9a MEETEI MAYEK LETTER BHAM
++<UABDB>     /xea/xaf/x9b MEETEI MAYEK LETTER KOK LONSUM
++<UABDC>     /xea/xaf/x9c MEETEI MAYEK LETTER LAI LONSUM
++<UABDD>     /xea/xaf/x9d MEETEI MAYEK LETTER MIT LONSUM
++<UABDE>     /xea/xaf/x9e MEETEI MAYEK LETTER PA LONSUM
++<UABDF>     /xea/xaf/x9f MEETEI MAYEK LETTER NA LONSUM
++<UABE0>     /xea/xaf/xa0 MEETEI MAYEK LETTER TIL LONSUM
++<UABE1>     /xea/xaf/xa1 MEETEI MAYEK LETTER NGOU LONSUM
++<UABE2>     /xea/xaf/xa2 MEETEI MAYEK LETTER I LONSUM
++<UABE3>     /xea/xaf/xa3 MEETEI MAYEK VOWEL SIGN ONAP
++<UABE4>     /xea/xaf/xa4 MEETEI MAYEK VOWEL SIGN INAP
++<UABE5>     /xea/xaf/xa5 MEETEI MAYEK VOWEL SIGN ANAP
++<UABE6>     /xea/xaf/xa6 MEETEI MAYEK VOWEL SIGN YENAP
++<UABE7>     /xea/xaf/xa7 MEETEI MAYEK VOWEL SIGN SOUNAP
++<UABE8>     /xea/xaf/xa8 MEETEI MAYEK VOWEL SIGN UNAP
++<UABE9>     /xea/xaf/xa9 MEETEI MAYEK VOWEL SIGN CHEINAP
++<UABEA>     /xea/xaf/xaa MEETEI MAYEK VOWEL SIGN NUNG
++<UABEB>     /xea/xaf/xab MEETEI MAYEK CHEIKHEI
++<UABEC>     /xea/xaf/xac MEETEI MAYEK LUM IYEK
++<UABED>     /xea/xaf/xad MEETEI MAYEK APUN IYEK
++<UABF0>     /xea/xaf/xb0 MEETEI MAYEK DIGIT ZERO
++<UABF1>     /xea/xaf/xb1 MEETEI MAYEK DIGIT ONE
++<UABF2>     /xea/xaf/xb2 MEETEI MAYEK DIGIT TWO
++<UABF3>     /xea/xaf/xb3 MEETEI MAYEK DIGIT THREE
++<UABF4>     /xea/xaf/xb4 MEETEI MAYEK DIGIT FOUR
++<UABF5>     /xea/xaf/xb5 MEETEI MAYEK DIGIT FIVE
++<UABF6>     /xea/xaf/xb6 MEETEI MAYEK DIGIT SIX
++<UABF7>     /xea/xaf/xb7 MEETEI MAYEK DIGIT SEVEN
++<UABF8>     /xea/xaf/xb8 MEETEI MAYEK DIGIT EIGHT
++<UABF9>     /xea/xaf/xb9 MEETEI MAYEK DIGIT NINE
+ <UAC00>     /xea/xb0/x80 HANGUL SYLLABLE GA
+ <UAC01>     /xea/xb0/x81 HANGUL SYLLABLE GAG
+ <UAC02>     /xea/xb0/x82 HANGUL SYLLABLE GAGG
+@@ -24736,6 +25836,78 @@ CHARMAP
+ <UD7A1>     /xed/x9e/xa1 HANGUL SYLLABLE HIT
+ <UD7A2>     /xed/x9e/xa2 HANGUL SYLLABLE HIP
+ <UD7A3>     /xed/x9e/xa3 HANGUL SYLLABLE HIH
++<UD7B0>     /xed/x9e/xb0 HANGUL JUNGSEONG O-YEO
++<UD7B1>     /xed/x9e/xb1 HANGUL JUNGSEONG O-O-I
++<UD7B2>     /xed/x9e/xb2 HANGUL JUNGSEONG YO-A
++<UD7B3>     /xed/x9e/xb3 HANGUL JUNGSEONG YO-AE
++<UD7B4>     /xed/x9e/xb4 HANGUL JUNGSEONG YO-EO
++<UD7B5>     /xed/x9e/xb5 HANGUL JUNGSEONG U-YEO
++<UD7B6>     /xed/x9e/xb6 HANGUL JUNGSEONG U-I-I
++<UD7B7>     /xed/x9e/xb7 HANGUL JUNGSEONG YU-AE
++<UD7B8>     /xed/x9e/xb8 HANGUL JUNGSEONG YU-O
++<UD7B9>     /xed/x9e/xb9 HANGUL JUNGSEONG EU-A
++<UD7BA>     /xed/x9e/xba HANGUL JUNGSEONG EU-EO
++<UD7BB>     /xed/x9e/xbb HANGUL JUNGSEONG EU-E
++<UD7BC>     /xed/x9e/xbc HANGUL JUNGSEONG EU-O
++<UD7BD>     /xed/x9e/xbd HANGUL JUNGSEONG I-YA-O
++<UD7BE>     /xed/x9e/xbe HANGUL JUNGSEONG I-YAE
++<UD7BF>     /xed/x9e/xbf HANGUL JUNGSEONG I-YEO
++<UD7C0>     /xed/x9f/x80 HANGUL JUNGSEONG I-YE
++<UD7C1>     /xed/x9f/x81 HANGUL JUNGSEONG I-O-I
++<UD7C2>     /xed/x9f/x82 HANGUL JUNGSEONG I-YO
++<UD7C3>     /xed/x9f/x83 HANGUL JUNGSEONG I-YU
++<UD7C4>     /xed/x9f/x84 HANGUL JUNGSEONG I-I
++<UD7C5>     /xed/x9f/x85 HANGUL JUNGSEONG ARAEA-A
++<UD7C6>     /xed/x9f/x86 HANGUL JUNGSEONG ARAEA-E
++<UD7CB>     /xed/x9f/x8b HANGUL JONGSEONG NIEUN-RIEUL
++<UD7CC>     /xed/x9f/x8c HANGUL JONGSEONG NIEUN-CHIEUCH
++<UD7CD>     /xed/x9f/x8d HANGUL JONGSEONG SSANGTIKEUT
++<UD7CE>     /xed/x9f/x8e HANGUL JONGSEONG SSANGTIKEUT-PIEUP
++<UD7CF>     /xed/x9f/x8f HANGUL JONGSEONG TIKEUT-PIEUP
++<UD7D0>     /xed/x9f/x90 HANGUL JONGSEONG TIKEUT-SIOS
++<UD7D1>     /xed/x9f/x91 HANGUL JONGSEONG TIKEUT-SIOS-KIYEOK
++<UD7D2>     /xed/x9f/x92 HANGUL JONGSEONG TIKEUT-CIEUC
++<UD7D3>     /xed/x9f/x93 HANGUL JONGSEONG TIKEUT-CHIEUCH
++<UD7D4>     /xed/x9f/x94 HANGUL JONGSEONG TIKEUT-THIEUTH
++<UD7D5>     /xed/x9f/x95 HANGUL JONGSEONG RIEUL-SSANGKIYEOK
++<UD7D6>     /xed/x9f/x96 HANGUL JONGSEONG RIEUL-KIYEOK-HIEUH
++<UD7D7>     /xed/x9f/x97 HANGUL JONGSEONG SSANGRIEUL-KHIEUKH
++<UD7D8>     /xed/x9f/x98 HANGUL JONGSEONG RIEUL-MIEUM-HIEUH
++<UD7D9>     /xed/x9f/x99 HANGUL JONGSEONG RIEUL-PIEUP-TIKEUT
++<UD7DA>     /xed/x9f/x9a HANGUL JONGSEONG RIEUL-PIEUP-PHIEUPH
++<UD7DB>     /xed/x9f/x9b HANGUL JONGSEONG RIEUL-YESIEUNG
++<UD7DC>     /xed/x9f/x9c HANGUL JONGSEONG RIEUL-YEORINHIEUH-HIEUH
++<UD7DD>     /xed/x9f/x9d HANGUL JONGSEONG KAPYEOUNRIEUL
++<UD7DE>     /xed/x9f/x9e HANGUL JONGSEONG MIEUM-NIEUN
++<UD7DF>     /xed/x9f/x9f HANGUL JONGSEONG MIEUM-SSANGNIEUN
++<UD7E0>     /xed/x9f/xa0 HANGUL JONGSEONG SSANGMIEUM
++<UD7E1>     /xed/x9f/xa1 HANGUL JONGSEONG MIEUM-PIEUP-SIOS
++<UD7E2>     /xed/x9f/xa2 HANGUL JONGSEONG MIEUM-CIEUC
++<UD7E3>     /xed/x9f/xa3 HANGUL JONGSEONG PIEUP-TIKEUT
++<UD7E4>     /xed/x9f/xa4 HANGUL JONGSEONG PIEUP-RIEUL-PHIEUPH
++<UD7E5>     /xed/x9f/xa5 HANGUL JONGSEONG PIEUP-MIEUM
++<UD7E6>     /xed/x9f/xa6 HANGUL JONGSEONG SSANGPIEUP
++<UD7E7>     /xed/x9f/xa7 HANGUL JONGSEONG PIEUP-SIOS-TIKEUT
++<UD7E8>     /xed/x9f/xa8 HANGUL JONGSEONG PIEUP-CIEUC
++<UD7E9>     /xed/x9f/xa9 HANGUL JONGSEONG PIEUP-CHIEUCH
++<UD7EA>     /xed/x9f/xaa HANGUL JONGSEONG SIOS-MIEUM
++<UD7EB>     /xed/x9f/xab HANGUL JONGSEONG SIOS-KAPYEOUNPIEUP
++<UD7EC>     /xed/x9f/xac HANGUL JONGSEONG SSANGSIOS-KIYEOK
++<UD7ED>     /xed/x9f/xad HANGUL JONGSEONG SSANGSIOS-TIKEUT
++<UD7EE>     /xed/x9f/xae HANGUL JONGSEONG SIOS-PANSIOS
++<UD7EF>     /xed/x9f/xaf HANGUL JONGSEONG SIOS-CIEUC
++<UD7F0>     /xed/x9f/xb0 HANGUL JONGSEONG SIOS-CHIEUCH
++<UD7F1>     /xed/x9f/xb1 HANGUL JONGSEONG SIOS-THIEUTH
++<UD7F2>     /xed/x9f/xb2 HANGUL JONGSEONG SIOS-HIEUH
++<UD7F3>     /xed/x9f/xb3 HANGUL JONGSEONG PANSIOS-PIEUP
++<UD7F4>     /xed/x9f/xb4 HANGUL JONGSEONG PANSIOS-KAPYEOUNPIEUP
++<UD7F5>     /xed/x9f/xb5 HANGUL JONGSEONG YESIEUNG-MIEUM
++<UD7F6>     /xed/x9f/xb6 HANGUL JONGSEONG YESIEUNG-HIEUH
++<UD7F7>     /xed/x9f/xb7 HANGUL JONGSEONG CIEUC-PIEUP
++<UD7F8>     /xed/x9f/xb8 HANGUL JONGSEONG CIEUC-SSANGPIEUP
++<UD7F9>     /xed/x9f/xb9 HANGUL JONGSEONG SSANGCIEUC
++<UD7FA>     /xed/x9f/xba HANGUL JONGSEONG PHIEUPH-SIOS
++<UD7FB>     /xed/x9f/xbb HANGUL JONGSEONG PHIEUPH-THIEUTH
+ % <UD800>     /xed/xa0/x80 <Non Private Use High Surrogate, First>
+ % <UDB7F>     /xed/xad/xbf <Non Private Use High Surrogate, Last>
+ % <UDB80>     /xed/xae/x80 <Private Use High Surrogate, First>
+@@ -25203,6 +26375,9 @@ CHARMAP
+ <UFA68>     /xef/xa9/xa8 CJK COMPATIBILITY IDEOGRAPH-FA68
+ <UFA69>     /xef/xa9/xa9 CJK COMPATIBILITY IDEOGRAPH-FA69
+ <UFA6A>     /xef/xa9/xaa CJK COMPATIBILITY IDEOGRAPH-FA6A
++<UFA6B>     /xef/xa9/xab CJK COMPATIBILITY IDEOGRAPH-FA6B
++<UFA6C>     /xef/xa9/xac CJK COMPATIBILITY IDEOGRAPH-FA6C
++<UFA6D>     /xef/xa9/xad CJK COMPATIBILITY IDEOGRAPH-FA6D
+ <UFA70>     /xef/xa9/xb0 CJK COMPATIBILITY IDEOGRAPH-FA70
+ <UFA71>     /xef/xa9/xb1 CJK COMPATIBILITY IDEOGRAPH-FA71
+ <UFA72>     /xef/xa9/xb2 CJK COMPATIBILITY IDEOGRAPH-FA72
+@@ -25465,6 +26640,22 @@ CHARMAP
+ <UFBAF>     /xef/xae/xaf ARABIC LETTER YEH BARREE FINAL FORM
+ <UFBB0>     /xef/xae/xb0 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE ISOLATED FORM
+ <UFBB1>     /xef/xae/xb1 ARABIC LETTER YEH BARREE WITH HAMZA ABOVE FINAL FORM
++<UFBB2>     /xef/xae/xb2 ARABIC SYMBOL DOT ABOVE
++<UFBB3>     /xef/xae/xb3 ARABIC SYMBOL DOT BELOW
++<UFBB4>     /xef/xae/xb4 ARABIC SYMBOL TWO DOTS ABOVE
++<UFBB5>     /xef/xae/xb5 ARABIC SYMBOL TWO DOTS BELOW
++<UFBB6>     /xef/xae/xb6 ARABIC SYMBOL THREE DOTS ABOVE
++<UFBB7>     /xef/xae/xb7 ARABIC SYMBOL THREE DOTS BELOW
++<UFBB8>     /xef/xae/xb8 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS ABOVE
++<UFBB9>     /xef/xae/xb9 ARABIC SYMBOL THREE DOTS POINTING DOWNWARDS BELOW
++<UFBBA>     /xef/xae/xba ARABIC SYMBOL FOUR DOTS ABOVE
++<UFBBB>     /xef/xae/xbb ARABIC SYMBOL FOUR DOTS BELOW
++<UFBBC>     /xef/xae/xbc ARABIC SYMBOL DOUBLE VERTICAL BAR BELOW
++<UFBBD>     /xef/xae/xbd ARABIC SYMBOL TWO DOTS VERTICALLY ABOVE
++<UFBBE>     /xef/xae/xbe ARABIC SYMBOL TWO DOTS VERTICALLY BELOW
++<UFBBF>     /xef/xae/xbf ARABIC SYMBOL RING
++<UFBC0>     /xef/xaf/x80 ARABIC SYMBOL SMALL TAH ABOVE
++<UFBC1>     /xef/xaf/x81 ARABIC SYMBOL SMALL TAH BELOW
+ <UFBD3>     /xef/xaf/x93 ARABIC LETTER NG ISOLATED FORM
+ <UFBD4>     /xef/xaf/x94 ARABIC LETTER NG FINAL FORM
+ <UFBD5>     /xef/xaf/x95 ARABIC LETTER NG INITIAL FORM
+@@ -27269,6 +28460,37 @@ CHARMAP
+ <U00010838> /xf0/x90/xa0/xb8 CYPRIOT SYLLABLE XE
+ <U0001083C> /xf0/x90/xa0/xbc CYPRIOT SYLLABLE ZA
+ <U0001083F> /xf0/x90/xa0/xbf CYPRIOT SYLLABLE ZO
++<U00010840> /xf0/x90/xa1/x80 IMPERIAL ARAMAIC LETTER ALEPH
++<U00010841> /xf0/x90/xa1/x81 IMPERIAL ARAMAIC LETTER BETH
++<U00010842> /xf0/x90/xa1/x82 IMPERIAL ARAMAIC LETTER GIMEL
++<U00010843> /xf0/x90/xa1/x83 IMPERIAL ARAMAIC LETTER DALETH
++<U00010844> /xf0/x90/xa1/x84 IMPERIAL ARAMAIC LETTER HE
++<U00010845> /xf0/x90/xa1/x85 IMPERIAL ARAMAIC LETTER WAW
++<U00010846> /xf0/x90/xa1/x86 IMPERIAL ARAMAIC LETTER ZAYIN
++<U00010847> /xf0/x90/xa1/x87 IMPERIAL ARAMAIC LETTER HETH
++<U00010848> /xf0/x90/xa1/x88 IMPERIAL ARAMAIC LETTER TETH
++<U00010849> /xf0/x90/xa1/x89 IMPERIAL ARAMAIC LETTER YODH
++<U0001084A> /xf0/x90/xa1/x8a IMPERIAL ARAMAIC LETTER KAPH
++<U0001084B> /xf0/x90/xa1/x8b IMPERIAL ARAMAIC LETTER LAMEDH
++<U0001084C> /xf0/x90/xa1/x8c IMPERIAL ARAMAIC LETTER MEM
++<U0001084D> /xf0/x90/xa1/x8d IMPERIAL ARAMAIC LETTER NUN
++<U0001084E> /xf0/x90/xa1/x8e IMPERIAL ARAMAIC LETTER SAMEKH
++<U0001084F> /xf0/x90/xa1/x8f IMPERIAL ARAMAIC LETTER AYIN
++<U00010850> /xf0/x90/xa1/x90 IMPERIAL ARAMAIC LETTER PE
++<U00010851> /xf0/x90/xa1/x91 IMPERIAL ARAMAIC LETTER SADHE
++<U00010852> /xf0/x90/xa1/x92 IMPERIAL ARAMAIC LETTER QOPH
++<U00010853> /xf0/x90/xa1/x93 IMPERIAL ARAMAIC LETTER RESH
++<U00010854> /xf0/x90/xa1/x94 IMPERIAL ARAMAIC LETTER SHIN
++<U00010855> /xf0/x90/xa1/x95 IMPERIAL ARAMAIC LETTER TAW
++<U00010857> /xf0/x90/xa1/x97 IMPERIAL ARAMAIC SECTION SIGN
++<U00010858> /xf0/x90/xa1/x98 IMPERIAL ARAMAIC NUMBER ONE
++<U00010859> /xf0/x90/xa1/x99 IMPERIAL ARAMAIC NUMBER TWO
++<U0001085A> /xf0/x90/xa1/x9a IMPERIAL ARAMAIC NUMBER THREE
++<U0001085B> /xf0/x90/xa1/x9b IMPERIAL ARAMAIC NUMBER TEN
++<U0001085C> /xf0/x90/xa1/x9c IMPERIAL ARAMAIC NUMBER TWENTY
++<U0001085D> /xf0/x90/xa1/x9d IMPERIAL ARAMAIC NUMBER ONE HUNDRED
++<U0001085E> /xf0/x90/xa1/x9e IMPERIAL ARAMAIC NUMBER ONE THOUSAND
++<U0001085F> /xf0/x90/xa1/x9f IMPERIAL ARAMAIC NUMBER TEN THOUSAND
+ <U00010900> /xf0/x90/xa4/x80 PHOENICIAN LETTER ALF
+ <U00010901> /xf0/x90/xa4/x81 PHOENICIAN LETTER BET
+ <U00010902> /xf0/x90/xa4/x82 PHOENICIAN LETTER GAML
+@@ -27295,6 +28517,8 @@ CHARMAP
+ <U00010917> /xf0/x90/xa4/x97 PHOENICIAN NUMBER TEN
+ <U00010918> /xf0/x90/xa4/x98 PHOENICIAN NUMBER TWENTY
+ <U00010919> /xf0/x90/xa4/x99 PHOENICIAN NUMBER ONE HUNDRED
++<U0001091A> /xf0/x90/xa4/x9a PHOENICIAN NUMBER TWO
++<U0001091B> /xf0/x90/xa4/x9b PHOENICIAN NUMBER THREE
+ <U0001091F> /xf0/x90/xa4/x9f PHOENICIAN WORD SEPARATOR
+ <U00010920> /xf0/x90/xa4/xa0 LYDIAN LETTER A
+ <U00010921> /xf0/x90/xa4/xa1 LYDIAN LETTER B
+@@ -27388,6 +28612,434 @@ CHARMAP
+ <U00010A56> /xf0/x90/xa9/x96 KHAROSHTHI PUNCTUATION DANDA
+ <U00010A57> /xf0/x90/xa9/x97 KHAROSHTHI PUNCTUATION DOUBLE DANDA
+ <U00010A58> /xf0/x90/xa9/x98 KHAROSHTHI PUNCTUATION LINES
++<U00010A60> /xf0/x90/xa9/xa0 OLD SOUTH ARABIAN LETTER HE
++<U00010A61> /xf0/x90/xa9/xa1 OLD SOUTH ARABIAN LETTER LAMEDH
++<U00010A62> /xf0/x90/xa9/xa2 OLD SOUTH ARABIAN LETTER HETH
++<U00010A63> /xf0/x90/xa9/xa3 OLD SOUTH ARABIAN LETTER MEM
++<U00010A64> /xf0/x90/xa9/xa4 OLD SOUTH ARABIAN LETTER QOPH
++<U00010A65> /xf0/x90/xa9/xa5 OLD SOUTH ARABIAN LETTER WAW
++<U00010A66> /xf0/x90/xa9/xa6 OLD SOUTH ARABIAN LETTER SHIN
++<U00010A67> /xf0/x90/xa9/xa7 OLD SOUTH ARABIAN LETTER RESH
++<U00010A68> /xf0/x90/xa9/xa8 OLD SOUTH ARABIAN LETTER BETH
++<U00010A69> /xf0/x90/xa9/xa9 OLD SOUTH ARABIAN LETTER TAW
++<U00010A6A> /xf0/x90/xa9/xaa OLD SOUTH ARABIAN LETTER SAT
++<U00010A6B> /xf0/x90/xa9/xab OLD SOUTH ARABIAN LETTER KAPH
++<U00010A6C> /xf0/x90/xa9/xac OLD SOUTH ARABIAN LETTER NUN
++<U00010A6D> /xf0/x90/xa9/xad OLD SOUTH ARABIAN LETTER KHETH
++<U00010A6E> /xf0/x90/xa9/xae OLD SOUTH ARABIAN LETTER SADHE
++<U00010A6F> /xf0/x90/xa9/xaf OLD SOUTH ARABIAN LETTER SAMEKH
++<U00010A70> /xf0/x90/xa9/xb0 OLD SOUTH ARABIAN LETTER FE
++<U00010A71> /xf0/x90/xa9/xb1 OLD SOUTH ARABIAN LETTER ALEF
++<U00010A72> /xf0/x90/xa9/xb2 OLD SOUTH ARABIAN LETTER AYN
++<U00010A73> /xf0/x90/xa9/xb3 OLD SOUTH ARABIAN LETTER DHADHE
++<U00010A74> /xf0/x90/xa9/xb4 OLD SOUTH ARABIAN LETTER GIMEL
++<U00010A75> /xf0/x90/xa9/xb5 OLD SOUTH ARABIAN LETTER DALETH
++<U00010A76> /xf0/x90/xa9/xb6 OLD SOUTH ARABIAN LETTER GHAYN
++<U00010A77> /xf0/x90/xa9/xb7 OLD SOUTH ARABIAN LETTER TETH
++<U00010A78> /xf0/x90/xa9/xb8 OLD SOUTH ARABIAN LETTER ZAYN
++<U00010A79> /xf0/x90/xa9/xb9 OLD SOUTH ARABIAN LETTER DHALETH
++<U00010A7A> /xf0/x90/xa9/xba OLD SOUTH ARABIAN LETTER YODH
++<U00010A7B> /xf0/x90/xa9/xbb OLD SOUTH ARABIAN LETTER THAW
++<U00010A7C> /xf0/x90/xa9/xbc OLD SOUTH ARABIAN LETTER THETH
++<U00010A7D> /xf0/x90/xa9/xbd OLD SOUTH ARABIAN NUMBER ONE
++<U00010A7E> /xf0/x90/xa9/xbe OLD SOUTH ARABIAN NUMBER FIFTY
++<U00010A7F> /xf0/x90/xa9/xbf OLD SOUTH ARABIAN NUMERIC INDICATOR
++<U00010B00> /xf0/x90/xac/x80 AVESTAN LETTER A
++<U00010B01> /xf0/x90/xac/x81 AVESTAN LETTER AA
++<U00010B02> /xf0/x90/xac/x82 AVESTAN LETTER AO
++<U00010B03> /xf0/x90/xac/x83 AVESTAN LETTER AAO
++<U00010B04> /xf0/x90/xac/x84 AVESTAN LETTER AN
++<U00010B05> /xf0/x90/xac/x85 AVESTAN LETTER AAN
++<U00010B06> /xf0/x90/xac/x86 AVESTAN LETTER AE
++<U00010B07> /xf0/x90/xac/x87 AVESTAN LETTER AEE
++<U00010B08> /xf0/x90/xac/x88 AVESTAN LETTER E
++<U00010B09> /xf0/x90/xac/x89 AVESTAN LETTER EE
++<U00010B0A> /xf0/x90/xac/x8a AVESTAN LETTER O
++<U00010B0B> /xf0/x90/xac/x8b AVESTAN LETTER OO
++<U00010B0C> /xf0/x90/xac/x8c AVESTAN LETTER I
++<U00010B0D> /xf0/x90/xac/x8d AVESTAN LETTER II
++<U00010B0E> /xf0/x90/xac/x8e AVESTAN LETTER U
++<U00010B0F> /xf0/x90/xac/x8f AVESTAN LETTER UU
++<U00010B10> /xf0/x90/xac/x90 AVESTAN LETTER KE
++<U00010B11> /xf0/x90/xac/x91 AVESTAN LETTER XE
++<U00010B12> /xf0/x90/xac/x92 AVESTAN LETTER XYE
++<U00010B13> /xf0/x90/xac/x93 AVESTAN LETTER XVE
++<U00010B14> /xf0/x90/xac/x94 AVESTAN LETTER GE
++<U00010B15> /xf0/x90/xac/x95 AVESTAN LETTER GGE
++<U00010B16> /xf0/x90/xac/x96 AVESTAN LETTER GHE
++<U00010B17> /xf0/x90/xac/x97 AVESTAN LETTER CE
++<U00010B18> /xf0/x90/xac/x98 AVESTAN LETTER JE
++<U00010B19> /xf0/x90/xac/x99 AVESTAN LETTER TE
++<U00010B1A> /xf0/x90/xac/x9a AVESTAN LETTER THE
++<U00010B1B> /xf0/x90/xac/x9b AVESTAN LETTER DE
++<U00010B1C> /xf0/x90/xac/x9c AVESTAN LETTER DHE
++<U00010B1D> /xf0/x90/xac/x9d AVESTAN LETTER TTE
++<U00010B1E> /xf0/x90/xac/x9e AVESTAN LETTER PE
++<U00010B1F> /xf0/x90/xac/x9f AVESTAN LETTER FE
++<U00010B20> /xf0/x90/xac/xa0 AVESTAN LETTER BE
++<U00010B21> /xf0/x90/xac/xa1 AVESTAN LETTER BHE
++<U00010B22> /xf0/x90/xac/xa2 AVESTAN LETTER NGE
++<U00010B23> /xf0/x90/xac/xa3 AVESTAN LETTER NGYE
++<U00010B24> /xf0/x90/xac/xa4 AVESTAN LETTER NGVE
++<U00010B25> /xf0/x90/xac/xa5 AVESTAN LETTER NE
++<U00010B26> /xf0/x90/xac/xa6 AVESTAN LETTER NYE
++<U00010B27> /xf0/x90/xac/xa7 AVESTAN LETTER NNE
++<U00010B28> /xf0/x90/xac/xa8 AVESTAN LETTER ME
++<U00010B29> /xf0/x90/xac/xa9 AVESTAN LETTER HME
++<U00010B2A> /xf0/x90/xac/xaa AVESTAN LETTER YYE
++<U00010B2B> /xf0/x90/xac/xab AVESTAN LETTER YE
++<U00010B2C> /xf0/x90/xac/xac AVESTAN LETTER VE
++<U00010B2D> /xf0/x90/xac/xad AVESTAN LETTER RE
++<U00010B2E> /xf0/x90/xac/xae AVESTAN LETTER LE
++<U00010B2F> /xf0/x90/xac/xaf AVESTAN LETTER SE
++<U00010B30> /xf0/x90/xac/xb0 AVESTAN LETTER ZE
++<U00010B31> /xf0/x90/xac/xb1 AVESTAN LETTER SHE
++<U00010B32> /xf0/x90/xac/xb2 AVESTAN LETTER ZHE
++<U00010B33> /xf0/x90/xac/xb3 AVESTAN LETTER SHYE
++<U00010B34> /xf0/x90/xac/xb4 AVESTAN LETTER SSHE
++<U00010B35> /xf0/x90/xac/xb5 AVESTAN LETTER HE
++<U00010B39> /xf0/x90/xac/xb9 AVESTAN ABBREVIATION MARK
++<U00010B3A> /xf0/x90/xac/xba TINY TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3B> /xf0/x90/xac/xbb SMALL TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3C> /xf0/x90/xac/xbc LARGE TWO DOTS OVER ONE DOT PUNCTUATION
++<U00010B3D> /xf0/x90/xac/xbd LARGE ONE DOT OVER TWO DOTS PUNCTUATION
++<U00010B3E> /xf0/x90/xac/xbe LARGE TWO RINGS OVER ONE RING PUNCTUATION
++<U00010B3F> /xf0/x90/xac/xbf LARGE ONE RING OVER TWO RINGS PUNCTUATION
++<U00010B40> /xf0/x90/xad/x80 INSCRIPTIONAL PARTHIAN LETTER ALEPH
++<U00010B41> /xf0/x90/xad/x81 INSCRIPTIONAL PARTHIAN LETTER BETH
++<U00010B42> /xf0/x90/xad/x82 INSCRIPTIONAL PARTHIAN LETTER GIMEL
++<U00010B43> /xf0/x90/xad/x83 INSCRIPTIONAL PARTHIAN LETTER DALETH
++<U00010B44> /xf0/x90/xad/x84 INSCRIPTIONAL PARTHIAN LETTER HE
++<U00010B45> /xf0/x90/xad/x85 INSCRIPTIONAL PARTHIAN LETTER WAW
++<U00010B46> /xf0/x90/xad/x86 INSCRIPTIONAL PARTHIAN LETTER ZAYIN
++<U00010B47> /xf0/x90/xad/x87 INSCRIPTIONAL PARTHIAN LETTER HETH
++<U00010B48> /xf0/x90/xad/x88 INSCRIPTIONAL PARTHIAN LETTER TETH
++<U00010B49> /xf0/x90/xad/x89 INSCRIPTIONAL PARTHIAN LETTER YODH
++<U00010B4A> /xf0/x90/xad/x8a INSCRIPTIONAL PARTHIAN LETTER KAPH
++<U00010B4B> /xf0/x90/xad/x8b INSCRIPTIONAL PARTHIAN LETTER LAMEDH
++<U00010B4C> /xf0/x90/xad/x8c INSCRIPTIONAL PARTHIAN LETTER MEM
++<U00010B4D> /xf0/x90/xad/x8d INSCRIPTIONAL PARTHIAN LETTER NUN
++<U00010B4E> /xf0/x90/xad/x8e INSCRIPTIONAL PARTHIAN LETTER SAMEKH
++<U00010B4F> /xf0/x90/xad/x8f INSCRIPTIONAL PARTHIAN LETTER AYIN
++<U00010B50> /xf0/x90/xad/x90 INSCRIPTIONAL PARTHIAN LETTER PE
++<U00010B51> /xf0/x90/xad/x91 INSCRIPTIONAL PARTHIAN LETTER SADHE
++<U00010B52> /xf0/x90/xad/x92 INSCRIPTIONAL PARTHIAN LETTER QOPH
++<U00010B53> /xf0/x90/xad/x93 INSCRIPTIONAL PARTHIAN LETTER RESH
++<U00010B54> /xf0/x90/xad/x94 INSCRIPTIONAL PARTHIAN LETTER SHIN
++<U00010B55> /xf0/x90/xad/x95 INSCRIPTIONAL PARTHIAN LETTER TAW
++<U00010B58> /xf0/x90/xad/x98 INSCRIPTIONAL PARTHIAN NUMBER ONE
++<U00010B59> /xf0/x90/xad/x99 INSCRIPTIONAL PARTHIAN NUMBER TWO
++<U00010B5A> /xf0/x90/xad/x9a INSCRIPTIONAL PARTHIAN NUMBER THREE
++<U00010B5B> /xf0/x90/xad/x9b INSCRIPTIONAL PARTHIAN NUMBER FOUR
++<U00010B5C> /xf0/x90/xad/x9c INSCRIPTIONAL PARTHIAN NUMBER TEN
++<U00010B5D> /xf0/x90/xad/x9d INSCRIPTIONAL PARTHIAN NUMBER TWENTY
++<U00010B5E> /xf0/x90/xad/x9e INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
++<U00010B5F> /xf0/x90/xad/x9f INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
++<U00010B60> /xf0/x90/xad/xa0 INSCRIPTIONAL PAHLAVI LETTER ALEPH
++<U00010B61> /xf0/x90/xad/xa1 INSCRIPTIONAL PAHLAVI LETTER BETH
++<U00010B62> /xf0/x90/xad/xa2 INSCRIPTIONAL PAHLAVI LETTER GIMEL
++<U00010B63> /xf0/x90/xad/xa3 INSCRIPTIONAL PAHLAVI LETTER DALETH
++<U00010B64> /xf0/x90/xad/xa4 INSCRIPTIONAL PAHLAVI LETTER HE
++<U00010B65> /xf0/x90/xad/xa5 INSCRIPTIONAL PAHLAVI LETTER WAW-AYIN-RESH
++<U00010B66> /xf0/x90/xad/xa6 INSCRIPTIONAL PAHLAVI LETTER ZAYIN
++<U00010B67> /xf0/x90/xad/xa7 INSCRIPTIONAL PAHLAVI LETTER HETH
++<U00010B68> /xf0/x90/xad/xa8 INSCRIPTIONAL PAHLAVI LETTER TETH
++<U00010B69> /xf0/x90/xad/xa9 INSCRIPTIONAL PAHLAVI LETTER YODH
++<U00010B6A> /xf0/x90/xad/xaa INSCRIPTIONAL PAHLAVI LETTER KAPH
++<U00010B6B> /xf0/x90/xad/xab INSCRIPTIONAL PAHLAVI LETTER LAMEDH
++<U00010B6C> /xf0/x90/xad/xac INSCRIPTIONAL PAHLAVI LETTER MEM-QOPH
++<U00010B6D> /xf0/x90/xad/xad INSCRIPTIONAL PAHLAVI LETTER NUN
++<U00010B6E> /xf0/x90/xad/xae INSCRIPTIONAL PAHLAVI LETTER SAMEKH
++<U00010B6F> /xf0/x90/xad/xaf INSCRIPTIONAL PAHLAVI LETTER PE
++<U00010B70> /xf0/x90/xad/xb0 INSCRIPTIONAL PAHLAVI LETTER SADHE
++<U00010B71> /xf0/x90/xad/xb1 INSCRIPTIONAL PAHLAVI LETTER SHIN
++<U00010B72> /xf0/x90/xad/xb2 INSCRIPTIONAL PAHLAVI LETTER TAW
++<U00010B78> /xf0/x90/xad/xb8 INSCRIPTIONAL PAHLAVI NUMBER ONE
++<U00010B79> /xf0/x90/xad/xb9 INSCRIPTIONAL PAHLAVI NUMBER TWO
++<U00010B7A> /xf0/x90/xad/xba INSCRIPTIONAL PAHLAVI NUMBER THREE
++<U00010B7B> /xf0/x90/xad/xbb INSCRIPTIONAL PAHLAVI NUMBER FOUR
++<U00010B7C> /xf0/x90/xad/xbc INSCRIPTIONAL PAHLAVI NUMBER TEN
++<U00010B7D> /xf0/x90/xad/xbd INSCRIPTIONAL PAHLAVI NUMBER TWENTY
++<U00010B7E> /xf0/x90/xad/xbe INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
++<U00010B7F> /xf0/x90/xad/xbf INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
++<U00010C00> /xf0/x90/xb0/x80 OLD TURKIC LETTER ORKHON A
++<U00010C01> /xf0/x90/xb0/x81 OLD TURKIC LETTER YENISEI A
++<U00010C02> /xf0/x90/xb0/x82 OLD TURKIC LETTER YENISEI AE
++<U00010C03> /xf0/x90/xb0/x83 OLD TURKIC LETTER ORKHON I
++<U00010C04> /xf0/x90/xb0/x84 OLD TURKIC LETTER YENISEI I
++<U00010C05> /xf0/x90/xb0/x85 OLD TURKIC LETTER YENISEI E
++<U00010C06> /xf0/x90/xb0/x86 OLD TURKIC LETTER ORKHON O
++<U00010C07> /xf0/x90/xb0/x87 OLD TURKIC LETTER ORKHON OE
++<U00010C08> /xf0/x90/xb0/x88 OLD TURKIC LETTER YENISEI OE
++<U00010C09> /xf0/x90/xb0/x89 OLD TURKIC LETTER ORKHON AB
++<U00010C0A> /xf0/x90/xb0/x8a OLD TURKIC LETTER YENISEI AB
++<U00010C0B> /xf0/x90/xb0/x8b OLD TURKIC LETTER ORKHON AEB
++<U00010C0C> /xf0/x90/xb0/x8c OLD TURKIC LETTER YENISEI AEB
++<U00010C0D> /xf0/x90/xb0/x8d OLD TURKIC LETTER ORKHON AG
++<U00010C0E> /xf0/x90/xb0/x8e OLD TURKIC LETTER YENISEI AG
++<U00010C0F> /xf0/x90/xb0/x8f OLD TURKIC LETTER ORKHON AEG
++<U00010C10> /xf0/x90/xb0/x90 OLD TURKIC LETTER YENISEI AEG
++<U00010C11> /xf0/x90/xb0/x91 OLD TURKIC LETTER ORKHON AD
++<U00010C12> /xf0/x90/xb0/x92 OLD TURKIC LETTER YENISEI AD
++<U00010C13> /xf0/x90/xb0/x93 OLD TURKIC LETTER ORKHON AED
++<U00010C14> /xf0/x90/xb0/x94 OLD TURKIC LETTER ORKHON EZ
++<U00010C15> /xf0/x90/xb0/x95 OLD TURKIC LETTER YENISEI EZ
++<U00010C16> /xf0/x90/xb0/x96 OLD TURKIC LETTER ORKHON AY
++<U00010C17> /xf0/x90/xb0/x97 OLD TURKIC LETTER YENISEI AY
++<U00010C18> /xf0/x90/xb0/x98 OLD TURKIC LETTER ORKHON AEY
++<U00010C19> /xf0/x90/xb0/x99 OLD TURKIC LETTER YENISEI AEY
++<U00010C1A> /xf0/x90/xb0/x9a OLD TURKIC LETTER ORKHON AEK
++<U00010C1B> /xf0/x90/xb0/x9b OLD TURKIC LETTER YENISEI AEK
++<U00010C1C> /xf0/x90/xb0/x9c OLD TURKIC LETTER ORKHON OEK
++<U00010C1D> /xf0/x90/xb0/x9d OLD TURKIC LETTER YENISEI OEK
++<U00010C1E> /xf0/x90/xb0/x9e OLD TURKIC LETTER ORKHON AL
++<U00010C1F> /xf0/x90/xb0/x9f OLD TURKIC LETTER YENISEI AL
++<U00010C20> /xf0/x90/xb0/xa0 OLD TURKIC LETTER ORKHON AEL
++<U00010C21> /xf0/x90/xb0/xa1 OLD TURKIC LETTER ORKHON ELT
++<U00010C22> /xf0/x90/xb0/xa2 OLD TURKIC LETTER ORKHON EM
++<U00010C23> /xf0/x90/xb0/xa3 OLD TURKIC LETTER ORKHON AN
++<U00010C24> /xf0/x90/xb0/xa4 OLD TURKIC LETTER ORKHON AEN
++<U00010C25> /xf0/x90/xb0/xa5 OLD TURKIC LETTER YENISEI AEN
++<U00010C26> /xf0/x90/xb0/xa6 OLD TURKIC LETTER ORKHON ENT
++<U00010C27> /xf0/x90/xb0/xa7 OLD TURKIC LETTER YENISEI ENT
++<U00010C28> /xf0/x90/xb0/xa8 OLD TURKIC LETTER ORKHON ENC
++<U00010C29> /xf0/x90/xb0/xa9 OLD TURKIC LETTER YENISEI ENC
++<U00010C2A> /xf0/x90/xb0/xaa OLD TURKIC LETTER ORKHON ENY
++<U00010C2B> /xf0/x90/xb0/xab OLD TURKIC LETTER YENISEI ENY
++<U00010C2C> /xf0/x90/xb0/xac OLD TURKIC LETTER YENISEI ANG
++<U00010C2D> /xf0/x90/xb0/xad OLD TURKIC LETTER ORKHON ENG
++<U00010C2E> /xf0/x90/xb0/xae OLD TURKIC LETTER YENISEI AENG
++<U00010C2F> /xf0/x90/xb0/xaf OLD TURKIC LETTER ORKHON EP
++<U00010C30> /xf0/x90/xb0/xb0 OLD TURKIC LETTER ORKHON OP
++<U00010C31> /xf0/x90/xb0/xb1 OLD TURKIC LETTER ORKHON IC
++<U00010C32> /xf0/x90/xb0/xb2 OLD TURKIC LETTER ORKHON EC
++<U00010C33> /xf0/x90/xb0/xb3 OLD TURKIC LETTER YENISEI EC
++<U00010C34> /xf0/x90/xb0/xb4 OLD TURKIC LETTER ORKHON AQ
++<U00010C35> /xf0/x90/xb0/xb5 OLD TURKIC LETTER YENISEI AQ
++<U00010C36> /xf0/x90/xb0/xb6 OLD TURKIC LETTER ORKHON IQ
++<U00010C37> /xf0/x90/xb0/xb7 OLD TURKIC LETTER YENISEI IQ
++<U00010C38> /xf0/x90/xb0/xb8 OLD TURKIC LETTER ORKHON OQ
++<U00010C39> /xf0/x90/xb0/xb9 OLD TURKIC LETTER YENISEI OQ
++<U00010C3A> /xf0/x90/xb0/xba OLD TURKIC LETTER ORKHON AR
++<U00010C3B> /xf0/x90/xb0/xbb OLD TURKIC LETTER YENISEI AR
++<U00010C3C> /xf0/x90/xb0/xbc OLD TURKIC LETTER ORKHON AER
++<U00010C3D> /xf0/x90/xb0/xbd OLD TURKIC LETTER ORKHON AS
++<U00010C3E> /xf0/x90/xb0/xbe OLD TURKIC LETTER ORKHON AES
++<U00010C3F> /xf0/x90/xb0/xbf OLD TURKIC LETTER ORKHON ASH
++<U00010C40> /xf0/x90/xb1/x80 OLD TURKIC LETTER YENISEI ASH
++<U00010C41> /xf0/x90/xb1/x81 OLD TURKIC LETTER ORKHON ESH
++<U00010C42> /xf0/x90/xb1/x82 OLD TURKIC LETTER YENISEI ESH
++<U00010C43> /xf0/x90/xb1/x83 OLD TURKIC LETTER ORKHON AT
++<U00010C44> /xf0/x90/xb1/x84 OLD TURKIC LETTER YENISEI AT
++<U00010C45> /xf0/x90/xb1/x85 OLD TURKIC LETTER ORKHON AET
++<U00010C46> /xf0/x90/xb1/x86 OLD TURKIC LETTER YENISEI AET
++<U00010C47> /xf0/x90/xb1/x87 OLD TURKIC LETTER ORKHON OT
++<U00010C48> /xf0/x90/xb1/x88 OLD TURKIC LETTER ORKHON BASH
++<U00010E60> /xf0/x90/xb9/xa0 RUMI DIGIT ONE
++<U00010E61> /xf0/x90/xb9/xa1 RUMI DIGIT TWO
++<U00010E62> /xf0/x90/xb9/xa2 RUMI DIGIT THREE
++<U00010E63> /xf0/x90/xb9/xa3 RUMI DIGIT FOUR
++<U00010E64> /xf0/x90/xb9/xa4 RUMI DIGIT FIVE
++<U00010E65> /xf0/x90/xb9/xa5 RUMI DIGIT SIX
++<U00010E66> /xf0/x90/xb9/xa6 RUMI DIGIT SEVEN
++<U00010E67> /xf0/x90/xb9/xa7 RUMI DIGIT EIGHT
++<U00010E68> /xf0/x90/xb9/xa8 RUMI DIGIT NINE
++<U00010E69> /xf0/x90/xb9/xa9 RUMI NUMBER TEN
++<U00010E6A> /xf0/x90/xb9/xaa RUMI NUMBER TWENTY
++<U00010E6B> /xf0/x90/xb9/xab RUMI NUMBER THIRTY
++<U00010E6C> /xf0/x90/xb9/xac RUMI NUMBER FORTY
++<U00010E6D> /xf0/x90/xb9/xad RUMI NUMBER FIFTY
++<U00010E6E> /xf0/x90/xb9/xae RUMI NUMBER SIXTY
++<U00010E6F> /xf0/x90/xb9/xaf RUMI NUMBER SEVENTY
++<U00010E70> /xf0/x90/xb9/xb0 RUMI NUMBER EIGHTY
++<U00010E71> /xf0/x90/xb9/xb1 RUMI NUMBER NINETY
++<U00010E72> /xf0/x90/xb9/xb2 RUMI NUMBER ONE HUNDRED
++<U00010E73> /xf0/x90/xb9/xb3 RUMI NUMBER TWO HUNDRED
++<U00010E74> /xf0/x90/xb9/xb4 RUMI NUMBER THREE HUNDRED
++<U00010E75> /xf0/x90/xb9/xb5 RUMI NUMBER FOUR HUNDRED
++<U00010E76> /xf0/x90/xb9/xb6 RUMI NUMBER FIVE HUNDRED
++<U00010E77> /xf0/x90/xb9/xb7 RUMI NUMBER SIX HUNDRED
++<U00010E78> /xf0/x90/xb9/xb8 RUMI NUMBER SEVEN HUNDRED
++<U00010E79> /xf0/x90/xb9/xb9 RUMI NUMBER EIGHT HUNDRED
++<U00010E7A> /xf0/x90/xb9/xba RUMI NUMBER NINE HUNDRED
++<U00010E7B> /xf0/x90/xb9/xbb RUMI FRACTION ONE HALF
++<U00010E7C> /xf0/x90/xb9/xbc RUMI FRACTION ONE QUARTER
++<U00010E7D> /xf0/x90/xb9/xbd RUMI FRACTION ONE THIRD
++<U00010E7E> /xf0/x90/xb9/xbe RUMI FRACTION TWO THIRDS
++<U00011000> /xf0/x91/x80/x80 BRAHMI SIGN CANDRABINDU
++<U00011001> /xf0/x91/x80/x81 BRAHMI SIGN ANUSVARA
++<U00011002> /xf0/x91/x80/x82 BRAHMI SIGN VISARGA
++<U00011003> /xf0/x91/x80/x83 BRAHMI SIGN JIHVAMULIYA
++<U00011004> /xf0/x91/x80/x84 BRAHMI SIGN UPADHMANIYA
++<U00011005> /xf0/x91/x80/x85 BRAHMI LETTER A
++<U00011006> /xf0/x91/x80/x86 BRAHMI LETTER AA
++<U00011007> /xf0/x91/x80/x87 BRAHMI LETTER I
++<U00011008> /xf0/x91/x80/x88 BRAHMI LETTER II
++<U00011009> /xf0/x91/x80/x89 BRAHMI LETTER U
++<U0001100A> /xf0/x91/x80/x8a BRAHMI LETTER UU
++<U0001100B> /xf0/x91/x80/x8b BRAHMI LETTER VOCALIC R
++<U0001100C> /xf0/x91/x80/x8c BRAHMI LETTER VOCALIC RR
++<U0001100D> /xf0/x91/x80/x8d BRAHMI LETTER VOCALIC L
++<U0001100E> /xf0/x91/x80/x8e BRAHMI LETTER VOCALIC LL
++<U0001100F> /xf0/x91/x80/x8f BRAHMI LETTER E
++<U00011010> /xf0/x91/x80/x90 BRAHMI LETTER AI
++<U00011011> /xf0/x91/x80/x91 BRAHMI LETTER O
++<U00011012> /xf0/x91/x80/x92 BRAHMI LETTER AU
++<U00011013> /xf0/x91/x80/x93 BRAHMI LETTER KA
++<U00011014> /xf0/x91/x80/x94 BRAHMI LETTER KHA
++<U00011015> /xf0/x91/x80/x95 BRAHMI LETTER GA
++<U00011016> /xf0/x91/x80/x96 BRAHMI LETTER GHA
++<U00011017> /xf0/x91/x80/x97 BRAHMI LETTER NGA
++<U00011018> /xf0/x91/x80/x98 BRAHMI LETTER CA
++<U00011019> /xf0/x91/x80/x99 BRAHMI LETTER CHA
++<U0001101A> /xf0/x91/x80/x9a BRAHMI LETTER JA
++<U0001101B> /xf0/x91/x80/x9b BRAHMI LETTER JHA
++<U0001101C> /xf0/x91/x80/x9c BRAHMI LETTER NYA
++<U0001101D> /xf0/x91/x80/x9d BRAHMI LETTER TTA
++<U0001101E> /xf0/x91/x80/x9e BRAHMI LETTER TTHA
++<U0001101F> /xf0/x91/x80/x9f BRAHMI LETTER DDA
++<U00011020> /xf0/x91/x80/xa0 BRAHMI LETTER DDHA
++<U00011021> /xf0/x91/x80/xa1 BRAHMI LETTER NNA
++<U00011022> /xf0/x91/x80/xa2 BRAHMI LETTER TA
++<U00011023> /xf0/x91/x80/xa3 BRAHMI LETTER THA
++<U00011024> /xf0/x91/x80/xa4 BRAHMI LETTER DA
++<U00011025> /xf0/x91/x80/xa5 BRAHMI LETTER DHA
++<U00011026> /xf0/x91/x80/xa6 BRAHMI LETTER NA
++<U00011027> /xf0/x91/x80/xa7 BRAHMI LETTER PA
++<U00011028> /xf0/x91/x80/xa8 BRAHMI LETTER PHA
++<U00011029> /xf0/x91/x80/xa9 BRAHMI LETTER BA
++<U0001102A> /xf0/x91/x80/xaa BRAHMI LETTER BHA
++<U0001102B> /xf0/x91/x80/xab BRAHMI LETTER MA
++<U0001102C> /xf0/x91/x80/xac BRAHMI LETTER YA
++<U0001102D> /xf0/x91/x80/xad BRAHMI LETTER RA
++<U0001102E> /xf0/x91/x80/xae BRAHMI LETTER LA
++<U0001102F> /xf0/x91/x80/xaf BRAHMI LETTER VA
++<U00011030> /xf0/x91/x80/xb0 BRAHMI LETTER SHA
++<U00011031> /xf0/x91/x80/xb1 BRAHMI LETTER SSA
++<U00011032> /xf0/x91/x80/xb2 BRAHMI LETTER SA
++<U00011033> /xf0/x91/x80/xb3 BRAHMI LETTER HA
++<U00011034> /xf0/x91/x80/xb4 BRAHMI LETTER LLA
++<U00011035> /xf0/x91/x80/xb5 BRAHMI LETTER OLD TAMIL LLLA
++<U00011036> /xf0/x91/x80/xb6 BRAHMI LETTER OLD TAMIL RRA
++<U00011037> /xf0/x91/x80/xb7 BRAHMI LETTER OLD TAMIL NNNA
++<U00011038> /xf0/x91/x80/xb8 BRAHMI VOWEL SIGN AA
++<U00011039> /xf0/x91/x80/xb9 BRAHMI VOWEL SIGN BHATTIPROLU AA
++<U0001103A> /xf0/x91/x80/xba BRAHMI VOWEL SIGN I
++<U0001103B> /xf0/x91/x80/xbb BRAHMI VOWEL SIGN II
++<U0001103C> /xf0/x91/x80/xbc BRAHMI VOWEL SIGN U
++<U0001103D> /xf0/x91/x80/xbd BRAHMI VOWEL SIGN UU
++<U0001103E> /xf0/x91/x80/xbe BRAHMI VOWEL SIGN VOCALIC R
++<U0001103F> /xf0/x91/x80/xbf BRAHMI VOWEL SIGN VOCALIC RR
++<U00011040> /xf0/x91/x81/x80 BRAHMI VOWEL SIGN VOCALIC L
++<U00011041> /xf0/x91/x81/x81 BRAHMI VOWEL SIGN VOCALIC LL
++<U00011042> /xf0/x91/x81/x82 BRAHMI VOWEL SIGN E
++<U00011043> /xf0/x91/x81/x83 BRAHMI VOWEL SIGN AI
++<U00011044> /xf0/x91/x81/x84 BRAHMI VOWEL SIGN O
++<U00011045> /xf0/x91/x81/x85 BRAHMI VOWEL SIGN AU
++<U00011046> /xf0/x91/x81/x86 BRAHMI VIRAMA
++<U00011047> /xf0/x91/x81/x87 BRAHMI DANDA
++<U00011048> /xf0/x91/x81/x88 BRAHMI DOUBLE DANDA
++<U00011049> /xf0/x91/x81/x89 BRAHMI PUNCTUATION DOT
++<U0001104A> /xf0/x91/x81/x8a BRAHMI PUNCTUATION DOUBLE DOT
++<U0001104B> /xf0/x91/x81/x8b BRAHMI PUNCTUATION LINE
++<U0001104C> /xf0/x91/x81/x8c BRAHMI PUNCTUATION CRESCENT BAR
++<U0001104D> /xf0/x91/x81/x8d BRAHMI PUNCTUATION LOTUS
++<U00011052> /xf0/x91/x81/x92 BRAHMI NUMBER ONE
++<U00011053> /xf0/x91/x81/x93 BRAHMI NUMBER TWO
++<U00011054> /xf0/x91/x81/x94 BRAHMI NUMBER THREE
++<U00011055> /xf0/x91/x81/x95 BRAHMI NUMBER FOUR
++<U00011056> /xf0/x91/x81/x96 BRAHMI NUMBER FIVE
++<U00011057> /xf0/x91/x81/x97 BRAHMI NUMBER SIX
++<U00011058> /xf0/x91/x81/x98 BRAHMI NUMBER SEVEN
++<U00011059> /xf0/x91/x81/x99 BRAHMI NUMBER EIGHT
++<U0001105A> /xf0/x91/x81/x9a BRAHMI NUMBER NINE
++<U0001105B> /xf0/x91/x81/x9b BRAHMI NUMBER TEN
++<U0001105C> /xf0/x91/x81/x9c BRAHMI NUMBER TWENTY
++<U0001105D> /xf0/x91/x81/x9d BRAHMI NUMBER THIRTY
++<U0001105E> /xf0/x91/x81/x9e BRAHMI NUMBER FORTY
++<U0001105F> /xf0/x91/x81/x9f BRAHMI NUMBER FIFTY
++<U00011060> /xf0/x91/x81/xa0 BRAHMI NUMBER SIXTY
++<U00011061> /xf0/x91/x81/xa1 BRAHMI NUMBER SEVENTY
++<U00011062> /xf0/x91/x81/xa2 BRAHMI NUMBER EIGHTY
++<U00011063> /xf0/x91/x81/xa3 BRAHMI NUMBER NINETY
++<U00011064> /xf0/x91/x81/xa4 BRAHMI NUMBER ONE HUNDRED
++<U00011065> /xf0/x91/x81/xa5 BRAHMI NUMBER ONE THOUSAND
++<U00011066> /xf0/x91/x81/xa6 BRAHMI DIGIT ZERO
++<U00011067> /xf0/x91/x81/xa7 BRAHMI DIGIT ONE
++<U00011068> /xf0/x91/x81/xa8 BRAHMI DIGIT TWO
++<U00011069> /xf0/x91/x81/xa9 BRAHMI DIGIT THREE
++<U0001106A> /xf0/x91/x81/xaa BRAHMI DIGIT FOUR
++<U0001106B> /xf0/x91/x81/xab BRAHMI DIGIT FIVE
++<U0001106C> /xf0/x91/x81/xac BRAHMI DIGIT SIX
++<U0001106D> /xf0/x91/x81/xad BRAHMI DIGIT SEVEN
++<U0001106E> /xf0/x91/x81/xae BRAHMI DIGIT EIGHT
++<U0001106F> /xf0/x91/x81/xaf BRAHMI DIGIT NINE
++<U00011080> /xf0/x91/x82/x80 KAITHI SIGN CANDRABINDU
++<U00011081> /xf0/x91/x82/x81 KAITHI SIGN ANUSVARA
++<U00011082> /xf0/x91/x82/x82 KAITHI SIGN VISARGA
++<U00011083> /xf0/x91/x82/x83 KAITHI LETTER A
++<U00011084> /xf0/x91/x82/x84 KAITHI LETTER AA
++<U00011085> /xf0/x91/x82/x85 KAITHI LETTER I
++<U00011086> /xf0/x91/x82/x86 KAITHI LETTER II
++<U00011087> /xf0/x91/x82/x87 KAITHI LETTER U
++<U00011088> /xf0/x91/x82/x88 KAITHI LETTER UU
++<U00011089> /xf0/x91/x82/x89 KAITHI LETTER E
++<U0001108A> /xf0/x91/x82/x8a KAITHI LETTER AI
++<U0001108B> /xf0/x91/x82/x8b KAITHI LETTER O
++<U0001108C> /xf0/x91/x82/x8c KAITHI LETTER AU
++<U0001108D> /xf0/x91/x82/x8d KAITHI LETTER KA
++<U0001108E> /xf0/x91/x82/x8e KAITHI LETTER KHA
++<U0001108F> /xf0/x91/x82/x8f KAITHI LETTER GA
++<U00011090> /xf0/x91/x82/x90 KAITHI LETTER GHA
++<U00011091> /xf0/x91/x82/x91 KAITHI LETTER NGA
++<U00011092> /xf0/x91/x82/x92 KAITHI LETTER CA
++<U00011093> /xf0/x91/x82/x93 KAITHI LETTER CHA
++<U00011094> /xf0/x91/x82/x94 KAITHI LETTER JA
++<U00011095> /xf0/x91/x82/x95 KAITHI LETTER JHA
++<U00011096> /xf0/x91/x82/x96 KAITHI LETTER NYA
++<U00011097> /xf0/x91/x82/x97 KAITHI LETTER TTA
++<U00011098> /xf0/x91/x82/x98 KAITHI LETTER TTHA
++<U00011099> /xf0/x91/x82/x99 KAITHI LETTER DDA
++<U0001109A> /xf0/x91/x82/x9a KAITHI LETTER DDDHA
++<U0001109B> /xf0/x91/x82/x9b KAITHI LETTER DDHA
++<U0001109C> /xf0/x91/x82/x9c KAITHI LETTER RHA
++<U0001109D> /xf0/x91/x82/x9d KAITHI LETTER NNA
++<U0001109E> /xf0/x91/x82/x9e KAITHI LETTER TA
++<U0001109F> /xf0/x91/x82/x9f KAITHI LETTER THA
++<U000110A0> /xf0/x91/x82/xa0 KAITHI LETTER DA
++<U000110A1> /xf0/x91/x82/xa1 KAITHI LETTER DHA
++<U000110A2> /xf0/x91/x82/xa2 KAITHI LETTER NA
++<U000110A3> /xf0/x91/x82/xa3 KAITHI LETTER PA
++<U000110A4> /xf0/x91/x82/xa4 KAITHI LETTER PHA
++<U000110A5> /xf0/x91/x82/xa5 KAITHI LETTER BA
++<U000110A6> /xf0/x91/x82/xa6 KAITHI LETTER BHA
++<U000110A7> /xf0/x91/x82/xa7 KAITHI LETTER MA
++<U000110A8> /xf0/x91/x82/xa8 KAITHI LETTER YA
++<U000110A9> /xf0/x91/x82/xa9 KAITHI LETTER RA
++<U000110AA> /xf0/x91/x82/xaa KAITHI LETTER LA
++<U000110AB> /xf0/x91/x82/xab KAITHI LETTER VA
++<U000110AC> /xf0/x91/x82/xac KAITHI LETTER SHA
++<U000110AD> /xf0/x91/x82/xad KAITHI LETTER SSA
++<U000110AE> /xf0/x91/x82/xae KAITHI LETTER SA
++<U000110AF> /xf0/x91/x82/xaf KAITHI LETTER HA
++<U000110B0> /xf0/x91/x82/xb0 KAITHI VOWEL SIGN AA
++<U000110B1> /xf0/x91/x82/xb1 KAITHI VOWEL SIGN I
++<U000110B2> /xf0/x91/x82/xb2 KAITHI VOWEL SIGN II
++<U000110B3> /xf0/x91/x82/xb3 KAITHI VOWEL SIGN U
++<U000110B4> /xf0/x91/x82/xb4 KAITHI VOWEL SIGN UU
++<U000110B5> /xf0/x91/x82/xb5 KAITHI VOWEL SIGN E
++<U000110B6> /xf0/x91/x82/xb6 KAITHI VOWEL SIGN AI
++<U000110B7> /xf0/x91/x82/xb7 KAITHI VOWEL SIGN O
++<U000110B8> /xf0/x91/x82/xb8 KAITHI VOWEL SIGN AU
++<U000110B9> /xf0/x91/x82/xb9 KAITHI SIGN VIRAMA
++<U000110BA> /xf0/x91/x82/xba KAITHI SIGN NUKTA
++<U000110BB> /xf0/x91/x82/xbb KAITHI ABBREVIATION SIGN
++<U000110BC> /xf0/x91/x82/xbc KAITHI ENUMERATION SIGN
++<U000110BD> /xf0/x91/x82/xbd KAITHI NUMBER SIGN
++<U000110BE> /xf0/x91/x82/xbe KAITHI SECTION MARK
++<U000110BF> /xf0/x91/x82/xbf KAITHI DOUBLE SECTION MARK
++<U000110C0> /xf0/x91/x83/x80 KAITHI DANDA
++<U000110C1> /xf0/x91/x83/x81 KAITHI DOUBLE DANDA
+ <U00012000> /xf0/x92/x80/x80 CUNEIFORM SIGN A
+ <U00012001> /xf0/x92/x80/x81 CUNEIFORM SIGN A TIMES A
+ <U00012002> /xf0/x92/x80/x82 CUNEIFORM SIGN A TIMES BAD
+@@ -28370,6 +30022,1648 @@ CHARMAP
+ <U00012471> /xf0/x92/x91/xb1 CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
+ <U00012472> /xf0/x92/x91/xb2 CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
+ <U00012473> /xf0/x92/x91/xb3 CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
++<U00013000> /xf0/x93/x80/x80 EGYPTIAN HIEROGLYPH A001
++<U00013001> /xf0/x93/x80/x81 EGYPTIAN HIEROGLYPH A002
++<U00013002> /xf0/x93/x80/x82 EGYPTIAN HIEROGLYPH A003
++<U00013003> /xf0/x93/x80/x83 EGYPTIAN HIEROGLYPH A004
++<U00013004> /xf0/x93/x80/x84 EGYPTIAN HIEROGLYPH A005
++<U00013005> /xf0/x93/x80/x85 EGYPTIAN HIEROGLYPH A005A
++<U00013006> /xf0/x93/x80/x86 EGYPTIAN HIEROGLYPH A006
++<U00013007> /xf0/x93/x80/x87 EGYPTIAN HIEROGLYPH A006A
++<U00013008> /xf0/x93/x80/x88 EGYPTIAN HIEROGLYPH A006B
++<U00013009> /xf0/x93/x80/x89 EGYPTIAN HIEROGLYPH A007
++<U0001300A> /xf0/x93/x80/x8a EGYPTIAN HIEROGLYPH A008
++<U0001300B> /xf0/x93/x80/x8b EGYPTIAN HIEROGLYPH A009
++<U0001300C> /xf0/x93/x80/x8c EGYPTIAN HIEROGLYPH A010
++<U0001300D> /xf0/x93/x80/x8d EGYPTIAN HIEROGLYPH A011
++<U0001300E> /xf0/x93/x80/x8e EGYPTIAN HIEROGLYPH A012
++<U0001300F> /xf0/x93/x80/x8f EGYPTIAN HIEROGLYPH A013
++<U00013010> /xf0/x93/x80/x90 EGYPTIAN HIEROGLYPH A014
++<U00013011> /xf0/x93/x80/x91 EGYPTIAN HIEROGLYPH A014A
++<U00013012> /xf0/x93/x80/x92 EGYPTIAN HIEROGLYPH A015
++<U00013013> /xf0/x93/x80/x93 EGYPTIAN HIEROGLYPH A016
++<U00013014> /xf0/x93/x80/x94 EGYPTIAN HIEROGLYPH A017
++<U00013015> /xf0/x93/x80/x95 EGYPTIAN HIEROGLYPH A017A
++<U00013016> /xf0/x93/x80/x96 EGYPTIAN HIEROGLYPH A018
++<U00013017> /xf0/x93/x80/x97 EGYPTIAN HIEROGLYPH A019
++<U00013018> /xf0/x93/x80/x98 EGYPTIAN HIEROGLYPH A020
++<U00013019> /xf0/x93/x80/x99 EGYPTIAN HIEROGLYPH A021
++<U0001301A> /xf0/x93/x80/x9a EGYPTIAN HIEROGLYPH A022
++<U0001301B> /xf0/x93/x80/x9b EGYPTIAN HIEROGLYPH A023
++<U0001301C> /xf0/x93/x80/x9c EGYPTIAN HIEROGLYPH A024
++<U0001301D> /xf0/x93/x80/x9d EGYPTIAN HIEROGLYPH A025
++<U0001301E> /xf0/x93/x80/x9e EGYPTIAN HIEROGLYPH A026
++<U0001301F> /xf0/x93/x80/x9f EGYPTIAN HIEROGLYPH A027
++<U00013020> /xf0/x93/x80/xa0 EGYPTIAN HIEROGLYPH A028
++<U00013021> /xf0/x93/x80/xa1 EGYPTIAN HIEROGLYPH A029
++<U00013022> /xf0/x93/x80/xa2 EGYPTIAN HIEROGLYPH A030
++<U00013023> /xf0/x93/x80/xa3 EGYPTIAN HIEROGLYPH A031
++<U00013024> /xf0/x93/x80/xa4 EGYPTIAN HIEROGLYPH A032
++<U00013025> /xf0/x93/x80/xa5 EGYPTIAN HIEROGLYPH A032A
++<U00013026> /xf0/x93/x80/xa6 EGYPTIAN HIEROGLYPH A033
++<U00013027> /xf0/x93/x80/xa7 EGYPTIAN HIEROGLYPH A034
++<U00013028> /xf0/x93/x80/xa8 EGYPTIAN HIEROGLYPH A035
++<U00013029> /xf0/x93/x80/xa9 EGYPTIAN HIEROGLYPH A036
++<U0001302A> /xf0/x93/x80/xaa EGYPTIAN HIEROGLYPH A037
++<U0001302B> /xf0/x93/x80/xab EGYPTIAN HIEROGLYPH A038
++<U0001302C> /xf0/x93/x80/xac EGYPTIAN HIEROGLYPH A039
++<U0001302D> /xf0/x93/x80/xad EGYPTIAN HIEROGLYPH A040
++<U0001302E> /xf0/x93/x80/xae EGYPTIAN HIEROGLYPH A040A
++<U0001302F> /xf0/x93/x80/xaf EGYPTIAN HIEROGLYPH A041
++<U00013030> /xf0/x93/x80/xb0 EGYPTIAN HIEROGLYPH A042
++<U00013031> /xf0/x93/x80/xb1 EGYPTIAN HIEROGLYPH A042A
++<U00013032> /xf0/x93/x80/xb2 EGYPTIAN HIEROGLYPH A043
++<U00013033> /xf0/x93/x80/xb3 EGYPTIAN HIEROGLYPH A043A
++<U00013034> /xf0/x93/x80/xb4 EGYPTIAN HIEROGLYPH A044
++<U00013035> /xf0/x93/x80/xb5 EGYPTIAN HIEROGLYPH A045
++<U00013036> /xf0/x93/x80/xb6 EGYPTIAN HIEROGLYPH A045A
++<U00013037> /xf0/x93/x80/xb7 EGYPTIAN HIEROGLYPH A046
++<U00013038> /xf0/x93/x80/xb8 EGYPTIAN HIEROGLYPH A047
++<U00013039> /xf0/x93/x80/xb9 EGYPTIAN HIEROGLYPH A048
++<U0001303A> /xf0/x93/x80/xba EGYPTIAN HIEROGLYPH A049
++<U0001303B> /xf0/x93/x80/xbb EGYPTIAN HIEROGLYPH A050
++<U0001303C> /xf0/x93/x80/xbc EGYPTIAN HIEROGLYPH A051
++<U0001303D> /xf0/x93/x80/xbd EGYPTIAN HIEROGLYPH A052
++<U0001303E> /xf0/x93/x80/xbe EGYPTIAN HIEROGLYPH A053
++<U0001303F> /xf0/x93/x80/xbf EGYPTIAN HIEROGLYPH A054
++<U00013040> /xf0/x93/x81/x80 EGYPTIAN HIEROGLYPH A055
++<U00013041> /xf0/x93/x81/x81 EGYPTIAN HIEROGLYPH A056
++<U00013042> /xf0/x93/x81/x82 EGYPTIAN HIEROGLYPH A057
++<U00013043> /xf0/x93/x81/x83 EGYPTIAN HIEROGLYPH A058
++<U00013044> /xf0/x93/x81/x84 EGYPTIAN HIEROGLYPH A059
++<U00013045> /xf0/x93/x81/x85 EGYPTIAN HIEROGLYPH A060
++<U00013046> /xf0/x93/x81/x86 EGYPTIAN HIEROGLYPH A061
++<U00013047> /xf0/x93/x81/x87 EGYPTIAN HIEROGLYPH A062
++<U00013048> /xf0/x93/x81/x88 EGYPTIAN HIEROGLYPH A063
++<U00013049> /xf0/x93/x81/x89 EGYPTIAN HIEROGLYPH A064
++<U0001304A> /xf0/x93/x81/x8a EGYPTIAN HIEROGLYPH A065
++<U0001304B> /xf0/x93/x81/x8b EGYPTIAN HIEROGLYPH A066
++<U0001304C> /xf0/x93/x81/x8c EGYPTIAN HIEROGLYPH A067
++<U0001304D> /xf0/x93/x81/x8d EGYPTIAN HIEROGLYPH A068
++<U0001304E> /xf0/x93/x81/x8e EGYPTIAN HIEROGLYPH A069
++<U0001304F> /xf0/x93/x81/x8f EGYPTIAN HIEROGLYPH A070
++<U00013050> /xf0/x93/x81/x90 EGYPTIAN HIEROGLYPH B001
++<U00013051> /xf0/x93/x81/x91 EGYPTIAN HIEROGLYPH B002
++<U00013052> /xf0/x93/x81/x92 EGYPTIAN HIEROGLYPH B003
++<U00013053> /xf0/x93/x81/x93 EGYPTIAN HIEROGLYPH B004
++<U00013054> /xf0/x93/x81/x94 EGYPTIAN HIEROGLYPH B005
++<U00013055> /xf0/x93/x81/x95 EGYPTIAN HIEROGLYPH B005A
++<U00013056> /xf0/x93/x81/x96 EGYPTIAN HIEROGLYPH B006
++<U00013057> /xf0/x93/x81/x97 EGYPTIAN HIEROGLYPH B007
++<U00013058> /xf0/x93/x81/x98 EGYPTIAN HIEROGLYPH B008
++<U00013059> /xf0/x93/x81/x99 EGYPTIAN HIEROGLYPH B009
++<U0001305A> /xf0/x93/x81/x9a EGYPTIAN HIEROGLYPH C001
++<U0001305B> /xf0/x93/x81/x9b EGYPTIAN HIEROGLYPH C002
++<U0001305C> /xf0/x93/x81/x9c EGYPTIAN HIEROGLYPH C002A
++<U0001305D> /xf0/x93/x81/x9d EGYPTIAN HIEROGLYPH C002B
++<U0001305E> /xf0/x93/x81/x9e EGYPTIAN HIEROGLYPH C002C
++<U0001305F> /xf0/x93/x81/x9f EGYPTIAN HIEROGLYPH C003
++<U00013060> /xf0/x93/x81/xa0 EGYPTIAN HIEROGLYPH C004
++<U00013061> /xf0/x93/x81/xa1 EGYPTIAN HIEROGLYPH C005
++<U00013062> /xf0/x93/x81/xa2 EGYPTIAN HIEROGLYPH C006
++<U00013063> /xf0/x93/x81/xa3 EGYPTIAN HIEROGLYPH C007
++<U00013064> /xf0/x93/x81/xa4 EGYPTIAN HIEROGLYPH C008
++<U00013065> /xf0/x93/x81/xa5 EGYPTIAN HIEROGLYPH C009
++<U00013066> /xf0/x93/x81/xa6 EGYPTIAN HIEROGLYPH C010
++<U00013067> /xf0/x93/x81/xa7 EGYPTIAN HIEROGLYPH C010A
++<U00013068> /xf0/x93/x81/xa8 EGYPTIAN HIEROGLYPH C011
++<U00013069> /xf0/x93/x81/xa9 EGYPTIAN HIEROGLYPH C012
++<U0001306A> /xf0/x93/x81/xaa EGYPTIAN HIEROGLYPH C013
++<U0001306B> /xf0/x93/x81/xab EGYPTIAN HIEROGLYPH C014
++<U0001306C> /xf0/x93/x81/xac EGYPTIAN HIEROGLYPH C015
++<U0001306D> /xf0/x93/x81/xad EGYPTIAN HIEROGLYPH C016
++<U0001306E> /xf0/x93/x81/xae EGYPTIAN HIEROGLYPH C017
++<U0001306F> /xf0/x93/x81/xaf EGYPTIAN HIEROGLYPH C018
++<U00013070> /xf0/x93/x81/xb0 EGYPTIAN HIEROGLYPH C019
++<U00013071> /xf0/x93/x81/xb1 EGYPTIAN HIEROGLYPH C020
++<U00013072> /xf0/x93/x81/xb2 EGYPTIAN HIEROGLYPH C021
++<U00013073> /xf0/x93/x81/xb3 EGYPTIAN HIEROGLYPH C022
++<U00013074> /xf0/x93/x81/xb4 EGYPTIAN HIEROGLYPH C023
++<U00013075> /xf0/x93/x81/xb5 EGYPTIAN HIEROGLYPH C024
++<U00013076> /xf0/x93/x81/xb6 EGYPTIAN HIEROGLYPH D001
++<U00013077> /xf0/x93/x81/xb7 EGYPTIAN HIEROGLYPH D002
++<U00013078> /xf0/x93/x81/xb8 EGYPTIAN HIEROGLYPH D003
++<U00013079> /xf0/x93/x81/xb9 EGYPTIAN HIEROGLYPH D004
++<U0001307A> /xf0/x93/x81/xba EGYPTIAN HIEROGLYPH D005
++<U0001307B> /xf0/x93/x81/xbb EGYPTIAN HIEROGLYPH D006
++<U0001307C> /xf0/x93/x81/xbc EGYPTIAN HIEROGLYPH D007
++<U0001307D> /xf0/x93/x81/xbd EGYPTIAN HIEROGLYPH D008
++<U0001307E> /xf0/x93/x81/xbe EGYPTIAN HIEROGLYPH D008A
++<U0001307F> /xf0/x93/x81/xbf EGYPTIAN HIEROGLYPH D009
++<U00013080> /xf0/x93/x82/x80 EGYPTIAN HIEROGLYPH D010
++<U00013081> /xf0/x93/x82/x81 EGYPTIAN HIEROGLYPH D011
++<U00013082> /xf0/x93/x82/x82 EGYPTIAN HIEROGLYPH D012
++<U00013083> /xf0/x93/x82/x83 EGYPTIAN HIEROGLYPH D013
++<U00013084> /xf0/x93/x82/x84 EGYPTIAN HIEROGLYPH D014
++<U00013085> /xf0/x93/x82/x85 EGYPTIAN HIEROGLYPH D015
++<U00013086> /xf0/x93/x82/x86 EGYPTIAN HIEROGLYPH D016
++<U00013087> /xf0/x93/x82/x87 EGYPTIAN HIEROGLYPH D017
++<U00013088> /xf0/x93/x82/x88 EGYPTIAN HIEROGLYPH D018
++<U00013089> /xf0/x93/x82/x89 EGYPTIAN HIEROGLYPH D019
++<U0001308A> /xf0/x93/x82/x8a EGYPTIAN HIEROGLYPH D020
++<U0001308B> /xf0/x93/x82/x8b EGYPTIAN HIEROGLYPH D021
++<U0001308C> /xf0/x93/x82/x8c EGYPTIAN HIEROGLYPH D022
++<U0001308D> /xf0/x93/x82/x8d EGYPTIAN HIEROGLYPH D023
++<U0001308E> /xf0/x93/x82/x8e EGYPTIAN HIEROGLYPH D024
++<U0001308F> /xf0/x93/x82/x8f EGYPTIAN HIEROGLYPH D025
++<U00013090> /xf0/x93/x82/x90 EGYPTIAN HIEROGLYPH D026
++<U00013091> /xf0/x93/x82/x91 EGYPTIAN HIEROGLYPH D027
++<U00013092> /xf0/x93/x82/x92 EGYPTIAN HIEROGLYPH D027A
++<U00013093> /xf0/x93/x82/x93 EGYPTIAN HIEROGLYPH D028
++<U00013094> /xf0/x93/x82/x94 EGYPTIAN HIEROGLYPH D029
++<U00013095> /xf0/x93/x82/x95 EGYPTIAN HIEROGLYPH D030
++<U00013096> /xf0/x93/x82/x96 EGYPTIAN HIEROGLYPH D031
++<U00013097> /xf0/x93/x82/x97 EGYPTIAN HIEROGLYPH D031A
++<U00013098> /xf0/x93/x82/x98 EGYPTIAN HIEROGLYPH D032
++<U00013099> /xf0/x93/x82/x99 EGYPTIAN HIEROGLYPH D033
++<U0001309A> /xf0/x93/x82/x9a EGYPTIAN HIEROGLYPH D034
++<U0001309B> /xf0/x93/x82/x9b EGYPTIAN HIEROGLYPH D034A
++<U0001309C> /xf0/x93/x82/x9c EGYPTIAN HIEROGLYPH D035
++<U0001309D> /xf0/x93/x82/x9d EGYPTIAN HIEROGLYPH D036
++<U0001309E> /xf0/x93/x82/x9e EGYPTIAN HIEROGLYPH D037
++<U0001309F> /xf0/x93/x82/x9f EGYPTIAN HIEROGLYPH D038
++<U000130A0> /xf0/x93/x82/xa0 EGYPTIAN HIEROGLYPH D039
++<U000130A1> /xf0/x93/x82/xa1 EGYPTIAN HIEROGLYPH D040
++<U000130A2> /xf0/x93/x82/xa2 EGYPTIAN HIEROGLYPH D041
++<U000130A3> /xf0/x93/x82/xa3 EGYPTIAN HIEROGLYPH D042
++<U000130A4> /xf0/x93/x82/xa4 EGYPTIAN HIEROGLYPH D043
++<U000130A5> /xf0/x93/x82/xa5 EGYPTIAN HIEROGLYPH D044
++<U000130A6> /xf0/x93/x82/xa6 EGYPTIAN HIEROGLYPH D045
++<U000130A7> /xf0/x93/x82/xa7 EGYPTIAN HIEROGLYPH D046
++<U000130A8> /xf0/x93/x82/xa8 EGYPTIAN HIEROGLYPH D046A
++<U000130A9> /xf0/x93/x82/xa9 EGYPTIAN HIEROGLYPH D047
++<U000130AA> /xf0/x93/x82/xaa EGYPTIAN HIEROGLYPH D048
++<U000130AB> /xf0/x93/x82/xab EGYPTIAN HIEROGLYPH D048A
++<U000130AC> /xf0/x93/x82/xac EGYPTIAN HIEROGLYPH D049
++<U000130AD> /xf0/x93/x82/xad EGYPTIAN HIEROGLYPH D050
++<U000130AE> /xf0/x93/x82/xae EGYPTIAN HIEROGLYPH D050A
++<U000130AF> /xf0/x93/x82/xaf EGYPTIAN HIEROGLYPH D050B
++<U000130B0> /xf0/x93/x82/xb0 EGYPTIAN HIEROGLYPH D050C
++<U000130B1> /xf0/x93/x82/xb1 EGYPTIAN HIEROGLYPH D050D
++<U000130B2> /xf0/x93/x82/xb2 EGYPTIAN HIEROGLYPH D050E
++<U000130B3> /xf0/x93/x82/xb3 EGYPTIAN HIEROGLYPH D050F
++<U000130B4> /xf0/x93/x82/xb4 EGYPTIAN HIEROGLYPH D050G
++<U000130B5> /xf0/x93/x82/xb5 EGYPTIAN HIEROGLYPH D050H
++<U000130B6> /xf0/x93/x82/xb6 EGYPTIAN HIEROGLYPH D050I
++<U000130B7> /xf0/x93/x82/xb7 EGYPTIAN HIEROGLYPH D051
++<U000130B8> /xf0/x93/x82/xb8 EGYPTIAN HIEROGLYPH D052
++<U000130B9> /xf0/x93/x82/xb9 EGYPTIAN HIEROGLYPH D052A
++<U000130BA> /xf0/x93/x82/xba EGYPTIAN HIEROGLYPH D053
++<U000130BB> /xf0/x93/x82/xbb EGYPTIAN HIEROGLYPH D054
++<U000130BC> /xf0/x93/x82/xbc EGYPTIAN HIEROGLYPH D054A
++<U000130BD> /xf0/x93/x82/xbd EGYPTIAN HIEROGLYPH D055
++<U000130BE> /xf0/x93/x82/xbe EGYPTIAN HIEROGLYPH D056
++<U000130BF> /xf0/x93/x82/xbf EGYPTIAN HIEROGLYPH D057
++<U000130C0> /xf0/x93/x83/x80 EGYPTIAN HIEROGLYPH D058
++<U000130C1> /xf0/x93/x83/x81 EGYPTIAN HIEROGLYPH D059
++<U000130C2> /xf0/x93/x83/x82 EGYPTIAN HIEROGLYPH D060
++<U000130C3> /xf0/x93/x83/x83 EGYPTIAN HIEROGLYPH D061
++<U000130C4> /xf0/x93/x83/x84 EGYPTIAN HIEROGLYPH D062
++<U000130C5> /xf0/x93/x83/x85 EGYPTIAN HIEROGLYPH D063
++<U000130C6> /xf0/x93/x83/x86 EGYPTIAN HIEROGLYPH D064
++<U000130C7> /xf0/x93/x83/x87 EGYPTIAN HIEROGLYPH D065
++<U000130C8> /xf0/x93/x83/x88 EGYPTIAN HIEROGLYPH D066
++<U000130C9> /xf0/x93/x83/x89 EGYPTIAN HIEROGLYPH D067
++<U000130CA> /xf0/x93/x83/x8a EGYPTIAN HIEROGLYPH D067A
++<U000130CB> /xf0/x93/x83/x8b EGYPTIAN HIEROGLYPH D067B
++<U000130CC> /xf0/x93/x83/x8c EGYPTIAN HIEROGLYPH D067C
++<U000130CD> /xf0/x93/x83/x8d EGYPTIAN HIEROGLYPH D067D
++<U000130CE> /xf0/x93/x83/x8e EGYPTIAN HIEROGLYPH D067E
++<U000130CF> /xf0/x93/x83/x8f EGYPTIAN HIEROGLYPH D067F
++<U000130D0> /xf0/x93/x83/x90 EGYPTIAN HIEROGLYPH D067G
++<U000130D1> /xf0/x93/x83/x91 EGYPTIAN HIEROGLYPH D067H
++<U000130D2> /xf0/x93/x83/x92 EGYPTIAN HIEROGLYPH E001
++<U000130D3> /xf0/x93/x83/x93 EGYPTIAN HIEROGLYPH E002
++<U000130D4> /xf0/x93/x83/x94 EGYPTIAN HIEROGLYPH E003
++<U000130D5> /xf0/x93/x83/x95 EGYPTIAN HIEROGLYPH E004
++<U000130D6> /xf0/x93/x83/x96 EGYPTIAN HIEROGLYPH E005
++<U000130D7> /xf0/x93/x83/x97 EGYPTIAN HIEROGLYPH E006
++<U000130D8> /xf0/x93/x83/x98 EGYPTIAN HIEROGLYPH E007
++<U000130D9> /xf0/x93/x83/x99 EGYPTIAN HIEROGLYPH E008
++<U000130DA> /xf0/x93/x83/x9a EGYPTIAN HIEROGLYPH E008A
++<U000130DB> /xf0/x93/x83/x9b EGYPTIAN HIEROGLYPH E009
++<U000130DC> /xf0/x93/x83/x9c EGYPTIAN HIEROGLYPH E009A
++<U000130DD> /xf0/x93/x83/x9d EGYPTIAN HIEROGLYPH E010
++<U000130DE> /xf0/x93/x83/x9e EGYPTIAN HIEROGLYPH E011
++<U000130DF> /xf0/x93/x83/x9f EGYPTIAN HIEROGLYPH E012
++<U000130E0> /xf0/x93/x83/xa0 EGYPTIAN HIEROGLYPH E013
++<U000130E1> /xf0/x93/x83/xa1 EGYPTIAN HIEROGLYPH E014
++<U000130E2> /xf0/x93/x83/xa2 EGYPTIAN HIEROGLYPH E015
++<U000130E3> /xf0/x93/x83/xa3 EGYPTIAN HIEROGLYPH E016
++<U000130E4> /xf0/x93/x83/xa4 EGYPTIAN HIEROGLYPH E016A
++<U000130E5> /xf0/x93/x83/xa5 EGYPTIAN HIEROGLYPH E017
++<U000130E6> /xf0/x93/x83/xa6 EGYPTIAN HIEROGLYPH E017A
++<U000130E7> /xf0/x93/x83/xa7 EGYPTIAN HIEROGLYPH E018
++<U000130E8> /xf0/x93/x83/xa8 EGYPTIAN HIEROGLYPH E019
++<U000130E9> /xf0/x93/x83/xa9 EGYPTIAN HIEROGLYPH E020
++<U000130EA> /xf0/x93/x83/xaa EGYPTIAN HIEROGLYPH E020A
++<U000130EB> /xf0/x93/x83/xab EGYPTIAN HIEROGLYPH E021
++<U000130EC> /xf0/x93/x83/xac EGYPTIAN HIEROGLYPH E022
++<U000130ED> /xf0/x93/x83/xad EGYPTIAN HIEROGLYPH E023
++<U000130EE> /xf0/x93/x83/xae EGYPTIAN HIEROGLYPH E024
++<U000130EF> /xf0/x93/x83/xaf EGYPTIAN HIEROGLYPH E025
++<U000130F0> /xf0/x93/x83/xb0 EGYPTIAN HIEROGLYPH E026
++<U000130F1> /xf0/x93/x83/xb1 EGYPTIAN HIEROGLYPH E027
++<U000130F2> /xf0/x93/x83/xb2 EGYPTIAN HIEROGLYPH E028
++<U000130F3> /xf0/x93/x83/xb3 EGYPTIAN HIEROGLYPH E028A
++<U000130F4> /xf0/x93/x83/xb4 EGYPTIAN HIEROGLYPH E029
++<U000130F5> /xf0/x93/x83/xb5 EGYPTIAN HIEROGLYPH E030
++<U000130F6> /xf0/x93/x83/xb6 EGYPTIAN HIEROGLYPH E031
++<U000130F7> /xf0/x93/x83/xb7 EGYPTIAN HIEROGLYPH E032
++<U000130F8> /xf0/x93/x83/xb8 EGYPTIAN HIEROGLYPH E033
++<U000130F9> /xf0/x93/x83/xb9 EGYPTIAN HIEROGLYPH E034
++<U000130FA> /xf0/x93/x83/xba EGYPTIAN HIEROGLYPH E034A
++<U000130FB> /xf0/x93/x83/xbb EGYPTIAN HIEROGLYPH E036
++<U000130FC> /xf0/x93/x83/xbc EGYPTIAN HIEROGLYPH E037
++<U000130FD> /xf0/x93/x83/xbd EGYPTIAN HIEROGLYPH E038
++<U000130FE> /xf0/x93/x83/xbe EGYPTIAN HIEROGLYPH F001
++<U000130FF> /xf0/x93/x83/xbf EGYPTIAN HIEROGLYPH F001A
++<U00013100> /xf0/x93/x84/x80 EGYPTIAN HIEROGLYPH F002
++<U00013101> /xf0/x93/x84/x81 EGYPTIAN HIEROGLYPH F003
++<U00013102> /xf0/x93/x84/x82 EGYPTIAN HIEROGLYPH F004
++<U00013103> /xf0/x93/x84/x83 EGYPTIAN HIEROGLYPH F005
++<U00013104> /xf0/x93/x84/x84 EGYPTIAN HIEROGLYPH F006
++<U00013105> /xf0/x93/x84/x85 EGYPTIAN HIEROGLYPH F007
++<U00013106> /xf0/x93/x84/x86 EGYPTIAN HIEROGLYPH F008
++<U00013107> /xf0/x93/x84/x87 EGYPTIAN HIEROGLYPH F009
++<U00013108> /xf0/x93/x84/x88 EGYPTIAN HIEROGLYPH F010
++<U00013109> /xf0/x93/x84/x89 EGYPTIAN HIEROGLYPH F011
++<U0001310A> /xf0/x93/x84/x8a EGYPTIAN HIEROGLYPH F012
++<U0001310B> /xf0/x93/x84/x8b EGYPTIAN HIEROGLYPH F013
++<U0001310C> /xf0/x93/x84/x8c EGYPTIAN HIEROGLYPH F013A
++<U0001310D> /xf0/x93/x84/x8d EGYPTIAN HIEROGLYPH F014
++<U0001310E> /xf0/x93/x84/x8e EGYPTIAN HIEROGLYPH F015
++<U0001310F> /xf0/x93/x84/x8f EGYPTIAN HIEROGLYPH F016
++<U00013110> /xf0/x93/x84/x90 EGYPTIAN HIEROGLYPH F017
++<U00013111> /xf0/x93/x84/x91 EGYPTIAN HIEROGLYPH F018
++<U00013112> /xf0/x93/x84/x92 EGYPTIAN HIEROGLYPH F019
++<U00013113> /xf0/x93/x84/x93 EGYPTIAN HIEROGLYPH F020
++<U00013114> /xf0/x93/x84/x94 EGYPTIAN HIEROGLYPH F021
++<U00013115> /xf0/x93/x84/x95 EGYPTIAN HIEROGLYPH F021A
++<U00013116> /xf0/x93/x84/x96 EGYPTIAN HIEROGLYPH F022
++<U00013117> /xf0/x93/x84/x97 EGYPTIAN HIEROGLYPH F023
++<U00013118> /xf0/x93/x84/x98 EGYPTIAN HIEROGLYPH F024
++<U00013119> /xf0/x93/x84/x99 EGYPTIAN HIEROGLYPH F025
++<U0001311A> /xf0/x93/x84/x9a EGYPTIAN HIEROGLYPH F026
++<U0001311B> /xf0/x93/x84/x9b EGYPTIAN HIEROGLYPH F027
++<U0001311C> /xf0/x93/x84/x9c EGYPTIAN HIEROGLYPH F028
++<U0001311D> /xf0/x93/x84/x9d EGYPTIAN HIEROGLYPH F029
++<U0001311E> /xf0/x93/x84/x9e EGYPTIAN HIEROGLYPH F030
++<U0001311F> /xf0/x93/x84/x9f EGYPTIAN HIEROGLYPH F031
++<U00013120> /xf0/x93/x84/xa0 EGYPTIAN HIEROGLYPH F031A
++<U00013121> /xf0/x93/x84/xa1 EGYPTIAN HIEROGLYPH F032
++<U00013122> /xf0/x93/x84/xa2 EGYPTIAN HIEROGLYPH F033
++<U00013123> /xf0/x93/x84/xa3 EGYPTIAN HIEROGLYPH F034
++<U00013124> /xf0/x93/x84/xa4 EGYPTIAN HIEROGLYPH F035
++<U00013125> /xf0/x93/x84/xa5 EGYPTIAN HIEROGLYPH F036
++<U00013126> /xf0/x93/x84/xa6 EGYPTIAN HIEROGLYPH F037
++<U00013127> /xf0/x93/x84/xa7 EGYPTIAN HIEROGLYPH F037A
++<U00013128> /xf0/x93/x84/xa8 EGYPTIAN HIEROGLYPH F038
++<U00013129> /xf0/x93/x84/xa9 EGYPTIAN HIEROGLYPH F038A
++<U0001312A> /xf0/x93/x84/xaa EGYPTIAN HIEROGLYPH F039
++<U0001312B> /xf0/x93/x84/xab EGYPTIAN HIEROGLYPH F040
++<U0001312C> /xf0/x93/x84/xac EGYPTIAN HIEROGLYPH F041
++<U0001312D> /xf0/x93/x84/xad EGYPTIAN HIEROGLYPH F042
++<U0001312E> /xf0/x93/x84/xae EGYPTIAN HIEROGLYPH F043
++<U0001312F> /xf0/x93/x84/xaf EGYPTIAN HIEROGLYPH F044
++<U00013130> /xf0/x93/x84/xb0 EGYPTIAN HIEROGLYPH F045
++<U00013131> /xf0/x93/x84/xb1 EGYPTIAN HIEROGLYPH F045A
++<U00013132> /xf0/x93/x84/xb2 EGYPTIAN HIEROGLYPH F046
++<U00013133> /xf0/x93/x84/xb3 EGYPTIAN HIEROGLYPH F046A
++<U00013134> /xf0/x93/x84/xb4 EGYPTIAN HIEROGLYPH F047
++<U00013135> /xf0/x93/x84/xb5 EGYPTIAN HIEROGLYPH F047A
++<U00013136> /xf0/x93/x84/xb6 EGYPTIAN HIEROGLYPH F048
++<U00013137> /xf0/x93/x84/xb7 EGYPTIAN HIEROGLYPH F049
++<U00013138> /xf0/x93/x84/xb8 EGYPTIAN HIEROGLYPH F050
++<U00013139> /xf0/x93/x84/xb9 EGYPTIAN HIEROGLYPH F051
++<U0001313A> /xf0/x93/x84/xba EGYPTIAN HIEROGLYPH F051A
++<U0001313B> /xf0/x93/x84/xbb EGYPTIAN HIEROGLYPH F051B
++<U0001313C> /xf0/x93/x84/xbc EGYPTIAN HIEROGLYPH F051C
++<U0001313D> /xf0/x93/x84/xbd EGYPTIAN HIEROGLYPH F052
++<U0001313E> /xf0/x93/x84/xbe EGYPTIAN HIEROGLYPH F053
++<U0001313F> /xf0/x93/x84/xbf EGYPTIAN HIEROGLYPH G001
++<U00013140> /xf0/x93/x85/x80 EGYPTIAN HIEROGLYPH G002
++<U00013141> /xf0/x93/x85/x81 EGYPTIAN HIEROGLYPH G003
++<U00013142> /xf0/x93/x85/x82 EGYPTIAN HIEROGLYPH G004
++<U00013143> /xf0/x93/x85/x83 EGYPTIAN HIEROGLYPH G005
++<U00013144> /xf0/x93/x85/x84 EGYPTIAN HIEROGLYPH G006
++<U00013145> /xf0/x93/x85/x85 EGYPTIAN HIEROGLYPH G006A
++<U00013146> /xf0/x93/x85/x86 EGYPTIAN HIEROGLYPH G007
++<U00013147> /xf0/x93/x85/x87 EGYPTIAN HIEROGLYPH G007A
++<U00013148> /xf0/x93/x85/x88 EGYPTIAN HIEROGLYPH G007B
++<U00013149> /xf0/x93/x85/x89 EGYPTIAN HIEROGLYPH G008
++<U0001314A> /xf0/x93/x85/x8a EGYPTIAN HIEROGLYPH G009
++<U0001314B> /xf0/x93/x85/x8b EGYPTIAN HIEROGLYPH G010
++<U0001314C> /xf0/x93/x85/x8c EGYPTIAN HIEROGLYPH G011
++<U0001314D> /xf0/x93/x85/x8d EGYPTIAN HIEROGLYPH G011A
++<U0001314E> /xf0/x93/x85/x8e EGYPTIAN HIEROGLYPH G012
++<U0001314F> /xf0/x93/x85/x8f EGYPTIAN HIEROGLYPH G013
++<U00013150> /xf0/x93/x85/x90 EGYPTIAN HIEROGLYPH G014
++<U00013151> /xf0/x93/x85/x91 EGYPTIAN HIEROGLYPH G015
++<U00013152> /xf0/x93/x85/x92 EGYPTIAN HIEROGLYPH G016
++<U00013153> /xf0/x93/x85/x93 EGYPTIAN HIEROGLYPH G017
++<U00013154> /xf0/x93/x85/x94 EGYPTIAN HIEROGLYPH G018
++<U00013155> /xf0/x93/x85/x95 EGYPTIAN HIEROGLYPH G019
++<U00013156> /xf0/x93/x85/x96 EGYPTIAN HIEROGLYPH G020
++<U00013157> /xf0/x93/x85/x97 EGYPTIAN HIEROGLYPH G020A
++<U00013158> /xf0/x93/x85/x98 EGYPTIAN HIEROGLYPH G021
++<U00013159> /xf0/x93/x85/x99 EGYPTIAN HIEROGLYPH G022
++<U0001315A> /xf0/x93/x85/x9a EGYPTIAN HIEROGLYPH G023
++<U0001315B> /xf0/x93/x85/x9b EGYPTIAN HIEROGLYPH G024
++<U0001315C> /xf0/x93/x85/x9c EGYPTIAN HIEROGLYPH G025
++<U0001315D> /xf0/x93/x85/x9d EGYPTIAN HIEROGLYPH G026
++<U0001315E> /xf0/x93/x85/x9e EGYPTIAN HIEROGLYPH G026A
++<U0001315F> /xf0/x93/x85/x9f EGYPTIAN HIEROGLYPH G027
++<U00013160> /xf0/x93/x85/xa0 EGYPTIAN HIEROGLYPH G028
++<U00013161> /xf0/x93/x85/xa1 EGYPTIAN HIEROGLYPH G029
++<U00013162> /xf0/x93/x85/xa2 EGYPTIAN HIEROGLYPH G030
++<U00013163> /xf0/x93/x85/xa3 EGYPTIAN HIEROGLYPH G031
++<U00013164> /xf0/x93/x85/xa4 EGYPTIAN HIEROGLYPH G032
++<U00013165> /xf0/x93/x85/xa5 EGYPTIAN HIEROGLYPH G033
++<U00013166> /xf0/x93/x85/xa6 EGYPTIAN HIEROGLYPH G034
++<U00013167> /xf0/x93/x85/xa7 EGYPTIAN HIEROGLYPH G035
++<U00013168> /xf0/x93/x85/xa8 EGYPTIAN HIEROGLYPH G036
++<U00013169> /xf0/x93/x85/xa9 EGYPTIAN HIEROGLYPH G036A
++<U0001316A> /xf0/x93/x85/xaa EGYPTIAN HIEROGLYPH G037
++<U0001316B> /xf0/x93/x85/xab EGYPTIAN HIEROGLYPH G037A
++<U0001316C> /xf0/x93/x85/xac EGYPTIAN HIEROGLYPH G038
++<U0001316D> /xf0/x93/x85/xad EGYPTIAN HIEROGLYPH G039
++<U0001316E> /xf0/x93/x85/xae EGYPTIAN HIEROGLYPH G040
++<U0001316F> /xf0/x93/x85/xaf EGYPTIAN HIEROGLYPH G041
++<U00013170> /xf0/x93/x85/xb0 EGYPTIAN HIEROGLYPH G042
++<U00013171> /xf0/x93/x85/xb1 EGYPTIAN HIEROGLYPH G043
++<U00013172> /xf0/x93/x85/xb2 EGYPTIAN HIEROGLYPH G043A
++<U00013173> /xf0/x93/x85/xb3 EGYPTIAN HIEROGLYPH G044
++<U00013174> /xf0/x93/x85/xb4 EGYPTIAN HIEROGLYPH G045
++<U00013175> /xf0/x93/x85/xb5 EGYPTIAN HIEROGLYPH G045A
++<U00013176> /xf0/x93/x85/xb6 EGYPTIAN HIEROGLYPH G046
++<U00013177> /xf0/x93/x85/xb7 EGYPTIAN HIEROGLYPH G047
++<U00013178> /xf0/x93/x85/xb8 EGYPTIAN HIEROGLYPH G048
++<U00013179> /xf0/x93/x85/xb9 EGYPTIAN HIEROGLYPH G049
++<U0001317A> /xf0/x93/x85/xba EGYPTIAN HIEROGLYPH G050
++<U0001317B> /xf0/x93/x85/xbb EGYPTIAN HIEROGLYPH G051
++<U0001317C> /xf0/x93/x85/xbc EGYPTIAN HIEROGLYPH G052
++<U0001317D> /xf0/x93/x85/xbd EGYPTIAN HIEROGLYPH G053
++<U0001317E> /xf0/x93/x85/xbe EGYPTIAN HIEROGLYPH G054
++<U0001317F> /xf0/x93/x85/xbf EGYPTIAN HIEROGLYPH H001
++<U00013180> /xf0/x93/x86/x80 EGYPTIAN HIEROGLYPH H002
++<U00013181> /xf0/x93/x86/x81 EGYPTIAN HIEROGLYPH H003
++<U00013182> /xf0/x93/x86/x82 EGYPTIAN HIEROGLYPH H004
++<U00013183> /xf0/x93/x86/x83 EGYPTIAN HIEROGLYPH H005
++<U00013184> /xf0/x93/x86/x84 EGYPTIAN HIEROGLYPH H006
++<U00013185> /xf0/x93/x86/x85 EGYPTIAN HIEROGLYPH H006A
++<U00013186> /xf0/x93/x86/x86 EGYPTIAN HIEROGLYPH H007
++<U00013187> /xf0/x93/x86/x87 EGYPTIAN HIEROGLYPH H008
++<U00013188> /xf0/x93/x86/x88 EGYPTIAN HIEROGLYPH I001
++<U00013189> /xf0/x93/x86/x89 EGYPTIAN HIEROGLYPH I002
++<U0001318A> /xf0/x93/x86/x8a EGYPTIAN HIEROGLYPH I003
++<U0001318B> /xf0/x93/x86/x8b EGYPTIAN HIEROGLYPH I004
++<U0001318C> /xf0/x93/x86/x8c EGYPTIAN HIEROGLYPH I005
++<U0001318D> /xf0/x93/x86/x8d EGYPTIAN HIEROGLYPH I005A
++<U0001318E> /xf0/x93/x86/x8e EGYPTIAN HIEROGLYPH I006
++<U0001318F> /xf0/x93/x86/x8f EGYPTIAN HIEROGLYPH I007
++<U00013190> /xf0/x93/x86/x90 EGYPTIAN HIEROGLYPH I008
++<U00013191> /xf0/x93/x86/x91 EGYPTIAN HIEROGLYPH I009
++<U00013192> /xf0/x93/x86/x92 EGYPTIAN HIEROGLYPH I009A
++<U00013193> /xf0/x93/x86/x93 EGYPTIAN HIEROGLYPH I010
++<U00013194> /xf0/x93/x86/x94 EGYPTIAN HIEROGLYPH I010A
++<U00013195> /xf0/x93/x86/x95 EGYPTIAN HIEROGLYPH I011
++<U00013196> /xf0/x93/x86/x96 EGYPTIAN HIEROGLYPH I011A
++<U00013197> /xf0/x93/x86/x97 EGYPTIAN HIEROGLYPH I012
++<U00013198> /xf0/x93/x86/x98 EGYPTIAN HIEROGLYPH I013
++<U00013199> /xf0/x93/x86/x99 EGYPTIAN HIEROGLYPH I014
++<U0001319A> /xf0/x93/x86/x9a EGYPTIAN HIEROGLYPH I015
++<U0001319B> /xf0/x93/x86/x9b EGYPTIAN HIEROGLYPH K001
++<U0001319C> /xf0/x93/x86/x9c EGYPTIAN HIEROGLYPH K002
++<U0001319D> /xf0/x93/x86/x9d EGYPTIAN HIEROGLYPH K003
++<U0001319E> /xf0/x93/x86/x9e EGYPTIAN HIEROGLYPH K004
++<U0001319F> /xf0/x93/x86/x9f EGYPTIAN HIEROGLYPH K005
++<U000131A0> /xf0/x93/x86/xa0 EGYPTIAN HIEROGLYPH K006
++<U000131A1> /xf0/x93/x86/xa1 EGYPTIAN HIEROGLYPH K007
++<U000131A2> /xf0/x93/x86/xa2 EGYPTIAN HIEROGLYPH K008
++<U000131A3> /xf0/x93/x86/xa3 EGYPTIAN HIEROGLYPH L001
++<U000131A4> /xf0/x93/x86/xa4 EGYPTIAN HIEROGLYPH L002
++<U000131A5> /xf0/x93/x86/xa5 EGYPTIAN HIEROGLYPH L002A
++<U000131A6> /xf0/x93/x86/xa6 EGYPTIAN HIEROGLYPH L003
++<U000131A7> /xf0/x93/x86/xa7 EGYPTIAN HIEROGLYPH L004
++<U000131A8> /xf0/x93/x86/xa8 EGYPTIAN HIEROGLYPH L005
++<U000131A9> /xf0/x93/x86/xa9 EGYPTIAN HIEROGLYPH L006
++<U000131AA> /xf0/x93/x86/xaa EGYPTIAN HIEROGLYPH L006A
++<U000131AB> /xf0/x93/x86/xab EGYPTIAN HIEROGLYPH L007
++<U000131AC> /xf0/x93/x86/xac EGYPTIAN HIEROGLYPH L008
++<U000131AD> /xf0/x93/x86/xad EGYPTIAN HIEROGLYPH M001
++<U000131AE> /xf0/x93/x86/xae EGYPTIAN HIEROGLYPH M001A
++<U000131AF> /xf0/x93/x86/xaf EGYPTIAN HIEROGLYPH M001B
++<U000131B0> /xf0/x93/x86/xb0 EGYPTIAN HIEROGLYPH M002
++<U000131B1> /xf0/x93/x86/xb1 EGYPTIAN HIEROGLYPH M003
++<U000131B2> /xf0/x93/x86/xb2 EGYPTIAN HIEROGLYPH M003A
++<U000131B3> /xf0/x93/x86/xb3 EGYPTIAN HIEROGLYPH M004
++<U000131B4> /xf0/x93/x86/xb4 EGYPTIAN HIEROGLYPH M005
++<U000131B5> /xf0/x93/x86/xb5 EGYPTIAN HIEROGLYPH M006
++<U000131B6> /xf0/x93/x86/xb6 EGYPTIAN HIEROGLYPH M007
++<U000131B7> /xf0/x93/x86/xb7 EGYPTIAN HIEROGLYPH M008
++<U000131B8> /xf0/x93/x86/xb8 EGYPTIAN HIEROGLYPH M009
++<U000131B9> /xf0/x93/x86/xb9 EGYPTIAN HIEROGLYPH M010
++<U000131BA> /xf0/x93/x86/xba EGYPTIAN HIEROGLYPH M010A
++<U000131BB> /xf0/x93/x86/xbb EGYPTIAN HIEROGLYPH M011
++<U000131BC> /xf0/x93/x86/xbc EGYPTIAN HIEROGLYPH M012
++<U000131BD> /xf0/x93/x86/xbd EGYPTIAN HIEROGLYPH M012A
++<U000131BE> /xf0/x93/x86/xbe EGYPTIAN HIEROGLYPH M012B
++<U000131BF> /xf0/x93/x86/xbf EGYPTIAN HIEROGLYPH M012C
++<U000131C0> /xf0/x93/x87/x80 EGYPTIAN HIEROGLYPH M012D
++<U000131C1> /xf0/x93/x87/x81 EGYPTIAN HIEROGLYPH M012E
++<U000131C2> /xf0/x93/x87/x82 EGYPTIAN HIEROGLYPH M012F
++<U000131C3> /xf0/x93/x87/x83 EGYPTIAN HIEROGLYPH M012G
++<U000131C4> /xf0/x93/x87/x84 EGYPTIAN HIEROGLYPH M012H
++<U000131C5> /xf0/x93/x87/x85 EGYPTIAN HIEROGLYPH M013
++<U000131C6> /xf0/x93/x87/x86 EGYPTIAN HIEROGLYPH M014
++<U000131C7> /xf0/x93/x87/x87 EGYPTIAN HIEROGLYPH M015
++<U000131C8> /xf0/x93/x87/x88 EGYPTIAN HIEROGLYPH M015A
++<U000131C9> /xf0/x93/x87/x89 EGYPTIAN HIEROGLYPH M016
++<U000131CA> /xf0/x93/x87/x8a EGYPTIAN HIEROGLYPH M016A
++<U000131CB> /xf0/x93/x87/x8b EGYPTIAN HIEROGLYPH M017
++<U000131CC> /xf0/x93/x87/x8c EGYPTIAN HIEROGLYPH M017A
++<U000131CD> /xf0/x93/x87/x8d EGYPTIAN HIEROGLYPH M018
++<U000131CE> /xf0/x93/x87/x8e EGYPTIAN HIEROGLYPH M019
++<U000131CF> /xf0/x93/x87/x8f EGYPTIAN HIEROGLYPH M020
++<U000131D0> /xf0/x93/x87/x90 EGYPTIAN HIEROGLYPH M021
++<U000131D1> /xf0/x93/x87/x91 EGYPTIAN HIEROGLYPH M022
++<U000131D2> /xf0/x93/x87/x92 EGYPTIAN HIEROGLYPH M022A
++<U000131D3> /xf0/x93/x87/x93 EGYPTIAN HIEROGLYPH M023
++<U000131D4> /xf0/x93/x87/x94 EGYPTIAN HIEROGLYPH M024
++<U000131D5> /xf0/x93/x87/x95 EGYPTIAN HIEROGLYPH M024A
++<U000131D6> /xf0/x93/x87/x96 EGYPTIAN HIEROGLYPH M025
++<U000131D7> /xf0/x93/x87/x97 EGYPTIAN HIEROGLYPH M026
++<U000131D8> /xf0/x93/x87/x98 EGYPTIAN HIEROGLYPH M027
++<U000131D9> /xf0/x93/x87/x99 EGYPTIAN HIEROGLYPH M028
++<U000131DA> /xf0/x93/x87/x9a EGYPTIAN HIEROGLYPH M028A
++<U000131DB> /xf0/x93/x87/x9b EGYPTIAN HIEROGLYPH M029
++<U000131DC> /xf0/x93/x87/x9c EGYPTIAN HIEROGLYPH M030
++<U000131DD> /xf0/x93/x87/x9d EGYPTIAN HIEROGLYPH M031
++<U000131DE> /xf0/x93/x87/x9e EGYPTIAN HIEROGLYPH M031A
++<U000131DF> /xf0/x93/x87/x9f EGYPTIAN HIEROGLYPH M032
++<U000131E0> /xf0/x93/x87/xa0 EGYPTIAN HIEROGLYPH M033
++<U000131E1> /xf0/x93/x87/xa1 EGYPTIAN HIEROGLYPH M033A
++<U000131E2> /xf0/x93/x87/xa2 EGYPTIAN HIEROGLYPH M033B
++<U000131E3> /xf0/x93/x87/xa3 EGYPTIAN HIEROGLYPH M034
++<U000131E4> /xf0/x93/x87/xa4 EGYPTIAN HIEROGLYPH M035
++<U000131E5> /xf0/x93/x87/xa5 EGYPTIAN HIEROGLYPH M036
++<U000131E6> /xf0/x93/x87/xa6 EGYPTIAN HIEROGLYPH M037
++<U000131E7> /xf0/x93/x87/xa7 EGYPTIAN HIEROGLYPH M038
++<U000131E8> /xf0/x93/x87/xa8 EGYPTIAN HIEROGLYPH M039
++<U000131E9> /xf0/x93/x87/xa9 EGYPTIAN HIEROGLYPH M040
++<U000131EA> /xf0/x93/x87/xaa EGYPTIAN HIEROGLYPH M040A
++<U000131EB> /xf0/x93/x87/xab EGYPTIAN HIEROGLYPH M041
++<U000131EC> /xf0/x93/x87/xac EGYPTIAN HIEROGLYPH M042
++<U000131ED> /xf0/x93/x87/xad EGYPTIAN HIEROGLYPH M043
++<U000131EE> /xf0/x93/x87/xae EGYPTIAN HIEROGLYPH M044
++<U000131EF> /xf0/x93/x87/xaf EGYPTIAN HIEROGLYPH N001
++<U000131F0> /xf0/x93/x87/xb0 EGYPTIAN HIEROGLYPH N002
++<U000131F1> /xf0/x93/x87/xb1 EGYPTIAN HIEROGLYPH N003
++<U000131F2> /xf0/x93/x87/xb2 EGYPTIAN HIEROGLYPH N004
++<U000131F3> /xf0/x93/x87/xb3 EGYPTIAN HIEROGLYPH N005
++<U000131F4> /xf0/x93/x87/xb4 EGYPTIAN HIEROGLYPH N006
++<U000131F5> /xf0/x93/x87/xb5 EGYPTIAN HIEROGLYPH N007
++<U000131F6> /xf0/x93/x87/xb6 EGYPTIAN HIEROGLYPH N008
++<U000131F7> /xf0/x93/x87/xb7 EGYPTIAN HIEROGLYPH N009
++<U000131F8> /xf0/x93/x87/xb8 EGYPTIAN HIEROGLYPH N010
++<U000131F9> /xf0/x93/x87/xb9 EGYPTIAN HIEROGLYPH N011
++<U000131FA> /xf0/x93/x87/xba EGYPTIAN HIEROGLYPH N012
++<U000131FB> /xf0/x93/x87/xbb EGYPTIAN HIEROGLYPH N013
++<U000131FC> /xf0/x93/x87/xbc EGYPTIAN HIEROGLYPH N014
++<U000131FD> /xf0/x93/x87/xbd EGYPTIAN HIEROGLYPH N015
++<U000131FE> /xf0/x93/x87/xbe EGYPTIAN HIEROGLYPH N016
++<U000131FF> /xf0/x93/x87/xbf EGYPTIAN HIEROGLYPH N017
++<U00013200> /xf0/x93/x88/x80 EGYPTIAN HIEROGLYPH N018
++<U00013201> /xf0/x93/x88/x81 EGYPTIAN HIEROGLYPH N018A
++<U00013202> /xf0/x93/x88/x82 EGYPTIAN HIEROGLYPH N018B
++<U00013203> /xf0/x93/x88/x83 EGYPTIAN HIEROGLYPH N019
++<U00013204> /xf0/x93/x88/x84 EGYPTIAN HIEROGLYPH N020
++<U00013205> /xf0/x93/x88/x85 EGYPTIAN HIEROGLYPH N021
++<U00013206> /xf0/x93/x88/x86 EGYPTIAN HIEROGLYPH N022
++<U00013207> /xf0/x93/x88/x87 EGYPTIAN HIEROGLYPH N023
++<U00013208> /xf0/x93/x88/x88 EGYPTIAN HIEROGLYPH N024
++<U00013209> /xf0/x93/x88/x89 EGYPTIAN HIEROGLYPH N025
++<U0001320A> /xf0/x93/x88/x8a EGYPTIAN HIEROGLYPH N025A
++<U0001320B> /xf0/x93/x88/x8b EGYPTIAN HIEROGLYPH N026
++<U0001320C> /xf0/x93/x88/x8c EGYPTIAN HIEROGLYPH N027
++<U0001320D> /xf0/x93/x88/x8d EGYPTIAN HIEROGLYPH N028
++<U0001320E> /xf0/x93/x88/x8e EGYPTIAN HIEROGLYPH N029
++<U0001320F> /xf0/x93/x88/x8f EGYPTIAN HIEROGLYPH N030
++<U00013210> /xf0/x93/x88/x90 EGYPTIAN HIEROGLYPH N031
++<U00013211> /xf0/x93/x88/x91 EGYPTIAN HIEROGLYPH N032
++<U00013212> /xf0/x93/x88/x92 EGYPTIAN HIEROGLYPH N033
++<U00013213> /xf0/x93/x88/x93 EGYPTIAN HIEROGLYPH N033A
++<U00013214> /xf0/x93/x88/x94 EGYPTIAN HIEROGLYPH N034
++<U00013215> /xf0/x93/x88/x95 EGYPTIAN HIEROGLYPH N034A
++<U00013216> /xf0/x93/x88/x96 EGYPTIAN HIEROGLYPH N035
++<U00013217> /xf0/x93/x88/x97 EGYPTIAN HIEROGLYPH N035A
++<U00013218> /xf0/x93/x88/x98 EGYPTIAN HIEROGLYPH N036
++<U00013219> /xf0/x93/x88/x99 EGYPTIAN HIEROGLYPH N037
++<U0001321A> /xf0/x93/x88/x9a EGYPTIAN HIEROGLYPH N037A
++<U0001321B> /xf0/x93/x88/x9b EGYPTIAN HIEROGLYPH N038
++<U0001321C> /xf0/x93/x88/x9c EGYPTIAN HIEROGLYPH N039
++<U0001321D> /xf0/x93/x88/x9d EGYPTIAN HIEROGLYPH N040
++<U0001321E> /xf0/x93/x88/x9e EGYPTIAN HIEROGLYPH N041
++<U0001321F> /xf0/x93/x88/x9f EGYPTIAN HIEROGLYPH N042
++<U00013220> /xf0/x93/x88/xa0 EGYPTIAN HIEROGLYPH NL001
++<U00013221> /xf0/x93/x88/xa1 EGYPTIAN HIEROGLYPH NL002
++<U00013222> /xf0/x93/x88/xa2 EGYPTIAN HIEROGLYPH NL003
++<U00013223> /xf0/x93/x88/xa3 EGYPTIAN HIEROGLYPH NL004
++<U00013224> /xf0/x93/x88/xa4 EGYPTIAN HIEROGLYPH NL005
++<U00013225> /xf0/x93/x88/xa5 EGYPTIAN HIEROGLYPH NL005A
++<U00013226> /xf0/x93/x88/xa6 EGYPTIAN HIEROGLYPH NL006
++<U00013227> /xf0/x93/x88/xa7 EGYPTIAN HIEROGLYPH NL007
++<U00013228> /xf0/x93/x88/xa8 EGYPTIAN HIEROGLYPH NL008
++<U00013229> /xf0/x93/x88/xa9 EGYPTIAN HIEROGLYPH NL009
++<U0001322A> /xf0/x93/x88/xaa EGYPTIAN HIEROGLYPH NL010
++<U0001322B> /xf0/x93/x88/xab EGYPTIAN HIEROGLYPH NL011
++<U0001322C> /xf0/x93/x88/xac EGYPTIAN HIEROGLYPH NL012
++<U0001322D> /xf0/x93/x88/xad EGYPTIAN HIEROGLYPH NL013
++<U0001322E> /xf0/x93/x88/xae EGYPTIAN HIEROGLYPH NL014
++<U0001322F> /xf0/x93/x88/xaf EGYPTIAN HIEROGLYPH NL015
++<U00013230> /xf0/x93/x88/xb0 EGYPTIAN HIEROGLYPH NL016
++<U00013231> /xf0/x93/x88/xb1 EGYPTIAN HIEROGLYPH NL017
++<U00013232> /xf0/x93/x88/xb2 EGYPTIAN HIEROGLYPH NL017A
++<U00013233> /xf0/x93/x88/xb3 EGYPTIAN HIEROGLYPH NL018
++<U00013234> /xf0/x93/x88/xb4 EGYPTIAN HIEROGLYPH NL019
++<U00013235> /xf0/x93/x88/xb5 EGYPTIAN HIEROGLYPH NL020
++<U00013236> /xf0/x93/x88/xb6 EGYPTIAN HIEROGLYPH NU001
++<U00013237> /xf0/x93/x88/xb7 EGYPTIAN HIEROGLYPH NU002
++<U00013238> /xf0/x93/x88/xb8 EGYPTIAN HIEROGLYPH NU003
++<U00013239> /xf0/x93/x88/xb9 EGYPTIAN HIEROGLYPH NU004
++<U0001323A> /xf0/x93/x88/xba EGYPTIAN HIEROGLYPH NU005
++<U0001323B> /xf0/x93/x88/xbb EGYPTIAN HIEROGLYPH NU006
++<U0001323C> /xf0/x93/x88/xbc EGYPTIAN HIEROGLYPH NU007
++<U0001323D> /xf0/x93/x88/xbd EGYPTIAN HIEROGLYPH NU008
++<U0001323E> /xf0/x93/x88/xbe EGYPTIAN HIEROGLYPH NU009
++<U0001323F> /xf0/x93/x88/xbf EGYPTIAN HIEROGLYPH NU010
++<U00013240> /xf0/x93/x89/x80 EGYPTIAN HIEROGLYPH NU010A
++<U00013241> /xf0/x93/x89/x81 EGYPTIAN HIEROGLYPH NU011
++<U00013242> /xf0/x93/x89/x82 EGYPTIAN HIEROGLYPH NU011A
++<U00013243> /xf0/x93/x89/x83 EGYPTIAN HIEROGLYPH NU012
++<U00013244> /xf0/x93/x89/x84 EGYPTIAN HIEROGLYPH NU013
++<U00013245> /xf0/x93/x89/x85 EGYPTIAN HIEROGLYPH NU014
++<U00013246> /xf0/x93/x89/x86 EGYPTIAN HIEROGLYPH NU015
++<U00013247> /xf0/x93/x89/x87 EGYPTIAN HIEROGLYPH NU016
++<U00013248> /xf0/x93/x89/x88 EGYPTIAN HIEROGLYPH NU017
++<U00013249> /xf0/x93/x89/x89 EGYPTIAN HIEROGLYPH NU018
++<U0001324A> /xf0/x93/x89/x8a EGYPTIAN HIEROGLYPH NU018A
++<U0001324B> /xf0/x93/x89/x8b EGYPTIAN HIEROGLYPH NU019
++<U0001324C> /xf0/x93/x89/x8c EGYPTIAN HIEROGLYPH NU020
++<U0001324D> /xf0/x93/x89/x8d EGYPTIAN HIEROGLYPH NU021
++<U0001324E> /xf0/x93/x89/x8e EGYPTIAN HIEROGLYPH NU022
++<U0001324F> /xf0/x93/x89/x8f EGYPTIAN HIEROGLYPH NU022A
++<U00013250> /xf0/x93/x89/x90 EGYPTIAN HIEROGLYPH O001
++<U00013251> /xf0/x93/x89/x91 EGYPTIAN HIEROGLYPH O001A
++<U00013252> /xf0/x93/x89/x92 EGYPTIAN HIEROGLYPH O002
++<U00013253> /xf0/x93/x89/x93 EGYPTIAN HIEROGLYPH O003
++<U00013254> /xf0/x93/x89/x94 EGYPTIAN HIEROGLYPH O004
++<U00013255> /xf0/x93/x89/x95 EGYPTIAN HIEROGLYPH O005
++<U00013256> /xf0/x93/x89/x96 EGYPTIAN HIEROGLYPH O005A
++<U00013257> /xf0/x93/x89/x97 EGYPTIAN HIEROGLYPH O006
++<U00013258> /xf0/x93/x89/x98 EGYPTIAN HIEROGLYPH O006A
++<U00013259> /xf0/x93/x89/x99 EGYPTIAN HIEROGLYPH O006B
++<U0001325A> /xf0/x93/x89/x9a EGYPTIAN HIEROGLYPH O006C
++<U0001325B> /xf0/x93/x89/x9b EGYPTIAN HIEROGLYPH O006D
++<U0001325C> /xf0/x93/x89/x9c EGYPTIAN HIEROGLYPH O006E
++<U0001325D> /xf0/x93/x89/x9d EGYPTIAN HIEROGLYPH O006F
++<U0001325E> /xf0/x93/x89/x9e EGYPTIAN HIEROGLYPH O007
++<U0001325F> /xf0/x93/x89/x9f EGYPTIAN HIEROGLYPH O008
++<U00013260> /xf0/x93/x89/xa0 EGYPTIAN HIEROGLYPH O009
++<U00013261> /xf0/x93/x89/xa1 EGYPTIAN HIEROGLYPH O010
++<U00013262> /xf0/x93/x89/xa2 EGYPTIAN HIEROGLYPH O010A
++<U00013263> /xf0/x93/x89/xa3 EGYPTIAN HIEROGLYPH O010B
++<U00013264> /xf0/x93/x89/xa4 EGYPTIAN HIEROGLYPH O010C
++<U00013265> /xf0/x93/x89/xa5 EGYPTIAN HIEROGLYPH O011
++<U00013266> /xf0/x93/x89/xa6 EGYPTIAN HIEROGLYPH O012
++<U00013267> /xf0/x93/x89/xa7 EGYPTIAN HIEROGLYPH O013
++<U00013268> /xf0/x93/x89/xa8 EGYPTIAN HIEROGLYPH O014
++<U00013269> /xf0/x93/x89/xa9 EGYPTIAN HIEROGLYPH O015
++<U0001326A> /xf0/x93/x89/xaa EGYPTIAN HIEROGLYPH O016
++<U0001326B> /xf0/x93/x89/xab EGYPTIAN HIEROGLYPH O017
++<U0001326C> /xf0/x93/x89/xac EGYPTIAN HIEROGLYPH O018
++<U0001326D> /xf0/x93/x89/xad EGYPTIAN HIEROGLYPH O019
++<U0001326E> /xf0/x93/x89/xae EGYPTIAN HIEROGLYPH O019A
++<U0001326F> /xf0/x93/x89/xaf EGYPTIAN HIEROGLYPH O020
++<U00013270> /xf0/x93/x89/xb0 EGYPTIAN HIEROGLYPH O020A
++<U00013271> /xf0/x93/x89/xb1 EGYPTIAN HIEROGLYPH O021
++<U00013272> /xf0/x93/x89/xb2 EGYPTIAN HIEROGLYPH O022
++<U00013273> /xf0/x93/x89/xb3 EGYPTIAN HIEROGLYPH O023
++<U00013274> /xf0/x93/x89/xb4 EGYPTIAN HIEROGLYPH O024
++<U00013275> /xf0/x93/x89/xb5 EGYPTIAN HIEROGLYPH O024A
++<U00013276> /xf0/x93/x89/xb6 EGYPTIAN HIEROGLYPH O025
++<U00013277> /xf0/x93/x89/xb7 EGYPTIAN HIEROGLYPH O025A
++<U00013278> /xf0/x93/x89/xb8 EGYPTIAN HIEROGLYPH O026
++<U00013279> /xf0/x93/x89/xb9 EGYPTIAN HIEROGLYPH O027
++<U0001327A> /xf0/x93/x89/xba EGYPTIAN HIEROGLYPH O028
++<U0001327B> /xf0/x93/x89/xbb EGYPTIAN HIEROGLYPH O029
++<U0001327C> /xf0/x93/x89/xbc EGYPTIAN HIEROGLYPH O029A
++<U0001327D> /xf0/x93/x89/xbd EGYPTIAN HIEROGLYPH O030
++<U0001327E> /xf0/x93/x89/xbe EGYPTIAN HIEROGLYPH O030A
++<U0001327F> /xf0/x93/x89/xbf EGYPTIAN HIEROGLYPH O031
++<U00013280> /xf0/x93/x8a/x80 EGYPTIAN HIEROGLYPH O032
++<U00013281> /xf0/x93/x8a/x81 EGYPTIAN HIEROGLYPH O033
++<U00013282> /xf0/x93/x8a/x82 EGYPTIAN HIEROGLYPH O033A
++<U00013283> /xf0/x93/x8a/x83 EGYPTIAN HIEROGLYPH O034
++<U00013284> /xf0/x93/x8a/x84 EGYPTIAN HIEROGLYPH O035
++<U00013285> /xf0/x93/x8a/x85 EGYPTIAN HIEROGLYPH O036
++<U00013286> /xf0/x93/x8a/x86 EGYPTIAN HIEROGLYPH O036A
++<U00013287> /xf0/x93/x8a/x87 EGYPTIAN HIEROGLYPH O036B
++<U00013288> /xf0/x93/x8a/x88 EGYPTIAN HIEROGLYPH O036C
++<U00013289> /xf0/x93/x8a/x89 EGYPTIAN HIEROGLYPH O036D
++<U0001328A> /xf0/x93/x8a/x8a EGYPTIAN HIEROGLYPH O037
++<U0001328B> /xf0/x93/x8a/x8b EGYPTIAN HIEROGLYPH O038
++<U0001328C> /xf0/x93/x8a/x8c EGYPTIAN HIEROGLYPH O039
++<U0001328D> /xf0/x93/x8a/x8d EGYPTIAN HIEROGLYPH O040
++<U0001328E> /xf0/x93/x8a/x8e EGYPTIAN HIEROGLYPH O041
++<U0001328F> /xf0/x93/x8a/x8f EGYPTIAN HIEROGLYPH O042
++<U00013290> /xf0/x93/x8a/x90 EGYPTIAN HIEROGLYPH O043
++<U00013291> /xf0/x93/x8a/x91 EGYPTIAN HIEROGLYPH O044
++<U00013292> /xf0/x93/x8a/x92 EGYPTIAN HIEROGLYPH O045
++<U00013293> /xf0/x93/x8a/x93 EGYPTIAN HIEROGLYPH O046
++<U00013294> /xf0/x93/x8a/x94 EGYPTIAN HIEROGLYPH O047
++<U00013295> /xf0/x93/x8a/x95 EGYPTIAN HIEROGLYPH O048
++<U00013296> /xf0/x93/x8a/x96 EGYPTIAN HIEROGLYPH O049
++<U00013297> /xf0/x93/x8a/x97 EGYPTIAN HIEROGLYPH O050
++<U00013298> /xf0/x93/x8a/x98 EGYPTIAN HIEROGLYPH O050A
++<U00013299> /xf0/x93/x8a/x99 EGYPTIAN HIEROGLYPH O050B
++<U0001329A> /xf0/x93/x8a/x9a EGYPTIAN HIEROGLYPH O051
++<U0001329B> /xf0/x93/x8a/x9b EGYPTIAN HIEROGLYPH P001
++<U0001329C> /xf0/x93/x8a/x9c EGYPTIAN HIEROGLYPH P001A
++<U0001329D> /xf0/x93/x8a/x9d EGYPTIAN HIEROGLYPH P002
++<U0001329E> /xf0/x93/x8a/x9e EGYPTIAN HIEROGLYPH P003
++<U0001329F> /xf0/x93/x8a/x9f EGYPTIAN HIEROGLYPH P003A
++<U000132A0> /xf0/x93/x8a/xa0 EGYPTIAN HIEROGLYPH P004
++<U000132A1> /xf0/x93/x8a/xa1 EGYPTIAN HIEROGLYPH P005
++<U000132A2> /xf0/x93/x8a/xa2 EGYPTIAN HIEROGLYPH P006
++<U000132A3> /xf0/x93/x8a/xa3 EGYPTIAN HIEROGLYPH P007
++<U000132A4> /xf0/x93/x8a/xa4 EGYPTIAN HIEROGLYPH P008
++<U000132A5> /xf0/x93/x8a/xa5 EGYPTIAN HIEROGLYPH P009
++<U000132A6> /xf0/x93/x8a/xa6 EGYPTIAN HIEROGLYPH P010
++<U000132A7> /xf0/x93/x8a/xa7 EGYPTIAN HIEROGLYPH P011
++<U000132A8> /xf0/x93/x8a/xa8 EGYPTIAN HIEROGLYPH Q001
++<U000132A9> /xf0/x93/x8a/xa9 EGYPTIAN HIEROGLYPH Q002
++<U000132AA> /xf0/x93/x8a/xaa EGYPTIAN HIEROGLYPH Q003
++<U000132AB> /xf0/x93/x8a/xab EGYPTIAN HIEROGLYPH Q004
++<U000132AC> /xf0/x93/x8a/xac EGYPTIAN HIEROGLYPH Q005
++<U000132AD> /xf0/x93/x8a/xad EGYPTIAN HIEROGLYPH Q006
++<U000132AE> /xf0/x93/x8a/xae EGYPTIAN HIEROGLYPH Q007
++<U000132AF> /xf0/x93/x8a/xaf EGYPTIAN HIEROGLYPH R001
++<U000132B0> /xf0/x93/x8a/xb0 EGYPTIAN HIEROGLYPH R002
++<U000132B1> /xf0/x93/x8a/xb1 EGYPTIAN HIEROGLYPH R002A
++<U000132B2> /xf0/x93/x8a/xb2 EGYPTIAN HIEROGLYPH R003
++<U000132B3> /xf0/x93/x8a/xb3 EGYPTIAN HIEROGLYPH R003A
++<U000132B4> /xf0/x93/x8a/xb4 EGYPTIAN HIEROGLYPH R003B
++<U000132B5> /xf0/x93/x8a/xb5 EGYPTIAN HIEROGLYPH R004
++<U000132B6> /xf0/x93/x8a/xb6 EGYPTIAN HIEROGLYPH R005
++<U000132B7> /xf0/x93/x8a/xb7 EGYPTIAN HIEROGLYPH R006
++<U000132B8> /xf0/x93/x8a/xb8 EGYPTIAN HIEROGLYPH R007
++<U000132B9> /xf0/x93/x8a/xb9 EGYPTIAN HIEROGLYPH R008
++<U000132BA> /xf0/x93/x8a/xba EGYPTIAN HIEROGLYPH R009
++<U000132BB> /xf0/x93/x8a/xbb EGYPTIAN HIEROGLYPH R010
++<U000132BC> /xf0/x93/x8a/xbc EGYPTIAN HIEROGLYPH R010A
++<U000132BD> /xf0/x93/x8a/xbd EGYPTIAN HIEROGLYPH R011
++<U000132BE> /xf0/x93/x8a/xbe EGYPTIAN HIEROGLYPH R012
++<U000132BF> /xf0/x93/x8a/xbf EGYPTIAN HIEROGLYPH R013
++<U000132C0> /xf0/x93/x8b/x80 EGYPTIAN HIEROGLYPH R014
++<U000132C1> /xf0/x93/x8b/x81 EGYPTIAN HIEROGLYPH R015
++<U000132C2> /xf0/x93/x8b/x82 EGYPTIAN HIEROGLYPH R016
++<U000132C3> /xf0/x93/x8b/x83 EGYPTIAN HIEROGLYPH R016A
++<U000132C4> /xf0/x93/x8b/x84 EGYPTIAN HIEROGLYPH R017
++<U000132C5> /xf0/x93/x8b/x85 EGYPTIAN HIEROGLYPH R018
++<U000132C6> /xf0/x93/x8b/x86 EGYPTIAN HIEROGLYPH R019
++<U000132C7> /xf0/x93/x8b/x87 EGYPTIAN HIEROGLYPH R020
++<U000132C8> /xf0/x93/x8b/x88 EGYPTIAN HIEROGLYPH R021
++<U000132C9> /xf0/x93/x8b/x89 EGYPTIAN HIEROGLYPH R022
++<U000132CA> /xf0/x93/x8b/x8a EGYPTIAN HIEROGLYPH R023
++<U000132CB> /xf0/x93/x8b/x8b EGYPTIAN HIEROGLYPH R024
++<U000132CC> /xf0/x93/x8b/x8c EGYPTIAN HIEROGLYPH R025
++<U000132CD> /xf0/x93/x8b/x8d EGYPTIAN HIEROGLYPH R026
++<U000132CE> /xf0/x93/x8b/x8e EGYPTIAN HIEROGLYPH R027
++<U000132CF> /xf0/x93/x8b/x8f EGYPTIAN HIEROGLYPH R028
++<U000132D0> /xf0/x93/x8b/x90 EGYPTIAN HIEROGLYPH R029
++<U000132D1> /xf0/x93/x8b/x91 EGYPTIAN HIEROGLYPH S001
++<U000132D2> /xf0/x93/x8b/x92 EGYPTIAN HIEROGLYPH S002
++<U000132D3> /xf0/x93/x8b/x93 EGYPTIAN HIEROGLYPH S002A
++<U000132D4> /xf0/x93/x8b/x94 EGYPTIAN HIEROGLYPH S003
++<U000132D5> /xf0/x93/x8b/x95 EGYPTIAN HIEROGLYPH S004
++<U000132D6> /xf0/x93/x8b/x96 EGYPTIAN HIEROGLYPH S005
++<U000132D7> /xf0/x93/x8b/x97 EGYPTIAN HIEROGLYPH S006
++<U000132D8> /xf0/x93/x8b/x98 EGYPTIAN HIEROGLYPH S006A
++<U000132D9> /xf0/x93/x8b/x99 EGYPTIAN HIEROGLYPH S007
++<U000132DA> /xf0/x93/x8b/x9a EGYPTIAN HIEROGLYPH S008
++<U000132DB> /xf0/x93/x8b/x9b EGYPTIAN HIEROGLYPH S009
++<U000132DC> /xf0/x93/x8b/x9c EGYPTIAN HIEROGLYPH S010
++<U000132DD> /xf0/x93/x8b/x9d EGYPTIAN HIEROGLYPH S011
++<U000132DE> /xf0/x93/x8b/x9e EGYPTIAN HIEROGLYPH S012
++<U000132DF> /xf0/x93/x8b/x9f EGYPTIAN HIEROGLYPH S013
++<U000132E0> /xf0/x93/x8b/xa0 EGYPTIAN HIEROGLYPH S014
++<U000132E1> /xf0/x93/x8b/xa1 EGYPTIAN HIEROGLYPH S014A
++<U000132E2> /xf0/x93/x8b/xa2 EGYPTIAN HIEROGLYPH S014B
++<U000132E3> /xf0/x93/x8b/xa3 EGYPTIAN HIEROGLYPH S015
++<U000132E4> /xf0/x93/x8b/xa4 EGYPTIAN HIEROGLYPH S016
++<U000132E5> /xf0/x93/x8b/xa5 EGYPTIAN HIEROGLYPH S017
++<U000132E6> /xf0/x93/x8b/xa6 EGYPTIAN HIEROGLYPH S017A
++<U000132E7> /xf0/x93/x8b/xa7 EGYPTIAN HIEROGLYPH S018
++<U000132E8> /xf0/x93/x8b/xa8 EGYPTIAN HIEROGLYPH S019
++<U000132E9> /xf0/x93/x8b/xa9 EGYPTIAN HIEROGLYPH S020
++<U000132EA> /xf0/x93/x8b/xaa EGYPTIAN HIEROGLYPH S021
++<U000132EB> /xf0/x93/x8b/xab EGYPTIAN HIEROGLYPH S022
++<U000132EC> /xf0/x93/x8b/xac EGYPTIAN HIEROGLYPH S023
++<U000132ED> /xf0/x93/x8b/xad EGYPTIAN HIEROGLYPH S024
++<U000132EE> /xf0/x93/x8b/xae EGYPTIAN HIEROGLYPH S025
++<U000132EF> /xf0/x93/x8b/xaf EGYPTIAN HIEROGLYPH S026
++<U000132F0> /xf0/x93/x8b/xb0 EGYPTIAN HIEROGLYPH S026A
++<U000132F1> /xf0/x93/x8b/xb1 EGYPTIAN HIEROGLYPH S026B
++<U000132F2> /xf0/x93/x8b/xb2 EGYPTIAN HIEROGLYPH S027
++<U000132F3> /xf0/x93/x8b/xb3 EGYPTIAN HIEROGLYPH S028
++<U000132F4> /xf0/x93/x8b/xb4 EGYPTIAN HIEROGLYPH S029
++<U000132F5> /xf0/x93/x8b/xb5 EGYPTIAN HIEROGLYPH S030
++<U000132F6> /xf0/x93/x8b/xb6 EGYPTIAN HIEROGLYPH S031
++<U000132F7> /xf0/x93/x8b/xb7 EGYPTIAN HIEROGLYPH S032
++<U000132F8> /xf0/x93/x8b/xb8 EGYPTIAN HIEROGLYPH S033
++<U000132F9> /xf0/x93/x8b/xb9 EGYPTIAN HIEROGLYPH S034
++<U000132FA> /xf0/x93/x8b/xba EGYPTIAN HIEROGLYPH S035
++<U000132FB> /xf0/x93/x8b/xbb EGYPTIAN HIEROGLYPH S035A
++<U000132FC> /xf0/x93/x8b/xbc EGYPTIAN HIEROGLYPH S036
++<U000132FD> /xf0/x93/x8b/xbd EGYPTIAN HIEROGLYPH S037
++<U000132FE> /xf0/x93/x8b/xbe EGYPTIAN HIEROGLYPH S038
++<U000132FF> /xf0/x93/x8b/xbf EGYPTIAN HIEROGLYPH S039
++<U00013300> /xf0/x93/x8c/x80 EGYPTIAN HIEROGLYPH S040
++<U00013301> /xf0/x93/x8c/x81 EGYPTIAN HIEROGLYPH S041
++<U00013302> /xf0/x93/x8c/x82 EGYPTIAN HIEROGLYPH S042
++<U00013303> /xf0/x93/x8c/x83 EGYPTIAN HIEROGLYPH S043
++<U00013304> /xf0/x93/x8c/x84 EGYPTIAN HIEROGLYPH S044
++<U00013305> /xf0/x93/x8c/x85 EGYPTIAN HIEROGLYPH S045
++<U00013306> /xf0/x93/x8c/x86 EGYPTIAN HIEROGLYPH S046
++<U00013307> /xf0/x93/x8c/x87 EGYPTIAN HIEROGLYPH T001
++<U00013308> /xf0/x93/x8c/x88 EGYPTIAN HIEROGLYPH T002
++<U00013309> /xf0/x93/x8c/x89 EGYPTIAN HIEROGLYPH T003
++<U0001330A> /xf0/x93/x8c/x8a EGYPTIAN HIEROGLYPH T003A
++<U0001330B> /xf0/x93/x8c/x8b EGYPTIAN HIEROGLYPH T004
++<U0001330C> /xf0/x93/x8c/x8c EGYPTIAN HIEROGLYPH T005
++<U0001330D> /xf0/x93/x8c/x8d EGYPTIAN HIEROGLYPH T006
++<U0001330E> /xf0/x93/x8c/x8e EGYPTIAN HIEROGLYPH T007
++<U0001330F> /xf0/x93/x8c/x8f EGYPTIAN HIEROGLYPH T007A
++<U00013310> /xf0/x93/x8c/x90 EGYPTIAN HIEROGLYPH T008
++<U00013311> /xf0/x93/x8c/x91 EGYPTIAN HIEROGLYPH T008A
++<U00013312> /xf0/x93/x8c/x92 EGYPTIAN HIEROGLYPH T009
++<U00013313> /xf0/x93/x8c/x93 EGYPTIAN HIEROGLYPH T009A
++<U00013314> /xf0/x93/x8c/x94 EGYPTIAN HIEROGLYPH T010
++<U00013315> /xf0/x93/x8c/x95 EGYPTIAN HIEROGLYPH T011
++<U00013316> /xf0/x93/x8c/x96 EGYPTIAN HIEROGLYPH T011A
++<U00013317> /xf0/x93/x8c/x97 EGYPTIAN HIEROGLYPH T012
++<U00013318> /xf0/x93/x8c/x98 EGYPTIAN HIEROGLYPH T013
++<U00013319> /xf0/x93/x8c/x99 EGYPTIAN HIEROGLYPH T014
++<U0001331A> /xf0/x93/x8c/x9a EGYPTIAN HIEROGLYPH T015
++<U0001331B> /xf0/x93/x8c/x9b EGYPTIAN HIEROGLYPH T016
++<U0001331C> /xf0/x93/x8c/x9c EGYPTIAN HIEROGLYPH T016A
++<U0001331D> /xf0/x93/x8c/x9d EGYPTIAN HIEROGLYPH T017
++<U0001331E> /xf0/x93/x8c/x9e EGYPTIAN HIEROGLYPH T018
++<U0001331F> /xf0/x93/x8c/x9f EGYPTIAN HIEROGLYPH T019
++<U00013320> /xf0/x93/x8c/xa0 EGYPTIAN HIEROGLYPH T020
++<U00013321> /xf0/x93/x8c/xa1 EGYPTIAN HIEROGLYPH T021
++<U00013322> /xf0/x93/x8c/xa2 EGYPTIAN HIEROGLYPH T022
++<U00013323> /xf0/x93/x8c/xa3 EGYPTIAN HIEROGLYPH T023
++<U00013324> /xf0/x93/x8c/xa4 EGYPTIAN HIEROGLYPH T024
++<U00013325> /xf0/x93/x8c/xa5 EGYPTIAN HIEROGLYPH T025
++<U00013326> /xf0/x93/x8c/xa6 EGYPTIAN HIEROGLYPH T026
++<U00013327> /xf0/x93/x8c/xa7 EGYPTIAN HIEROGLYPH T027
++<U00013328> /xf0/x93/x8c/xa8 EGYPTIAN HIEROGLYPH T028
++<U00013329> /xf0/x93/x8c/xa9 EGYPTIAN HIEROGLYPH T029
++<U0001332A> /xf0/x93/x8c/xaa EGYPTIAN HIEROGLYPH T030
++<U0001332B> /xf0/x93/x8c/xab EGYPTIAN HIEROGLYPH T031
++<U0001332C> /xf0/x93/x8c/xac EGYPTIAN HIEROGLYPH T032
++<U0001332D> /xf0/x93/x8c/xad EGYPTIAN HIEROGLYPH T032A
++<U0001332E> /xf0/x93/x8c/xae EGYPTIAN HIEROGLYPH T033
++<U0001332F> /xf0/x93/x8c/xaf EGYPTIAN HIEROGLYPH T033A
++<U00013330> /xf0/x93/x8c/xb0 EGYPTIAN HIEROGLYPH T034
++<U00013331> /xf0/x93/x8c/xb1 EGYPTIAN HIEROGLYPH T035
++<U00013332> /xf0/x93/x8c/xb2 EGYPTIAN HIEROGLYPH T036
++<U00013333> /xf0/x93/x8c/xb3 EGYPTIAN HIEROGLYPH U001
++<U00013334> /xf0/x93/x8c/xb4 EGYPTIAN HIEROGLYPH U002
++<U00013335> /xf0/x93/x8c/xb5 EGYPTIAN HIEROGLYPH U003
++<U00013336> /xf0/x93/x8c/xb6 EGYPTIAN HIEROGLYPH U004
++<U00013337> /xf0/x93/x8c/xb7 EGYPTIAN HIEROGLYPH U005
++<U00013338> /xf0/x93/x8c/xb8 EGYPTIAN HIEROGLYPH U006
++<U00013339> /xf0/x93/x8c/xb9 EGYPTIAN HIEROGLYPH U006A
++<U0001333A> /xf0/x93/x8c/xba EGYPTIAN HIEROGLYPH U006B
++<U0001333B> /xf0/x93/x8c/xbb EGYPTIAN HIEROGLYPH U007
++<U0001333C> /xf0/x93/x8c/xbc EGYPTIAN HIEROGLYPH U008
++<U0001333D> /xf0/x93/x8c/xbd EGYPTIAN HIEROGLYPH U009
++<U0001333E> /xf0/x93/x8c/xbe EGYPTIAN HIEROGLYPH U010
++<U0001333F> /xf0/x93/x8c/xbf EGYPTIAN HIEROGLYPH U011
++<U00013340> /xf0/x93/x8d/x80 EGYPTIAN HIEROGLYPH U012
++<U00013341> /xf0/x93/x8d/x81 EGYPTIAN HIEROGLYPH U013
++<U00013342> /xf0/x93/x8d/x82 EGYPTIAN HIEROGLYPH U014
++<U00013343> /xf0/x93/x8d/x83 EGYPTIAN HIEROGLYPH U015
++<U00013344> /xf0/x93/x8d/x84 EGYPTIAN HIEROGLYPH U016
++<U00013345> /xf0/x93/x8d/x85 EGYPTIAN HIEROGLYPH U017
++<U00013346> /xf0/x93/x8d/x86 EGYPTIAN HIEROGLYPH U018
++<U00013347> /xf0/x93/x8d/x87 EGYPTIAN HIEROGLYPH U019
++<U00013348> /xf0/x93/x8d/x88 EGYPTIAN HIEROGLYPH U020
++<U00013349> /xf0/x93/x8d/x89 EGYPTIAN HIEROGLYPH U021
++<U0001334A> /xf0/x93/x8d/x8a EGYPTIAN HIEROGLYPH U022
++<U0001334B> /xf0/x93/x8d/x8b EGYPTIAN HIEROGLYPH U023
++<U0001334C> /xf0/x93/x8d/x8c EGYPTIAN HIEROGLYPH U023A
++<U0001334D> /xf0/x93/x8d/x8d EGYPTIAN HIEROGLYPH U024
++<U0001334E> /xf0/x93/x8d/x8e EGYPTIAN HIEROGLYPH U025
++<U0001334F> /xf0/x93/x8d/x8f EGYPTIAN HIEROGLYPH U026
++<U00013350> /xf0/x93/x8d/x90 EGYPTIAN HIEROGLYPH U027
++<U00013351> /xf0/x93/x8d/x91 EGYPTIAN HIEROGLYPH U028
++<U00013352> /xf0/x93/x8d/x92 EGYPTIAN HIEROGLYPH U029
++<U00013353> /xf0/x93/x8d/x93 EGYPTIAN HIEROGLYPH U029A
++<U00013354> /xf0/x93/x8d/x94 EGYPTIAN HIEROGLYPH U030
++<U00013355> /xf0/x93/x8d/x95 EGYPTIAN HIEROGLYPH U031
++<U00013356> /xf0/x93/x8d/x96 EGYPTIAN HIEROGLYPH U032
++<U00013357> /xf0/x93/x8d/x97 EGYPTIAN HIEROGLYPH U032A
++<U00013358> /xf0/x93/x8d/x98 EGYPTIAN HIEROGLYPH U033
++<U00013359> /xf0/x93/x8d/x99 EGYPTIAN HIEROGLYPH U034
++<U0001335A> /xf0/x93/x8d/x9a EGYPTIAN HIEROGLYPH U035
++<U0001335B> /xf0/x93/x8d/x9b EGYPTIAN HIEROGLYPH U036
++<U0001335C> /xf0/x93/x8d/x9c EGYPTIAN HIEROGLYPH U037
++<U0001335D> /xf0/x93/x8d/x9d EGYPTIAN HIEROGLYPH U038
++<U0001335E> /xf0/x93/x8d/x9e EGYPTIAN HIEROGLYPH U039
++<U0001335F> /xf0/x93/x8d/x9f EGYPTIAN HIEROGLYPH U040
++<U00013360> /xf0/x93/x8d/xa0 EGYPTIAN HIEROGLYPH U041
++<U00013361> /xf0/x93/x8d/xa1 EGYPTIAN HIEROGLYPH U042
++<U00013362> /xf0/x93/x8d/xa2 EGYPTIAN HIEROGLYPH V001
++<U00013363> /xf0/x93/x8d/xa3 EGYPTIAN HIEROGLYPH V001A
++<U00013364> /xf0/x93/x8d/xa4 EGYPTIAN HIEROGLYPH V001B
++<U00013365> /xf0/x93/x8d/xa5 EGYPTIAN HIEROGLYPH V001C
++<U00013366> /xf0/x93/x8d/xa6 EGYPTIAN HIEROGLYPH V001D
++<U00013367> /xf0/x93/x8d/xa7 EGYPTIAN HIEROGLYPH V001E
++<U00013368> /xf0/x93/x8d/xa8 EGYPTIAN HIEROGLYPH V001F
++<U00013369> /xf0/x93/x8d/xa9 EGYPTIAN HIEROGLYPH V001G
++<U0001336A> /xf0/x93/x8d/xaa EGYPTIAN HIEROGLYPH V001H
++<U0001336B> /xf0/x93/x8d/xab EGYPTIAN HIEROGLYPH V001I
++<U0001336C> /xf0/x93/x8d/xac EGYPTIAN HIEROGLYPH V002
++<U0001336D> /xf0/x93/x8d/xad EGYPTIAN HIEROGLYPH V002A
++<U0001336E> /xf0/x93/x8d/xae EGYPTIAN HIEROGLYPH V003
++<U0001336F> /xf0/x93/x8d/xaf EGYPTIAN HIEROGLYPH V004
++<U00013370> /xf0/x93/x8d/xb0 EGYPTIAN HIEROGLYPH V005
++<U00013371> /xf0/x93/x8d/xb1 EGYPTIAN HIEROGLYPH V006
++<U00013372> /xf0/x93/x8d/xb2 EGYPTIAN HIEROGLYPH V007
++<U00013373> /xf0/x93/x8d/xb3 EGYPTIAN HIEROGLYPH V007A
++<U00013374> /xf0/x93/x8d/xb4 EGYPTIAN HIEROGLYPH V007B
++<U00013375> /xf0/x93/x8d/xb5 EGYPTIAN HIEROGLYPH V008
++<U00013376> /xf0/x93/x8d/xb6 EGYPTIAN HIEROGLYPH V009
++<U00013377> /xf0/x93/x8d/xb7 EGYPTIAN HIEROGLYPH V010
++<U00013378> /xf0/x93/x8d/xb8 EGYPTIAN HIEROGLYPH V011
++<U00013379> /xf0/x93/x8d/xb9 EGYPTIAN HIEROGLYPH V011A
++<U0001337A> /xf0/x93/x8d/xba EGYPTIAN HIEROGLYPH V011B
++<U0001337B> /xf0/x93/x8d/xbb EGYPTIAN HIEROGLYPH V011C
++<U0001337C> /xf0/x93/x8d/xbc EGYPTIAN HIEROGLYPH V012
++<U0001337D> /xf0/x93/x8d/xbd EGYPTIAN HIEROGLYPH V012A
++<U0001337E> /xf0/x93/x8d/xbe EGYPTIAN HIEROGLYPH V012B
++<U0001337F> /xf0/x93/x8d/xbf EGYPTIAN HIEROGLYPH V013
++<U00013380> /xf0/x93/x8e/x80 EGYPTIAN HIEROGLYPH V014
++<U00013381> /xf0/x93/x8e/x81 EGYPTIAN HIEROGLYPH V015
++<U00013382> /xf0/x93/x8e/x82 EGYPTIAN HIEROGLYPH V016
++<U00013383> /xf0/x93/x8e/x83 EGYPTIAN HIEROGLYPH V017
++<U00013384> /xf0/x93/x8e/x84 EGYPTIAN HIEROGLYPH V018
++<U00013385> /xf0/x93/x8e/x85 EGYPTIAN HIEROGLYPH V019
++<U00013386> /xf0/x93/x8e/x86 EGYPTIAN HIEROGLYPH V020
++<U00013387> /xf0/x93/x8e/x87 EGYPTIAN HIEROGLYPH V020A
++<U00013388> /xf0/x93/x8e/x88 EGYPTIAN HIEROGLYPH V020B
++<U00013389> /xf0/x93/x8e/x89 EGYPTIAN HIEROGLYPH V020C
++<U0001338A> /xf0/x93/x8e/x8a EGYPTIAN HIEROGLYPH V020D
++<U0001338B> /xf0/x93/x8e/x8b EGYPTIAN HIEROGLYPH V020E
++<U0001338C> /xf0/x93/x8e/x8c EGYPTIAN HIEROGLYPH V020F
++<U0001338D> /xf0/x93/x8e/x8d EGYPTIAN HIEROGLYPH V020G
++<U0001338E> /xf0/x93/x8e/x8e EGYPTIAN HIEROGLYPH V020H
++<U0001338F> /xf0/x93/x8e/x8f EGYPTIAN HIEROGLYPH V020I
++<U00013390> /xf0/x93/x8e/x90 EGYPTIAN HIEROGLYPH V020J
++<U00013391> /xf0/x93/x8e/x91 EGYPTIAN HIEROGLYPH V020K
++<U00013392> /xf0/x93/x8e/x92 EGYPTIAN HIEROGLYPH V020L
++<U00013393> /xf0/x93/x8e/x93 EGYPTIAN HIEROGLYPH V021
++<U00013394> /xf0/x93/x8e/x94 EGYPTIAN HIEROGLYPH V022
++<U00013395> /xf0/x93/x8e/x95 EGYPTIAN HIEROGLYPH V023
++<U00013396> /xf0/x93/x8e/x96 EGYPTIAN HIEROGLYPH V023A
++<U00013397> /xf0/x93/x8e/x97 EGYPTIAN HIEROGLYPH V024
++<U00013398> /xf0/x93/x8e/x98 EGYPTIAN HIEROGLYPH V025
++<U00013399> /xf0/x93/x8e/x99 EGYPTIAN HIEROGLYPH V026
++<U0001339A> /xf0/x93/x8e/x9a EGYPTIAN HIEROGLYPH V027
++<U0001339B> /xf0/x93/x8e/x9b EGYPTIAN HIEROGLYPH V028
++<U0001339C> /xf0/x93/x8e/x9c EGYPTIAN HIEROGLYPH V028A
++<U0001339D> /xf0/x93/x8e/x9d EGYPTIAN HIEROGLYPH V029
++<U0001339E> /xf0/x93/x8e/x9e EGYPTIAN HIEROGLYPH V029A
++<U0001339F> /xf0/x93/x8e/x9f EGYPTIAN HIEROGLYPH V030
++<U000133A0> /xf0/x93/x8e/xa0 EGYPTIAN HIEROGLYPH V030A
++<U000133A1> /xf0/x93/x8e/xa1 EGYPTIAN HIEROGLYPH V031
++<U000133A2> /xf0/x93/x8e/xa2 EGYPTIAN HIEROGLYPH V031A
++<U000133A3> /xf0/x93/x8e/xa3 EGYPTIAN HIEROGLYPH V032
++<U000133A4> /xf0/x93/x8e/xa4 EGYPTIAN HIEROGLYPH V033
++<U000133A5> /xf0/x93/x8e/xa5 EGYPTIAN HIEROGLYPH V033A
++<U000133A6> /xf0/x93/x8e/xa6 EGYPTIAN HIEROGLYPH V034
++<U000133A7> /xf0/x93/x8e/xa7 EGYPTIAN HIEROGLYPH V035
++<U000133A8> /xf0/x93/x8e/xa8 EGYPTIAN HIEROGLYPH V036
++<U000133A9> /xf0/x93/x8e/xa9 EGYPTIAN HIEROGLYPH V037
++<U000133AA> /xf0/x93/x8e/xaa EGYPTIAN HIEROGLYPH V037A
++<U000133AB> /xf0/x93/x8e/xab EGYPTIAN HIEROGLYPH V038
++<U000133AC> /xf0/x93/x8e/xac EGYPTIAN HIEROGLYPH V039
++<U000133AD> /xf0/x93/x8e/xad EGYPTIAN HIEROGLYPH V040
++<U000133AE> /xf0/x93/x8e/xae EGYPTIAN HIEROGLYPH V040A
++<U000133AF> /xf0/x93/x8e/xaf EGYPTIAN HIEROGLYPH W001
++<U000133B0> /xf0/x93/x8e/xb0 EGYPTIAN HIEROGLYPH W002
++<U000133B1> /xf0/x93/x8e/xb1 EGYPTIAN HIEROGLYPH W003
++<U000133B2> /xf0/x93/x8e/xb2 EGYPTIAN HIEROGLYPH W003A
++<U000133B3> /xf0/x93/x8e/xb3 EGYPTIAN HIEROGLYPH W004
++<U000133B4> /xf0/x93/x8e/xb4 EGYPTIAN HIEROGLYPH W005
++<U000133B5> /xf0/x93/x8e/xb5 EGYPTIAN HIEROGLYPH W006
++<U000133B6> /xf0/x93/x8e/xb6 EGYPTIAN HIEROGLYPH W007
++<U000133B7> /xf0/x93/x8e/xb7 EGYPTIAN HIEROGLYPH W008
++<U000133B8> /xf0/x93/x8e/xb8 EGYPTIAN HIEROGLYPH W009
++<U000133B9> /xf0/x93/x8e/xb9 EGYPTIAN HIEROGLYPH W009A
++<U000133BA> /xf0/x93/x8e/xba EGYPTIAN HIEROGLYPH W010
++<U000133BB> /xf0/x93/x8e/xbb EGYPTIAN HIEROGLYPH W010A
++<U000133BC> /xf0/x93/x8e/xbc EGYPTIAN HIEROGLYPH W011
++<U000133BD> /xf0/x93/x8e/xbd EGYPTIAN HIEROGLYPH W012
++<U000133BE> /xf0/x93/x8e/xbe EGYPTIAN HIEROGLYPH W013
++<U000133BF> /xf0/x93/x8e/xbf EGYPTIAN HIEROGLYPH W014
++<U000133C0> /xf0/x93/x8f/x80 EGYPTIAN HIEROGLYPH W014A
++<U000133C1> /xf0/x93/x8f/x81 EGYPTIAN HIEROGLYPH W015
++<U000133C2> /xf0/x93/x8f/x82 EGYPTIAN HIEROGLYPH W016
++<U000133C3> /xf0/x93/x8f/x83 EGYPTIAN HIEROGLYPH W017
++<U000133C4> /xf0/x93/x8f/x84 EGYPTIAN HIEROGLYPH W017A
++<U000133C5> /xf0/x93/x8f/x85 EGYPTIAN HIEROGLYPH W018
++<U000133C6> /xf0/x93/x8f/x86 EGYPTIAN HIEROGLYPH W018A
++<U000133C7> /xf0/x93/x8f/x87 EGYPTIAN HIEROGLYPH W019
++<U000133C8> /xf0/x93/x8f/x88 EGYPTIAN HIEROGLYPH W020
++<U000133C9> /xf0/x93/x8f/x89 EGYPTIAN HIEROGLYPH W021
++<U000133CA> /xf0/x93/x8f/x8a EGYPTIAN HIEROGLYPH W022
++<U000133CB> /xf0/x93/x8f/x8b EGYPTIAN HIEROGLYPH W023
++<U000133CC> /xf0/x93/x8f/x8c EGYPTIAN HIEROGLYPH W024
++<U000133CD> /xf0/x93/x8f/x8d EGYPTIAN HIEROGLYPH W024A
++<U000133CE> /xf0/x93/x8f/x8e EGYPTIAN HIEROGLYPH W025
++<U000133CF> /xf0/x93/x8f/x8f EGYPTIAN HIEROGLYPH X001
++<U000133D0> /xf0/x93/x8f/x90 EGYPTIAN HIEROGLYPH X002
++<U000133D1> /xf0/x93/x8f/x91 EGYPTIAN HIEROGLYPH X003
++<U000133D2> /xf0/x93/x8f/x92 EGYPTIAN HIEROGLYPH X004
++<U000133D3> /xf0/x93/x8f/x93 EGYPTIAN HIEROGLYPH X004A
++<U000133D4> /xf0/x93/x8f/x94 EGYPTIAN HIEROGLYPH X004B
++<U000133D5> /xf0/x93/x8f/x95 EGYPTIAN HIEROGLYPH X005
++<U000133D6> /xf0/x93/x8f/x96 EGYPTIAN HIEROGLYPH X006
++<U000133D7> /xf0/x93/x8f/x97 EGYPTIAN HIEROGLYPH X006A
++<U000133D8> /xf0/x93/x8f/x98 EGYPTIAN HIEROGLYPH X007
++<U000133D9> /xf0/x93/x8f/x99 EGYPTIAN HIEROGLYPH X008
++<U000133DA> /xf0/x93/x8f/x9a EGYPTIAN HIEROGLYPH X008A
++<U000133DB> /xf0/x93/x8f/x9b EGYPTIAN HIEROGLYPH Y001
++<U000133DC> /xf0/x93/x8f/x9c EGYPTIAN HIEROGLYPH Y001A
++<U000133DD> /xf0/x93/x8f/x9d EGYPTIAN HIEROGLYPH Y002
++<U000133DE> /xf0/x93/x8f/x9e EGYPTIAN HIEROGLYPH Y003
++<U000133DF> /xf0/x93/x8f/x9f EGYPTIAN HIEROGLYPH Y004
++<U000133E0> /xf0/x93/x8f/xa0 EGYPTIAN HIEROGLYPH Y005
++<U000133E1> /xf0/x93/x8f/xa1 EGYPTIAN HIEROGLYPH Y006
++<U000133E2> /xf0/x93/x8f/xa2 EGYPTIAN HIEROGLYPH Y007
++<U000133E3> /xf0/x93/x8f/xa3 EGYPTIAN HIEROGLYPH Y008
++<U000133E4> /xf0/x93/x8f/xa4 EGYPTIAN HIEROGLYPH Z001
++<U000133E5> /xf0/x93/x8f/xa5 EGYPTIAN HIEROGLYPH Z002
++<U000133E6> /xf0/x93/x8f/xa6 EGYPTIAN HIEROGLYPH Z002A
++<U000133E7> /xf0/x93/x8f/xa7 EGYPTIAN HIEROGLYPH Z002B
++<U000133E8> /xf0/x93/x8f/xa8 EGYPTIAN HIEROGLYPH Z002C
++<U000133E9> /xf0/x93/x8f/xa9 EGYPTIAN HIEROGLYPH Z002D
++<U000133EA> /xf0/x93/x8f/xaa EGYPTIAN HIEROGLYPH Z003
++<U000133EB> /xf0/x93/x8f/xab EGYPTIAN HIEROGLYPH Z003A
++<U000133EC> /xf0/x93/x8f/xac EGYPTIAN HIEROGLYPH Z003B
++<U000133ED> /xf0/x93/x8f/xad EGYPTIAN HIEROGLYPH Z004
++<U000133EE> /xf0/x93/x8f/xae EGYPTIAN HIEROGLYPH Z004A
++<U000133EF> /xf0/x93/x8f/xaf EGYPTIAN HIEROGLYPH Z005
++<U000133F0> /xf0/x93/x8f/xb0 EGYPTIAN HIEROGLYPH Z005A
++<U000133F1> /xf0/x93/x8f/xb1 EGYPTIAN HIEROGLYPH Z006
++<U000133F2> /xf0/x93/x8f/xb2 EGYPTIAN HIEROGLYPH Z007
++<U000133F3> /xf0/x93/x8f/xb3 EGYPTIAN HIEROGLYPH Z008
++<U000133F4> /xf0/x93/x8f/xb4 EGYPTIAN HIEROGLYPH Z009
++<U000133F5> /xf0/x93/x8f/xb5 EGYPTIAN HIEROGLYPH Z010
++<U000133F6> /xf0/x93/x8f/xb6 EGYPTIAN HIEROGLYPH Z011
++<U000133F7> /xf0/x93/x8f/xb7 EGYPTIAN HIEROGLYPH Z012
++<U000133F8> /xf0/x93/x8f/xb8 EGYPTIAN HIEROGLYPH Z013
++<U000133F9> /xf0/x93/x8f/xb9 EGYPTIAN HIEROGLYPH Z014
++<U000133FA> /xf0/x93/x8f/xba EGYPTIAN HIEROGLYPH Z015
++<U000133FB> /xf0/x93/x8f/xbb EGYPTIAN HIEROGLYPH Z015A
++<U000133FC> /xf0/x93/x8f/xbc EGYPTIAN HIEROGLYPH Z015B
++<U000133FD> /xf0/x93/x8f/xbd EGYPTIAN HIEROGLYPH Z015C
++<U000133FE> /xf0/x93/x8f/xbe EGYPTIAN HIEROGLYPH Z015D
++<U000133FF> /xf0/x93/x8f/xbf EGYPTIAN HIEROGLYPH Z015E
++<U00013400> /xf0/x93/x90/x80 EGYPTIAN HIEROGLYPH Z015F
++<U00013401> /xf0/x93/x90/x81 EGYPTIAN HIEROGLYPH Z015G
++<U00013402> /xf0/x93/x90/x82 EGYPTIAN HIEROGLYPH Z015H
++<U00013403> /xf0/x93/x90/x83 EGYPTIAN HIEROGLYPH Z015I
++<U00013404> /xf0/x93/x90/x84 EGYPTIAN HIEROGLYPH Z016
++<U00013405> /xf0/x93/x90/x85 EGYPTIAN HIEROGLYPH Z016A
++<U00013406> /xf0/x93/x90/x86 EGYPTIAN HIEROGLYPH Z016B
++<U00013407> /xf0/x93/x90/x87 EGYPTIAN HIEROGLYPH Z016C
++<U00013408> /xf0/x93/x90/x88 EGYPTIAN HIEROGLYPH Z016D
++<U00013409> /xf0/x93/x90/x89 EGYPTIAN HIEROGLYPH Z016E
++<U0001340A> /xf0/x93/x90/x8a EGYPTIAN HIEROGLYPH Z016F
++<U0001340B> /xf0/x93/x90/x8b EGYPTIAN HIEROGLYPH Z016G
++<U0001340C> /xf0/x93/x90/x8c EGYPTIAN HIEROGLYPH Z016H
++<U0001340D> /xf0/x93/x90/x8d EGYPTIAN HIEROGLYPH AA001
++<U0001340E> /xf0/x93/x90/x8e EGYPTIAN HIEROGLYPH AA002
++<U0001340F> /xf0/x93/x90/x8f EGYPTIAN HIEROGLYPH AA003
++<U00013410> /xf0/x93/x90/x90 EGYPTIAN HIEROGLYPH AA004
++<U00013411> /xf0/x93/x90/x91 EGYPTIAN HIEROGLYPH AA005
++<U00013412> /xf0/x93/x90/x92 EGYPTIAN HIEROGLYPH AA006
++<U00013413> /xf0/x93/x90/x93 EGYPTIAN HIEROGLYPH AA007
++<U00013414> /xf0/x93/x90/x94 EGYPTIAN HIEROGLYPH AA007A
++<U00013415> /xf0/x93/x90/x95 EGYPTIAN HIEROGLYPH AA007B
++<U00013416> /xf0/x93/x90/x96 EGYPTIAN HIEROGLYPH AA008
++<U00013417> /xf0/x93/x90/x97 EGYPTIAN HIEROGLYPH AA009
++<U00013418> /xf0/x93/x90/x98 EGYPTIAN HIEROGLYPH AA010
++<U00013419> /xf0/x93/x90/x99 EGYPTIAN HIEROGLYPH AA011
++<U0001341A> /xf0/x93/x90/x9a EGYPTIAN HIEROGLYPH AA012
++<U0001341B> /xf0/x93/x90/x9b EGYPTIAN HIEROGLYPH AA013
++<U0001341C> /xf0/x93/x90/x9c EGYPTIAN HIEROGLYPH AA014
++<U0001341D> /xf0/x93/x90/x9d EGYPTIAN HIEROGLYPH AA015
++<U0001341E> /xf0/x93/x90/x9e EGYPTIAN HIEROGLYPH AA016
++<U0001341F> /xf0/x93/x90/x9f EGYPTIAN HIEROGLYPH AA017
++<U00013420> /xf0/x93/x90/xa0 EGYPTIAN HIEROGLYPH AA018
++<U00013421> /xf0/x93/x90/xa1 EGYPTIAN HIEROGLYPH AA019
++<U00013422> /xf0/x93/x90/xa2 EGYPTIAN HIEROGLYPH AA020
++<U00013423> /xf0/x93/x90/xa3 EGYPTIAN HIEROGLYPH AA021
++<U00013424> /xf0/x93/x90/xa4 EGYPTIAN HIEROGLYPH AA022
++<U00013425> /xf0/x93/x90/xa5 EGYPTIAN HIEROGLYPH AA023
++<U00013426> /xf0/x93/x90/xa6 EGYPTIAN HIEROGLYPH AA024
++<U00013427> /xf0/x93/x90/xa7 EGYPTIAN HIEROGLYPH AA025
++<U00013428> /xf0/x93/x90/xa8 EGYPTIAN HIEROGLYPH AA026
++<U00013429> /xf0/x93/x90/xa9 EGYPTIAN HIEROGLYPH AA027
++<U0001342A> /xf0/x93/x90/xaa EGYPTIAN HIEROGLYPH AA028
++<U0001342B> /xf0/x93/x90/xab EGYPTIAN HIEROGLYPH AA029
++<U0001342C> /xf0/x93/x90/xac EGYPTIAN HIEROGLYPH AA030
++<U0001342D> /xf0/x93/x90/xad EGYPTIAN HIEROGLYPH AA031
++<U0001342E> /xf0/x93/x90/xae EGYPTIAN HIEROGLYPH AA032
++<U00016800> /xf0/x96/xa0/x80 BAMUM LETTER PHASE-A NGKUE MFON
++<U00016801> /xf0/x96/xa0/x81 BAMUM LETTER PHASE-A GBIEE FON
++<U00016802> /xf0/x96/xa0/x82 BAMUM LETTER PHASE-A PON MFON PIPAEMGBIEE
++<U00016803> /xf0/x96/xa0/x83 BAMUM LETTER PHASE-A PON MFON PIPAEMBA
++<U00016804> /xf0/x96/xa0/x84 BAMUM LETTER PHASE-A NAA MFON
++<U00016805> /xf0/x96/xa0/x85 BAMUM LETTER PHASE-A SHUENSHUET
++<U00016806> /xf0/x96/xa0/x86 BAMUM LETTER PHASE-A TITA MFON
++<U00016807> /xf0/x96/xa0/x87 BAMUM LETTER PHASE-A NZA MFON
++<U00016808> /xf0/x96/xa0/x88 BAMUM LETTER PHASE-A SHINDA PA NJI
++<U00016809> /xf0/x96/xa0/x89 BAMUM LETTER PHASE-A PON PA NJI PIPAEMGBIEE
++<U0001680A> /xf0/x96/xa0/x8a BAMUM LETTER PHASE-A PON PA NJI PIPAEMBA
++<U0001680B> /xf0/x96/xa0/x8b BAMUM LETTER PHASE-A MAEMBGBIEE
++<U0001680C> /xf0/x96/xa0/x8c BAMUM LETTER PHASE-A TU MAEMBA
++<U0001680D> /xf0/x96/xa0/x8d BAMUM LETTER PHASE-A NGANGU
++<U0001680E> /xf0/x96/xa0/x8e BAMUM LETTER PHASE-A MAEMVEUX
++<U0001680F> /xf0/x96/xa0/x8f BAMUM LETTER PHASE-A MANSUAE
++<U00016810> /xf0/x96/xa0/x90 BAMUM LETTER PHASE-A MVEUAENGAM
++<U00016811> /xf0/x96/xa0/x91 BAMUM LETTER PHASE-A SEUNYAM
++<U00016812> /xf0/x96/xa0/x92 BAMUM LETTER PHASE-A NTOQPEN
++<U00016813> /xf0/x96/xa0/x93 BAMUM LETTER PHASE-A KEUKEUTNDA
++<U00016814> /xf0/x96/xa0/x94 BAMUM LETTER PHASE-A NKINDI
++<U00016815> /xf0/x96/xa0/x95 BAMUM LETTER PHASE-A SUU
++<U00016816> /xf0/x96/xa0/x96 BAMUM LETTER PHASE-A NGKUENZEUM
++<U00016817> /xf0/x96/xa0/x97 BAMUM LETTER PHASE-A LAPAQ
++<U00016818> /xf0/x96/xa0/x98 BAMUM LETTER PHASE-A LET KUT
++<U00016819> /xf0/x96/xa0/x99 BAMUM LETTER PHASE-A NTAP MFAA
++<U0001681A> /xf0/x96/xa0/x9a BAMUM LETTER PHASE-A MAEKEUP
++<U0001681B> /xf0/x96/xa0/x9b BAMUM LETTER PHASE-A PASHAE
++<U0001681C> /xf0/x96/xa0/x9c BAMUM LETTER PHASE-A GHEUAERAE
++<U0001681D> /xf0/x96/xa0/x9d BAMUM LETTER PHASE-A PAMSHAE
++<U0001681E> /xf0/x96/xa0/x9e BAMUM LETTER PHASE-A MON NGGEUAET
++<U0001681F> /xf0/x96/xa0/x9f BAMUM LETTER PHASE-A NZUN MEUT
++<U00016820> /xf0/x96/xa0/xa0 BAMUM LETTER PHASE-A U YUQ NAE
++<U00016821> /xf0/x96/xa0/xa1 BAMUM LETTER PHASE-A GHEUAEGHEUAE
++<U00016822> /xf0/x96/xa0/xa2 BAMUM LETTER PHASE-A NTAP NTAA
++<U00016823> /xf0/x96/xa0/xa3 BAMUM LETTER PHASE-A SISA
++<U00016824> /xf0/x96/xa0/xa4 BAMUM LETTER PHASE-A MGBASA
++<U00016825> /xf0/x96/xa0/xa5 BAMUM LETTER PHASE-A MEUNJOMNDEUQ
++<U00016826> /xf0/x96/xa0/xa6 BAMUM LETTER PHASE-A MOOMPUQ
++<U00016827> /xf0/x96/xa0/xa7 BAMUM LETTER PHASE-A KAFA
++<U00016828> /xf0/x96/xa0/xa8 BAMUM LETTER PHASE-A PA LEERAEWA
++<U00016829> /xf0/x96/xa0/xa9 BAMUM LETTER PHASE-A NDA LEERAEWA
++<U0001682A> /xf0/x96/xa0/xaa BAMUM LETTER PHASE-A PET
++<U0001682B> /xf0/x96/xa0/xab BAMUM LETTER PHASE-A MAEMKPEN
++<U0001682C> /xf0/x96/xa0/xac BAMUM LETTER PHASE-A NIKA
++<U0001682D> /xf0/x96/xa0/xad BAMUM LETTER PHASE-A PUP
++<U0001682E> /xf0/x96/xa0/xae BAMUM LETTER PHASE-A TUAEP
++<U0001682F> /xf0/x96/xa0/xaf BAMUM LETTER PHASE-A LUAEP
++<U00016830> /xf0/x96/xa0/xb0 BAMUM LETTER PHASE-A SONJAM
++<U00016831> /xf0/x96/xa0/xb1 BAMUM LETTER PHASE-A TEUTEUWEN
++<U00016832> /xf0/x96/xa0/xb2 BAMUM LETTER PHASE-A MAENYI
++<U00016833> /xf0/x96/xa0/xb3 BAMUM LETTER PHASE-A KET
++<U00016834> /xf0/x96/xa0/xb4 BAMUM LETTER PHASE-A NDAANGGEUAET
++<U00016835> /xf0/x96/xa0/xb5 BAMUM LETTER PHASE-A KUOQ
++<U00016836> /xf0/x96/xa0/xb6 BAMUM LETTER PHASE-A MOOMEUT
++<U00016837> /xf0/x96/xa0/xb7 BAMUM LETTER PHASE-A SHUM
++<U00016838> /xf0/x96/xa0/xb8 BAMUM LETTER PHASE-A LOMMAE
++<U00016839> /xf0/x96/xa0/xb9 BAMUM LETTER PHASE-A FIRI
++<U0001683A> /xf0/x96/xa0/xba BAMUM LETTER PHASE-A ROM
++<U0001683B> /xf0/x96/xa0/xbb BAMUM LETTER PHASE-A KPOQ
++<U0001683C> /xf0/x96/xa0/xbc BAMUM LETTER PHASE-A SOQ
++<U0001683D> /xf0/x96/xa0/xbd BAMUM LETTER PHASE-A MAP PIEET
++<U0001683E> /xf0/x96/xa0/xbe BAMUM LETTER PHASE-A SHIRAE
++<U0001683F> /xf0/x96/xa0/xbf BAMUM LETTER PHASE-A NTAP
++<U00016840> /xf0/x96/xa1/x80 BAMUM LETTER PHASE-A SHOQ NSHUT YUM
++<U00016841> /xf0/x96/xa1/x81 BAMUM LETTER PHASE-A NYIT MONGKEUAEQ
++<U00016842> /xf0/x96/xa1/x82 BAMUM LETTER PHASE-A PAARAE
++<U00016843> /xf0/x96/xa1/x83 BAMUM LETTER PHASE-A NKAARAE
++<U00016844> /xf0/x96/xa1/x84 BAMUM LETTER PHASE-A UNKNOWN
++<U00016845> /xf0/x96/xa1/x85 BAMUM LETTER PHASE-A NGGEN
++<U00016846> /xf0/x96/xa1/x86 BAMUM LETTER PHASE-A MAESI
++<U00016847> /xf0/x96/xa1/x87 BAMUM LETTER PHASE-A NJAM
++<U00016848> /xf0/x96/xa1/x88 BAMUM LETTER PHASE-A MBANYI
++<U00016849> /xf0/x96/xa1/x89 BAMUM LETTER PHASE-A NYET
++<U0001684A> /xf0/x96/xa1/x8a BAMUM LETTER PHASE-A TEUAEN
++<U0001684B> /xf0/x96/xa1/x8b BAMUM LETTER PHASE-A SOT
++<U0001684C> /xf0/x96/xa1/x8c BAMUM LETTER PHASE-A PAAM
++<U0001684D> /xf0/x96/xa1/x8d BAMUM LETTER PHASE-A NSHIEE
++<U0001684E> /xf0/x96/xa1/x8e BAMUM LETTER PHASE-A MAEM
++<U0001684F> /xf0/x96/xa1/x8f BAMUM LETTER PHASE-A NYI
++<U00016850> /xf0/x96/xa1/x90 BAMUM LETTER PHASE-A KAQ
++<U00016851> /xf0/x96/xa1/x91 BAMUM LETTER PHASE-A NSHA
++<U00016852> /xf0/x96/xa1/x92 BAMUM LETTER PHASE-A VEE
++<U00016853> /xf0/x96/xa1/x93 BAMUM LETTER PHASE-A LU
++<U00016854> /xf0/x96/xa1/x94 BAMUM LETTER PHASE-A NEN
++<U00016855> /xf0/x96/xa1/x95 BAMUM LETTER PHASE-A NAQ
++<U00016856> /xf0/x96/xa1/x96 BAMUM LETTER PHASE-A MBAQ
++<U00016857> /xf0/x96/xa1/x97 BAMUM LETTER PHASE-B NSHUET
++<U00016858> /xf0/x96/xa1/x98 BAMUM LETTER PHASE-B TU MAEMGBIEE
++<U00016859> /xf0/x96/xa1/x99 BAMUM LETTER PHASE-B SIEE
++<U0001685A> /xf0/x96/xa1/x9a BAMUM LETTER PHASE-B SET TU
++<U0001685B> /xf0/x96/xa1/x9b BAMUM LETTER PHASE-B LOM NTEUM
++<U0001685C> /xf0/x96/xa1/x9c BAMUM LETTER PHASE-B MBA MAELEE
++<U0001685D> /xf0/x96/xa1/x9d BAMUM LETTER PHASE-B KIEEM
++<U0001685E> /xf0/x96/xa1/x9e BAMUM LETTER PHASE-B YEURAE
++<U0001685F> /xf0/x96/xa1/x9f BAMUM LETTER PHASE-B MBAARAE
++<U00016860> /xf0/x96/xa1/xa0 BAMUM LETTER PHASE-B KAM
++<U00016861> /xf0/x96/xa1/xa1 BAMUM LETTER PHASE-B PEESHI
++<U00016862> /xf0/x96/xa1/xa2 BAMUM LETTER PHASE-B YAFU LEERAEWA
++<U00016863> /xf0/x96/xa1/xa3 BAMUM LETTER PHASE-B LAM NSHUT NYAM
++<U00016864> /xf0/x96/xa1/xa4 BAMUM LETTER PHASE-B NTIEE SHEUOQ
++<U00016865> /xf0/x96/xa1/xa5 BAMUM LETTER PHASE-B NDU NJAA
++<U00016866> /xf0/x96/xa1/xa6 BAMUM LETTER PHASE-B GHEUGHEUAEM
++<U00016867> /xf0/x96/xa1/xa7 BAMUM LETTER PHASE-B PIT
++<U00016868> /xf0/x96/xa1/xa8 BAMUM LETTER PHASE-B TU NSIEE
++<U00016869> /xf0/x96/xa1/xa9 BAMUM LETTER PHASE-B SHET NJAQ
++<U0001686A> /xf0/x96/xa1/xaa BAMUM LETTER PHASE-B SHEUAEQTU
++<U0001686B> /xf0/x96/xa1/xab BAMUM LETTER PHASE-B MFON TEUAEQ
++<U0001686C> /xf0/x96/xa1/xac BAMUM LETTER PHASE-B MBIT MBAAKET
++<U0001686D> /xf0/x96/xa1/xad BAMUM LETTER PHASE-B NYI NTEUM
++<U0001686E> /xf0/x96/xa1/xae BAMUM LETTER PHASE-B KEUPUQ
++<U0001686F> /xf0/x96/xa1/xaf BAMUM LETTER PHASE-B GHEUGHEN
++<U00016870> /xf0/x96/xa1/xb0 BAMUM LETTER PHASE-B KEUYEUX
++<U00016871> /xf0/x96/xa1/xb1 BAMUM LETTER PHASE-B LAANAE
++<U00016872> /xf0/x96/xa1/xb2 BAMUM LETTER PHASE-B PARUM
++<U00016873> /xf0/x96/xa1/xb3 BAMUM LETTER PHASE-B VEUM
++<U00016874> /xf0/x96/xa1/xb4 BAMUM LETTER PHASE-B NGKINDI MVOP
++<U00016875> /xf0/x96/xa1/xb5 BAMUM LETTER PHASE-B NGGEU MBU
++<U00016876> /xf0/x96/xa1/xb6 BAMUM LETTER PHASE-B WUAET
++<U00016877> /xf0/x96/xa1/xb7 BAMUM LETTER PHASE-B SAKEUAE
++<U00016878> /xf0/x96/xa1/xb8 BAMUM LETTER PHASE-B TAAM
++<U00016879> /xf0/x96/xa1/xb9 BAMUM LETTER PHASE-B MEUQ
++<U0001687A> /xf0/x96/xa1/xba BAMUM LETTER PHASE-B NGGUOQ
++<U0001687B> /xf0/x96/xa1/xbb BAMUM LETTER PHASE-B NGGUOQ LARGE
++<U0001687C> /xf0/x96/xa1/xbc BAMUM LETTER PHASE-B MFIYAQ
++<U0001687D> /xf0/x96/xa1/xbd BAMUM LETTER PHASE-B SUE
++<U0001687E> /xf0/x96/xa1/xbe BAMUM LETTER PHASE-B MBEURI
++<U0001687F> /xf0/x96/xa1/xbf BAMUM LETTER PHASE-B MONTIEEN
++<U00016880> /xf0/x96/xa2/x80 BAMUM LETTER PHASE-B NYAEMAE
++<U00016881> /xf0/x96/xa2/x81 BAMUM LETTER PHASE-B PUNGAAM
++<U00016882> /xf0/x96/xa2/x82 BAMUM LETTER PHASE-B MEUT NGGEET
++<U00016883> /xf0/x96/xa2/x83 BAMUM LETTER PHASE-B FEUX
++<U00016884> /xf0/x96/xa2/x84 BAMUM LETTER PHASE-B MBUOQ
++<U00016885> /xf0/x96/xa2/x85 BAMUM LETTER PHASE-B FEE
++<U00016886> /xf0/x96/xa2/x86 BAMUM LETTER PHASE-B KEUAEM
++<U00016887> /xf0/x96/xa2/x87 BAMUM LETTER PHASE-B MA NJEUAENA
++<U00016888> /xf0/x96/xa2/x88 BAMUM LETTER PHASE-B MA NJUQA
++<U00016889> /xf0/x96/xa2/x89 BAMUM LETTER PHASE-B LET
++<U0001688A> /xf0/x96/xa2/x8a BAMUM LETTER PHASE-B NGGAAM
++<U0001688B> /xf0/x96/xa2/x8b BAMUM LETTER PHASE-B NSEN
++<U0001688C> /xf0/x96/xa2/x8c BAMUM LETTER PHASE-B MA
++<U0001688D> /xf0/x96/xa2/x8d BAMUM LETTER PHASE-B KIQ
++<U0001688E> /xf0/x96/xa2/x8e BAMUM LETTER PHASE-B NGOM
++<U0001688F> /xf0/x96/xa2/x8f BAMUM LETTER PHASE-C NGKUE MAEMBA
++<U00016890> /xf0/x96/xa2/x90 BAMUM LETTER PHASE-C NZA
++<U00016891> /xf0/x96/xa2/x91 BAMUM LETTER PHASE-C YUM
++<U00016892> /xf0/x96/xa2/x92 BAMUM LETTER PHASE-C WANGKUOQ
++<U00016893> /xf0/x96/xa2/x93 BAMUM LETTER PHASE-C NGGEN
++<U00016894> /xf0/x96/xa2/x94 BAMUM LETTER PHASE-C NDEUAEREE
++<U00016895> /xf0/x96/xa2/x95 BAMUM LETTER PHASE-C NGKAQ
++<U00016896> /xf0/x96/xa2/x96 BAMUM LETTER PHASE-C GHARAE
++<U00016897> /xf0/x96/xa2/x97 BAMUM LETTER PHASE-C MBEEKEET
++<U00016898> /xf0/x96/xa2/x98 BAMUM LETTER PHASE-C GBAYI
++<U00016899> /xf0/x96/xa2/x99 BAMUM LETTER PHASE-C NYIR MKPARAQ MEUN
++<U0001689A> /xf0/x96/xa2/x9a BAMUM LETTER PHASE-C NTU MBIT
++<U0001689B> /xf0/x96/xa2/x9b BAMUM LETTER PHASE-C MBEUM
++<U0001689C> /xf0/x96/xa2/x9c BAMUM LETTER PHASE-C PIRIEEN
++<U0001689D> /xf0/x96/xa2/x9d BAMUM LETTER PHASE-C NDOMBU
++<U0001689E> /xf0/x96/xa2/x9e BAMUM LETTER PHASE-C MBAA CABBAGE-TREE
++<U0001689F> /xf0/x96/xa2/x9f BAMUM LETTER PHASE-C KEUSHEUAEP
++<U000168A0> /xf0/x96/xa2/xa0 BAMUM LETTER PHASE-C GHAP
++<U000168A1> /xf0/x96/xa2/xa1 BAMUM LETTER PHASE-C KEUKAQ
++<U000168A2> /xf0/x96/xa2/xa2 BAMUM LETTER PHASE-C YU MUOMAE
++<U000168A3> /xf0/x96/xa2/xa3 BAMUM LETTER PHASE-C NZEUM
++<U000168A4> /xf0/x96/xa2/xa4 BAMUM LETTER PHASE-C MBUE
++<U000168A5> /xf0/x96/xa2/xa5 BAMUM LETTER PHASE-C NSEUAEN
++<U000168A6> /xf0/x96/xa2/xa6 BAMUM LETTER PHASE-C MBIT
++<U000168A7> /xf0/x96/xa2/xa7 BAMUM LETTER PHASE-C YEUQ
++<U000168A8> /xf0/x96/xa2/xa8 BAMUM LETTER PHASE-C KPARAQ
++<U000168A9> /xf0/x96/xa2/xa9 BAMUM LETTER PHASE-C KAA
++<U000168AA> /xf0/x96/xa2/xaa BAMUM LETTER PHASE-C SEUX
++<U000168AB> /xf0/x96/xa2/xab BAMUM LETTER PHASE-C NDIDA
++<U000168AC> /xf0/x96/xa2/xac BAMUM LETTER PHASE-C TAASHAE
++<U000168AD> /xf0/x96/xa2/xad BAMUM LETTER PHASE-C NJUEQ
++<U000168AE> /xf0/x96/xa2/xae BAMUM LETTER PHASE-C TITA YUE
++<U000168AF> /xf0/x96/xa2/xaf BAMUM LETTER PHASE-C SUAET
++<U000168B0> /xf0/x96/xa2/xb0 BAMUM LETTER PHASE-C NGGUAEN NYAM
++<U000168B1> /xf0/x96/xa2/xb1 BAMUM LETTER PHASE-C VEUX
++<U000168B2> /xf0/x96/xa2/xb2 BAMUM LETTER PHASE-C NANSANAQ
++<U000168B3> /xf0/x96/xa2/xb3 BAMUM LETTER PHASE-C MA KEUAERI
++<U000168B4> /xf0/x96/xa2/xb4 BAMUM LETTER PHASE-C NTAA
++<U000168B5> /xf0/x96/xa2/xb5 BAMUM LETTER PHASE-C NGGUON
++<U000168B6> /xf0/x96/xa2/xb6 BAMUM LETTER PHASE-C LAP
++<U000168B7> /xf0/x96/xa2/xb7 BAMUM LETTER PHASE-C MBIRIEEN
++<U000168B8> /xf0/x96/xa2/xb8 BAMUM LETTER PHASE-C MGBASAQ
++<U000168B9> /xf0/x96/xa2/xb9 BAMUM LETTER PHASE-C NTEUNGBA
++<U000168BA> /xf0/x96/xa2/xba BAMUM LETTER PHASE-C TEUTEUX
++<U000168BB> /xf0/x96/xa2/xbb BAMUM LETTER PHASE-C NGGUM
++<U000168BC> /xf0/x96/xa2/xbc BAMUM LETTER PHASE-C FUE
++<U000168BD> /xf0/x96/xa2/xbd BAMUM LETTER PHASE-C NDEUT
++<U000168BE> /xf0/x96/xa2/xbe BAMUM LETTER PHASE-C NSA
++<U000168BF> /xf0/x96/xa2/xbf BAMUM LETTER PHASE-C NSHAQ
++<U000168C0> /xf0/x96/xa3/x80 BAMUM LETTER PHASE-C BUNG
++<U000168C1> /xf0/x96/xa3/x81 BAMUM LETTER PHASE-C VEUAEPEN
++<U000168C2> /xf0/x96/xa3/x82 BAMUM LETTER PHASE-C MBERAE
++<U000168C3> /xf0/x96/xa3/x83 BAMUM LETTER PHASE-C RU
++<U000168C4> /xf0/x96/xa3/x84 BAMUM LETTER PHASE-C NJAEM
++<U000168C5> /xf0/x96/xa3/x85 BAMUM LETTER PHASE-C LAM
++<U000168C6> /xf0/x96/xa3/x86 BAMUM LETTER PHASE-C TITUAEP
++<U000168C7> /xf0/x96/xa3/x87 BAMUM LETTER PHASE-C NSUOT NGOM
++<U000168C8> /xf0/x96/xa3/x88 BAMUM LETTER PHASE-C NJEEEE
++<U000168C9> /xf0/x96/xa3/x89 BAMUM LETTER PHASE-C KET
++<U000168CA> /xf0/x96/xa3/x8a BAMUM LETTER PHASE-C NGGU
++<U000168CB> /xf0/x96/xa3/x8b BAMUM LETTER PHASE-C MAESI
++<U000168CC> /xf0/x96/xa3/x8c BAMUM LETTER PHASE-C MBUAEM
++<U000168CD> /xf0/x96/xa3/x8d BAMUM LETTER PHASE-C LU
++<U000168CE> /xf0/x96/xa3/x8e BAMUM LETTER PHASE-C KUT
++<U000168CF> /xf0/x96/xa3/x8f BAMUM LETTER PHASE-C NJAM
++<U000168D0> /xf0/x96/xa3/x90 BAMUM LETTER PHASE-C NGOM
++<U000168D1> /xf0/x96/xa3/x91 BAMUM LETTER PHASE-C WUP
++<U000168D2> /xf0/x96/xa3/x92 BAMUM LETTER PHASE-C NGGUEET
++<U000168D3> /xf0/x96/xa3/x93 BAMUM LETTER PHASE-C NSOM
++<U000168D4> /xf0/x96/xa3/x94 BAMUM LETTER PHASE-C NTEN
++<U000168D5> /xf0/x96/xa3/x95 BAMUM LETTER PHASE-C KUOP NKAARAE
++<U000168D6> /xf0/x96/xa3/x96 BAMUM LETTER PHASE-C NSUN
++<U000168D7> /xf0/x96/xa3/x97 BAMUM LETTER PHASE-C NDAM
++<U000168D8> /xf0/x96/xa3/x98 BAMUM LETTER PHASE-C MA NSIEE
++<U000168D9> /xf0/x96/xa3/x99 BAMUM LETTER PHASE-C YAA
++<U000168DA> /xf0/x96/xa3/x9a BAMUM LETTER PHASE-C NDAP
++<U000168DB> /xf0/x96/xa3/x9b BAMUM LETTER PHASE-C SHUEQ
++<U000168DC> /xf0/x96/xa3/x9c BAMUM LETTER PHASE-C SETFON
++<U000168DD> /xf0/x96/xa3/x9d BAMUM LETTER PHASE-C MBI
++<U000168DE> /xf0/x96/xa3/x9e BAMUM LETTER PHASE-C MAEMBA
++<U000168DF> /xf0/x96/xa3/x9f BAMUM LETTER PHASE-C MBANYI
++<U000168E0> /xf0/x96/xa3/xa0 BAMUM LETTER PHASE-C KEUSEUX
++<U000168E1> /xf0/x96/xa3/xa1 BAMUM LETTER PHASE-C MBEUX
++<U000168E2> /xf0/x96/xa3/xa2 BAMUM LETTER PHASE-C KEUM
++<U000168E3> /xf0/x96/xa3/xa3 BAMUM LETTER PHASE-C MBAA PICKET
++<U000168E4> /xf0/x96/xa3/xa4 BAMUM LETTER PHASE-C YUWOQ
++<U000168E5> /xf0/x96/xa3/xa5 BAMUM LETTER PHASE-C NJEUX
++<U000168E6> /xf0/x96/xa3/xa6 BAMUM LETTER PHASE-C MIEE
++<U000168E7> /xf0/x96/xa3/xa7 BAMUM LETTER PHASE-C MUAE
++<U000168E8> /xf0/x96/xa3/xa8 BAMUM LETTER PHASE-C SHIQ
++<U000168E9> /xf0/x96/xa3/xa9 BAMUM LETTER PHASE-C KEN LAW
++<U000168EA> /xf0/x96/xa3/xaa BAMUM LETTER PHASE-C KEN FATIGUE
++<U000168EB> /xf0/x96/xa3/xab BAMUM LETTER PHASE-C NGAQ
++<U000168EC> /xf0/x96/xa3/xac BAMUM LETTER PHASE-C NAQ
++<U000168ED> /xf0/x96/xa3/xad BAMUM LETTER PHASE-C LIQ
++<U000168EE> /xf0/x96/xa3/xae BAMUM LETTER PHASE-C PIN
++<U000168EF> /xf0/x96/xa3/xaf BAMUM LETTER PHASE-C PEN
++<U000168F0> /xf0/x96/xa3/xb0 BAMUM LETTER PHASE-C TET
++<U000168F1> /xf0/x96/xa3/xb1 BAMUM LETTER PHASE-D MBUO
++<U000168F2> /xf0/x96/xa3/xb2 BAMUM LETTER PHASE-D WAP
++<U000168F3> /xf0/x96/xa3/xb3 BAMUM LETTER PHASE-D NJI
++<U000168F4> /xf0/x96/xa3/xb4 BAMUM LETTER PHASE-D MFON
++<U000168F5> /xf0/x96/xa3/xb5 BAMUM LETTER PHASE-D NJIEE
++<U000168F6> /xf0/x96/xa3/xb6 BAMUM LETTER PHASE-D LIEE
++<U000168F7> /xf0/x96/xa3/xb7 BAMUM LETTER PHASE-D NJEUT
++<U000168F8> /xf0/x96/xa3/xb8 BAMUM LETTER PHASE-D NSHEE
++<U000168F9> /xf0/x96/xa3/xb9 BAMUM LETTER PHASE-D NGGAAMAE
++<U000168FA> /xf0/x96/xa3/xba BAMUM LETTER PHASE-D NYAM
++<U000168FB> /xf0/x96/xa3/xbb BAMUM LETTER PHASE-D WUAEN
++<U000168FC> /xf0/x96/xa3/xbc BAMUM LETTER PHASE-D NGKUN
++<U000168FD> /xf0/x96/xa3/xbd BAMUM LETTER PHASE-D SHEE
++<U000168FE> /xf0/x96/xa3/xbe BAMUM LETTER PHASE-D NGKAP
++<U000168FF> /xf0/x96/xa3/xbf BAMUM LETTER PHASE-D KEUAETMEUN
++<U00016900> /xf0/x96/xa4/x80 BAMUM LETTER PHASE-D TEUT
++<U00016901> /xf0/x96/xa4/x81 BAMUM LETTER PHASE-D SHEUAE
++<U00016902> /xf0/x96/xa4/x82 BAMUM LETTER PHASE-D NJAP
++<U00016903> /xf0/x96/xa4/x83 BAMUM LETTER PHASE-D SUE
++<U00016904> /xf0/x96/xa4/x84 BAMUM LETTER PHASE-D KET
++<U00016905> /xf0/x96/xa4/x85 BAMUM LETTER PHASE-D YAEMMAE
++<U00016906> /xf0/x96/xa4/x86 BAMUM LETTER PHASE-D KUOM
++<U00016907> /xf0/x96/xa4/x87 BAMUM LETTER PHASE-D SAP
++<U00016908> /xf0/x96/xa4/x88 BAMUM LETTER PHASE-D MFEUT
++<U00016909> /xf0/x96/xa4/x89 BAMUM LETTER PHASE-D NDEUX
++<U0001690A> /xf0/x96/xa4/x8a BAMUM LETTER PHASE-D MALEERI
++<U0001690B> /xf0/x96/xa4/x8b BAMUM LETTER PHASE-D MEUT
++<U0001690C> /xf0/x96/xa4/x8c BAMUM LETTER PHASE-D SEUAEQ
++<U0001690D> /xf0/x96/xa4/x8d BAMUM LETTER PHASE-D YEN
++<U0001690E> /xf0/x96/xa4/x8e BAMUM LETTER PHASE-D NJEUAEM
++<U0001690F> /xf0/x96/xa4/x8f BAMUM LETTER PHASE-D KEUOT MBUAE
++<U00016910> /xf0/x96/xa4/x90 BAMUM LETTER PHASE-D NGKEURI
++<U00016911> /xf0/x96/xa4/x91 BAMUM LETTER PHASE-D TU
++<U00016912> /xf0/x96/xa4/x92 BAMUM LETTER PHASE-D GHAA
++<U00016913> /xf0/x96/xa4/x93 BAMUM LETTER PHASE-D NGKYEE
++<U00016914> /xf0/x96/xa4/x94 BAMUM LETTER PHASE-D FEUFEUAET
++<U00016915> /xf0/x96/xa4/x95 BAMUM LETTER PHASE-D NDEE
++<U00016916> /xf0/x96/xa4/x96 BAMUM LETTER PHASE-D MGBOFUM
++<U00016917> /xf0/x96/xa4/x97 BAMUM LETTER PHASE-D LEUAEP
++<U00016918> /xf0/x96/xa4/x98 BAMUM LETTER PHASE-D NDON
++<U00016919> /xf0/x96/xa4/x99 BAMUM LETTER PHASE-D MONI
++<U0001691A> /xf0/x96/xa4/x9a BAMUM LETTER PHASE-D MGBEUN
++<U0001691B> /xf0/x96/xa4/x9b BAMUM LETTER PHASE-D PUUT
++<U0001691C> /xf0/x96/xa4/x9c BAMUM LETTER PHASE-D MGBIEE
++<U0001691D> /xf0/x96/xa4/x9d BAMUM LETTER PHASE-D MFO
++<U0001691E> /xf0/x96/xa4/x9e BAMUM LETTER PHASE-D LUM
++<U0001691F> /xf0/x96/xa4/x9f BAMUM LETTER PHASE-D NSIEEP
++<U00016920> /xf0/x96/xa4/xa0 BAMUM LETTER PHASE-D MBAA
++<U00016921> /xf0/x96/xa4/xa1 BAMUM LETTER PHASE-D KWAET
++<U00016922> /xf0/x96/xa4/xa2 BAMUM LETTER PHASE-D NYET
++<U00016923> /xf0/x96/xa4/xa3 BAMUM LETTER PHASE-D TEUAEN
++<U00016924> /xf0/x96/xa4/xa4 BAMUM LETTER PHASE-D SOT
++<U00016925> /xf0/x96/xa4/xa5 BAMUM LETTER PHASE-D YUWOQ
++<U00016926> /xf0/x96/xa4/xa6 BAMUM LETTER PHASE-D KEUM
++<U00016927> /xf0/x96/xa4/xa7 BAMUM LETTER PHASE-D RAEM
++<U00016928> /xf0/x96/xa4/xa8 BAMUM LETTER PHASE-D TEEEE
++<U00016929> /xf0/x96/xa4/xa9 BAMUM LETTER PHASE-D NGKEUAEQ
++<U0001692A> /xf0/x96/xa4/xaa BAMUM LETTER PHASE-D MFEUAE
++<U0001692B> /xf0/x96/xa4/xab BAMUM LETTER PHASE-D NSIEET
++<U0001692C> /xf0/x96/xa4/xac BAMUM LETTER PHASE-D KEUP
++<U0001692D> /xf0/x96/xa4/xad BAMUM LETTER PHASE-D PIP
++<U0001692E> /xf0/x96/xa4/xae BAMUM LETTER PHASE-D PEUTAE
++<U0001692F> /xf0/x96/xa4/xaf BAMUM LETTER PHASE-D NYUE
++<U00016930> /xf0/x96/xa4/xb0 BAMUM LETTER PHASE-D LET
++<U00016931> /xf0/x96/xa4/xb1 BAMUM LETTER PHASE-D NGGAAM
++<U00016932> /xf0/x96/xa4/xb2 BAMUM LETTER PHASE-D MFIEE
++<U00016933> /xf0/x96/xa4/xb3 BAMUM LETTER PHASE-D NGGWAEN
++<U00016934> /xf0/x96/xa4/xb4 BAMUM LETTER PHASE-D YUOM
++<U00016935> /xf0/x96/xa4/xb5 BAMUM LETTER PHASE-D PAP
++<U00016936> /xf0/x96/xa4/xb6 BAMUM LETTER PHASE-D YUOP
++<U00016937> /xf0/x96/xa4/xb7 BAMUM LETTER PHASE-D NDAM
++<U00016938> /xf0/x96/xa4/xb8 BAMUM LETTER PHASE-D NTEUM
++<U00016939> /xf0/x96/xa4/xb9 BAMUM LETTER PHASE-D SUAE
++<U0001693A> /xf0/x96/xa4/xba BAMUM LETTER PHASE-D KUN
++<U0001693B> /xf0/x96/xa4/xbb BAMUM LETTER PHASE-D NGGEUX
++<U0001693C> /xf0/x96/xa4/xbc BAMUM LETTER PHASE-D NGKIEE
++<U0001693D> /xf0/x96/xa4/xbd BAMUM LETTER PHASE-D TUOT
++<U0001693E> /xf0/x96/xa4/xbe BAMUM LETTER PHASE-D MEUN
++<U0001693F> /xf0/x96/xa4/xbf BAMUM LETTER PHASE-D KUQ
++<U00016940> /xf0/x96/xa5/x80 BAMUM LETTER PHASE-D NSUM
++<U00016941> /xf0/x96/xa5/x81 BAMUM LETTER PHASE-D TEUN
++<U00016942> /xf0/x96/xa5/x82 BAMUM LETTER PHASE-D MAENJET
++<U00016943> /xf0/x96/xa5/x83 BAMUM LETTER PHASE-D NGGAP
++<U00016944> /xf0/x96/xa5/x84 BAMUM LETTER PHASE-D LEUM
++<U00016945> /xf0/x96/xa5/x85 BAMUM LETTER PHASE-D NGGUOM
++<U00016946> /xf0/x96/xa5/x86 BAMUM LETTER PHASE-D NSHUT
++<U00016947> /xf0/x96/xa5/x87 BAMUM LETTER PHASE-D NJUEQ
++<U00016948> /xf0/x96/xa5/x88 BAMUM LETTER PHASE-D GHEUAE
++<U00016949> /xf0/x96/xa5/x89 BAMUM LETTER PHASE-D KU
++<U0001694A> /xf0/x96/xa5/x8a BAMUM LETTER PHASE-D REN OLD
++<U0001694B> /xf0/x96/xa5/x8b BAMUM LETTER PHASE-D TAE
++<U0001694C> /xf0/x96/xa5/x8c BAMUM LETTER PHASE-D TOQ
++<U0001694D> /xf0/x96/xa5/x8d BAMUM LETTER PHASE-D NYI
++<U0001694E> /xf0/x96/xa5/x8e BAMUM LETTER PHASE-D RII
++<U0001694F> /xf0/x96/xa5/x8f BAMUM LETTER PHASE-D LEEEE
++<U00016950> /xf0/x96/xa5/x90 BAMUM LETTER PHASE-D MEEEE
++<U00016951> /xf0/x96/xa5/x91 BAMUM LETTER PHASE-D M
++<U00016952> /xf0/x96/xa5/x92 BAMUM LETTER PHASE-D SUU
++<U00016953> /xf0/x96/xa5/x93 BAMUM LETTER PHASE-D MU
++<U00016954> /xf0/x96/xa5/x94 BAMUM LETTER PHASE-D SHII
++<U00016955> /xf0/x96/xa5/x95 BAMUM LETTER PHASE-D SHEUX
++<U00016956> /xf0/x96/xa5/x96 BAMUM LETTER PHASE-D KYEE
++<U00016957> /xf0/x96/xa5/x97 BAMUM LETTER PHASE-D NU
++<U00016958> /xf0/x96/xa5/x98 BAMUM LETTER PHASE-D SHU
++<U00016959> /xf0/x96/xa5/x99 BAMUM LETTER PHASE-D NTEE
++<U0001695A> /xf0/x96/xa5/x9a BAMUM LETTER PHASE-D PEE
++<U0001695B> /xf0/x96/xa5/x9b BAMUM LETTER PHASE-D NI
++<U0001695C> /xf0/x96/xa5/x9c BAMUM LETTER PHASE-D SHOQ
++<U0001695D> /xf0/x96/xa5/x9d BAMUM LETTER PHASE-D PUQ
++<U0001695E> /xf0/x96/xa5/x9e BAMUM LETTER PHASE-D MVOP
++<U0001695F> /xf0/x96/xa5/x9f BAMUM LETTER PHASE-D LOQ
++<U00016960> /xf0/x96/xa5/xa0 BAMUM LETTER PHASE-D REN MUCH
++<U00016961> /xf0/x96/xa5/xa1 BAMUM LETTER PHASE-D TI
++<U00016962> /xf0/x96/xa5/xa2 BAMUM LETTER PHASE-D NTUU
++<U00016963> /xf0/x96/xa5/xa3 BAMUM LETTER PHASE-D MBAA SEVEN
++<U00016964> /xf0/x96/xa5/xa4 BAMUM LETTER PHASE-D SAQ
++<U00016965> /xf0/x96/xa5/xa5 BAMUM LETTER PHASE-D FAA
++<U00016966> /xf0/x96/xa5/xa6 BAMUM LETTER PHASE-E NDAP
++<U00016967> /xf0/x96/xa5/xa7 BAMUM LETTER PHASE-E TOON
++<U00016968> /xf0/x96/xa5/xa8 BAMUM LETTER PHASE-E MBEUM
++<U00016969> /xf0/x96/xa5/xa9 BAMUM LETTER PHASE-E LAP
++<U0001696A> /xf0/x96/xa5/xaa BAMUM LETTER PHASE-E VOM
++<U0001696B> /xf0/x96/xa5/xab BAMUM LETTER PHASE-E LOON
++<U0001696C> /xf0/x96/xa5/xac BAMUM LETTER PHASE-E PAA
++<U0001696D> /xf0/x96/xa5/xad BAMUM LETTER PHASE-E SOM
++<U0001696E> /xf0/x96/xa5/xae BAMUM LETTER PHASE-E RAQ
++<U0001696F> /xf0/x96/xa5/xaf BAMUM LETTER PHASE-E NSHUOP
++<U00016970> /xf0/x96/xa5/xb0 BAMUM LETTER PHASE-E NDUN
++<U00016971> /xf0/x96/xa5/xb1 BAMUM LETTER PHASE-E PUAE
++<U00016972> /xf0/x96/xa5/xb2 BAMUM LETTER PHASE-E TAM
++<U00016973> /xf0/x96/xa5/xb3 BAMUM LETTER PHASE-E NGKA
++<U00016974> /xf0/x96/xa5/xb4 BAMUM LETTER PHASE-E KPEUX
++<U00016975> /xf0/x96/xa5/xb5 BAMUM LETTER PHASE-E WUO
++<U00016976> /xf0/x96/xa5/xb6 BAMUM LETTER PHASE-E SEE
++<U00016977> /xf0/x96/xa5/xb7 BAMUM LETTER PHASE-E NGGEUAET
++<U00016978> /xf0/x96/xa5/xb8 BAMUM LETTER PHASE-E PAAM
++<U00016979> /xf0/x96/xa5/xb9 BAMUM LETTER PHASE-E TOO
++<U0001697A> /xf0/x96/xa5/xba BAMUM LETTER PHASE-E KUOP
++<U0001697B> /xf0/x96/xa5/xbb BAMUM LETTER PHASE-E LOM
++<U0001697C> /xf0/x96/xa5/xbc BAMUM LETTER PHASE-E NSHIEE
++<U0001697D> /xf0/x96/xa5/xbd BAMUM LETTER PHASE-E NGOP
++<U0001697E> /xf0/x96/xa5/xbe BAMUM LETTER PHASE-E MAEM
++<U0001697F> /xf0/x96/xa5/xbf BAMUM LETTER PHASE-E NGKEUX
++<U00016980> /xf0/x96/xa6/x80 BAMUM LETTER PHASE-E NGOQ
++<U00016981> /xf0/x96/xa6/x81 BAMUM LETTER PHASE-E NSHUE
++<U00016982> /xf0/x96/xa6/x82 BAMUM LETTER PHASE-E RIMGBA
++<U00016983> /xf0/x96/xa6/x83 BAMUM LETTER PHASE-E NJEUX
++<U00016984> /xf0/x96/xa6/x84 BAMUM LETTER PHASE-E PEEM
++<U00016985> /xf0/x96/xa6/x85 BAMUM LETTER PHASE-E SAA
++<U00016986> /xf0/x96/xa6/x86 BAMUM LETTER PHASE-E NGGURAE
++<U00016987> /xf0/x96/xa6/x87 BAMUM LETTER PHASE-E MGBA
++<U00016988> /xf0/x96/xa6/x88 BAMUM LETTER PHASE-E GHEUX
++<U00016989> /xf0/x96/xa6/x89 BAMUM LETTER PHASE-E NGKEUAEM
++<U0001698A> /xf0/x96/xa6/x8a BAMUM LETTER PHASE-E NJAEMLI
++<U0001698B> /xf0/x96/xa6/x8b BAMUM LETTER PHASE-E MAP
++<U0001698C> /xf0/x96/xa6/x8c BAMUM LETTER PHASE-E LOOT
++<U0001698D> /xf0/x96/xa6/x8d BAMUM LETTER PHASE-E NGGEEEE
++<U0001698E> /xf0/x96/xa6/x8e BAMUM LETTER PHASE-E NDIQ
++<U0001698F> /xf0/x96/xa6/x8f BAMUM LETTER PHASE-E TAEN NTEUM
++<U00016990> /xf0/x96/xa6/x90 BAMUM LETTER PHASE-E SET
++<U00016991> /xf0/x96/xa6/x91 BAMUM LETTER PHASE-E PUM
++<U00016992> /xf0/x96/xa6/x92 BAMUM LETTER PHASE-E NDAA SOFTNESS
++<U00016993> /xf0/x96/xa6/x93 BAMUM LETTER PHASE-E NGGUAESHAE NYAM
++<U00016994> /xf0/x96/xa6/x94 BAMUM LETTER PHASE-E YIEE
++<U00016995> /xf0/x96/xa6/x95 BAMUM LETTER PHASE-E GHEUN
++<U00016996> /xf0/x96/xa6/x96 BAMUM LETTER PHASE-E TUAE
++<U00016997> /xf0/x96/xa6/x97 BAMUM LETTER PHASE-E YEUAE
++<U00016998> /xf0/x96/xa6/x98 BAMUM LETTER PHASE-E PO
++<U00016999> /xf0/x96/xa6/x99 BAMUM LETTER PHASE-E TUMAE
++<U0001699A> /xf0/x96/xa6/x9a BAMUM LETTER PHASE-E KEUAE
++<U0001699B> /xf0/x96/xa6/x9b BAMUM LETTER PHASE-E SUAEN
++<U0001699C> /xf0/x96/xa6/x9c BAMUM LETTER PHASE-E TEUAEQ
++<U0001699D> /xf0/x96/xa6/x9d BAMUM LETTER PHASE-E VEUAE
++<U0001699E> /xf0/x96/xa6/x9e BAMUM LETTER PHASE-E WEUX
++<U0001699F> /xf0/x96/xa6/x9f BAMUM LETTER PHASE-E LAAM
++<U000169A0> /xf0/x96/xa6/xa0 BAMUM LETTER PHASE-E PU
++<U000169A1> /xf0/x96/xa6/xa1 BAMUM LETTER PHASE-E TAAQ
++<U000169A2> /xf0/x96/xa6/xa2 BAMUM LETTER PHASE-E GHAAMAE
++<U000169A3> /xf0/x96/xa6/xa3 BAMUM LETTER PHASE-E NGEUREUT
++<U000169A4> /xf0/x96/xa6/xa4 BAMUM LETTER PHASE-E SHEUAEQ
++<U000169A5> /xf0/x96/xa6/xa5 BAMUM LETTER PHASE-E MGBEN
++<U000169A6> /xf0/x96/xa6/xa6 BAMUM LETTER PHASE-E MBEE
++<U000169A7> /xf0/x96/xa6/xa7 BAMUM LETTER PHASE-E NZAQ
++<U000169A8> /xf0/x96/xa6/xa8 BAMUM LETTER PHASE-E NKOM
++<U000169A9> /xf0/x96/xa6/xa9 BAMUM LETTER PHASE-E GBET
++<U000169AA> /xf0/x96/xa6/xaa BAMUM LETTER PHASE-E TUM
++<U000169AB> /xf0/x96/xa6/xab BAMUM LETTER PHASE-E KUET
++<U000169AC> /xf0/x96/xa6/xac BAMUM LETTER PHASE-E YAP
++<U000169AD> /xf0/x96/xa6/xad BAMUM LETTER PHASE-E NYI CLEAVER
++<U000169AE> /xf0/x96/xa6/xae BAMUM LETTER PHASE-E YIT
++<U000169AF> /xf0/x96/xa6/xaf BAMUM LETTER PHASE-E MFEUQ
++<U000169B0> /xf0/x96/xa6/xb0 BAMUM LETTER PHASE-E NDIAQ
++<U000169B1> /xf0/x96/xa6/xb1 BAMUM LETTER PHASE-E PIEEQ
++<U000169B2> /xf0/x96/xa6/xb2 BAMUM LETTER PHASE-E YUEQ
++<U000169B3> /xf0/x96/xa6/xb3 BAMUM LETTER PHASE-E LEUAEM
++<U000169B4> /xf0/x96/xa6/xb4 BAMUM LETTER PHASE-E FUE
++<U000169B5> /xf0/x96/xa6/xb5 BAMUM LETTER PHASE-E GBEUX
++<U000169B6> /xf0/x96/xa6/xb6 BAMUM LETTER PHASE-E NGKUP
++<U000169B7> /xf0/x96/xa6/xb7 BAMUM LETTER PHASE-E KET
++<U000169B8> /xf0/x96/xa6/xb8 BAMUM LETTER PHASE-E MAE
++<U000169B9> /xf0/x96/xa6/xb9 BAMUM LETTER PHASE-E NGKAAMI
++<U000169BA> /xf0/x96/xa6/xba BAMUM LETTER PHASE-E GHET
++<U000169BB> /xf0/x96/xa6/xbb BAMUM LETTER PHASE-E FA
++<U000169BC> /xf0/x96/xa6/xbc BAMUM LETTER PHASE-E NTUM
++<U000169BD> /xf0/x96/xa6/xbd BAMUM LETTER PHASE-E PEUT
++<U000169BE> /xf0/x96/xa6/xbe BAMUM LETTER PHASE-E YEUM
++<U000169BF> /xf0/x96/xa6/xbf BAMUM LETTER PHASE-E NGGEUAE
++<U000169C0> /xf0/x96/xa7/x80 BAMUM LETTER PHASE-E NYI BETWEEN
++<U000169C1> /xf0/x96/xa7/x81 BAMUM LETTER PHASE-E NZUQ
++<U000169C2> /xf0/x96/xa7/x82 BAMUM LETTER PHASE-E POON
++<U000169C3> /xf0/x96/xa7/x83 BAMUM LETTER PHASE-E MIEE
++<U000169C4> /xf0/x96/xa7/x84 BAMUM LETTER PHASE-E FUET
++<U000169C5> /xf0/x96/xa7/x85 BAMUM LETTER PHASE-E NAE
++<U000169C6> /xf0/x96/xa7/x86 BAMUM LETTER PHASE-E MUAE
++<U000169C7> /xf0/x96/xa7/x87 BAMUM LETTER PHASE-E GHEUAE
++<U000169C8> /xf0/x96/xa7/x88 BAMUM LETTER PHASE-E FU I
++<U000169C9> /xf0/x96/xa7/x89 BAMUM LETTER PHASE-E MVI
++<U000169CA> /xf0/x96/xa7/x8a BAMUM LETTER PHASE-E PUAQ
++<U000169CB> /xf0/x96/xa7/x8b BAMUM LETTER PHASE-E NGKUM
++<U000169CC> /xf0/x96/xa7/x8c BAMUM LETTER PHASE-E KUT
++<U000169CD> /xf0/x96/xa7/x8d BAMUM LETTER PHASE-E PIET
++<U000169CE> /xf0/x96/xa7/x8e BAMUM LETTER PHASE-E NTAP
++<U000169CF> /xf0/x96/xa7/x8f BAMUM LETTER PHASE-E YEUAET
++<U000169D0> /xf0/x96/xa7/x90 BAMUM LETTER PHASE-E NGGUP
++<U000169D1> /xf0/x96/xa7/x91 BAMUM LETTER PHASE-E PA PEOPLE
++<U000169D2> /xf0/x96/xa7/x92 BAMUM LETTER PHASE-E FU CALL
++<U000169D3> /xf0/x96/xa7/x93 BAMUM LETTER PHASE-E FOM
++<U000169D4> /xf0/x96/xa7/x94 BAMUM LETTER PHASE-E NJEE
++<U000169D5> /xf0/x96/xa7/x95 BAMUM LETTER PHASE-E A
++<U000169D6> /xf0/x96/xa7/x96 BAMUM LETTER PHASE-E TOQ
++<U000169D7> /xf0/x96/xa7/x97 BAMUM LETTER PHASE-E O
++<U000169D8> /xf0/x96/xa7/x98 BAMUM LETTER PHASE-E I
++<U000169D9> /xf0/x96/xa7/x99 BAMUM LETTER PHASE-E LAQ
++<U000169DA> /xf0/x96/xa7/x9a BAMUM LETTER PHASE-E PA PLURAL
++<U000169DB> /xf0/x96/xa7/x9b BAMUM LETTER PHASE-E TAA
++<U000169DC> /xf0/x96/xa7/x9c BAMUM LETTER PHASE-E TAQ
++<U000169DD> /xf0/x96/xa7/x9d BAMUM LETTER PHASE-E NDAA MY HOUSE
++<U000169DE> /xf0/x96/xa7/x9e BAMUM LETTER PHASE-E SHIQ
++<U000169DF> /xf0/x96/xa7/x9f BAMUM LETTER PHASE-E YEUX
++<U000169E0> /xf0/x96/xa7/xa0 BAMUM LETTER PHASE-E NGUAE
++<U000169E1> /xf0/x96/xa7/xa1 BAMUM LETTER PHASE-E YUAEN
++<U000169E2> /xf0/x96/xa7/xa2 BAMUM LETTER PHASE-E YOQ SWIMMING
++<U000169E3> /xf0/x96/xa7/xa3 BAMUM LETTER PHASE-E YOQ COVER
++<U000169E4> /xf0/x96/xa7/xa4 BAMUM LETTER PHASE-E YUQ
++<U000169E5> /xf0/x96/xa7/xa5 BAMUM LETTER PHASE-E YUN
++<U000169E6> /xf0/x96/xa7/xa6 BAMUM LETTER PHASE-E KEUX
++<U000169E7> /xf0/x96/xa7/xa7 BAMUM LETTER PHASE-E PEUX
++<U000169E8> /xf0/x96/xa7/xa8 BAMUM LETTER PHASE-E NJEE EPOCH
++<U000169E9> /xf0/x96/xa7/xa9 BAMUM LETTER PHASE-E PUE
++<U000169EA> /xf0/x96/xa7/xaa BAMUM LETTER PHASE-E WUE
++<U000169EB> /xf0/x96/xa7/xab BAMUM LETTER PHASE-E FEE
++<U000169EC> /xf0/x96/xa7/xac BAMUM LETTER PHASE-E VEE
++<U000169ED> /xf0/x96/xa7/xad BAMUM LETTER PHASE-E LU
++<U000169EE> /xf0/x96/xa7/xae BAMUM LETTER PHASE-E MI
++<U000169EF> /xf0/x96/xa7/xaf BAMUM LETTER PHASE-E REUX
++<U000169F0> /xf0/x96/xa7/xb0 BAMUM LETTER PHASE-E RAE
++<U000169F1> /xf0/x96/xa7/xb1 BAMUM LETTER PHASE-E NGUAET
++<U000169F2> /xf0/x96/xa7/xb2 BAMUM LETTER PHASE-E NGA
++<U000169F3> /xf0/x96/xa7/xb3 BAMUM LETTER PHASE-E SHO
++<U000169F4> /xf0/x96/xa7/xb4 BAMUM LETTER PHASE-E SHOQ
++<U000169F5> /xf0/x96/xa7/xb5 BAMUM LETTER PHASE-E FU REMEDY
++<U000169F6> /xf0/x96/xa7/xb6 BAMUM LETTER PHASE-E NA
++<U000169F7> /xf0/x96/xa7/xb7 BAMUM LETTER PHASE-E PI
++<U000169F8> /xf0/x96/xa7/xb8 BAMUM LETTER PHASE-E LOQ
++<U000169F9> /xf0/x96/xa7/xb9 BAMUM LETTER PHASE-E KO
++<U000169FA> /xf0/x96/xa7/xba BAMUM LETTER PHASE-E MEN
++<U000169FB> /xf0/x96/xa7/xbb BAMUM LETTER PHASE-E MA
++<U000169FC> /xf0/x96/xa7/xbc BAMUM LETTER PHASE-E MAQ
++<U000169FD> /xf0/x96/xa7/xbd BAMUM LETTER PHASE-E TEU
++<U000169FE> /xf0/x96/xa7/xbe BAMUM LETTER PHASE-E KI
++<U000169FF> /xf0/x96/xa7/xbf BAMUM LETTER PHASE-E MON
++<U00016A00> /xf0/x96/xa8/x80 BAMUM LETTER PHASE-E TEN
++<U00016A01> /xf0/x96/xa8/x81 BAMUM LETTER PHASE-E FAQ
++<U00016A02> /xf0/x96/xa8/x82 BAMUM LETTER PHASE-E GHOM
++<U00016A03> /xf0/x96/xa8/x83 BAMUM LETTER PHASE-F KA
++<U00016A04> /xf0/x96/xa8/x84 BAMUM LETTER PHASE-F U
++<U00016A05> /xf0/x96/xa8/x85 BAMUM LETTER PHASE-F KU
++<U00016A06> /xf0/x96/xa8/x86 BAMUM LETTER PHASE-F EE
++<U00016A07> /xf0/x96/xa8/x87 BAMUM LETTER PHASE-F REE
++<U00016A08> /xf0/x96/xa8/x88 BAMUM LETTER PHASE-F TAE
++<U00016A09> /xf0/x96/xa8/x89 BAMUM LETTER PHASE-F NYI
++<U00016A0A> /xf0/x96/xa8/x8a BAMUM LETTER PHASE-F LA
++<U00016A0B> /xf0/x96/xa8/x8b BAMUM LETTER PHASE-F RII
++<U00016A0C> /xf0/x96/xa8/x8c BAMUM LETTER PHASE-F RIEE
++<U00016A0D> /xf0/x96/xa8/x8d BAMUM LETTER PHASE-F MEEEE
++<U00016A0E> /xf0/x96/xa8/x8e BAMUM LETTER PHASE-F TAA
++<U00016A0F> /xf0/x96/xa8/x8f BAMUM LETTER PHASE-F NDAA
++<U00016A10> /xf0/x96/xa8/x90 BAMUM LETTER PHASE-F NJAEM
++<U00016A11> /xf0/x96/xa8/x91 BAMUM LETTER PHASE-F M
++<U00016A12> /xf0/x96/xa8/x92 BAMUM LETTER PHASE-F SUU
++<U00016A13> /xf0/x96/xa8/x93 BAMUM LETTER PHASE-F SHII
++<U00016A14> /xf0/x96/xa8/x94 BAMUM LETTER PHASE-F SI
++<U00016A15> /xf0/x96/xa8/x95 BAMUM LETTER PHASE-F SEUX
++<U00016A16> /xf0/x96/xa8/x96 BAMUM LETTER PHASE-F KYEE
++<U00016A17> /xf0/x96/xa8/x97 BAMUM LETTER PHASE-F KET
++<U00016A18> /xf0/x96/xa8/x98 BAMUM LETTER PHASE-F NUAE
++<U00016A19> /xf0/x96/xa8/x99 BAMUM LETTER PHASE-F NU
++<U00016A1A> /xf0/x96/xa8/x9a BAMUM LETTER PHASE-F NJUAE
++<U00016A1B> /xf0/x96/xa8/x9b BAMUM LETTER PHASE-F YOQ
++<U00016A1C> /xf0/x96/xa8/x9c BAMUM LETTER PHASE-F SHU
++<U00016A1D> /xf0/x96/xa8/x9d BAMUM LETTER PHASE-F YA
++<U00016A1E> /xf0/x96/xa8/x9e BAMUM LETTER PHASE-F NSHA
++<U00016A1F> /xf0/x96/xa8/x9f BAMUM LETTER PHASE-F PEUX
++<U00016A20> /xf0/x96/xa8/xa0 BAMUM LETTER PHASE-F NTEE
++<U00016A21> /xf0/x96/xa8/xa1 BAMUM LETTER PHASE-F WUE
++<U00016A22> /xf0/x96/xa8/xa2 BAMUM LETTER PHASE-F PEE
++<U00016A23> /xf0/x96/xa8/xa3 BAMUM LETTER PHASE-F RU
++<U00016A24> /xf0/x96/xa8/xa4 BAMUM LETTER PHASE-F NI
++<U00016A25> /xf0/x96/xa8/xa5 BAMUM LETTER PHASE-F REUX
++<U00016A26> /xf0/x96/xa8/xa6 BAMUM LETTER PHASE-F KEN
++<U00016A27> /xf0/x96/xa8/xa7 BAMUM LETTER PHASE-F NGKWAEN
++<U00016A28> /xf0/x96/xa8/xa8 BAMUM LETTER PHASE-F NGGA
++<U00016A29> /xf0/x96/xa8/xa9 BAMUM LETTER PHASE-F SHO
++<U00016A2A> /xf0/x96/xa8/xaa BAMUM LETTER PHASE-F PUAE
++<U00016A2B> /xf0/x96/xa8/xab BAMUM LETTER PHASE-F FOM
++<U00016A2C> /xf0/x96/xa8/xac BAMUM LETTER PHASE-F WA
++<U00016A2D> /xf0/x96/xa8/xad BAMUM LETTER PHASE-F LI
++<U00016A2E> /xf0/x96/xa8/xae BAMUM LETTER PHASE-F LOQ
++<U00016A2F> /xf0/x96/xa8/xaf BAMUM LETTER PHASE-F KO
++<U00016A30> /xf0/x96/xa8/xb0 BAMUM LETTER PHASE-F MBEN
++<U00016A31> /xf0/x96/xa8/xb1 BAMUM LETTER PHASE-F REN
++<U00016A32> /xf0/x96/xa8/xb2 BAMUM LETTER PHASE-F MA
++<U00016A33> /xf0/x96/xa8/xb3 BAMUM LETTER PHASE-F MO
++<U00016A34> /xf0/x96/xa8/xb4 BAMUM LETTER PHASE-F MBAA
++<U00016A35> /xf0/x96/xa8/xb5 BAMUM LETTER PHASE-F TET
++<U00016A36> /xf0/x96/xa8/xb6 BAMUM LETTER PHASE-F KPA
++<U00016A37> /xf0/x96/xa8/xb7 BAMUM LETTER PHASE-F SAMBA
++<U00016A38> /xf0/x96/xa8/xb8 BAMUM LETTER PHASE-F VUEQ
++<U0001B000> /xf0/x9b/x80/x80 KATAKANA LETTER ARCHAIC E
++<U0001B001> /xf0/x9b/x80/x81 HIRAGANA LETTER ARCHAIC YE
+ <U0001D000> /xf0/x9d/x80/x80 BYZANTINE MUSICAL SYMBOL PSILI
+ <U0001D001> /xf0/x9d/x80/x81 BYZANTINE MUSICAL SYMBOL DASEIA
+ <U0001D002> /xf0/x9d/x80/x82 BYZANTINE MUSICAL SYMBOL PERISPOMENI
+@@ -30151,6 +33445,1091 @@ CHARMAP
+ <U0001F091> /xf0/x9f/x82/x91 DOMINO TILE VERTICAL-06-04
+ <U0001F092> /xf0/x9f/x82/x92 DOMINO TILE VERTICAL-06-05
+ <U0001F093> /xf0/x9f/x82/x93 DOMINO TILE VERTICAL-06-06
++<U0001F0A0> /xf0/x9f/x82/xa0 PLAYING CARD BACK
++<U0001F0A1> /xf0/x9f/x82/xa1 PLAYING CARD ACE OF SPADES
++<U0001F0A2> /xf0/x9f/x82/xa2 PLAYING CARD TWO OF SPADES
++<U0001F0A3> /xf0/x9f/x82/xa3 PLAYING CARD THREE OF SPADES
++<U0001F0A4> /xf0/x9f/x82/xa4 PLAYING CARD FOUR OF SPADES
++<U0001F0A5> /xf0/x9f/x82/xa5 PLAYING CARD FIVE OF SPADES
++<U0001F0A6> /xf0/x9f/x82/xa6 PLAYING CARD SIX OF SPADES
++<U0001F0A7> /xf0/x9f/x82/xa7 PLAYING CARD SEVEN OF SPADES
++<U0001F0A8> /xf0/x9f/x82/xa8 PLAYING CARD EIGHT OF SPADES
++<U0001F0A9> /xf0/x9f/x82/xa9 PLAYING CARD NINE OF SPADES
++<U0001F0AA> /xf0/x9f/x82/xaa PLAYING CARD TEN OF SPADES
++<U0001F0AB> /xf0/x9f/x82/xab PLAYING CARD JACK OF SPADES
++<U0001F0AC> /xf0/x9f/x82/xac PLAYING CARD KNIGHT OF SPADES
++<U0001F0AD> /xf0/x9f/x82/xad PLAYING CARD QUEEN OF SPADES
++<U0001F0AE> /xf0/x9f/x82/xae PLAYING CARD KING OF SPADES
++<U0001F0B1> /xf0/x9f/x82/xb1 PLAYING CARD ACE OF HEARTS
++<U0001F0B2> /xf0/x9f/x82/xb2 PLAYING CARD TWO OF HEARTS
++<U0001F0B3> /xf0/x9f/x82/xb3 PLAYING CARD THREE OF HEARTS
++<U0001F0B4> /xf0/x9f/x82/xb4 PLAYING CARD FOUR OF HEARTS
++<U0001F0B5> /xf0/x9f/x82/xb5 PLAYING CARD FIVE OF HEARTS
++<U0001F0B6> /xf0/x9f/x82/xb6 PLAYING CARD SIX OF HEARTS
++<U0001F0B7> /xf0/x9f/x82/xb7 PLAYING CARD SEVEN OF HEARTS
++<U0001F0B8> /xf0/x9f/x82/xb8 PLAYING CARD EIGHT OF HEARTS
++<U0001F0B9> /xf0/x9f/x82/xb9 PLAYING CARD NINE OF HEARTS
++<U0001F0BA> /xf0/x9f/x82/xba PLAYING CARD TEN OF HEARTS
++<U0001F0BB> /xf0/x9f/x82/xbb PLAYING CARD JACK OF HEARTS
++<U0001F0BC> /xf0/x9f/x82/xbc PLAYING CARD KNIGHT OF HEARTS
++<U0001F0BD> /xf0/x9f/x82/xbd PLAYING CARD QUEEN OF HEARTS
++<U0001F0BE> /xf0/x9f/x82/xbe PLAYING CARD KING OF HEARTS
++<U0001F0C1> /xf0/x9f/x83/x81 PLAYING CARD ACE OF DIAMONDS
++<U0001F0C2> /xf0/x9f/x83/x82 PLAYING CARD TWO OF DIAMONDS
++<U0001F0C3> /xf0/x9f/x83/x83 PLAYING CARD THREE OF DIAMONDS
++<U0001F0C4> /xf0/x9f/x83/x84 PLAYING CARD FOUR OF DIAMONDS
++<U0001F0C5> /xf0/x9f/x83/x85 PLAYING CARD FIVE OF DIAMONDS
++<U0001F0C6> /xf0/x9f/x83/x86 PLAYING CARD SIX OF DIAMONDS
++<U0001F0C7> /xf0/x9f/x83/x87 PLAYING CARD SEVEN OF DIAMONDS
++<U0001F0C8> /xf0/x9f/x83/x88 PLAYING CARD EIGHT OF DIAMONDS
++<U0001F0C9> /xf0/x9f/x83/x89 PLAYING CARD NINE OF DIAMONDS
++<U0001F0CA> /xf0/x9f/x83/x8a PLAYING CARD TEN OF DIAMONDS
++<U0001F0CB> /xf0/x9f/x83/x8b PLAYING CARD JACK OF DIAMONDS
++<U0001F0CC> /xf0/x9f/x83/x8c PLAYING CARD KNIGHT OF DIAMONDS
++<U0001F0CD> /xf0/x9f/x83/x8d PLAYING CARD QUEEN OF DIAMONDS
++<U0001F0CE> /xf0/x9f/x83/x8e PLAYING CARD KING OF DIAMONDS
++<U0001F0CF> /xf0/x9f/x83/x8f PLAYING CARD BLACK JOKER
++<U0001F0D1> /xf0/x9f/x83/x91 PLAYING CARD ACE OF CLUBS
++<U0001F0D2> /xf0/x9f/x83/x92 PLAYING CARD TWO OF CLUBS
++<U0001F0D3> /xf0/x9f/x83/x93 PLAYING CARD THREE OF CLUBS
++<U0001F0D4> /xf0/x9f/x83/x94 PLAYING CARD FOUR OF CLUBS
++<U0001F0D5> /xf0/x9f/x83/x95 PLAYING CARD FIVE OF CLUBS
++<U0001F0D6> /xf0/x9f/x83/x96 PLAYING CARD SIX OF CLUBS
++<U0001F0D7> /xf0/x9f/x83/x97 PLAYING CARD SEVEN OF CLUBS
++<U0001F0D8> /xf0/x9f/x83/x98 PLAYING CARD EIGHT OF CLUBS
++<U0001F0D9> /xf0/x9f/x83/x99 PLAYING CARD NINE OF CLUBS
++<U0001F0DA> /xf0/x9f/x83/x9a PLAYING CARD TEN OF CLUBS
++<U0001F0DB> /xf0/x9f/x83/x9b PLAYING CARD JACK OF CLUBS
++<U0001F0DC> /xf0/x9f/x83/x9c PLAYING CARD KNIGHT OF CLUBS
++<U0001F0DD> /xf0/x9f/x83/x9d PLAYING CARD QUEEN OF CLUBS
++<U0001F0DE> /xf0/x9f/x83/x9e PLAYING CARD KING OF CLUBS
++<U0001F0DF> /xf0/x9f/x83/x9f PLAYING CARD WHITE JOKER
++<U0001F100> /xf0/x9f/x84/x80 DIGIT ZERO FULL STOP
++<U0001F101> /xf0/x9f/x84/x81 DIGIT ZERO COMMA
++<U0001F102> /xf0/x9f/x84/x82 DIGIT ONE COMMA
++<U0001F103> /xf0/x9f/x84/x83 DIGIT TWO COMMA
++<U0001F104> /xf0/x9f/x84/x84 DIGIT THREE COMMA
++<U0001F105> /xf0/x9f/x84/x85 DIGIT FOUR COMMA
++<U0001F106> /xf0/x9f/x84/x86 DIGIT FIVE COMMA
++<U0001F107> /xf0/x9f/x84/x87 DIGIT SIX COMMA
++<U0001F108> /xf0/x9f/x84/x88 DIGIT SEVEN COMMA
++<U0001F109> /xf0/x9f/x84/x89 DIGIT EIGHT COMMA
++<U0001F10A> /xf0/x9f/x84/x8a DIGIT NINE COMMA
++<U0001F110> /xf0/x9f/x84/x90 PARENTHESIZED LATIN CAPITAL LETTER A
++<U0001F111> /xf0/x9f/x84/x91 PARENTHESIZED LATIN CAPITAL LETTER B
++<U0001F112> /xf0/x9f/x84/x92 PARENTHESIZED LATIN CAPITAL LETTER C
++<U0001F113> /xf0/x9f/x84/x93 PARENTHESIZED LATIN CAPITAL LETTER D
++<U0001F114> /xf0/x9f/x84/x94 PARENTHESIZED LATIN CAPITAL LETTER E
++<U0001F115> /xf0/x9f/x84/x95 PARENTHESIZED LATIN CAPITAL LETTER F
++<U0001F116> /xf0/x9f/x84/x96 PARENTHESIZED LATIN CAPITAL LETTER G
++<U0001F117> /xf0/x9f/x84/x97 PARENTHESIZED LATIN CAPITAL LETTER H
++<U0001F118> /xf0/x9f/x84/x98 PARENTHESIZED LATIN CAPITAL LETTER I
++<U0001F119> /xf0/x9f/x84/x99 PARENTHESIZED LATIN CAPITAL LETTER J
++<U0001F11A> /xf0/x9f/x84/x9a PARENTHESIZED LATIN CAPITAL LETTER K
++<U0001F11B> /xf0/x9f/x84/x9b PARENTHESIZED LATIN CAPITAL LETTER L
++<U0001F11C> /xf0/x9f/x84/x9c PARENTHESIZED LATIN CAPITAL LETTER M
++<U0001F11D> /xf0/x9f/x84/x9d PARENTHESIZED LATIN CAPITAL LETTER N
++<U0001F11E> /xf0/x9f/x84/x9e PARENTHESIZED LATIN CAPITAL LETTER O
++<U0001F11F> /xf0/x9f/x84/x9f PARENTHESIZED LATIN CAPITAL LETTER P
++<U0001F120> /xf0/x9f/x84/xa0 PARENTHESIZED LATIN CAPITAL LETTER Q
++<U0001F121> /xf0/x9f/x84/xa1 PARENTHESIZED LATIN CAPITAL LETTER R
++<U0001F122> /xf0/x9f/x84/xa2 PARENTHESIZED LATIN CAPITAL LETTER S
++<U0001F123> /xf0/x9f/x84/xa3 PARENTHESIZED LATIN CAPITAL LETTER T
++<U0001F124> /xf0/x9f/x84/xa4 PARENTHESIZED LATIN CAPITAL LETTER U
++<U0001F125> /xf0/x9f/x84/xa5 PARENTHESIZED LATIN CAPITAL LETTER V
++<U0001F126> /xf0/x9f/x84/xa6 PARENTHESIZED LATIN CAPITAL LETTER W
++<U0001F127> /xf0/x9f/x84/xa7 PARENTHESIZED LATIN CAPITAL LETTER X
++<U0001F128> /xf0/x9f/x84/xa8 PARENTHESIZED LATIN CAPITAL LETTER Y
++<U0001F129> /xf0/x9f/x84/xa9 PARENTHESIZED LATIN CAPITAL LETTER Z
++<U0001F12A> /xf0/x9f/x84/xaa TORTOISE SHELL BRACKETED LATIN CAPITAL LETTER S
++<U0001F12B> /xf0/x9f/x84/xab CIRCLED ITALIC LATIN CAPITAL LETTER C
++<U0001F12C> /xf0/x9f/x84/xac CIRCLED ITALIC LATIN CAPITAL LETTER R
++<U0001F12D> /xf0/x9f/x84/xad CIRCLED CD
++<U0001F12E> /xf0/x9f/x84/xae CIRCLED WZ
++<U0001F130> /xf0/x9f/x84/xb0 SQUARED LATIN CAPITAL LETTER A
++<U0001F131> /xf0/x9f/x84/xb1 SQUARED LATIN CAPITAL LETTER B
++<U0001F132> /xf0/x9f/x84/xb2 SQUARED LATIN CAPITAL LETTER C
++<U0001F133> /xf0/x9f/x84/xb3 SQUARED LATIN CAPITAL LETTER D
++<U0001F134> /xf0/x9f/x84/xb4 SQUARED LATIN CAPITAL LETTER E
++<U0001F135> /xf0/x9f/x84/xb5 SQUARED LATIN CAPITAL LETTER F
++<U0001F136> /xf0/x9f/x84/xb6 SQUARED LATIN CAPITAL LETTER G
++<U0001F137> /xf0/x9f/x84/xb7 SQUARED LATIN CAPITAL LETTER H
++<U0001F138> /xf0/x9f/x84/xb8 SQUARED LATIN CAPITAL LETTER I
++<U0001F139> /xf0/x9f/x84/xb9 SQUARED LATIN CAPITAL LETTER J
++<U0001F13A> /xf0/x9f/x84/xba SQUARED LATIN CAPITAL LETTER K
++<U0001F13B> /xf0/x9f/x84/xbb SQUARED LATIN CAPITAL LETTER L
++<U0001F13C> /xf0/x9f/x84/xbc SQUARED LATIN CAPITAL LETTER M
++<U0001F13D> /xf0/x9f/x84/xbd SQUARED LATIN CAPITAL LETTER N
++<U0001F13E> /xf0/x9f/x84/xbe SQUARED LATIN CAPITAL LETTER O
++<U0001F13F> /xf0/x9f/x84/xbf SQUARED LATIN CAPITAL LETTER P
++<U0001F140> /xf0/x9f/x85/x80 SQUARED LATIN CAPITAL LETTER Q
++<U0001F141> /xf0/x9f/x85/x81 SQUARED LATIN CAPITAL LETTER R
++<U0001F142> /xf0/x9f/x85/x82 SQUARED LATIN CAPITAL LETTER S
++<U0001F143> /xf0/x9f/x85/x83 SQUARED LATIN CAPITAL LETTER T
++<U0001F144> /xf0/x9f/x85/x84 SQUARED LATIN CAPITAL LETTER U
++<U0001F145> /xf0/x9f/x85/x85 SQUARED LATIN CAPITAL LETTER V
++<U0001F146> /xf0/x9f/x85/x86 SQUARED LATIN CAPITAL LETTER W
++<U0001F147> /xf0/x9f/x85/x87 SQUARED LATIN CAPITAL LETTER X
++<U0001F148> /xf0/x9f/x85/x88 SQUARED LATIN CAPITAL LETTER Y
++<U0001F149> /xf0/x9f/x85/x89 SQUARED LATIN CAPITAL LETTER Z
++<U0001F14A> /xf0/x9f/x85/x8a SQUARED HV
++<U0001F14B> /xf0/x9f/x85/x8b SQUARED MV
++<U0001F14C> /xf0/x9f/x85/x8c SQUARED SD
++<U0001F14D> /xf0/x9f/x85/x8d SQUARED SS
++<U0001F14E> /xf0/x9f/x85/x8e SQUARED PPV
++<U0001F14F> /xf0/x9f/x85/x8f SQUARED WC
++<U0001F150> /xf0/x9f/x85/x90 NEGATIVE CIRCLED LATIN CAPITAL LETTER A
++<U0001F151> /xf0/x9f/x85/x91 NEGATIVE CIRCLED LATIN CAPITAL LETTER B
++<U0001F152> /xf0/x9f/x85/x92 NEGATIVE CIRCLED LATIN CAPITAL LETTER C
++<U0001F153> /xf0/x9f/x85/x93 NEGATIVE CIRCLED LATIN CAPITAL LETTER D
++<U0001F154> /xf0/x9f/x85/x94 NEGATIVE CIRCLED LATIN CAPITAL LETTER E
++<U0001F155> /xf0/x9f/x85/x95 NEGATIVE CIRCLED LATIN CAPITAL LETTER F
++<U0001F156> /xf0/x9f/x85/x96 NEGATIVE CIRCLED LATIN CAPITAL LETTER G
++<U0001F157> /xf0/x9f/x85/x97 NEGATIVE CIRCLED LATIN CAPITAL LETTER H
++<U0001F158> /xf0/x9f/x85/x98 NEGATIVE CIRCLED LATIN CAPITAL LETTER I
++<U0001F159> /xf0/x9f/x85/x99 NEGATIVE CIRCLED LATIN CAPITAL LETTER J
++<U0001F15A> /xf0/x9f/x85/x9a NEGATIVE CIRCLED LATIN CAPITAL LETTER K
++<U0001F15B> /xf0/x9f/x85/x9b NEGATIVE CIRCLED LATIN CAPITAL LETTER L
++<U0001F15C> /xf0/x9f/x85/x9c NEGATIVE CIRCLED LATIN CAPITAL LETTER M
++<U0001F15D> /xf0/x9f/x85/x9d NEGATIVE CIRCLED LATIN CAPITAL LETTER N
++<U0001F15E> /xf0/x9f/x85/x9e NEGATIVE CIRCLED LATIN CAPITAL LETTER O
++<U0001F15F> /xf0/x9f/x85/x9f NEGATIVE CIRCLED LATIN CAPITAL LETTER P
++<U0001F160> /xf0/x9f/x85/xa0 NEGATIVE CIRCLED LATIN CAPITAL LETTER Q
++<U0001F161> /xf0/x9f/x85/xa1 NEGATIVE CIRCLED LATIN CAPITAL LETTER R
++<U0001F162> /xf0/x9f/x85/xa2 NEGATIVE CIRCLED LATIN CAPITAL LETTER S
++<U0001F163> /xf0/x9f/x85/xa3 NEGATIVE CIRCLED LATIN CAPITAL LETTER T
++<U0001F164> /xf0/x9f/x85/xa4 NEGATIVE CIRCLED LATIN CAPITAL LETTER U
++<U0001F165> /xf0/x9f/x85/xa5 NEGATIVE CIRCLED LATIN CAPITAL LETTER V
++<U0001F166> /xf0/x9f/x85/xa6 NEGATIVE CIRCLED LATIN CAPITAL LETTER W
++<U0001F167> /xf0/x9f/x85/xa7 NEGATIVE CIRCLED LATIN CAPITAL LETTER X
++<U0001F168> /xf0/x9f/x85/xa8 NEGATIVE CIRCLED LATIN CAPITAL LETTER Y
++<U0001F169> /xf0/x9f/x85/xa9 NEGATIVE CIRCLED LATIN CAPITAL LETTER Z
++<U0001F170> /xf0/x9f/x85/xb0 NEGATIVE SQUARED LATIN CAPITAL LETTER A
++<U0001F171> /xf0/x9f/x85/xb1 NEGATIVE SQUARED LATIN CAPITAL LETTER B
++<U0001F172> /xf0/x9f/x85/xb2 NEGATIVE SQUARED LATIN CAPITAL LETTER C
++<U0001F173> /xf0/x9f/x85/xb3 NEGATIVE SQUARED LATIN CAPITAL LETTER D
++<U0001F174> /xf0/x9f/x85/xb4 NEGATIVE SQUARED LATIN CAPITAL LETTER E
++<U0001F175> /xf0/x9f/x85/xb5 NEGATIVE SQUARED LATIN CAPITAL LETTER F
++<U0001F176> /xf0/x9f/x85/xb6 NEGATIVE SQUARED LATIN CAPITAL LETTER G
++<U0001F177> /xf0/x9f/x85/xb7 NEGATIVE SQUARED LATIN CAPITAL LETTER H
++<U0001F178> /xf0/x9f/x85/xb8 NEGATIVE SQUARED LATIN CAPITAL LETTER I
++<U0001F179> /xf0/x9f/x85/xb9 NEGATIVE SQUARED LATIN CAPITAL LETTER J
++<U0001F17A> /xf0/x9f/x85/xba NEGATIVE SQUARED LATIN CAPITAL LETTER K
++<U0001F17B> /xf0/x9f/x85/xbb NEGATIVE SQUARED LATIN CAPITAL LETTER L
++<U0001F17C> /xf0/x9f/x85/xbc NEGATIVE SQUARED LATIN CAPITAL LETTER M
++<U0001F17D> /xf0/x9f/x85/xbd NEGATIVE SQUARED LATIN CAPITAL LETTER N
++<U0001F17E> /xf0/x9f/x85/xbe NEGATIVE SQUARED LATIN CAPITAL LETTER O
++<U0001F17F> /xf0/x9f/x85/xbf NEGATIVE SQUARED LATIN CAPITAL LETTER P
++<U0001F180> /xf0/x9f/x86/x80 NEGATIVE SQUARED LATIN CAPITAL LETTER Q
++<U0001F181> /xf0/x9f/x86/x81 NEGATIVE SQUARED LATIN CAPITAL LETTER R
++<U0001F182> /xf0/x9f/x86/x82 NEGATIVE SQUARED LATIN CAPITAL LETTER S
++<U0001F183> /xf0/x9f/x86/x83 NEGATIVE SQUARED LATIN CAPITAL LETTER T
++<U0001F184> /xf0/x9f/x86/x84 NEGATIVE SQUARED LATIN CAPITAL LETTER U
++<U0001F185> /xf0/x9f/x86/x85 NEGATIVE SQUARED LATIN CAPITAL LETTER V
++<U0001F186> /xf0/x9f/x86/x86 NEGATIVE SQUARED LATIN CAPITAL LETTER W
++<U0001F187> /xf0/x9f/x86/x87 NEGATIVE SQUARED LATIN CAPITAL LETTER X
++<U0001F188> /xf0/x9f/x86/x88 NEGATIVE SQUARED LATIN CAPITAL LETTER Y
++<U0001F189> /xf0/x9f/x86/x89 NEGATIVE SQUARED LATIN CAPITAL LETTER Z
++<U0001F18A> /xf0/x9f/x86/x8a CROSSED NEGATIVE SQUARED LATIN CAPITAL LETTER P
++<U0001F18B> /xf0/x9f/x86/x8b NEGATIVE SQUARED IC
++<U0001F18C> /xf0/x9f/x86/x8c NEGATIVE SQUARED PA
++<U0001F18D> /xf0/x9f/x86/x8d NEGATIVE SQUARED SA
++<U0001F18E> /xf0/x9f/x86/x8e NEGATIVE SQUARED AB
++<U0001F18F> /xf0/x9f/x86/x8f NEGATIVE SQUARED WC
++<U0001F190> /xf0/x9f/x86/x90 SQUARE DJ
++<U0001F191> /xf0/x9f/x86/x91 SQUARED CL
++<U0001F192> /xf0/x9f/x86/x92 SQUARED COOL
++<U0001F193> /xf0/x9f/x86/x93 SQUARED FREE
++<U0001F194> /xf0/x9f/x86/x94 SQUARED ID
++<U0001F195> /xf0/x9f/x86/x95 SQUARED NEW
++<U0001F196> /xf0/x9f/x86/x96 SQUARED NG
++<U0001F197> /xf0/x9f/x86/x97 SQUARED OK
++<U0001F198> /xf0/x9f/x86/x98 SQUARED SOS
++<U0001F199> /xf0/x9f/x86/x99 SQUARED UP WITH EXCLAMATION MARK
++<U0001F19A> /xf0/x9f/x86/x9a SQUARED VS
++<U0001F1E6> /xf0/x9f/x87/xa6 REGIONAL INDICATOR SYMBOL LETTER A
++<U0001F1E7> /xf0/x9f/x87/xa7 REGIONAL INDICATOR SYMBOL LETTER B
++<U0001F1E8> /xf0/x9f/x87/xa8 REGIONAL INDICATOR SYMBOL LETTER C
++<U0001F1E9> /xf0/x9f/x87/xa9 REGIONAL INDICATOR SYMBOL LETTER D
++<U0001F1EA> /xf0/x9f/x87/xaa REGIONAL INDICATOR SYMBOL LETTER E
++<U0001F1EB> /xf0/x9f/x87/xab REGIONAL INDICATOR SYMBOL LETTER F
++<U0001F1EC> /xf0/x9f/x87/xac REGIONAL INDICATOR SYMBOL LETTER G
++<U0001F1ED> /xf0/x9f/x87/xad REGIONAL INDICATOR SYMBOL LETTER H
++<U0001F1EE> /xf0/x9f/x87/xae REGIONAL INDICATOR SYMBOL LETTER I
++<U0001F1EF> /xf0/x9f/x87/xaf REGIONAL INDICATOR SYMBOL LETTER J
++<U0001F1F0> /xf0/x9f/x87/xb0 REGIONAL INDICATOR SYMBOL LETTER K
++<U0001F1F1> /xf0/x9f/x87/xb1 REGIONAL INDICATOR SYMBOL LETTER L
++<U0001F1F2> /xf0/x9f/x87/xb2 REGIONAL INDICATOR SYMBOL LETTER M
++<U0001F1F3> /xf0/x9f/x87/xb3 REGIONAL INDICATOR SYMBOL LETTER N
++<U0001F1F4> /xf0/x9f/x87/xb4 REGIONAL INDICATOR SYMBOL LETTER O
++<U0001F1F5> /xf0/x9f/x87/xb5 REGIONAL INDICATOR SYMBOL LETTER P
++<U0001F1F6> /xf0/x9f/x87/xb6 REGIONAL INDICATOR SYMBOL LETTER Q
++<U0001F1F7> /xf0/x9f/x87/xb7 REGIONAL INDICATOR SYMBOL LETTER R
++<U0001F1F8> /xf0/x9f/x87/xb8 REGIONAL INDICATOR SYMBOL LETTER S
++<U0001F1F9> /xf0/x9f/x87/xb9 REGIONAL INDICATOR SYMBOL LETTER T
++<U0001F1FA> /xf0/x9f/x87/xba REGIONAL INDICATOR SYMBOL LETTER U
++<U0001F1FB> /xf0/x9f/x87/xbb REGIONAL INDICATOR SYMBOL LETTER V
++<U0001F1FC> /xf0/x9f/x87/xbc REGIONAL INDICATOR SYMBOL LETTER W
++<U0001F1FD> /xf0/x9f/x87/xbd REGIONAL INDICATOR SYMBOL LETTER X
++<U0001F1FE> /xf0/x9f/x87/xbe REGIONAL INDICATOR SYMBOL LETTER Y
++<U0001F1FF> /xf0/x9f/x87/xbf REGIONAL INDICATOR SYMBOL LETTER Z
++<U0001F200> /xf0/x9f/x88/x80 SQUARE HIRAGANA HOKA
++<U0001F201> /xf0/x9f/x88/x81 SQUARED KATAKANA KOKO
++<U0001F202> /xf0/x9f/x88/x82 SQUARED KATAKANA SA
++<U0001F210> /xf0/x9f/x88/x90 SQUARED CJK UNIFIED IDEOGRAPH-624B
++<U0001F211> /xf0/x9f/x88/x91 SQUARED CJK UNIFIED IDEOGRAPH-5B57
++<U0001F212> /xf0/x9f/x88/x92 SQUARED CJK UNIFIED IDEOGRAPH-53CC
++<U0001F213> /xf0/x9f/x88/x93 SQUARED KATAKANA DE
++<U0001F214> /xf0/x9f/x88/x94 SQUARED CJK UNIFIED IDEOGRAPH-4E8C
++<U0001F215> /xf0/x9f/x88/x95 SQUARED CJK UNIFIED IDEOGRAPH-591A
++<U0001F216> /xf0/x9f/x88/x96 SQUARED CJK UNIFIED IDEOGRAPH-89E3
++<U0001F217> /xf0/x9f/x88/x97 SQUARED CJK UNIFIED IDEOGRAPH-5929
++<U0001F218> /xf0/x9f/x88/x98 SQUARED CJK UNIFIED IDEOGRAPH-4EA4
++<U0001F219> /xf0/x9f/x88/x99 SQUARED CJK UNIFIED IDEOGRAPH-6620
++<U0001F21A> /xf0/x9f/x88/x9a SQUARED CJK UNIFIED IDEOGRAPH-7121
++<U0001F21B> /xf0/x9f/x88/x9b SQUARED CJK UNIFIED IDEOGRAPH-6599
++<U0001F21C> /xf0/x9f/x88/x9c SQUARED CJK UNIFIED IDEOGRAPH-524D
++<U0001F21D> /xf0/x9f/x88/x9d SQUARED CJK UNIFIED IDEOGRAPH-5F8C
++<U0001F21E> /xf0/x9f/x88/x9e SQUARED CJK UNIFIED IDEOGRAPH-518D
++<U0001F21F> /xf0/x9f/x88/x9f SQUARED CJK UNIFIED IDEOGRAPH-65B0
++<U0001F220> /xf0/x9f/x88/xa0 SQUARED CJK UNIFIED IDEOGRAPH-521D
++<U0001F221> /xf0/x9f/x88/xa1 SQUARED CJK UNIFIED IDEOGRAPH-7D42
++<U0001F222> /xf0/x9f/x88/xa2 SQUARED CJK UNIFIED IDEOGRAPH-751F
++<U0001F223> /xf0/x9f/x88/xa3 SQUARED CJK UNIFIED IDEOGRAPH-8CA9
++<U0001F224> /xf0/x9f/x88/xa4 SQUARED CJK UNIFIED IDEOGRAPH-58F0
++<U0001F225> /xf0/x9f/x88/xa5 SQUARED CJK UNIFIED IDEOGRAPH-5439
++<U0001F226> /xf0/x9f/x88/xa6 SQUARED CJK UNIFIED IDEOGRAPH-6F14
++<U0001F227> /xf0/x9f/x88/xa7 SQUARED CJK UNIFIED IDEOGRAPH-6295
++<U0001F228> /xf0/x9f/x88/xa8 SQUARED CJK UNIFIED IDEOGRAPH-6355
++<U0001F229> /xf0/x9f/x88/xa9 SQUARED CJK UNIFIED IDEOGRAPH-4E00
++<U0001F22A> /xf0/x9f/x88/xaa SQUARED CJK UNIFIED IDEOGRAPH-4E09
++<U0001F22B> /xf0/x9f/x88/xab SQUARED CJK UNIFIED IDEOGRAPH-904A
++<U0001F22C> /xf0/x9f/x88/xac SQUARED CJK UNIFIED IDEOGRAPH-5DE6
++<U0001F22D> /xf0/x9f/x88/xad SQUARED CJK UNIFIED IDEOGRAPH-4E2D
++<U0001F22E> /xf0/x9f/x88/xae SQUARED CJK UNIFIED IDEOGRAPH-53F3
++<U0001F22F> /xf0/x9f/x88/xaf SQUARED CJK UNIFIED IDEOGRAPH-6307
++<U0001F230> /xf0/x9f/x88/xb0 SQUARED CJK UNIFIED IDEOGRAPH-8D70
++<U0001F231> /xf0/x9f/x88/xb1 SQUARED CJK UNIFIED IDEOGRAPH-6253
++<U0001F232> /xf0/x9f/x88/xb2 SQUARED CJK UNIFIED IDEOGRAPH-7981
++<U0001F233> /xf0/x9f/x88/xb3 SQUARED CJK UNIFIED IDEOGRAPH-7A7A
++<U0001F234> /xf0/x9f/x88/xb4 SQUARED CJK UNIFIED IDEOGRAPH-5408
++<U0001F235> /xf0/x9f/x88/xb5 SQUARED CJK UNIFIED IDEOGRAPH-6E80
++<U0001F236> /xf0/x9f/x88/xb6 SQUARED CJK UNIFIED IDEOGRAPH-6709
++<U0001F237> /xf0/x9f/x88/xb7 SQUARED CJK UNIFIED IDEOGRAPH-6708
++<U0001F238> /xf0/x9f/x88/xb8 SQUARED CJK UNIFIED IDEOGRAPH-7533
++<U0001F239> /xf0/x9f/x88/xb9 SQUARED CJK UNIFIED IDEOGRAPH-5272
++<U0001F23A> /xf0/x9f/x88/xba SQUARED CJK UNIFIED IDEOGRAPH-55B6
++<U0001F240> /xf0/x9f/x89/x80 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-672C
++<U0001F241> /xf0/x9f/x89/x81 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E09
++<U0001F242> /xf0/x9f/x89/x82 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-4E8C
++<U0001F243> /xf0/x9f/x89/x83 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-5B89
++<U0001F244> /xf0/x9f/x89/x84 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-70B9
++<U0001F245> /xf0/x9f/x89/x85 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6253
++<U0001F246> /xf0/x9f/x89/x86 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-76D7
++<U0001F247> /xf0/x9f/x89/x87 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-52DD
++<U0001F248> /xf0/x9f/x89/x88 TORTOISE SHELL BRACKETED CJK UNIFIED IDEOGRAPH-6557
++<U0001F250> /xf0/x9f/x89/x90 CIRCLED IDEOGRAPH ADVANTAGE
++<U0001F251> /xf0/x9f/x89/x91 CIRCLED IDEOGRAPH ACCEPT
++<U0001F300> /xf0/x9f/x8c/x80 CYCLONE
++<U0001F301> /xf0/x9f/x8c/x81 FOGGY
++<U0001F302> /xf0/x9f/x8c/x82 CLOSED UMBRELLA
++<U0001F303> /xf0/x9f/x8c/x83 NIGHT WITH STARS
++<U0001F304> /xf0/x9f/x8c/x84 SUNRISE OVER MOUNTAINS
++<U0001F305> /xf0/x9f/x8c/x85 SUNRISE
++<U0001F306> /xf0/x9f/x8c/x86 CITYSCAPE AT DUSK
++<U0001F307> /xf0/x9f/x8c/x87 SUNSET OVER BUILDINGS
++<U0001F308> /xf0/x9f/x8c/x88 RAINBOW
++<U0001F309> /xf0/x9f/x8c/x89 BRIDGE AT NIGHT
++<U0001F30A> /xf0/x9f/x8c/x8a WATER WAVE
++<U0001F30B> /xf0/x9f/x8c/x8b VOLCANO
++<U0001F30C> /xf0/x9f/x8c/x8c MILKY WAY
++<U0001F30D> /xf0/x9f/x8c/x8d EARTH GLOBE EUROPE-AFRICA
++<U0001F30E> /xf0/x9f/x8c/x8e EARTH GLOBE AMERICAS
++<U0001F30F> /xf0/x9f/x8c/x8f EARTH GLOBE ASIA-AUSTRALIA
++<U0001F310> /xf0/x9f/x8c/x90 GLOBE WITH MERIDIANS
++<U0001F311> /xf0/x9f/x8c/x91 NEW MOON SYMBOL
++<U0001F312> /xf0/x9f/x8c/x92 WAXING CRESCENT MOON SYMBOL
++<U0001F313> /xf0/x9f/x8c/x93 FIRST QUARTER MOON SYMBOL
++<U0001F314> /xf0/x9f/x8c/x94 WAXING GIBBOUS MOON SYMBOL
++<U0001F315> /xf0/x9f/x8c/x95 FULL MOON SYMBOL
++<U0001F316> /xf0/x9f/x8c/x96 WANING GIBBOUS MOON SYMBOL
++<U0001F317> /xf0/x9f/x8c/x97 LAST QUARTER MOON SYMBOL
++<U0001F318> /xf0/x9f/x8c/x98 WANING CRESCENT MOON SYMBOL
++<U0001F319> /xf0/x9f/x8c/x99 CRESCENT MOON
++<U0001F31A> /xf0/x9f/x8c/x9a NEW MOON WITH FACE
++<U0001F31B> /xf0/x9f/x8c/x9b FIRST QUARTER MOON WITH FACE
++<U0001F31C> /xf0/x9f/x8c/x9c LAST QUARTER MOON WITH FACE
++<U0001F31D> /xf0/x9f/x8c/x9d FULL MOON WITH FACE
++<U0001F31E> /xf0/x9f/x8c/x9e SUN WITH FACE
++<U0001F31F> /xf0/x9f/x8c/x9f GLOWING STAR
++<U0001F320> /xf0/x9f/x8c/xa0 SHOOTING STAR
++<U0001F330> /xf0/x9f/x8c/xb0 CHESTNUT
++<U0001F331> /xf0/x9f/x8c/xb1 SEEDLING
++<U0001F332> /xf0/x9f/x8c/xb2 EVERGREEN TREE
++<U0001F333> /xf0/x9f/x8c/xb3 DECIDUOUS TREE
++<U0001F334> /xf0/x9f/x8c/xb4 PALM TREE
++<U0001F335> /xf0/x9f/x8c/xb5 CACTUS
++<U0001F337> /xf0/x9f/x8c/xb7 TULIP
++<U0001F338> /xf0/x9f/x8c/xb8 CHERRY BLOSSOM
++<U0001F339> /xf0/x9f/x8c/xb9 ROSE
++<U0001F33A> /xf0/x9f/x8c/xba HIBISCUS
++<U0001F33B> /xf0/x9f/x8c/xbb SUNFLOWER
++<U0001F33C> /xf0/x9f/x8c/xbc BLOSSOM
++<U0001F33D> /xf0/x9f/x8c/xbd EAR OF MAIZE
++<U0001F33E> /xf0/x9f/x8c/xbe EAR OF RICE
++<U0001F33F> /xf0/x9f/x8c/xbf HERB
++<U0001F340> /xf0/x9f/x8d/x80 FOUR LEAF CLOVER
++<U0001F341> /xf0/x9f/x8d/x81 MAPLE LEAF
++<U0001F342> /xf0/x9f/x8d/x82 FALLEN LEAF
++<U0001F343> /xf0/x9f/x8d/x83 LEAF FLUTTERING IN WIND
++<U0001F344> /xf0/x9f/x8d/x84 MUSHROOM
++<U0001F345> /xf0/x9f/x8d/x85 TOMATO
++<U0001F346> /xf0/x9f/x8d/x86 AUBERGINE
++<U0001F347> /xf0/x9f/x8d/x87 GRAPES
++<U0001F348> /xf0/x9f/x8d/x88 MELON
++<U0001F349> /xf0/x9f/x8d/x89 WATERMELON
++<U0001F34A> /xf0/x9f/x8d/x8a TANGERINE
++<U0001F34B> /xf0/x9f/x8d/x8b LEMON
++<U0001F34C> /xf0/x9f/x8d/x8c BANANA
++<U0001F34D> /xf0/x9f/x8d/x8d PINEAPPLE
++<U0001F34E> /xf0/x9f/x8d/x8e RED APPLE
++<U0001F34F> /xf0/x9f/x8d/x8f GREEN APPLE
++<U0001F350> /xf0/x9f/x8d/x90 PEAR
++<U0001F351> /xf0/x9f/x8d/x91 PEACH
++<U0001F352> /xf0/x9f/x8d/x92 CHERRIES
++<U0001F353> /xf0/x9f/x8d/x93 STRAWBERRY
++<U0001F354> /xf0/x9f/x8d/x94 HAMBURGER
++<U0001F355> /xf0/x9f/x8d/x95 SLICE OF PIZZA
++<U0001F356> /xf0/x9f/x8d/x96 MEAT ON BONE
++<U0001F357> /xf0/x9f/x8d/x97 POULTRY LEG
++<U0001F358> /xf0/x9f/x8d/x98 RICE CRACKER
++<U0001F359> /xf0/x9f/x8d/x99 RICE BALL
++<U0001F35A> /xf0/x9f/x8d/x9a COOKED RICE
++<U0001F35B> /xf0/x9f/x8d/x9b CURRY AND RICE
++<U0001F35C> /xf0/x9f/x8d/x9c STEAMING BOWL
++<U0001F35D> /xf0/x9f/x8d/x9d SPAGHETTI
++<U0001F35E> /xf0/x9f/x8d/x9e BREAD
++<U0001F35F> /xf0/x9f/x8d/x9f FRENCH FRIES
++<U0001F360> /xf0/x9f/x8d/xa0 ROASTED SWEET POTATO
++<U0001F361> /xf0/x9f/x8d/xa1 DANGO
++<U0001F362> /xf0/x9f/x8d/xa2 ODEN
++<U0001F363> /xf0/x9f/x8d/xa3 SUSHI
++<U0001F364> /xf0/x9f/x8d/xa4 FRIED SHRIMP
++<U0001F365> /xf0/x9f/x8d/xa5 FISH CAKE WITH SWIRL DESIGN
++<U0001F366> /xf0/x9f/x8d/xa6 SOFT ICE CREAM
++<U0001F367> /xf0/x9f/x8d/xa7 SHAVED ICE
++<U0001F368> /xf0/x9f/x8d/xa8 ICE CREAM
++<U0001F369> /xf0/x9f/x8d/xa9 DOUGHNUT
++<U0001F36A> /xf0/x9f/x8d/xaa COOKIE
++<U0001F36B> /xf0/x9f/x8d/xab CHOCOLATE BAR
++<U0001F36C> /xf0/x9f/x8d/xac CANDY
++<U0001F36D> /xf0/x9f/x8d/xad LOLLIPOP
++<U0001F36E> /xf0/x9f/x8d/xae CUSTARD
++<U0001F36F> /xf0/x9f/x8d/xaf HONEY POT
++<U0001F370> /xf0/x9f/x8d/xb0 SHORTCAKE
++<U0001F371> /xf0/x9f/x8d/xb1 BENTO BOX
++<U0001F372> /xf0/x9f/x8d/xb2 POT OF FOOD
++<U0001F373> /xf0/x9f/x8d/xb3 COOKING
++<U0001F374> /xf0/x9f/x8d/xb4 FORK AND KNIFE
++<U0001F375> /xf0/x9f/x8d/xb5 TEACUP WITHOUT HANDLE
++<U0001F376> /xf0/x9f/x8d/xb6 SAKE BOTTLE AND CUP
++<U0001F377> /xf0/x9f/x8d/xb7 WINE GLASS
++<U0001F378> /xf0/x9f/x8d/xb8 COCKTAIL GLASS
++<U0001F379> /xf0/x9f/x8d/xb9 TROPICAL DRINK
++<U0001F37A> /xf0/x9f/x8d/xba BEER MUG
++<U0001F37B> /xf0/x9f/x8d/xbb CLINKING BEER MUGS
++<U0001F37C> /xf0/x9f/x8d/xbc BABY BOTTLE
++<U0001F380> /xf0/x9f/x8e/x80 RIBBON
++<U0001F381> /xf0/x9f/x8e/x81 WRAPPED PRESENT
++<U0001F382> /xf0/x9f/x8e/x82 BIRTHDAY CAKE
++<U0001F383> /xf0/x9f/x8e/x83 JACK-O-LANTERN
++<U0001F384> /xf0/x9f/x8e/x84 CHRISTMAS TREE
++<U0001F385> /xf0/x9f/x8e/x85 FATHER CHRISTMAS
++<U0001F386> /xf0/x9f/x8e/x86 FIREWORKS
++<U0001F387> /xf0/x9f/x8e/x87 FIREWORK SPARKLER
++<U0001F388> /xf0/x9f/x8e/x88 BALLOON
++<U0001F389> /xf0/x9f/x8e/x89 PARTY POPPER
++<U0001F38A> /xf0/x9f/x8e/x8a CONFETTI BALL
++<U0001F38B> /xf0/x9f/x8e/x8b TANABATA TREE
++<U0001F38C> /xf0/x9f/x8e/x8c CROSSED FLAGS
++<U0001F38D> /xf0/x9f/x8e/x8d PINE DECORATION
++<U0001F38E> /xf0/x9f/x8e/x8e JAPANESE DOLLS
++<U0001F38F> /xf0/x9f/x8e/x8f CARP STREAMER
++<U0001F390> /xf0/x9f/x8e/x90 WIND CHIME
++<U0001F391> /xf0/x9f/x8e/x91 MOON VIEWING CEREMONY
++<U0001F392> /xf0/x9f/x8e/x92 SCHOOL SATCHEL
++<U0001F393> /xf0/x9f/x8e/x93 GRADUATION CAP
++<U0001F3A0> /xf0/x9f/x8e/xa0 CAROUSEL HORSE
++<U0001F3A1> /xf0/x9f/x8e/xa1 FERRIS WHEEL
++<U0001F3A2> /xf0/x9f/x8e/xa2 ROLLER COASTER
++<U0001F3A3> /xf0/x9f/x8e/xa3 FISHING POLE AND FISH
++<U0001F3A4> /xf0/x9f/x8e/xa4 MICROPHONE
++<U0001F3A5> /xf0/x9f/x8e/xa5 MOVIE CAMERA
++<U0001F3A6> /xf0/x9f/x8e/xa6 CINEMA
++<U0001F3A7> /xf0/x9f/x8e/xa7 HEADPHONE
++<U0001F3A8> /xf0/x9f/x8e/xa8 ARTIST PALETTE
++<U0001F3A9> /xf0/x9f/x8e/xa9 TOP HAT
++<U0001F3AA> /xf0/x9f/x8e/xaa CIRCUS TENT
++<U0001F3AB> /xf0/x9f/x8e/xab TICKET
++<U0001F3AC> /xf0/x9f/x8e/xac CLAPPER BOARD
++<U0001F3AD> /xf0/x9f/x8e/xad PERFORMING ARTS
++<U0001F3AE> /xf0/x9f/x8e/xae VIDEO GAME
++<U0001F3AF> /xf0/x9f/x8e/xaf DIRECT HIT
++<U0001F3B0> /xf0/x9f/x8e/xb0 SLOT MACHINE
++<U0001F3B1> /xf0/x9f/x8e/xb1 BILLIARDS
++<U0001F3B2> /xf0/x9f/x8e/xb2 GAME DIE
++<U0001F3B3> /xf0/x9f/x8e/xb3 BOWLING
++<U0001F3B4> /xf0/x9f/x8e/xb4 FLOWER PLAYING CARDS
++<U0001F3B5> /xf0/x9f/x8e/xb5 MUSICAL NOTE
++<U0001F3B6> /xf0/x9f/x8e/xb6 MULTIPLE MUSICAL NOTES
++<U0001F3B7> /xf0/x9f/x8e/xb7 SAXOPHONE
++<U0001F3B8> /xf0/x9f/x8e/xb8 GUITAR
++<U0001F3B9> /xf0/x9f/x8e/xb9 MUSICAL KEYBOARD
++<U0001F3BA> /xf0/x9f/x8e/xba TRUMPET
++<U0001F3BB> /xf0/x9f/x8e/xbb VIOLIN
++<U0001F3BC> /xf0/x9f/x8e/xbc MUSICAL SCORE
++<U0001F3BD> /xf0/x9f/x8e/xbd RUNNING SHIRT WITH SASH
++<U0001F3BE> /xf0/x9f/x8e/xbe TENNIS RACQUET AND BALL
++<U0001F3BF> /xf0/x9f/x8e/xbf SKI AND SKI BOOT
++<U0001F3C0> /xf0/x9f/x8f/x80 BASKETBALL AND HOOP
++<U0001F3C1> /xf0/x9f/x8f/x81 CHEQUERED FLAG
++<U0001F3C2> /xf0/x9f/x8f/x82 SNOWBOARDER
++<U0001F3C3> /xf0/x9f/x8f/x83 RUNNER
++<U0001F3C4> /xf0/x9f/x8f/x84 SURFER
++<U0001F3C6> /xf0/x9f/x8f/x86 TROPHY
++<U0001F3C7> /xf0/x9f/x8f/x87 HORSE RACING
++<U0001F3C8> /xf0/x9f/x8f/x88 AMERICAN FOOTBALL
++<U0001F3C9> /xf0/x9f/x8f/x89 RUGBY FOOTBALL
++<U0001F3CA> /xf0/x9f/x8f/x8a SWIMMER
++<U0001F3E0> /xf0/x9f/x8f/xa0 HOUSE BUILDING
++<U0001F3E1> /xf0/x9f/x8f/xa1 HOUSE WITH GARDEN
++<U0001F3E2> /xf0/x9f/x8f/xa2 OFFICE BUILDING
++<U0001F3E3> /xf0/x9f/x8f/xa3 JAPANESE POST OFFICE
++<U0001F3E4> /xf0/x9f/x8f/xa4 EUROPEAN POST OFFICE
++<U0001F3E5> /xf0/x9f/x8f/xa5 HOSPITAL
++<U0001F3E6> /xf0/x9f/x8f/xa6 BANK
++<U0001F3E7> /xf0/x9f/x8f/xa7 AUTOMATED TELLER MACHINE
++<U0001F3E8> /xf0/x9f/x8f/xa8 HOTEL
++<U0001F3E9> /xf0/x9f/x8f/xa9 LOVE HOTEL
++<U0001F3EA> /xf0/x9f/x8f/xaa CONVENIENCE STORE
++<U0001F3EB> /xf0/x9f/x8f/xab SCHOOL
++<U0001F3EC> /xf0/x9f/x8f/xac DEPARTMENT STORE
++<U0001F3ED> /xf0/x9f/x8f/xad FACTORY
++<U0001F3EE> /xf0/x9f/x8f/xae IZAKAYA LANTERN
++<U0001F3EF> /xf0/x9f/x8f/xaf JAPANESE CASTLE
++<U0001F3F0> /xf0/x9f/x8f/xb0 EUROPEAN CASTLE
++<U0001F400> /xf0/x9f/x90/x80 RAT
++<U0001F401> /xf0/x9f/x90/x81 MOUSE
++<U0001F402> /xf0/x9f/x90/x82 OX
++<U0001F403> /xf0/x9f/x90/x83 WATER BUFFALO
++<U0001F404> /xf0/x9f/x90/x84 COW
++<U0001F405> /xf0/x9f/x90/x85 TIGER
++<U0001F406> /xf0/x9f/x90/x86 LEOPARD
++<U0001F407> /xf0/x9f/x90/x87 RABBIT
++<U0001F408> /xf0/x9f/x90/x88 CAT
++<U0001F409> /xf0/x9f/x90/x89 DRAGON
++<U0001F40A> /xf0/x9f/x90/x8a CROCODILE
++<U0001F40B> /xf0/x9f/x90/x8b WHALE
++<U0001F40C> /xf0/x9f/x90/x8c SNAIL
++<U0001F40D> /xf0/x9f/x90/x8d SNAKE
++<U0001F40E> /xf0/x9f/x90/x8e HORSE
++<U0001F40F> /xf0/x9f/x90/x8f RAM
++<U0001F410> /xf0/x9f/x90/x90 GOAT
++<U0001F411> /xf0/x9f/x90/x91 SHEEP
++<U0001F412> /xf0/x9f/x90/x92 MONKEY
++<U0001F413> /xf0/x9f/x90/x93 ROOSTER
++<U0001F414> /xf0/x9f/x90/x94 CHICKEN
++<U0001F415> /xf0/x9f/x90/x95 DOG
++<U0001F416> /xf0/x9f/x90/x96 PIG
++<U0001F417> /xf0/x9f/x90/x97 BOAR
++<U0001F418> /xf0/x9f/x90/x98 ELEPHANT
++<U0001F419> /xf0/x9f/x90/x99 OCTOPUS
++<U0001F41A> /xf0/x9f/x90/x9a SPIRAL SHELL
++<U0001F41B> /xf0/x9f/x90/x9b BUG
++<U0001F41C> /xf0/x9f/x90/x9c ANT
++<U0001F41D> /xf0/x9f/x90/x9d HONEYBEE
++<U0001F41E> /xf0/x9f/x90/x9e LADY BEETLE
++<U0001F41F> /xf0/x9f/x90/x9f FISH
++<U0001F420> /xf0/x9f/x90/xa0 TROPICAL FISH
++<U0001F421> /xf0/x9f/x90/xa1 BLOWFISH
++<U0001F422> /xf0/x9f/x90/xa2 TURTLE
++<U0001F423> /xf0/x9f/x90/xa3 HATCHING CHICK
++<U0001F424> /xf0/x9f/x90/xa4 BABY CHICK
++<U0001F425> /xf0/x9f/x90/xa5 FRONT-FACING BABY CHICK
++<U0001F426> /xf0/x9f/x90/xa6 BIRD
++<U0001F427> /xf0/x9f/x90/xa7 PENGUIN
++<U0001F428> /xf0/x9f/x90/xa8 KOALA
++<U0001F429> /xf0/x9f/x90/xa9 POODLE
++<U0001F42A> /xf0/x9f/x90/xaa DROMEDARY CAMEL
++<U0001F42B> /xf0/x9f/x90/xab BACTRIAN CAMEL
++<U0001F42C> /xf0/x9f/x90/xac DOLPHIN
++<U0001F42D> /xf0/x9f/x90/xad MOUSE FACE
++<U0001F42E> /xf0/x9f/x90/xae COW FACE
++<U0001F42F> /xf0/x9f/x90/xaf TIGER FACE
++<U0001F430> /xf0/x9f/x90/xb0 RABBIT FACE
++<U0001F431> /xf0/x9f/x90/xb1 CAT FACE
++<U0001F432> /xf0/x9f/x90/xb2 DRAGON FACE
++<U0001F433> /xf0/x9f/x90/xb3 SPOUTING WHALE
++<U0001F434> /xf0/x9f/x90/xb4 HORSE FACE
++<U0001F435> /xf0/x9f/x90/xb5 MONKEY FACE
++<U0001F436> /xf0/x9f/x90/xb6 DOG FACE
++<U0001F437> /xf0/x9f/x90/xb7 PIG FACE
++<U0001F438> /xf0/x9f/x90/xb8 FROG FACE
++<U0001F439> /xf0/x9f/x90/xb9 HAMSTER FACE
++<U0001F43A> /xf0/x9f/x90/xba WOLF FACE
++<U0001F43B> /xf0/x9f/x90/xbb BEAR FACE
++<U0001F43C> /xf0/x9f/x90/xbc PANDA FACE
++<U0001F43D> /xf0/x9f/x90/xbd PIG NOSE
++<U0001F43E> /xf0/x9f/x90/xbe PAW PRINTS
++<U0001F440> /xf0/x9f/x91/x80 EYES
++<U0001F442> /xf0/x9f/x91/x82 EAR
++<U0001F443> /xf0/x9f/x91/x83 NOSE
++<U0001F444> /xf0/x9f/x91/x84 MOUTH
++<U0001F445> /xf0/x9f/x91/x85 TONGUE
++<U0001F446> /xf0/x9f/x91/x86 WHITE UP POINTING BACKHAND INDEX
++<U0001F447> /xf0/x9f/x91/x87 WHITE DOWN POINTING BACKHAND INDEX
++<U0001F448> /xf0/x9f/x91/x88 WHITE LEFT POINTING BACKHAND INDEX
++<U0001F449> /xf0/x9f/x91/x89 WHITE RIGHT POINTING BACKHAND INDEX
++<U0001F44A> /xf0/x9f/x91/x8a FISTED HAND SIGN
++<U0001F44B> /xf0/x9f/x91/x8b WAVING HAND SIGN
++<U0001F44C> /xf0/x9f/x91/x8c OK HAND SIGN
++<U0001F44D> /xf0/x9f/x91/x8d THUMBS UP SIGN
++<U0001F44E> /xf0/x9f/x91/x8e THUMBS DOWN SIGN
++<U0001F44F> /xf0/x9f/x91/x8f CLAPPING HANDS SIGN
++<U0001F450> /xf0/x9f/x91/x90 OPEN HANDS SIGN
++<U0001F451> /xf0/x9f/x91/x91 CROWN
++<U0001F452> /xf0/x9f/x91/x92 WOMANS HAT
++<U0001F453> /xf0/x9f/x91/x93 EYEGLASSES
++<U0001F454> /xf0/x9f/x91/x94 NECKTIE
++<U0001F455> /xf0/x9f/x91/x95 T-SHIRT
++<U0001F456> /xf0/x9f/x91/x96 JEANS
++<U0001F457> /xf0/x9f/x91/x97 DRESS
++<U0001F458> /xf0/x9f/x91/x98 KIMONO
++<U0001F459> /xf0/x9f/x91/x99 BIKINI
++<U0001F45A> /xf0/x9f/x91/x9a WOMANS CLOTHES
++<U0001F45B> /xf0/x9f/x91/x9b PURSE
++<U0001F45C> /xf0/x9f/x91/x9c HANDBAG
++<U0001F45D> /xf0/x9f/x91/x9d POUCH
++<U0001F45E> /xf0/x9f/x91/x9e MANS SHOE
++<U0001F45F> /xf0/x9f/x91/x9f ATHLETIC SHOE
++<U0001F460> /xf0/x9f/x91/xa0 HIGH-HEELED SHOE
++<U0001F461> /xf0/x9f/x91/xa1 WOMANS SANDAL
++<U0001F462> /xf0/x9f/x91/xa2 WOMANS BOOTS
++<U0001F463> /xf0/x9f/x91/xa3 FOOTPRINTS
++<U0001F464> /xf0/x9f/x91/xa4 BUST IN SILHOUETTE
++<U0001F465> /xf0/x9f/x91/xa5 BUSTS IN SILHOUETTE
++<U0001F466> /xf0/x9f/x91/xa6 BOY
++<U0001F467> /xf0/x9f/x91/xa7 GIRL
++<U0001F468> /xf0/x9f/x91/xa8 MAN
++<U0001F469> /xf0/x9f/x91/xa9 WOMAN
++<U0001F46A> /xf0/x9f/x91/xaa FAMILY
++<U0001F46B> /xf0/x9f/x91/xab MAN AND WOMAN HOLDING HANDS
++<U0001F46C> /xf0/x9f/x91/xac TWO MEN HOLDING HANDS
++<U0001F46D> /xf0/x9f/x91/xad TWO WOMEN HOLDING HANDS
++<U0001F46E> /xf0/x9f/x91/xae POLICE OFFICER
++<U0001F46F> /xf0/x9f/x91/xaf WOMAN WITH BUNNY EARS
++<U0001F470> /xf0/x9f/x91/xb0 BRIDE WITH VEIL
++<U0001F471> /xf0/x9f/x91/xb1 PERSON WITH BLOND HAIR
++<U0001F472> /xf0/x9f/x91/xb2 MAN WITH GUA PI MAO
++<U0001F473> /xf0/x9f/x91/xb3 MAN WITH TURBAN
++<U0001F474> /xf0/x9f/x91/xb4 OLDER MAN
++<U0001F475> /xf0/x9f/x91/xb5 OLDER WOMAN
++<U0001F476> /xf0/x9f/x91/xb6 BABY
++<U0001F477> /xf0/x9f/x91/xb7 CONSTRUCTION WORKER
++<U0001F478> /xf0/x9f/x91/xb8 PRINCESS
++<U0001F479> /xf0/x9f/x91/xb9 JAPANESE OGRE
++<U0001F47A> /xf0/x9f/x91/xba JAPANESE GOBLIN
++<U0001F47B> /xf0/x9f/x91/xbb GHOST
++<U0001F47C> /xf0/x9f/x91/xbc BABY ANGEL
++<U0001F47D> /xf0/x9f/x91/xbd EXTRATERRESTRIAL ALIEN
++<U0001F47E> /xf0/x9f/x91/xbe ALIEN MONSTER
++<U0001F47F> /xf0/x9f/x91/xbf IMP
++<U0001F480> /xf0/x9f/x92/x80 SKULL
++<U0001F481> /xf0/x9f/x92/x81 INFORMATION DESK PERSON
++<U0001F482> /xf0/x9f/x92/x82 GUARDSMAN
++<U0001F483> /xf0/x9f/x92/x83 DANCER
++<U0001F484> /xf0/x9f/x92/x84 LIPSTICK
++<U0001F485> /xf0/x9f/x92/x85 NAIL POLISH
++<U0001F486> /xf0/x9f/x92/x86 FACE MASSAGE
++<U0001F487> /xf0/x9f/x92/x87 HAIRCUT
++<U0001F488> /xf0/x9f/x92/x88 BARBER POLE
++<U0001F489> /xf0/x9f/x92/x89 SYRINGE
++<U0001F48A> /xf0/x9f/x92/x8a PILL
++<U0001F48B> /xf0/x9f/x92/x8b KISS MARK
++<U0001F48C> /xf0/x9f/x92/x8c LOVE LETTER
++<U0001F48D> /xf0/x9f/x92/x8d RING
++<U0001F48E> /xf0/x9f/x92/x8e GEM STONE
++<U0001F48F> /xf0/x9f/x92/x8f KISS
++<U0001F490> /xf0/x9f/x92/x90 BOUQUET
++<U0001F491> /xf0/x9f/x92/x91 COUPLE WITH HEART
++<U0001F492> /xf0/x9f/x92/x92 WEDDING
++<U0001F493> /xf0/x9f/x92/x93 BEATING HEART
++<U0001F494> /xf0/x9f/x92/x94 BROKEN HEART
++<U0001F495> /xf0/x9f/x92/x95 TWO HEARTS
++<U0001F496> /xf0/x9f/x92/x96 SPARKLING HEART
++<U0001F497> /xf0/x9f/x92/x97 GROWING HEART
++<U0001F498> /xf0/x9f/x92/x98 HEART WITH ARROW
++<U0001F499> /xf0/x9f/x92/x99 BLUE HEART
++<U0001F49A> /xf0/x9f/x92/x9a GREEN HEART
++<U0001F49B> /xf0/x9f/x92/x9b YELLOW HEART
++<U0001F49C> /xf0/x9f/x92/x9c PURPLE HEART
++<U0001F49D> /xf0/x9f/x92/x9d HEART WITH RIBBON
++<U0001F49E> /xf0/x9f/x92/x9e REVOLVING HEARTS
++<U0001F49F> /xf0/x9f/x92/x9f HEART DECORATION
++<U0001F4A0> /xf0/x9f/x92/xa0 DIAMOND SHAPE WITH A DOT INSIDE
++<U0001F4A1> /xf0/x9f/x92/xa1 ELECTRIC LIGHT BULB
++<U0001F4A2> /xf0/x9f/x92/xa2 ANGER SYMBOL
++<U0001F4A3> /xf0/x9f/x92/xa3 BOMB
++<U0001F4A4> /xf0/x9f/x92/xa4 SLEEPING SYMBOL
++<U0001F4A5> /xf0/x9f/x92/xa5 COLLISION SYMBOL
++<U0001F4A6> /xf0/x9f/x92/xa6 SPLASHING SWEAT SYMBOL
++<U0001F4A7> /xf0/x9f/x92/xa7 DROPLET
++<U0001F4A8> /xf0/x9f/x92/xa8 DASH SYMBOL
++<U0001F4A9> /xf0/x9f/x92/xa9 PILE OF POO
++<U0001F4AA> /xf0/x9f/x92/xaa FLEXED BICEPS
++<U0001F4AB> /xf0/x9f/x92/xab DIZZY SYMBOL
++<U0001F4AC> /xf0/x9f/x92/xac SPEECH BALLOON
++<U0001F4AD> /xf0/x9f/x92/xad THOUGHT BALLOON
++<U0001F4AE> /xf0/x9f/x92/xae WHITE FLOWER
++<U0001F4AF> /xf0/x9f/x92/xaf HUNDRED POINTS SYMBOL
++<U0001F4B0> /xf0/x9f/x92/xb0 MONEY BAG
++<U0001F4B1> /xf0/x9f/x92/xb1 CURRENCY EXCHANGE
++<U0001F4B2> /xf0/x9f/x92/xb2 HEAVY DOLLAR SIGN
++<U0001F4B3> /xf0/x9f/x92/xb3 CREDIT CARD
++<U0001F4B4> /xf0/x9f/x92/xb4 BANKNOTE WITH YEN SIGN
++<U0001F4B5> /xf0/x9f/x92/xb5 BANKNOTE WITH DOLLAR SIGN
++<U0001F4B6> /xf0/x9f/x92/xb6 BANKNOTE WITH EURO SIGN
++<U0001F4B7> /xf0/x9f/x92/xb7 BANKNOTE WITH POUND SIGN
++<U0001F4B8> /xf0/x9f/x92/xb8 MONEY WITH WINGS
++<U0001F4B9> /xf0/x9f/x92/xb9 CHART WITH UPWARDS TREND AND YEN SIGN
++<U0001F4BA> /xf0/x9f/x92/xba SEAT
++<U0001F4BB> /xf0/x9f/x92/xbb PERSONAL COMPUTER
++<U0001F4BC> /xf0/x9f/x92/xbc BRIEFCASE
++<U0001F4BD> /xf0/x9f/x92/xbd MINIDISC
++<U0001F4BE> /xf0/x9f/x92/xbe FLOPPY DISK
++<U0001F4BF> /xf0/x9f/x92/xbf OPTICAL DISC
++<U0001F4C0> /xf0/x9f/x93/x80 DVD
++<U0001F4C1> /xf0/x9f/x93/x81 FILE FOLDER
++<U0001F4C2> /xf0/x9f/x93/x82 OPEN FILE FOLDER
++<U0001F4C3> /xf0/x9f/x93/x83 PAGE WITH CURL
++<U0001F4C4> /xf0/x9f/x93/x84 PAGE FACING UP
++<U0001F4C5> /xf0/x9f/x93/x85 CALENDAR
++<U0001F4C6> /xf0/x9f/x93/x86 TEAR-OFF CALENDAR
++<U0001F4C7> /xf0/x9f/x93/x87 CARD INDEX
++<U0001F4C8> /xf0/x9f/x93/x88 CHART WITH UPWARDS TREND
++<U0001F4C9> /xf0/x9f/x93/x89 CHART WITH DOWNWARDS TREND
++<U0001F4CA> /xf0/x9f/x93/x8a BAR CHART
++<U0001F4CB> /xf0/x9f/x93/x8b CLIPBOARD
++<U0001F4CC> /xf0/x9f/x93/x8c PUSHPIN
++<U0001F4CD> /xf0/x9f/x93/x8d ROUND PUSHPIN
++<U0001F4CE> /xf0/x9f/x93/x8e PAPERCLIP
++<U0001F4CF> /xf0/x9f/x93/x8f STRAIGHT RULER
++<U0001F4D0> /xf0/x9f/x93/x90 TRIANGULAR RULER
++<U0001F4D1> /xf0/x9f/x93/x91 BOOKMARK TABS
++<U0001F4D2> /xf0/x9f/x93/x92 LEDGER
++<U0001F4D3> /xf0/x9f/x93/x93 NOTEBOOK
++<U0001F4D4> /xf0/x9f/x93/x94 NOTEBOOK WITH DECORATIVE COVER
++<U0001F4D5> /xf0/x9f/x93/x95 CLOSED BOOK
++<U0001F4D6> /xf0/x9f/x93/x96 OPEN BOOK
++<U0001F4D7> /xf0/x9f/x93/x97 GREEN BOOK
++<U0001F4D8> /xf0/x9f/x93/x98 BLUE BOOK
++<U0001F4D9> /xf0/x9f/x93/x99 ORANGE BOOK
++<U0001F4DA> /xf0/x9f/x93/x9a BOOKS
++<U0001F4DB> /xf0/x9f/x93/x9b NAME BADGE
++<U0001F4DC> /xf0/x9f/x93/x9c SCROLL
++<U0001F4DD> /xf0/x9f/x93/x9d MEMO
++<U0001F4DE> /xf0/x9f/x93/x9e TELEPHONE RECEIVER
++<U0001F4DF> /xf0/x9f/x93/x9f PAGER
++<U0001F4E0> /xf0/x9f/x93/xa0 FAX MACHINE
++<U0001F4E1> /xf0/x9f/x93/xa1 SATELLITE ANTENNA
++<U0001F4E2> /xf0/x9f/x93/xa2 PUBLIC ADDRESS LOUDSPEAKER
++<U0001F4E3> /xf0/x9f/x93/xa3 CHEERING MEGAPHONE
++<U0001F4E4> /xf0/x9f/x93/xa4 OUTBOX TRAY
++<U0001F4E5> /xf0/x9f/x93/xa5 INBOX TRAY
++<U0001F4E6> /xf0/x9f/x93/xa6 PACKAGE
++<U0001F4E7> /xf0/x9f/x93/xa7 E-MAIL SYMBOL
++<U0001F4E8> /xf0/x9f/x93/xa8 INCOMING ENVELOPE
++<U0001F4E9> /xf0/x9f/x93/xa9 ENVELOPE WITH DOWNWARDS ARROW ABOVE
++<U0001F4EA> /xf0/x9f/x93/xaa CLOSED MAILBOX WITH LOWERED FLAG
++<U0001F4EB> /xf0/x9f/x93/xab CLOSED MAILBOX WITH RAISED FLAG
++<U0001F4EC> /xf0/x9f/x93/xac OPEN MAILBOX WITH RAISED FLAG
++<U0001F4ED> /xf0/x9f/x93/xad OPEN MAILBOX WITH LOWERED FLAG
++<U0001F4EE> /xf0/x9f/x93/xae POSTBOX
++<U0001F4EF> /xf0/x9f/x93/xaf POSTAL HORN
++<U0001F4F0> /xf0/x9f/x93/xb0 NEWSPAPER
++<U0001F4F1> /xf0/x9f/x93/xb1 MOBILE PHONE
++<U0001F4F2> /xf0/x9f/x93/xb2 MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT
++<U0001F4F3> /xf0/x9f/x93/xb3 VIBRATION MODE
++<U0001F4F4> /xf0/x9f/x93/xb4 MOBILE PHONE OFF
++<U0001F4F5> /xf0/x9f/x93/xb5 NO MOBILE PHONES
++<U0001F4F6> /xf0/x9f/x93/xb6 ANTENNA WITH BARS
++<U0001F4F7> /xf0/x9f/x93/xb7 CAMERA
++<U0001F4F9> /xf0/x9f/x93/xb9 VIDEO CAMERA
++<U0001F4FA> /xf0/x9f/x93/xba TELEVISION
++<U0001F4FB> /xf0/x9f/x93/xbb RADIO
++<U0001F4FC> /xf0/x9f/x93/xbc VIDEOCASSETTE
++<U0001F500> /xf0/x9f/x94/x80 TWISTED RIGHTWARDS ARROWS
++<U0001F501> /xf0/x9f/x94/x81 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS
++<U0001F502> /xf0/x9f/x94/x82 CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY
++<U0001F503> /xf0/x9f/x94/x83 CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
++<U0001F504> /xf0/x9f/x94/x84 ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS
++<U0001F505> /xf0/x9f/x94/x85 LOW BRIGHTNESS SYMBOL
++<U0001F506> /xf0/x9f/x94/x86 HIGH BRIGHTNESS SYMBOL
++<U0001F507> /xf0/x9f/x94/x87 SPEAKER WITH CANCELLATION STROKE
++<U0001F508> /xf0/x9f/x94/x88 SPEAKER
++<U0001F509> /xf0/x9f/x94/x89 SPEAKER WITH ONE SOUND WAVE
++<U0001F50A> /xf0/x9f/x94/x8a SPEAKER WITH THREE SOUND WAVES
++<U0001F50B> /xf0/x9f/x94/x8b BATTERY
++<U0001F50C> /xf0/x9f/x94/x8c ELECTRIC PLUG
++<U0001F50D> /xf0/x9f/x94/x8d LEFT-POINTING MAGNIFYING GLASS
++<U0001F50E> /xf0/x9f/x94/x8e RIGHT-POINTING MAGNIFYING GLASS
++<U0001F50F> /xf0/x9f/x94/x8f LOCK WITH INK PEN
++<U0001F510> /xf0/x9f/x94/x90 CLOSED LOCK WITH KEY
++<U0001F511> /xf0/x9f/x94/x91 KEY
++<U0001F512> /xf0/x9f/x94/x92 LOCK
++<U0001F513> /xf0/x9f/x94/x93 OPEN LOCK
++<U0001F514> /xf0/x9f/x94/x94 BELL
++<U0001F515> /xf0/x9f/x94/x95 BELL WITH CANCELLATION STROKE
++<U0001F516> /xf0/x9f/x94/x96 BOOKMARK
++<U0001F517> /xf0/x9f/x94/x97 LINK SYMBOL
++<U0001F518> /xf0/x9f/x94/x98 RADIO BUTTON
++<U0001F519> /xf0/x9f/x94/x99 BACK WITH LEFTWARDS ARROW ABOVE
++<U0001F51A> /xf0/x9f/x94/x9a END WITH LEFTWARDS ARROW ABOVE
++<U0001F51B> /xf0/x9f/x94/x9b ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE
++<U0001F51C> /xf0/x9f/x94/x9c SOON WITH RIGHTWARDS ARROW ABOVE
++<U0001F51D> /xf0/x9f/x94/x9d TOP WITH UPWARDS ARROW ABOVE
++<U0001F51E> /xf0/x9f/x94/x9e NO ONE UNDER EIGHTEEN SYMBOL
++<U0001F51F> /xf0/x9f/x94/x9f KEYCAP TEN
++<U0001F520> /xf0/x9f/x94/xa0 INPUT SYMBOL FOR LATIN CAPITAL LETTERS
++<U0001F521> /xf0/x9f/x94/xa1 INPUT SYMBOL FOR LATIN SMALL LETTERS
++<U0001F522> /xf0/x9f/x94/xa2 INPUT SYMBOL FOR NUMBERS
++<U0001F523> /xf0/x9f/x94/xa3 INPUT SYMBOL FOR SYMBOLS
++<U0001F524> /xf0/x9f/x94/xa4 INPUT SYMBOL FOR LATIN LETTERS
++<U0001F525> /xf0/x9f/x94/xa5 FIRE
++<U0001F526> /xf0/x9f/x94/xa6 ELECTRIC TORCH
++<U0001F527> /xf0/x9f/x94/xa7 WRENCH
++<U0001F528> /xf0/x9f/x94/xa8 HAMMER
++<U0001F529> /xf0/x9f/x94/xa9 NUT AND BOLT
++<U0001F52A> /xf0/x9f/x94/xaa HOCHO
++<U0001F52B> /xf0/x9f/x94/xab PISTOL
++<U0001F52C> /xf0/x9f/x94/xac MICROSCOPE
++<U0001F52D> /xf0/x9f/x94/xad TELESCOPE
++<U0001F52E> /xf0/x9f/x94/xae CRYSTAL BALL
++<U0001F52F> /xf0/x9f/x94/xaf SIX POINTED STAR WITH MIDDLE DOT
++<U0001F530> /xf0/x9f/x94/xb0 JAPANESE SYMBOL FOR BEGINNER
++<U0001F531> /xf0/x9f/x94/xb1 TRIDENT EMBLEM
++<U0001F532> /xf0/x9f/x94/xb2 BLACK SQUARE BUTTON
++<U0001F533> /xf0/x9f/x94/xb3 WHITE SQUARE BUTTON
++<U0001F534> /xf0/x9f/x94/xb4 LARGE RED CIRCLE
++<U0001F535> /xf0/x9f/x94/xb5 LARGE BLUE CIRCLE
++<U0001F536> /xf0/x9f/x94/xb6 LARGE ORANGE DIAMOND
++<U0001F537> /xf0/x9f/x94/xb7 LARGE BLUE DIAMOND
++<U0001F538> /xf0/x9f/x94/xb8 SMALL ORANGE DIAMOND
++<U0001F539> /xf0/x9f/x94/xb9 SMALL BLUE DIAMOND
++<U0001F53A> /xf0/x9f/x94/xba UP-POINTING RED TRIANGLE
++<U0001F53B> /xf0/x9f/x94/xbb DOWN-POINTING RED TRIANGLE
++<U0001F53C> /xf0/x9f/x94/xbc UP-POINTING SMALL RED TRIANGLE
++<U0001F53D> /xf0/x9f/x94/xbd DOWN-POINTING SMALL RED TRIANGLE
++<U0001F550> /xf0/x9f/x95/x90 CLOCK FACE ONE OCLOCK
++<U0001F551> /xf0/x9f/x95/x91 CLOCK FACE TWO OCLOCK
++<U0001F552> /xf0/x9f/x95/x92 CLOCK FACE THREE OCLOCK
++<U0001F553> /xf0/x9f/x95/x93 CLOCK FACE FOUR OCLOCK
++<U0001F554> /xf0/x9f/x95/x94 CLOCK FACE FIVE OCLOCK
++<U0001F555> /xf0/x9f/x95/x95 CLOCK FACE SIX OCLOCK
++<U0001F556> /xf0/x9f/x95/x96 CLOCK FACE SEVEN OCLOCK
++<U0001F557> /xf0/x9f/x95/x97 CLOCK FACE EIGHT OCLOCK
++<U0001F558> /xf0/x9f/x95/x98 CLOCK FACE NINE OCLOCK
++<U0001F559> /xf0/x9f/x95/x99 CLOCK FACE TEN OCLOCK
++<U0001F55A> /xf0/x9f/x95/x9a CLOCK FACE ELEVEN OCLOCK
++<U0001F55B> /xf0/x9f/x95/x9b CLOCK FACE TWELVE OCLOCK
++<U0001F55C> /xf0/x9f/x95/x9c CLOCK FACE ONE-THIRTY
++<U0001F55D> /xf0/x9f/x95/x9d CLOCK FACE TWO-THIRTY
++<U0001F55E> /xf0/x9f/x95/x9e CLOCK FACE THREE-THIRTY
++<U0001F55F> /xf0/x9f/x95/x9f CLOCK FACE FOUR-THIRTY
++<U0001F560> /xf0/x9f/x95/xa0 CLOCK FACE FIVE-THIRTY
++<U0001F561> /xf0/x9f/x95/xa1 CLOCK FACE SIX-THIRTY
++<U0001F562> /xf0/x9f/x95/xa2 CLOCK FACE SEVEN-THIRTY
++<U0001F563> /xf0/x9f/x95/xa3 CLOCK FACE EIGHT-THIRTY
++<U0001F564> /xf0/x9f/x95/xa4 CLOCK FACE NINE-THIRTY
++<U0001F565> /xf0/x9f/x95/xa5 CLOCK FACE TEN-THIRTY
++<U0001F566> /xf0/x9f/x95/xa6 CLOCK FACE ELEVEN-THIRTY
++<U0001F567> /xf0/x9f/x95/xa7 CLOCK FACE TWELVE-THIRTY
++<U0001F5FB> /xf0/x9f/x97/xbb MOUNT FUJI
++<U0001F5FC> /xf0/x9f/x97/xbc TOKYO TOWER
++<U0001F5FD> /xf0/x9f/x97/xbd STATUE OF LIBERTY
++<U0001F5FE> /xf0/x9f/x97/xbe SILHOUETTE OF JAPAN
++<U0001F5FF> /xf0/x9f/x97/xbf MOYAI
++<U0001F601> /xf0/x9f/x98/x81 GRINNING FACE WITH SMILING EYES
++<U0001F602> /xf0/x9f/x98/x82 FACE WITH TEARS OF JOY
++<U0001F603> /xf0/x9f/x98/x83 SMILING FACE WITH OPEN MOUTH
++<U0001F604> /xf0/x9f/x98/x84 SMILING FACE WITH OPEN MOUTH AND SMILING EYES
++<U0001F605> /xf0/x9f/x98/x85 SMILING FACE WITH OPEN MOUTH AND COLD SWEAT
++<U0001F606> /xf0/x9f/x98/x86 SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES
++<U0001F607> /xf0/x9f/x98/x87 SMILING FACE WITH HALO
++<U0001F608> /xf0/x9f/x98/x88 SMILING FACE WITH HORNS
++<U0001F609> /xf0/x9f/x98/x89 WINKING FACE
++<U0001F60A> /xf0/x9f/x98/x8a SMILING FACE WITH SMILING EYES
++<U0001F60B> /xf0/x9f/x98/x8b FACE SAVOURING DELICIOUS FOOD
++<U0001F60C> /xf0/x9f/x98/x8c RELIEVED FACE
++<U0001F60D> /xf0/x9f/x98/x8d SMILING FACE WITH HEART-SHAPED EYES
++<U0001F60E> /xf0/x9f/x98/x8e SMILING FACE WITH SUNGLASSES
++<U0001F60F> /xf0/x9f/x98/x8f SMIRKING FACE
++<U0001F610> /xf0/x9f/x98/x90 NEUTRAL FACE
++<U0001F612> /xf0/x9f/x98/x92 UNAMUSED FACE
++<U0001F613> /xf0/x9f/x98/x93 FACE WITH COLD SWEAT
++<U0001F614> /xf0/x9f/x98/x94 PENSIVE FACE
++<U0001F616> /xf0/x9f/x98/x96 CONFOUNDED FACE
++<U0001F618> /xf0/x9f/x98/x98 FACE THROWING A KISS
++<U0001F61A> /xf0/x9f/x98/x9a KISSING FACE WITH CLOSED EYES
++<U0001F61C> /xf0/x9f/x98/x9c FACE WITH STUCK-OUT TONGUE AND WINKING EYE
++<U0001F61D> /xf0/x9f/x98/x9d FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES
++<U0001F61E> /xf0/x9f/x98/x9e DISAPPOINTED FACE
++<U0001F620> /xf0/x9f/x98/xa0 ANGRY FACE
++<U0001F621> /xf0/x9f/x98/xa1 POUTING FACE
++<U0001F622> /xf0/x9f/x98/xa2 CRYING FACE
++<U0001F623> /xf0/x9f/x98/xa3 PERSEVERING FACE
++<U0001F624> /xf0/x9f/x98/xa4 FACE WITH LOOK OF TRIUMPH
++<U0001F625> /xf0/x9f/x98/xa5 DISAPPOINTED BUT RELIEVED FACE
++<U0001F628> /xf0/x9f/x98/xa8 FEARFUL FACE
++<U0001F629> /xf0/x9f/x98/xa9 WEARY FACE
++<U0001F62A> /xf0/x9f/x98/xaa SLEEPY FACE
++<U0001F62B> /xf0/x9f/x98/xab TIRED FACE
++<U0001F62D> /xf0/x9f/x98/xad LOUDLY CRYING FACE
++<U0001F630> /xf0/x9f/x98/xb0 FACE WITH OPEN MOUTH AND COLD SWEAT
++<U0001F631> /xf0/x9f/x98/xb1 FACE SCREAMING IN FEAR
++<U0001F632> /xf0/x9f/x98/xb2 ASTONISHED FACE
++<U0001F633> /xf0/x9f/x98/xb3 FLUSHED FACE
++<U0001F635> /xf0/x9f/x98/xb5 DIZZY FACE
++<U0001F636> /xf0/x9f/x98/xb6 FACE WITHOUT MOUTH
++<U0001F637> /xf0/x9f/x98/xb7 FACE WITH MEDICAL MASK
++<U0001F638> /xf0/x9f/x98/xb8 GRINNING CAT FACE WITH SMILING EYES
++<U0001F639> /xf0/x9f/x98/xb9 CAT FACE WITH TEARS OF JOY
++<U0001F63A> /xf0/x9f/x98/xba SMILING CAT FACE WITH OPEN MOUTH
++<U0001F63B> /xf0/x9f/x98/xbb SMILING CAT FACE WITH HEART-SHAPED EYES
++<U0001F63C> /xf0/x9f/x98/xbc CAT FACE WITH WRY SMILE
++<U0001F63D> /xf0/x9f/x98/xbd KISSING CAT FACE WITH CLOSED EYES
++<U0001F63E> /xf0/x9f/x98/xbe POUTING CAT FACE
++<U0001F63F> /xf0/x9f/x98/xbf CRYING CAT FACE
++<U0001F640> /xf0/x9f/x99/x80 WEARY CAT FACE
++<U0001F645> /xf0/x9f/x99/x85 FACE WITH NO GOOD GESTURE
++<U0001F646> /xf0/x9f/x99/x86 FACE WITH OK GESTURE
++<U0001F647> /xf0/x9f/x99/x87 PERSON BOWING DEEPLY
++<U0001F648> /xf0/x9f/x99/x88 SEE-NO-EVIL MONKEY
++<U0001F649> /xf0/x9f/x99/x89 HEAR-NO-EVIL MONKEY
++<U0001F64A> /xf0/x9f/x99/x8a SPEAK-NO-EVIL MONKEY
++<U0001F64B> /xf0/x9f/x99/x8b HAPPY PERSON RAISING ONE HAND
++<U0001F64C> /xf0/x9f/x99/x8c PERSON RAISING BOTH HANDS IN CELEBRATION
++<U0001F64D> /xf0/x9f/x99/x8d PERSON FROWNING
++<U0001F64E> /xf0/x9f/x99/x8e PERSON WITH POUTING FACE
++<U0001F64F> /xf0/x9f/x99/x8f PERSON WITH FOLDED HANDS
++<U0001F680> /xf0/x9f/x9a/x80 ROCKET
++<U0001F681> /xf0/x9f/x9a/x81 HELICOPTER
++<U0001F682> /xf0/x9f/x9a/x82 STEAM LOCOMOTIVE
++<U0001F683> /xf0/x9f/x9a/x83 RAILWAY CAR
++<U0001F684> /xf0/x9f/x9a/x84 HIGH-SPEED TRAIN
++<U0001F685> /xf0/x9f/x9a/x85 HIGH-SPEED TRAIN WITH BULLET NOSE
++<U0001F686> /xf0/x9f/x9a/x86 TRAIN
++<U0001F687> /xf0/x9f/x9a/x87 METRO
++<U0001F688> /xf0/x9f/x9a/x88 LIGHT RAIL
++<U0001F689> /xf0/x9f/x9a/x89 STATION
++<U0001F68A> /xf0/x9f/x9a/x8a TRAM
++<U0001F68B> /xf0/x9f/x9a/x8b TRAM CAR
++<U0001F68C> /xf0/x9f/x9a/x8c BUS
++<U0001F68D> /xf0/x9f/x9a/x8d ONCOMING BUS
++<U0001F68E> /xf0/x9f/x9a/x8e TROLLEYBUS
++<U0001F68F> /xf0/x9f/x9a/x8f BUS STOP
++<U0001F690> /xf0/x9f/x9a/x90 MINIBUS
++<U0001F691> /xf0/x9f/x9a/x91 AMBULANCE
++<U0001F692> /xf0/x9f/x9a/x92 FIRE ENGINE
++<U0001F693> /xf0/x9f/x9a/x93 POLICE CAR
++<U0001F694> /xf0/x9f/x9a/x94 ONCOMING POLICE CAR
++<U0001F695> /xf0/x9f/x9a/x95 TAXI
++<U0001F696> /xf0/x9f/x9a/x96 ONCOMING TAXI
++<U0001F697> /xf0/x9f/x9a/x97 AUTOMOBILE
++<U0001F698> /xf0/x9f/x9a/x98 ONCOMING AUTOMOBILE
++<U0001F699> /xf0/x9f/x9a/x99 RECREATIONAL VEHICLE
++<U0001F69A> /xf0/x9f/x9a/x9a DELIVERY TRUCK
++<U0001F69B> /xf0/x9f/x9a/x9b ARTICULATED LORRY
++<U0001F69C> /xf0/x9f/x9a/x9c TRACTOR
++<U0001F69D> /xf0/x9f/x9a/x9d MONORAIL
++<U0001F69E> /xf0/x9f/x9a/x9e MOUNTAIN RAILWAY
++<U0001F69F> /xf0/x9f/x9a/x9f SUSPENSION RAILWAY
++<U0001F6A0> /xf0/x9f/x9a/xa0 MOUNTAIN CABLEWAY
++<U0001F6A1> /xf0/x9f/x9a/xa1 AERIAL TRAMWAY
++<U0001F6A2> /xf0/x9f/x9a/xa2 SHIP
++<U0001F6A3> /xf0/x9f/x9a/xa3 ROWBOAT
++<U0001F6A4> /xf0/x9f/x9a/xa4 SPEEDBOAT
++<U0001F6A5> /xf0/x9f/x9a/xa5 HORIZONTAL TRAFFIC LIGHT
++<U0001F6A6> /xf0/x9f/x9a/xa6 VERTICAL TRAFFIC LIGHT
++<U0001F6A7> /xf0/x9f/x9a/xa7 CONSTRUCTION SIGN
++<U0001F6A8> /xf0/x9f/x9a/xa8 POLICE CARS REVOLVING LIGHT
++<U0001F6A9> /xf0/x9f/x9a/xa9 TRIANGULAR FLAG ON POST
++<U0001F6AA> /xf0/x9f/x9a/xaa DOOR
++<U0001F6AB> /xf0/x9f/x9a/xab NO ENTRY SIGN
++<U0001F6AC> /xf0/x9f/x9a/xac SMOKING SYMBOL
++<U0001F6AD> /xf0/x9f/x9a/xad NO SMOKING SYMBOL
++<U0001F6AE> /xf0/x9f/x9a/xae PUT LITTER IN ITS PLACE SYMBOL
++<U0001F6AF> /xf0/x9f/x9a/xaf DO NOT LITTER SYMBOL
++<U0001F6B0> /xf0/x9f/x9a/xb0 POTABLE WATER SYMBOL
++<U0001F6B1> /xf0/x9f/x9a/xb1 NON-POTABLE WATER SYMBOL
++<U0001F6B2> /xf0/x9f/x9a/xb2 BICYCLE
++<U0001F6B3> /xf0/x9f/x9a/xb3 NO BICYCLES
++<U0001F6B4> /xf0/x9f/x9a/xb4 BICYCLIST
++<U0001F6B5> /xf0/x9f/x9a/xb5 MOUNTAIN BICYCLIST
++<U0001F6B6> /xf0/x9f/x9a/xb6 PEDESTRIAN
++<U0001F6B7> /xf0/x9f/x9a/xb7 NO PEDESTRIANS
++<U0001F6B8> /xf0/x9f/x9a/xb8 CHILDREN CROSSING
++<U0001F6B9> /xf0/x9f/x9a/xb9 MENS SYMBOL
++<U0001F6BA> /xf0/x9f/x9a/xba WOMENS SYMBOL
++<U0001F6BB> /xf0/x9f/x9a/xbb RESTROOM
++<U0001F6BC> /xf0/x9f/x9a/xbc BABY SYMBOL
++<U0001F6BD> /xf0/x9f/x9a/xbd TOILET
++<U0001F6BE> /xf0/x9f/x9a/xbe WATER CLOSET
++<U0001F6BF> /xf0/x9f/x9a/xbf SHOWER
++<U0001F6C0> /xf0/x9f/x9b/x80 BATH
++<U0001F6C1> /xf0/x9f/x9b/x81 BATHTUB
++<U0001F6C2> /xf0/x9f/x9b/x82 PASSPORT CONTROL
++<U0001F6C3> /xf0/x9f/x9b/x83 CUSTOMS
++<U0001F6C4> /xf0/x9f/x9b/x84 BAGGAGE CLAIM
++<U0001F6C5> /xf0/x9f/x9b/x85 LEFT LUGGAGE
++<U0001F700> /xf0/x9f/x9c/x80 ALCHEMICAL SYMBOL FOR QUINTESSENCE
++<U0001F701> /xf0/x9f/x9c/x81 ALCHEMICAL SYMBOL FOR AIR
++<U0001F702> /xf0/x9f/x9c/x82 ALCHEMICAL SYMBOL FOR FIRE
++<U0001F703> /xf0/x9f/x9c/x83 ALCHEMICAL SYMBOL FOR EARTH
++<U0001F704> /xf0/x9f/x9c/x84 ALCHEMICAL SYMBOL FOR WATER
++<U0001F705> /xf0/x9f/x9c/x85 ALCHEMICAL SYMBOL FOR AQUAFORTIS
++<U0001F706> /xf0/x9f/x9c/x86 ALCHEMICAL SYMBOL FOR AQUA REGIA
++<U0001F707> /xf0/x9f/x9c/x87 ALCHEMICAL SYMBOL FOR AQUA REGIA-2
++<U0001F708> /xf0/x9f/x9c/x88 ALCHEMICAL SYMBOL FOR AQUA VITAE
++<U0001F709> /xf0/x9f/x9c/x89 ALCHEMICAL SYMBOL FOR AQUA VITAE-2
++<U0001F70A> /xf0/x9f/x9c/x8a ALCHEMICAL SYMBOL FOR VINEGAR
++<U0001F70B> /xf0/x9f/x9c/x8b ALCHEMICAL SYMBOL FOR VINEGAR-2
++<U0001F70C> /xf0/x9f/x9c/x8c ALCHEMICAL SYMBOL FOR VINEGAR-3
++<U0001F70D> /xf0/x9f/x9c/x8d ALCHEMICAL SYMBOL FOR SULFUR
++<U0001F70E> /xf0/x9f/x9c/x8e ALCHEMICAL SYMBOL FOR PHILOSOPHERS SULFUR
++<U0001F70F> /xf0/x9f/x9c/x8f ALCHEMICAL SYMBOL FOR BLACK SULFUR
++<U0001F710> /xf0/x9f/x9c/x90 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE
++<U0001F711> /xf0/x9f/x9c/x91 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-2
++<U0001F712> /xf0/x9f/x9c/x92 ALCHEMICAL SYMBOL FOR MERCURY SUBLIMATE-3
++<U0001F713> /xf0/x9f/x9c/x93 ALCHEMICAL SYMBOL FOR CINNABAR
++<U0001F714> /xf0/x9f/x9c/x94 ALCHEMICAL SYMBOL FOR SALT
++<U0001F715> /xf0/x9f/x9c/x95 ALCHEMICAL SYMBOL FOR NITRE
++<U0001F716> /xf0/x9f/x9c/x96 ALCHEMICAL SYMBOL FOR VITRIOL
++<U0001F717> /xf0/x9f/x9c/x97 ALCHEMICAL SYMBOL FOR VITRIOL-2
++<U0001F718> /xf0/x9f/x9c/x98 ALCHEMICAL SYMBOL FOR ROCK SALT
++<U0001F719> /xf0/x9f/x9c/x99 ALCHEMICAL SYMBOL FOR ROCK SALT-2
++<U0001F71A> /xf0/x9f/x9c/x9a ALCHEMICAL SYMBOL FOR GOLD
++<U0001F71B> /xf0/x9f/x9c/x9b ALCHEMICAL SYMBOL FOR SILVER
++<U0001F71C> /xf0/x9f/x9c/x9c ALCHEMICAL SYMBOL FOR IRON ORE
++<U0001F71D> /xf0/x9f/x9c/x9d ALCHEMICAL SYMBOL FOR IRON ORE-2
++<U0001F71E> /xf0/x9f/x9c/x9e ALCHEMICAL SYMBOL FOR CROCUS OF IRON
++<U0001F71F> /xf0/x9f/x9c/x9f ALCHEMICAL SYMBOL FOR REGULUS OF IRON
++<U0001F720> /xf0/x9f/x9c/xa0 ALCHEMICAL SYMBOL FOR COPPER ORE
++<U0001F721> /xf0/x9f/x9c/xa1 ALCHEMICAL SYMBOL FOR IRON-COPPER ORE
++<U0001F722> /xf0/x9f/x9c/xa2 ALCHEMICAL SYMBOL FOR SUBLIMATE OF COPPER
++<U0001F723> /xf0/x9f/x9c/xa3 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER
++<U0001F724> /xf0/x9f/x9c/xa4 ALCHEMICAL SYMBOL FOR CROCUS OF COPPER-2
++<U0001F725> /xf0/x9f/x9c/xa5 ALCHEMICAL SYMBOL FOR COPPER ANTIMONIATE
++<U0001F726> /xf0/x9f/x9c/xa6 ALCHEMICAL SYMBOL FOR SALT OF COPPER ANTIMONIATE
++<U0001F727> /xf0/x9f/x9c/xa7 ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF COPPER
++<U0001F728> /xf0/x9f/x9c/xa8 ALCHEMICAL SYMBOL FOR VERDIGRIS
++<U0001F729> /xf0/x9f/x9c/xa9 ALCHEMICAL SYMBOL FOR TIN ORE
++<U0001F72A> /xf0/x9f/x9c/xaa ALCHEMICAL SYMBOL FOR LEAD ORE
++<U0001F72B> /xf0/x9f/x9c/xab ALCHEMICAL SYMBOL FOR ANTIMONY ORE
++<U0001F72C> /xf0/x9f/x9c/xac ALCHEMICAL SYMBOL FOR SUBLIMATE OF ANTIMONY
++<U0001F72D> /xf0/x9f/x9c/xad ALCHEMICAL SYMBOL FOR SALT OF ANTIMONY
++<U0001F72E> /xf0/x9f/x9c/xae ALCHEMICAL SYMBOL FOR SUBLIMATE OF SALT OF ANTIMONY
++<U0001F72F> /xf0/x9f/x9c/xaf ALCHEMICAL SYMBOL FOR VINEGAR OF ANTIMONY
++<U0001F730> /xf0/x9f/x9c/xb0 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY
++<U0001F731> /xf0/x9f/x9c/xb1 ALCHEMICAL SYMBOL FOR REGULUS OF ANTIMONY-2
++<U0001F732> /xf0/x9f/x9c/xb2 ALCHEMICAL SYMBOL FOR REGULUS
++<U0001F733> /xf0/x9f/x9c/xb3 ALCHEMICAL SYMBOL FOR REGULUS-2
++<U0001F734> /xf0/x9f/x9c/xb4 ALCHEMICAL SYMBOL FOR REGULUS-3
++<U0001F735> /xf0/x9f/x9c/xb5 ALCHEMICAL SYMBOL FOR REGULUS-4
++<U0001F736> /xf0/x9f/x9c/xb6 ALCHEMICAL SYMBOL FOR ALKALI
++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2
++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE
++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC
++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR
++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2
++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT
++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE
++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR
++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2
++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME
++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX
++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2
++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3
++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM
++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL
++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT
++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE
++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM
++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX
++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER
++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX
++<U0001F737> /xf0/x9f/x9c/xb7 ALCHEMICAL SYMBOL FOR ALKALI-2
++<U0001F738> /xf0/x9f/x9c/xb8 ALCHEMICAL SYMBOL FOR MARCASITE
++<U0001F739> /xf0/x9f/x9c/xb9 ALCHEMICAL SYMBOL FOR SAL-AMMONIAC
++<U0001F73A> /xf0/x9f/x9c/xba ALCHEMICAL SYMBOL FOR ARSENIC
++<U0001F73B> /xf0/x9f/x9c/xbb ALCHEMICAL SYMBOL FOR REALGAR
++<U0001F73C> /xf0/x9f/x9c/xbc ALCHEMICAL SYMBOL FOR REALGAR-2
++<U0001F73D> /xf0/x9f/x9c/xbd ALCHEMICAL SYMBOL FOR AURIPIGMENT
++<U0001F73E> /xf0/x9f/x9c/xbe ALCHEMICAL SYMBOL FOR BISMUTH ORE
++<U0001F73F> /xf0/x9f/x9c/xbf ALCHEMICAL SYMBOL FOR TARTAR
++<U0001F740> /xf0/x9f/x9d/x80 ALCHEMICAL SYMBOL FOR TARTAR-2
++<U0001F741> /xf0/x9f/x9d/x81 ALCHEMICAL SYMBOL FOR QUICK LIME
++<U0001F742> /xf0/x9f/x9d/x82 ALCHEMICAL SYMBOL FOR BORAX
++<U0001F743> /xf0/x9f/x9d/x83 ALCHEMICAL SYMBOL FOR BORAX-2
++<U0001F744> /xf0/x9f/x9d/x84 ALCHEMICAL SYMBOL FOR BORAX-3
++<U0001F745> /xf0/x9f/x9d/x85 ALCHEMICAL SYMBOL FOR ALUM
++<U0001F746> /xf0/x9f/x9d/x86 ALCHEMICAL SYMBOL FOR OIL
++<U0001F747> /xf0/x9f/x9d/x87 ALCHEMICAL SYMBOL FOR SPIRIT
++<U0001F748> /xf0/x9f/x9d/x88 ALCHEMICAL SYMBOL FOR TINCTURE
++<U0001F749> /xf0/x9f/x9d/x89 ALCHEMICAL SYMBOL FOR GUM
++<U0001F74A> /xf0/x9f/x9d/x8a ALCHEMICAL SYMBOL FOR WAX
++<U0001F74B> /xf0/x9f/x9d/x8b ALCHEMICAL SYMBOL FOR POWDER
++<U0001F74C> /xf0/x9f/x9d/x8c ALCHEMICAL SYMBOL FOR CALX
++<U0001F74D> /xf0/x9f/x9d/x8d ALCHEMICAL SYMBOL FOR TUTTY
++<U0001F74E> /xf0/x9f/x9d/x8e ALCHEMICAL SYMBOL FOR CAPUT MORTUUM
++<U0001F74F> /xf0/x9f/x9d/x8f ALCHEMICAL SYMBOL FOR SCEPTER OF JOVE
++<U0001F750> /xf0/x9f/x9d/x90 ALCHEMICAL SYMBOL FOR CADUCEUS
++<U0001F751> /xf0/x9f/x9d/x91 ALCHEMICAL SYMBOL FOR TRIDENT
++<U0001F752> /xf0/x9f/x9d/x92 ALCHEMICAL SYMBOL FOR STARRED TRIDENT
++<U0001F753> /xf0/x9f/x9d/x93 ALCHEMICAL SYMBOL FOR LODESTONE
++<U0001F754> /xf0/x9f/x9d/x94 ALCHEMICAL SYMBOL FOR SOAP
++<U0001F755> /xf0/x9f/x9d/x95 ALCHEMICAL SYMBOL FOR URINE
++<U0001F756> /xf0/x9f/x9d/x96 ALCHEMICAL SYMBOL FOR HORSE DUNG
++<U0001F757> /xf0/x9f/x9d/x97 ALCHEMICAL SYMBOL FOR ASHES
++<U0001F758> /xf0/x9f/x9d/x98 ALCHEMICAL SYMBOL FOR POT ASHES
++<U0001F759> /xf0/x9f/x9d/x99 ALCHEMICAL SYMBOL FOR BRICK
++<U0001F75A> /xf0/x9f/x9d/x9a ALCHEMICAL SYMBOL FOR POWDERED BRICK
++<U0001F75B> /xf0/x9f/x9d/x9b ALCHEMICAL SYMBOL FOR AMALGAM
++<U0001F75C> /xf0/x9f/x9d/x9c ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM
++<U0001F75D> /xf0/x9f/x9d/x9d ALCHEMICAL SYMBOL FOR STRATUM SUPER STRATUM-2
++<U0001F75E> /xf0/x9f/x9d/x9e ALCHEMICAL SYMBOL FOR SUBLIMATION
++<U0001F75F> /xf0/x9f/x9d/x9f ALCHEMICAL SYMBOL FOR PRECIPITATE
++<U0001F760> /xf0/x9f/x9d/xa0 ALCHEMICAL SYMBOL FOR DISTILL
++<U0001F761> /xf0/x9f/x9d/xa1 ALCHEMICAL SYMBOL FOR DISSOLVE
++<U0001F762> /xf0/x9f/x9d/xa2 ALCHEMICAL SYMBOL FOR DISSOLVE-2
++<U0001F763> /xf0/x9f/x9d/xa3 ALCHEMICAL SYMBOL FOR PURIFY
++<U0001F764> /xf0/x9f/x9d/xa4 ALCHEMICAL SYMBOL FOR PUTREFACTION
++<U0001F765> /xf0/x9f/x9d/xa5 ALCHEMICAL SYMBOL FOR CRUCIBLE
++<U0001F766> /xf0/x9f/x9d/xa6 ALCHEMICAL SYMBOL FOR CRUCIBLE-2
++<U0001F767> /xf0/x9f/x9d/xa7 ALCHEMICAL SYMBOL FOR CRUCIBLE-3
++<U0001F768> /xf0/x9f/x9d/xa8 ALCHEMICAL SYMBOL FOR CRUCIBLE-4
++<U0001F769> /xf0/x9f/x9d/xa9 ALCHEMICAL SYMBOL FOR CRUCIBLE-5
++<U0001F76A> /xf0/x9f/x9d/xaa ALCHEMICAL SYMBOL FOR ALEMBIC
++<U0001F76B> /xf0/x9f/x9d/xab ALCHEMICAL SYMBOL FOR BATH OF MARY
++<U0001F76C> /xf0/x9f/x9d/xac ALCHEMICAL SYMBOL FOR BATH OF VAPOURS
++<U0001F76D> /xf0/x9f/x9d/xad ALCHEMICAL SYMBOL FOR RETORT
++<U0001F76E> /xf0/x9f/x9d/xae ALCHEMICAL SYMBOL FOR HOUR
++<U0001F76F> /xf0/x9f/x9d/xaf ALCHEMICAL SYMBOL FOR NIGHT
++<U0001F770> /xf0/x9f/x9d/xb0 ALCHEMICAL SYMBOL FOR DAY-NIGHT
++<U0001F771> /xf0/x9f/x9d/xb1 ALCHEMICAL SYMBOL FOR MONTH
++<U0001F772> /xf0/x9f/x9d/xb2 ALCHEMICAL SYMBOL FOR HALF DRAM
++<U0001F773> /xf0/x9f/x9d/xb3 ALCHEMICAL SYMBOL FOR HALF OUNCE
+ <U00020000>..<U0002003F> /xf0/xa0/x80/x80 <CJK>
+ <U00020040>..<U0002007F> /xf0/xa0/x81/x80 <CJK>
+ <U00020080>..<U000200BF> /xf0/xa0/x82/x80 <CJK>
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ar_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ar_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/as_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/as_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/as_IN
+@@ -51,7 +51,7 @@ END LC_NUMERIC
+ %%%%%%%%%%%%%
+ LC_MONETARY
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U099F><U0995><U09BE>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/bn_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/bn_IN
+@@ -53,7 +53,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U099F><U09BE><U0995><U09BE>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          2;3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/en_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/en_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/en_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/gu_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/gu_IN
+@@ -71,7 +71,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0AB0><U0AC1>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/hi_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/hi_IN
+@@ -69,7 +69,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0942>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kn_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/kn_IN
+@@ -71,8 +71,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-% *** Change this to reflect Kannada , in Dev it is RA with VS U attached
+-currency_symbol       "<U0CB0><U0CC2>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/kok_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/kok_IN
+@@ -49,7 +49,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0941>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ks_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ks_IN
+@@ -57,7 +57,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ml_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ml_IN
+@@ -69,7 +69,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol     "<U0049><U004E><U0052><U0020>"
+-currency_symbol     "<U0D30><U0D42>"
++currency_symbol     "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/mr_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/mr_IN
+@@ -70,7 +70,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0941>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/or_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/or_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/or_IN
+@@ -607,7 +607,7 @@ END LC_NUMERIC
+ %%%%%%%%%%%%%
+ LC_MONETARY
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U003D><U0030><U0023><U0052><U0073><U002E><U007C><U0031><U0023><U0052><U0065><U002E><U007C><U0031><U003C><U0052><U0073><U002E>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/pa_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/pa_IN
+@@ -66,7 +66,7 @@ END LC_COLLATE
+ LC_MONETARY
+ % This is the POSIX Locale definition the LC_MONETARY category.
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0A30><U0A41><U0A2A><U0A0F>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sa_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/sa_IN
+@@ -52,7 +52,7 @@ LC_MONETARY
+ % for IBM Class for Unicode/Java
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0930><U0942>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/sd_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/sd_IN
+@@ -57,7 +57,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/ta_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/ta_IN
+@@ -74,7 +74,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U20A8>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
+Index: glibc-2.12-2-gc4ccff1/localedata/locales/te_IN
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/localedata/locales/te_IN
++++ glibc-2.12-2-gc4ccff1/localedata/locales/te_IN
+@@ -73,7 +73,7 @@ LC_MONETARY
+ % for IBM Class for Unicode.
+ %
+ int_curr_symbol       "<U0049><U004E><U0052><U0020>"
+-currency_symbol       "<U0C30><U0C42><U002E>"
++currency_symbol       "<U20B9>"
+ mon_decimal_point     "<U002E>"
+ mon_thousands_sep     "<U002C>"
+ mon_grouping          3;2
diff --git a/src/patches/glibc/glibc-rh694386.patch b/src/patches/glibc/glibc-rh694386.patch
new file mode 100644 (file)
index 0000000..3932eb8
--- /dev/null
@@ -0,0 +1,86 @@
+2011-03-28  Andreas Schwab  <schwab@linux-m68k.org>
+
+       * sysdeps/powerpc/powerpc32/power4/strncmp.S: Don't read past
+       differing bytes.
+       * sysdeps/powerpc/powerpc64/power4/strncmp.S: Likewise.
+
+diff --git a/sysdeps/powerpc/powerpc32/power4/strncmp.S b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+index fc0835e..f5d47af 100644
+--- a/sysdeps/powerpc/powerpc32/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc32/power4/strncmp.S
+@@ -139,30 +139,31 @@ L(u1):
+       bdz     L(u4)
+       cmpw    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpwi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpw    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      bne-    L(u3)
+       cmpwi   cr1, rWORD1, 0
+       bdz     L(u4)
+       cmpw    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpwi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpw    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      beq+    L(u1)
++      b       L(u1)
+ L(u3):  sub     rRTN, rWORD3, rWORD4
+         blr
+diff --git a/sysdeps/powerpc/powerpc64/power4/strncmp.S b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+index 7a1665d..94ae85b 100644
+--- a/sysdeps/powerpc/powerpc64/power4/strncmp.S
++++ b/sysdeps/powerpc/powerpc64/power4/strncmp.S
+@@ -143,30 +143,31 @@ L(u1):
+       bdz     L(u4)
+       cmpd    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpdi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpd    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      bne-    L(u3)
+       cmpdi   cr1, rWORD1, 0
+       bdz     L(u4)
+       cmpd    rWORD1, rWORD2
+       beq-    cr1, L(u4)
++      bne-    L(u4)
+       lbzu    rWORD3, 1(rSTR1)
+       lbzu    rWORD4, 1(rSTR2)
+-      bne-    L(u4)
+       cmpdi   cr1, rWORD3, 0
+       bdz     L(u3)
+       cmpd    rWORD3, rWORD4
+       beq-    cr1, L(u3)
++      bne-    L(u3)
+       lbzu    rWORD1, 1(rSTR1)
+       lbzu    rWORD2, 1(rSTR2)
+-      beq+    L(u1)
++      b       L(u1)
+ L(u3):  sub     rRTN, rWORD3, rWORD4
+         blr
diff --git a/src/patches/glibc/glibc-rh695595.patch b/src/patches/glibc/glibc-rh695595.patch
new file mode 100644 (file)
index 0000000..0e6c72b
--- /dev/null
@@ -0,0 +1,17 @@
+2010-11-11  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Support Intel processor model 6 and model 0x2c.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -81,6 +81,7 @@ __init_cpu_features (void)
+           case 0x1e:
+           case 0x1f:
+           case 0x25:
++          case 0x2c:
+           case 0x2e:
+           case 0x2f:
+             /* Rep string instructions are fast on Intel Core i3, i5
diff --git a/src/patches/glibc/glibc-rh695963.patch b/src/patches/glibc/glibc-rh695963.patch
new file mode 100644 (file)
index 0000000..e8053dc
--- /dev/null
@@ -0,0 +1,1284 @@
+2010-08-27  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/x86_64/multiarch/strlen-no-bsf.S: Move to .text.slow section.
+
+       * sysdeps/x86_64/strlen.S: Minimal code improvement.
+
+2010-08-26  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/strlen.S: Unroll the loop.
+       * sysdeps/x86_64/multiarch/Makefile (sysdep_routines): Add
+       strlen-sse2 strlen-sse2-bsf.
+       * sysdeps/x86_64/multiarch/strlen.S ((strlen): Return
+       __strlen_no_bsf if bit_Slow_BSF is set.
+       (__strlen_sse42): Removed.
+       * sysdeps/x86_64/multiarch/strlen-no-bsf.S: New file.
+       * sysdeps/x86_64/multiarch/strlen-sse4.S: New file.
+
+2010-08-25  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/i386/i686/multiarch/Makefile (sysdep_routines): Add
+       strlen-sse2 strlen-sse2-bsf.
+       * sysdeps/i386/i686/multiarch/strlen.S (strlen): Return
+       __strlen_sse2_bsf if bit_Slow_BSF is unset.
+       (__strlen_sse2): Removed.
+       * sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S: New file.
+       * sysdeps/i386/i686/multiarch/strlen-sse2.S: New file.
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features): Set
+       bit_Slow_BSF for Atom.
+       * sysdeps/x86_64/multiarch/init-arch.h (bit_Slow_BSF): Define.
+       (index_Slow_BSF): Define.
+       (HAS_SLOW_BSF): Define.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/Makefile
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/Makefile
+@@ -9,7 +9,8 @@ sysdep_routines += bzero-sse2 memset-sse
+                  memmove-ssse3-rep bcopy-ssse3 bcopy-ssse3-rep \
+                  memset-sse2-rep bzero-sse2-rep strcmp-ssse3 \
+                  strcmp-sse4 strncmp-c strncmp-ssse3 strncmp-sse4 \
+-                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii
++                 memcmp-ssse3 memcmp-sse4 strcasestr-nonascii \
++                 strlen-sse2 strlen-sse2-bsf
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+ CFLAGS-strcspn-c.c += -msse4
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2-bsf.S
+@@ -0,0 +1,127 @@
++/* strlen with SSE2 and BSF
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++#include "asm-syntax.h"
++
++#define CFI_PUSH(REG)                                         \
++  cfi_adjust_cfa_offset (4);                                  \
++  cfi_rel_offset (REG, 0)
++
++#define CFI_POP(REG)                                          \
++  cfi_adjust_cfa_offset (-4);                                 \
++  cfi_restore (REG)
++
++#define PUSH(REG)     pushl REG; CFI_PUSH (REG)
++#define POP(REG)      popl REG; CFI_POP (REG)
++#define PARMS         4 + 8   /* Preserve ESI and EDI.  */
++#define       STR             PARMS
++#define ENTRANCE      PUSH (%esi); PUSH (%edi); cfi_remember_state
++#define RETURN                POP (%edi); POP (%esi); ret; \
++                      cfi_restore_state; cfi_remember_state
++
++      .text
++ENTRY ( __strlen_sse2_bsf)
++      ENTRANCE
++      mov     STR(%esp), %edi
++      xor     %eax, %eax
++      mov     %edi, %ecx
++      and     $0x3f, %ecx
++      pxor    %xmm0, %xmm0
++      cmp     $0x30, %ecx
++      ja      L(next)
++      movdqu  (%edi), %xmm1
++      pcmpeqb %xmm1, %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit_less16)
++      mov     %edi, %eax
++      and     $-16, %eax
++      jmp     L(align16_start)
++L(next):
++
++      mov     %edi, %eax
++      and     $-16, %eax
++      pcmpeqb (%eax), %xmm0
++      mov     $-1, %esi
++      sub     %eax, %ecx
++      shl     %cl, %esi
++      pmovmskb %xmm0, %edx
++      and     %esi, %edx
++      jnz     L(exit)
++L(align16_start):
++      pxor    %xmm0, %xmm0
++      pxor    %xmm1, %xmm1
++      pxor    %xmm2, %xmm2
++      pxor    %xmm3, %xmm3
++      .p2align 4
++L(align16_loop):
++      pcmpeqb 16(%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit16)
++
++      pcmpeqb 32(%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      jnz     L(exit32)
++
++      pcmpeqb 48(%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      jnz     L(exit48)
++
++      pcmpeqb 64(%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      lea     64(%eax), %eax
++      test    %edx, %edx
++      jz      L(align16_loop)
++L(exit):
++      sub     %edi, %eax
++L(exit_less16):
++      bsf     %edx, %edx
++      add     %edx, %eax
++      RETURN
++L(exit16):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $16, %eax
++      RETURN
++L(exit32):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $32, %eax
++      RETURN
++L(exit48):
++      sub     %edi, %eax
++      bsf     %edx, %edx
++      add     %edx, %eax
++      add     $48, %eax
++      POP (%edi)
++      POP (%esi)
++      ret
++
++END ( __strlen_sse2_bsf)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen-sse2.S
+@@ -0,0 +1,347 @@
++/* strlen with SSE2
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++#include "asm-syntax.h"
++
++#define CFI_PUSH(REG)                                         \
++  cfi_adjust_cfa_offset (4);                                  \
++  cfi_rel_offset (REG, 0)
++
++#define CFI_POP(REG)                                          \
++  cfi_adjust_cfa_offset (-4);                                 \
++  cfi_restore (REG)
++
++#define PUSH(REG)     pushl REG; CFI_PUSH (REG)
++#define POP(REG)      popl REG; CFI_POP (REG)
++#define PARMS         4
++#define       STR             PARMS
++#define ENTRANCE
++#define RETURN                ret
++
++      .text
++ENTRY (__strlen_sse2)
++      ENTRANCE
++      mov     STR(%esp), %edx
++      xor     %eax, %eax
++      cmpb    $0, (%edx)
++      jz      L(exit_tail0)
++      cmpb    $0, 1(%edx)
++      jz      L(exit_tail1)
++      cmpb    $0, 2(%edx)
++      jz      L(exit_tail2)
++      cmpb    $0, 3(%edx)
++      jz      L(exit_tail3)
++      cmpb    $0, 4(%edx)
++      jz      L(exit_tail4)
++      cmpb    $0, 5(%edx)
++      jz      L(exit_tail5)
++      cmpb    $0, 6(%edx)
++      jz      L(exit_tail6)
++      cmpb    $0, 7(%edx)
++      jz      L(exit_tail7)
++      cmpb    $0, 8(%edx)
++      jz      L(exit_tail8)
++      cmpb    $0, 9(%edx)
++      jz      L(exit_tail9)
++      cmpb    $0, 10(%edx)
++      jz      L(exit_tail10)
++      cmpb    $0, 11(%edx)
++      jz      L(exit_tail11)
++      cmpb    $0, 12(%edx)
++      jz      L(exit_tail12)
++      cmpb    $0, 13(%edx)
++      jz      L(exit_tail13)
++      cmpb    $0, 14(%edx)
++      jz      L(exit_tail14)
++      cmpb    $0, 15(%edx)
++      jz      L(exit_tail15)
++      pxor    %xmm0, %xmm0
++      mov     %edx, %eax
++      mov     %edx, %ecx
++      and     $-16, %eax
++      add     $16, %ecx
++      add     $16, %eax
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      pxor    %xmm1, %xmm1
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      pxor    %xmm2, %xmm2
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      pxor    %xmm3, %xmm3
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      pcmpeqb (%eax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%eax), %eax
++      jnz     L(exit)
++
++      and     $-0x40, %eax
++      PUSH (%esi)
++      PUSH (%edi)
++      PUSH (%ebx)
++      PUSH (%ebp)
++      xor     %ebp, %ebp
++L(aligned_64):
++      pcmpeqb (%eax), %xmm0
++      pcmpeqb 16(%eax), %xmm1
++      pcmpeqb 32(%eax), %xmm2
++      pcmpeqb 48(%eax), %xmm3
++      pmovmskb %xmm0, %edx
++      pmovmskb %xmm1, %esi
++      pmovmskb %xmm2, %edi
++      pmovmskb %xmm3, %ebx
++      or      %edx, %ebp
++      or      %esi, %ebp
++      or      %edi, %ebp
++      or      %ebx, %ebp
++      lea     64(%eax), %eax
++      jz      L(aligned_64)
++L(48leave):
++      test    %edx, %edx
++      jnz     L(aligned_64_exit_16)
++      test    %esi, %esi
++      jnz     L(aligned_64_exit_32)
++      test    %edi, %edi
++      jnz     L(aligned_64_exit_48)
++      mov     %ebx, %edx
++      lea     (%eax), %eax
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_48):
++      lea     -16(%eax), %eax
++      mov     %edi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_32):
++      lea     -32(%eax), %eax
++      mov     %esi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_16):
++      lea     -48(%eax), %eax
++L(aligned_64_exit):
++      POP (%ebp)
++      POP (%ebx)
++      POP (%edi)
++      POP (%esi)
++L(exit):
++      sub     %ecx, %eax
++      test    %dl, %dl
++      jz      L(exit_high)
++      test    $0x01, %dl
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dl
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dl
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dl
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dl
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dl
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dl
++      jnz     L(exit_tail6)
++      add     $7, %eax
++L(exit_tail0):
++      RETURN
++
++L(exit_high):
++      add     $8, %eax
++      test    $0x01, %dh
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dh
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dh
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dh
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dh
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dh
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dh
++      jnz     L(exit_tail6)
++      add     $7, %eax
++      RETURN
++
++      .p2align 4
++L(exit_tail1):
++      add     $1, %eax
++      RETURN
++
++L(exit_tail2):
++      add     $2, %eax
++      RETURN
++
++L(exit_tail3):
++      add     $3, %eax
++      RETURN
++
++L(exit_tail4):
++      add     $4, %eax
++      RETURN
++
++L(exit_tail5):
++      add     $5, %eax
++      RETURN
++
++L(exit_tail6):
++      add     $6, %eax
++      RETURN
++
++L(exit_tail7):
++      add     $7, %eax
++      RETURN
++
++L(exit_tail8):
++      add     $8, %eax
++      RETURN
++
++L(exit_tail9):
++      add     $9, %eax
++      RETURN
++
++L(exit_tail10):
++      add     $10, %eax
++      RETURN
++
++L(exit_tail11):
++      add     $11, %eax
++      RETURN
++
++L(exit_tail12):
++      add     $12, %eax
++      RETURN
++
++L(exit_tail13):
++      add     $13, %eax
++      RETURN
++
++L(exit_tail14):
++      add     $14, %eax
++      RETURN
++
++L(exit_tail15):
++      add     $15, %eax
++      ret
++
++END (__strlen_sse2)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/i386/i686/multiarch/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/i386/i686/multiarch/strlen.S
+@@ -48,6 +48,9 @@ ENTRY(strlen)
+ 1:    leal    __strlen_ia32@GOTOFF(%ebx), %eax
+       testl   $bit_SSE2, CPUID_OFFSET+index_SSE2+__cpu_features@GOTOFF(%ebx)
+       jz      2f
++      leal    __strlen_sse2_bsf@GOTOFF(%ebx), %eax
++      testl   $bit_Slow_BSF, FEATURE_OFFSET+index_Slow_BSF+__cpu_features@GOTOFF(%ebx)
++      jz      2f
+       leal    __strlen_sse2@GOTOFF(%ebx), %eax
+ 2:    popl    %ebx
+       cfi_adjust_cfa_offset (-4);
+@@ -55,84 +58,6 @@ ENTRY(strlen)
+       ret
+ END(strlen)
+-#define CFI_POP(REG)                                          \
+-  cfi_adjust_cfa_offset (-4);                                 \
+-  cfi_restore (REG)
+-
+-#define RETURN                popl %esi; CFI_POP (esi); ret
+-
+-      .text
+-ENTRY (__strlen_sse2)
+-/*
+- * This implementation uses SSE instructions to compare up to 16 bytes
+- * at a time looking for the end of string (null char).
+- */
+-      pushl   %esi
+-      cfi_adjust_cfa_offset (4)
+-      cfi_rel_offset (%esi, 0)
+-      mov     8(%esp), %eax
+-      mov     %eax, %ecx
+-      pxor    %xmm0, %xmm0            /* 16 null chars */
+-      mov     %eax, %esi
+-      and     $15, %ecx
+-      jz      1f                      /* string is 16 byte aligned */
+-
+-      /*
+-      * Unaligned case. Round down to 16-byte boundary before comparing
+-      * 16 bytes for a null char. The code then compensates for any extra chars
+-      * preceding the start of the string.
+-      */
+-      and     $-16, %esi
+-
+-      pcmpeqb (%esi), %xmm0
+-      lea     16(%eax), %esi
+-      pmovmskb %xmm0, %edx
+-
+-      shr     %cl, %edx               /* Compensate for bytes preceding the string */
+-      test    %edx, %edx
+-      jnz     2f
+-      sub     %ecx, %esi              /* no null, adjust to next 16-byte boundary */
+-      pxor    %xmm0, %xmm0            /* clear xmm0, may have been changed... */
+-
+-      .p2align 4
+-1:                                    /* 16 byte aligned */
+-      pcmpeqb (%esi), %xmm0           /* look for null bytes */
+-      pmovmskb %xmm0, %edx            /* move each byte mask of %xmm0 to edx */
+-
+-      add     $16, %esi               /* prepare to search next 16 bytes */
+-      test    %edx, %edx              /* if no null byte, %edx must be 0 */
+-      jnz     2f                      /* found a null */
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jnz     2f
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jnz     2f
+-
+-      pcmpeqb (%esi), %xmm0
+-      pmovmskb %xmm0, %edx
+-      add     $16, %esi
+-      test    %edx, %edx
+-      jz      1b
+-
+-2:
+-      neg     %eax
+-      lea     -16(%eax, %esi), %eax   /* calculate exact offset */
+-      bsf     %edx, %ecx              /* Least significant 1 bit is index of null */
+-      add     %ecx, %eax
+-      popl    %esi
+-      cfi_adjust_cfa_offset (-4)
+-      cfi_restore (%esi)
+-      ret
+-
+-END (__strlen_sse2)
+-
+ # undef ENTRY
+ # define ENTRY(name) \
+       .type __strlen_ia32, @function; \
+--- a/sysdeps/x86_64/multiarch/Makefile        2012-03-01 10:43:30.060487726 -0700
++++ b/sysdeps/x86_64/multiarch/Makefile        2012-03-01 10:45:57.894692115 -0700
+@@ -7,7 +7,7 @@ ifeq ($(subdir),string)
+ sysdep_routines += stpncpy-c strncpy-c strcmp-ssse3 strncmp-ssse3 \
+                  strend-sse4 memcmp-sse4 \
+                  strcasestr-nonascii strcasecmp_l-ssse3 \
+-                 strncase_l-ssse3 \
++                 strncase_l-ssse3 strlen-sse4 strlen-no-bsf \
+                  memset-x86-64
+ ifeq (yes,$(config-cflags-sse4))
+ sysdep_routines += strcspn-c strpbrk-c strspn-c strstr-c strcasestr-c
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/init-arch.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/init-arch.c
+@@ -77,6 +77,12 @@ __init_cpu_features (void)
+         model += extended_model;
+         switch (model)
+           {
++          case 0x1c:
++          case 0x26:
++            /* BSF is slow on Atom.  */
++            __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF;
++            break;
++
+           case 0x1a:
+           case 0x1e:
+           case 0x1f:
+--- a/sysdeps/x86_64/multiarch/init-arch.h     2012-03-01 10:43:30.061487720 -0700
++++ b/sysdeps/x86_64/multiarch/init-arch.h     2012-03-01 10:48:13.371963005 -0700
+@@ -17,6 +17,7 @@
+    02111-1307 USA.  */
+ #define bit_Fast_Rep_String           (1 << 0)
++#define bit_Slow_BSF                   (1 << 2)
+ #define bit_Prefer_SSE_for_memop      (1 << 3)
+ #ifdef        __ASSEMBLER__
+@@ -34,6 +35,7 @@
+ # define index_SSE4_2 COMMON_CPUID_INDEX_1*CPUID_SIZE+CPUID_ECX_OFFSET
+ #define index_Fast_Rep_String FEATURE_INDEX_1*FEATURE_SIZE
++# define index_Slow_BSF                        FEATURE_INDEX_1*FEATURE_SIZE
+ # define index_Prefer_SSE_for_memop   FEATURE_INDEX_1*FEATURE_SIZE
+ #else /* __ASSEMBLER__ */
+@@ -105,11 +107,15 @@ extern const struct cpu_features *__get_
+ # define HAS_FMA      HAS_CPU_FEATURE (COMMON_CPUID_INDEX_1, ecx, 12)
+ # define index_Fast_Rep_String        FEATURE_INDEX_1
++# define index_Slow_BSF                        FEATURE_INDEX_1
+ # define index_Prefer_SSE_for_memop   FEATURE_INDEX_1
+ #define HAS_ARCH_FEATURE(idx, bit) \
+   ((__get_cpu_features ()->feature[idx] & (bit)) != 0)
++#define HAS_SLOW_BSF \
++  HAS_ARCH_FEATURE (index_Slow_BSF, bit_Slow_BSF)
++
+ #define HAS_PREFER_SSE_FOR_MEMOP \
+   HAS_ARCH_FEATURE (index_Prefer_SSE_for_memop, bit_Prefer_SSE_for_memop)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-no-bsf.S
+@@ -0,0 +1,309 @@
++/* strlen without BSF
++   Copyright (C) 2010 Free Software Foundation, Inc.
++   Contributed by Intel Corporation.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++
++      .section .text.slow,"ax",@progbits
++ENTRY (__strlen_no_bsf)
++      xor     %eax, %eax
++      cmpb    $0, (%rdi)
++      jz      L(exit_tail0)
++      cmpb    $0, 1(%rdi)
++      jz      L(exit_tail1)
++      cmpb    $0, 2(%rdi)
++      jz      L(exit_tail2)
++      cmpb    $0, 3(%rdi)
++      jz      L(exit_tail3)
++      cmpb    $0, 4(%rdi)
++      jz      L(exit_tail4)
++      cmpb    $0, 5(%rdi)
++      jz      L(exit_tail5)
++      cmpb    $0, 6(%rdi)
++      jz      L(exit_tail6)
++      cmpb    $0, 7(%rdi)
++      jz      L(exit_tail7)
++      cmpb    $0, 8(%rdi)
++      jz      L(exit_tail8)
++      cmpb    $0, 9(%rdi)
++      jz      L(exit_tail9)
++      cmpb    $0, 10(%rdi)
++      jz      L(exit_tail10)
++      cmpb    $0, 11(%rdi)
++      jz      L(exit_tail11)
++      cmpb    $0, 12(%rdi)
++      jz      L(exit_tail12)
++      cmpb    $0, 13(%rdi)
++      jz      L(exit_tail13)
++      cmpb    $0, 14(%rdi)
++      jz      L(exit_tail14)
++      cmpb    $0, 15(%rdi)
++      jz      L(exit_tail15)
++      pxor    %xmm0, %xmm0
++      mov     %rdi, %rcx
++      mov     %rdi, %rax
++      and     $-16, %rax
++      add     $16, %rax
++      add     $16, %rcx
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      pxor    %xmm1, %xmm1
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      pxor    %xmm2, %xmm2
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      pxor    %xmm3, %xmm3
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      pcmpeqb (%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      test    %edx, %edx
++      lea     16(%rax), %rax
++      jnz     L(exit)
++
++      and     $-0x40, %rax
++      xor     %r8d, %r8d
++L(aligned_64):
++      pcmpeqb (%rax), %xmm0
++      pcmpeqb 16(%rax), %xmm1
++      pcmpeqb 32(%rax), %xmm2
++      pcmpeqb 48(%rax), %xmm3
++      pmovmskb %xmm0, %edx
++      pmovmskb %xmm1, %esi
++      pmovmskb %xmm2, %edi
++      pmovmskb %xmm3, %r9d
++      or      %edx, %r8d
++      or      %esi, %r8d
++      or      %edi, %r8d
++      or      %r9d, %r8d
++      lea     64(%rax), %rax
++      jz      L(aligned_64)
++
++      test    %edx, %edx
++      jnz     L(aligned_64_exit_16)
++      test    %esi, %esi
++      jnz     L(aligned_64_exit_32)
++      test    %edi, %edi
++      jnz     L(aligned_64_exit_48)
++L(aligned_64_exit_64):
++      mov     %r9d, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_48):
++      lea     -16(%rax), %rax
++      mov     %edi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_32):
++      lea     -32(%rax), %rax
++      mov     %esi, %edx
++      jmp     L(aligned_64_exit)
++L(aligned_64_exit_16):
++      lea     -48(%rax), %rax
++L(aligned_64_exit):
++L(exit):
++      sub     %rcx, %rax
++      test    %dl, %dl
++      jz      L(exit_high)
++      test    $0x01, %dl
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dl
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dl
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dl
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dl
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dl
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dl
++      jnz     L(exit_tail6)
++      add     $7, %eax
++L(exit_tail0):
++      ret
++
++L(exit_high):
++      add     $8, %eax
++      test    $0x01, %dh
++      jnz     L(exit_tail0)
++
++      test    $0x02, %dh
++      jnz     L(exit_tail1)
++
++      test    $0x04, %dh
++      jnz     L(exit_tail2)
++
++      test    $0x08, %dh
++      jnz     L(exit_tail3)
++
++      test    $0x10, %dh
++      jnz     L(exit_tail4)
++
++      test    $0x20, %dh
++      jnz     L(exit_tail5)
++
++      test    $0x40, %dh
++      jnz     L(exit_tail6)
++      add     $7, %eax
++      ret
++      .p2align 4
++L(exit_tail1):
++      add     $1, %eax
++      ret
++
++L(exit_tail2):
++      add     $2, %eax
++      ret
++
++L(exit_tail3):
++      add     $3, %eax
++      ret
++
++L(exit_tail4):
++      add     $4, %eax
++      ret
++
++L(exit_tail5):
++      add     $5, %eax
++      ret
++L(exit_tail6):
++      add     $6, %eax
++      ret
++L(exit_tail7):
++      add     $7, %eax
++      ret
++L(exit_tail8):
++      add     $8, %eax
++      ret
++L(exit_tail9):
++      add     $9, %eax
++      ret
++L(exit_tail10):
++      add     $10, %eax
++      ret
++L(exit_tail11):
++      add     $11, %eax
++      ret
++L(exit_tail12):
++      add     $12, %eax
++      ret
++L(exit_tail13):
++      add     $13, %eax
++      ret
++L(exit_tail14):
++      add     $14, %eax
++      ret
++L(exit_tail15):
++      add     $15, %eax
++      ret
++END (__strlen_no_bsf)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen-sse4.S
+@@ -0,0 +1,85 @@
++/* strlen with SSE4
++   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
++   Contributed by Ulrich Drepper <drepper@redhat.com>.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#if defined SHARED && !defined NOT_IN_libc
++
++#include <sysdep.h>
++
++      .section .text.sse4.2,"ax",@progbits
++ENTRY (__strlen_sse42)
++      pxor    %xmm1, %xmm1
++      movl    %edi, %ecx
++      movq    %rdi, %r8
++      andq    $~15, %rdi
++      xor     %edi, %ecx
++      pcmpeqb (%rdi), %xmm1
++      pmovmskb %xmm1, %edx
++      shrl    %cl, %edx
++      shll    %cl, %edx
++      andl    %edx, %edx
++      jnz     L(less16bytes)
++      pxor    %xmm1, %xmm1
++
++      .p2align 4
++L(more64bytes_loop):
++      pcmpistri $0x08, 16(%rdi), %xmm1
++      jz      L(more32bytes)
++
++      pcmpistri $0x08, 32(%rdi), %xmm1
++      jz      L(more48bytes)
++
++      pcmpistri $0x08, 48(%rdi), %xmm1
++      jz      L(more64bytes)
++
++      add     $64, %rdi
++      pcmpistri $0x08, (%rdi), %xmm1
++      jnz     L(more64bytes_loop)
++      leaq    (%rdi,%rcx), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more32bytes):
++      leaq    16(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more48bytes):
++      leaq    32(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(more64bytes):
++      leaq    48(%rdi,%rcx, 1), %rax
++      subq    %r8, %rax
++      ret
++
++      .p2align 4
++L(less16bytes):
++      subq    %r8, %rdi
++      bsfl    %edx, %eax
++      addq    %rdi, %rax
++      ret
++
++END (__strlen_sse42)
++
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/multiarch/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/multiarch/strlen.S
+@@ -36,74 +36,12 @@ ENTRY(strlen)
+       testl   $bit_SSE4_2, __cpu_features+CPUID_OFFSET+index_SSE4_2(%rip)
+       jz      2f
+       leaq    __strlen_sse42(%rip), %rax
+-2:    ret
+-END(strlen)
+-
+-
+-      .section .text.sse4.2,"ax",@progbits
+-      .align  16
+-      .type   __strlen_sse42, @function
+-__strlen_sse42:
+-      cfi_startproc
+-      CALL_MCOUNT
+-      pxor    %xmm1, %xmm1
+-      movl    %edi, %ecx
+-      movq    %rdi, %r8
+-      andq    $~15, %rdi
+-      xor     %edi, %ecx
+-      pcmpeqb (%rdi), %xmm1
+-      pmovmskb %xmm1, %edx
+-      shrl    %cl, %edx
+-      shll    %cl, %edx
+-      andl    %edx, %edx
+-      jnz     L(less16bytes)
+-      pxor    %xmm1, %xmm1
+-
+-      .p2align 4
+-L(more64bytes_loop):
+-      pcmpistri $0x08, 16(%rdi), %xmm1
+-      jz      L(more32bytes)
+-
+-      pcmpistri $0x08, 32(%rdi), %xmm1
+-      jz      L(more48bytes)
+-
+-      pcmpistri $0x08, 48(%rdi), %xmm1
+-      jz      L(more64bytes)
+-
+-      add     $64, %rdi
+-      pcmpistri $0x08, (%rdi), %xmm1
+-      jnz     L(more64bytes_loop)
+-      leaq    (%rdi,%rcx), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more32bytes):
+-      leaq    16(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more48bytes):
+-      leaq    32(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+-      ret
+-
+-      .p2align 4
+-L(more64bytes):
+-      leaq    48(%rdi,%rcx, 1), %rax
+-      subq    %r8, %rax
+       ret
+-
+-      .p2align 4
+-L(less16bytes):
+-      subq    %r8, %rdi
+-      bsfl    %edx, %eax
+-      addq    %rdi, %rax
+-      ret
+-      cfi_endproc
+-      .size   __strlen_sse42, .-__strlen_sse42
+-
++2:    testl   $bit_Slow_BSF, __cpu_features+FEATURE_OFFSET+index_Slow_BSF(%rip)
++      jz      3f
++      leaq    __strlen_no_bsf(%rip), %rax
++3:    ret
++END(strlen)
+ # undef ENTRY
+ # define ENTRY(name) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/strlen.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/strlen.S
+@@ -23,29 +23,80 @@
+       .text
+ ENTRY(strlen)
+-      pxor    %xmm2, %xmm2
+-      movq    %rdi, %rcx
+-      movq    %rdi, %r8
+-      andq    $~15, %rdi
+-      movdqa  %xmm2, %xmm1
+-      pcmpeqb (%rdi), %xmm2
+-      orl     $0xffffffff, %esi
+-      subq    %rdi, %rcx
+-      shll    %cl, %esi
+-      pmovmskb %xmm2, %edx
+-      andl    %esi, %edx
+-      jnz     1f
+-
+-2:    movdqa  16(%rdi), %xmm0
+-      leaq    16(%rdi), %rdi
++      xor     %rax, %rax
++      mov     %edi, %ecx
++      and     $0x3f, %ecx
++      pxor    %xmm0, %xmm0
++      cmp     $0x30, %ecx
++      ja      L(next)
++      movdqu  (%rdi), %xmm1
+       pcmpeqb %xmm1, %xmm0
+       pmovmskb %xmm0, %edx
+-      testl   %edx, %edx
+-      jz      2b
++      test    %edx, %edx
++      jnz     L(exit_less16)
++      mov     %rdi, %rax
++      and     $-16, %rax
++      jmp     L(align16_start)
++L(next):
++      mov     %rdi, %rax
++      and     $-16, %rax
++      pcmpeqb (%rax), %xmm0
++      mov     $-1, %esi
++      sub     %rax, %rcx
++      shl     %cl, %esi
++      pmovmskb %xmm0, %edx
++      and     %esi, %edx
++      jnz     L(exit)
++L(align16_start):
++      pxor    %xmm0, %xmm0
++      pxor    %xmm1, %xmm1
++      pxor    %xmm2, %xmm2
++      pxor    %xmm3, %xmm3
++      .p2align 4
++L(align16_loop):
++      pcmpeqb 16(%rax), %xmm0
++      pmovmskb %xmm0, %edx
++      test    %edx, %edx
++      jnz     L(exit16)
+-1:    subq    %r8, %rdi
+-      bsfl    %edx, %eax
+-      addq    %rdi, %rax
++      pcmpeqb 32(%rax), %xmm1
++      pmovmskb %xmm1, %edx
++      test    %edx, %edx
++      jnz     L(exit32)
++
++      pcmpeqb 48(%rax), %xmm2
++      pmovmskb %xmm2, %edx
++      test    %edx, %edx
++      jnz     L(exit48)
++
++      pcmpeqb 64(%rax), %xmm3
++      pmovmskb %xmm3, %edx
++      lea     64(%rax), %rax
++      test    %edx, %edx
++      jz      L(align16_loop)
++L(exit):
++      sub     %rdi, %rax
++L(exit_less16):
++      bsf     %rdx, %rdx
++      add     %rdx, %rax
++      ret
++      .p2align 4
++L(exit16):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     16(%rdx,%rax), %rax
++      ret
++      .p2align 4
++L(exit32):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     32(%rdx,%rax), %rax
++      ret
++      .p2align 4
++L(exit48):
++      sub     %rdi, %rax
++      bsf     %rdx, %rdx
++      lea     48(%rdx,%rax), %rax
+       ret
+ END(strlen)
+ libc_hidden_builtin_def (strlen)
diff --git a/src/patches/glibc/glibc-rh696472.patch b/src/patches/glibc/glibc-rh696472.patch
new file mode 100644 (file)
index 0000000..9d30d38
--- /dev/null
@@ -0,0 +1,36 @@
+commit 3d29045b5e8329d97693eda8d98f1d1e60b99c8f
+Author: H.J. Lu <hongjiu.lu@intel.com>
+Date:   Fri Jun 3 07:01:25 2011 -0400
+
+    Assume Intel Core i3/i5/i7 processor if AVX is available
+
+2011-06-02  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
+       Assume Intel Core i3/i5/i7 processor if AVX is available.
+
+diff --git a/sysdeps/x86_64/multiarch/init-arch.c b/sysdeps/x86_64/multiarch/init-arch.c
+index 34ec2df..809d105 100644
+--- a/sysdeps/x86_64/multiarch/init-arch.c
++++ b/sysdeps/x86_64/multiarch/init-arch.c
+@@ -74,6 +74,7 @@ __init_cpu_features (void)
+       }
+       else if (family == 0x06)
+       {
++        ecx = __cpu_features.cpuid[COMMON_CPUID_INDEX_1].ecx;
+         model += extended_model;
+         switch (model)
+           {
+@@ -83,6 +84,12 @@ __init_cpu_features (void)
+             __cpu_features.feature[index_Slow_BSF] |= bit_Slow_BSF;
+             break;
++          default:
++            /* Unknown family 0x06 processors.  Assuming this is one
++               of Core i3/i5/i7 processors if AVX is available.  */
++            if ((ecx & bit_AVX) == 0)
++              break;
++
+           case 0x1a:
+           case 0x1e:
+           case 0x1f:
diff --git a/src/patches/glibc/glibc-rh697421.patch b/src/patches/glibc/glibc-rh697421.patch
new file mode 100644 (file)
index 0000000..961c805
--- /dev/null
@@ -0,0 +1,10 @@
+diff -rup a/iconvdata/gconv-modules b/iconvdata/gconv-modules
+--- a/iconvdata/gconv-modules  2010-05-04 05:27:23.000000000 -0600
++++ b/iconvdata/gconv-modules  2012-01-26 10:58:24.181895489 -0700
+@@ -1954,3 +1954,6 @@ alias    HPGREEK8//              HP-GREEK8//
+ alias OSF10010004//           HP-GREEK8//
+ module        HP-GREEK8//             INTERNAL                HP-GREEK8       1
+ module        INTERNAL                HP-GREEK8//             HP-GREEK8       1
++
++alias ISO-10646-UCS-2//       UNICODE//
++alias ISO-10646-UCS-2//       ISO-10646/UTF8/
diff --git a/src/patches/glibc/glibc-rh699724.patch b/src/patches/glibc/glibc-rh699724.patch
new file mode 100644 (file)
index 0000000..d25ce84
--- /dev/null
@@ -0,0 +1,188 @@
+2011-02-23  Andreas Schwab  <schwab@redhat.com>
+
+       [BZ #12509]
+       * elf/dl-load.c (_dl_map_object_from_fd): Free realname before
+       returning unsuccessfully.
+       * elf/Makefile ($(objpfx)noload-mem): New rule.
+       (noload-ENV): Define.
+       (tests): Add $(objpfx)noload-mem.
+       * elf/noload.c: Include <memcheck.h>.
+       (main): Call mtrace.  Close all opened handles.
+
+2010-09-27  Andreas Schwab  <schwab@redhat.com>
+
+       * include/link.h (struct link_map): Add l_free_initfini.
+       * elf/dl-deps.c (_dl_map_object_deps): Set it when assigning
+       l_initfini.
+       * elf/rtld.c (dl_main): Clear it on all objects loaded on startup.
+       * elf/dl-libc.c (free_mem): Free l_initfini if l_free_initfini is
+       set.
+
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -211,7 +211,7 @@ endif
+ ifeq (yesyes,$(have-fpie)$(build-shared))
+ tests: $(objpfx)tst-pie1.out
+ endif
+-tests: $(objpfx)tst-leaks1-mem
++tests: $(objpfx)tst-leaks1-mem $(objpfx)noload-mem
+ tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+ tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
+ modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
+@@ -664,6 +664,10 @@ $(objpfx)noload: $(objpfx)testobj1.so $(
+ LDFLAGS-noload = -rdynamic
+ $(objpfx)noload.out: $(objpfx)testobj5.so
++$(objpfx)noload-mem: $(objpfx)noload.out
++      $(common-objpfx)malloc/mtrace $(objpfx)noload.mtrace > $@
++noload-ENV = MALLOC_TRACE=$(objpfx)noload.mtrace
++
+ LDFLAGS-nodelete = -rdynamic
+ LDFLAGS-nodelmod1.so = -Wl,--enable-new-dtags,-z,nodelete
+ LDFLAGS-nodelmod4.so = -Wl,--enable-new-dtags,-z,nodelete
+Index: glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-deps.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-deps.c
+@@ -478,6 +478,7 @@ _dl_map_object_deps (struct link_map *ma
+                 nneeded * sizeof needed[0]);
+         atomic_write_barrier ();
+         l->l_initfini = l_initfini;
++        l->l_free_initfini = 1;
+       }
+       /* If we have no auxiliary objects just go on to the next map.  */
+@@ -662,6 +663,7 @@ Filters not supported with LD_TRACE_PREL
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+   map->l_initfini = l_initfini;
++  map->l_free_initfini = 1;
+   if (l_reldeps != NULL)
+     {
+       atomic_write_barrier ();
+Index: glibc-2.12-2-gc4ccff1/elf/dl-libc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-libc.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-libc.c
+@@ -250,5 +250,9 @@ libc_freeres_fn (free_mem)
+           if (! old->dont_free)
+           free (old);
+         }
++
++      /* Free the initfini dependency list.  */
++      if (l->l_free_initfini)
++        free (l->l_initfini);
+       }
+ }
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -907,6 +907,7 @@ _dl_map_object_from_fd (const char *name
+     {
+       /* We are not supposed to load the object unless it is already
+        loaded.  So return now.  */
++      free (realname);
+       __close (fd);
+       return NULL;
+     }
+@@ -925,6 +926,7 @@ _dl_map_object_from_fd (const char *name
+       _dl_zerofd = _dl_sysdep_open_zero_fill ();
+       if (_dl_zerofd == -1)
+       {
++        free (realname);
+         __close (fd);
+         _dl_signal_error (errno, NULL, NULL,
+                           N_("cannot open zero fill device"));
+Index: glibc-2.12-2-gc4ccff1/elf/noload.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/noload.c
++++ glibc-2.12-2-gc4ccff1/elf/noload.c
+@@ -1,20 +1,28 @@
+ #include <dlfcn.h>
+ #include <stdio.h>
++#include <mcheck.h>
+ int
+ main (void)
+ {
+   int result = 0;
++  void *p;
++
++  mtrace ();
+   /* First try to load an object which is a dependency.  This should
+      succeed.  */
+-  if (dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD) == NULL)
++  p = dlopen ("testobj1.so", RTLD_LAZY | RTLD_NOLOAD);
++  if (p == NULL)
+     {
+       printf ("cannot open \"testobj1.so\": %s\n", dlerror ());
+       result = 1;
+     }
+   else
+-    puts ("loading \"testobj1.so\" succeeded, OK");
++    {
++      puts ("loading \"testobj1.so\" succeeded, OK");
++      dlclose (p);
++    }
+   /* Now try loading an object which is not already loaded.  */
+   if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) != NULL)
+@@ -25,8 +33,6 @@ main (void)
+   else
+     {
+       /* Load the object and run the same test again.  */
+-      void *p;
+-
+       puts ("\"testobj5.so\" wasn't loaded and RTLD_NOLOAD prevented it, OK");
+       p = dlopen ("testobj5.so", RTLD_LAZY);
+@@ -41,13 +47,17 @@ main (void)
+       {
+         puts ("loading \"testobj5.so\" succeeded, OK");
+-        if (dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD) == NULL)
++        void *q = dlopen ("testobj5.so", RTLD_LAZY | RTLD_NOLOAD);
++        if (q == NULL)
+           {
+             printf ("cannot open \"testobj5.so\": %s\n", dlerror ());
+             result = 1;
+           }
+         else
+-          puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK");
++          {
++            puts ("loading \"testobj5.so\" with RTLD_NOLOAD succeeded, OK");
++            dlclose (q);
++          }
+         if (dlclose (p) != 0)
+           {
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -2249,6 +2249,7 @@ ERROR: ld.so: object '%s' cannot be load
+             lnp->dont_free = 1;
+             lnp = lnp->next;
+           }
++        l->l_free_initfini = 0;
+         if (l != &GL(dl_rtld_map))
+           _dl_relocate_object (l, l->l_scope, GLRO(dl_lazy) ? RTLD_LAZY : 0,
+Index: glibc-2.12-2-gc4ccff1/include/link.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/link.h
++++ glibc-2.12-2-gc4ccff1/include/link.h
+@@ -192,6 +192,9 @@ struct link_map
+                                                during LD_TRACE_PRELINKING=1
+                                                contains any DT_SYMBOLIC
+                                                libraries.  */
++    unsigned int l_free_initfini:1; /* Nonzero if l_initfini can be
++                                     freed, ie. not allocated with
++                                     the dummy malloc in ld.so.  */
+     /* Collected information about own RPATH directories.  */
+     struct r_search_path_struct l_rpath_dirs;
diff --git a/src/patches/glibc/glibc-rh700507.patch b/src/patches/glibc/glibc-rh700507.patch
new file mode 100644 (file)
index 0000000..0660431
--- /dev/null
@@ -0,0 +1,26 @@
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.c
++++ glibc-2.12-2-gc4ccff1/nscd/nscd.c
+@@ -260,10 +260,6 @@ main (int argc, char **argv)
+     /* In foreground mode we are not paranoid.  */
+     paranoia = 0;
+-  /* Start the SELinux AVC.  */
+-  if (selinux_enabled)
+-    nscd_avc_init ();
+-
+   signal (SIGINT, termination_handler);
+   signal (SIGQUIT, termination_handler);
+   signal (SIGTERM, termination_handler);
+@@ -278,6 +274,10 @@ main (int argc, char **argv)
+   /* Init databases.  */
+   nscd_init ();
++  /* Start the SELinux AVC.  */
++  if (selinux_enabled)
++    nscd_avc_init ();
++
+   /* Handle incoming requests */
+   start_threads ();
diff --git a/src/patches/glibc/glibc-rh703480.patch b/src/patches/glibc/glibc-rh703480.patch
new file mode 100644 (file)
index 0000000..742a79a
--- /dev/null
@@ -0,0 +1,68 @@
+2011-01-15  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #6812]
+       * nscd/hstcache.c (tryagain): Define.
+       (cache_addhst): Return tryagain not notfound for temporary errors.
+       (addhstbyX): Also set h_errno to TRY_AGAIN when memory allocation
+       failed.
+
+Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+@@ -77,6 +77,20 @@ static const hst_response_header notfoun
+ };
++/* This is the standard reply in case there are temporary problems.  */
++static const hst_response_header tryagain =
++{
++  .version = NSCD_VERSION,
++  .found = 0,
++  .h_name_len = 0,
++  .h_aliases_cnt = 0,
++  .h_addrtype = -1,
++  .h_length = -1,
++  .h_addr_list_cnt = 0,
++  .error = TRY_AGAIN
++};
++
++
+ static void
+ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+             const void *key, struct hostent *hst, uid_t owner,
+@@ -111,11 +125,15 @@ cache_addhst (struct database_dyn *db, i
+       else
+       {
+         /* We have no data.  This means we send the standard reply for this
+-           case.  */
++           case.  Possibly this is only temporary.  */
+         ssize_t total = sizeof (notfound);
++        assert (sizeof (notfound) == sizeof (tryagain));
++
++        const hst_response_header *resp = (errval == EAGAIN
++                                           ? &tryagain : &notfound);
+         if (fd != -1 &&
+-            TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++            TEMP_FAILURE_RETRY (send (fd, resp, total,
+                                       MSG_NOSIGNAL)) != total)
+           all_written = false;
+@@ -135,7 +153,7 @@ cache_addhst (struct database_dyn *db, i
+                                          ? db->negtimeout : ttl);
+             /* This is the reply.  */
+-            memcpy (&dataset->resp, &notfound, total);
++            memcpy (&dataset->resp, resp, total);
+             /* Copy the key data.  */
+             memcpy (dataset->strdata, key, req->key_len);
+@@ -490,6 +508,7 @@ addhstbyX (struct database_dyn *db, int 
+             /* We set the error to indicate this is (possibly) a
+                temporary error and that it does not mean the entry
+                is not available at all.  */
++            h_errno = TRY_AGAIN;
+             errval = EAGAIN;
+             break;
+           }
diff --git a/src/patches/glibc/glibc-rh703481.patch b/src/patches/glibc/glibc-rh703481.patch
new file mode 100644 (file)
index 0000000..fdde4b5
--- /dev/null
@@ -0,0 +1,875 @@
+2011-02-05  Ulrich Drepper  <drepper@gmail.com>
+
+       * nscd/nscd-client.h: Define MAX_TIMEOUT_VALUE.
+       (struct datahead): Reuse 32 bits of the alignment for a TTL field.
+       * nscd/aicache.c (addhstaiX): Return timeout of added value.
+       (readdhstai): Return value of addhstaiX call.
+       * nscd/grpcache.c (cache_addgr): Return timeout of added value.
+       (addgrbyX): Return value returned by cache_addgr.
+       (readdgrbyname): Return value returned by addgrbyX.
+       (readdgrbygid): Likewise.
+       * nscd/pwdcache.c (cache_addpw): Return timeout of added value.
+       (addpwbyX): Return value returned by cache_addpw.
+       (readdpwbyname): Return value returned by addhstbyX.
+       (readdpwbyuid): Likewise.
+       * nscd/servicescache.c (cache_addserv): Return timeout of added value.
+       (addservbyX): Return value returned by cache_addserv.
+       (readdservbyname): Return value returned by addservbyX:
+       (readdservbyport): Likewise.
+       * nscd/hstcache.c (cache_addhst): Return timeout of added value.
+       (addhstbyX): Return value returned by cache_addhst.
+       (readdhstbyname): Return value returned by addhstbyX.
+       (readdhstbyaddr): Likewise.
+       (readdhstbynamev6): Likewise.
+       (readdhstbyaddrv6): Likewise.
+       * nscd/initgrcache.c (addinitgroupsX): Return timeout of added value.
+       (readdinitgroups): Return value returned by addinitgroupsX.
+       * nscd/cache.c (readdfcts): Change return value of functions to time_t.
+       (prune_cache): Keep track of timeout value of re-added entries.
+       * nscd/connections.c (nscd_run_prune): Use MAX_TIMEOUT_VALUE.
+       * nscd/nscd.h: Adjust prototypes of readd* functions.
+
+Index: glibc-2.12-2-gc4ccff1/nscd/aicache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/aicache.c
++++ glibc-2.12-2-gc4ccff1/nscd/aicache.c
+@@ -58,7 +58,7 @@ static const ai_response_header notfound
+ };
+-static void
++static time_t
+ addhstaiX (struct database_dyn *db, int fd, request_header *req,
+          void *key, uid_t uid, struct hashentry *const he,
+          struct datahead *dh)
+@@ -119,6 +119,7 @@ addhstaiX (struct database_dyn *db, int 
+   ssize_t total = 0;
+   char *key_copy = NULL;
+   bool alloca_used = false;
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   while (!no_more)
+     {
+@@ -388,8 +389,8 @@ addhstaiX (struct database_dyn *db, int 
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = time (NULL) + (ttl == INT32_MAX
+-                                           ? db->postimeout : ttl);
++      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
++      timeout = dataset->head.timeout = time (NULL) + dataset->head.ttl;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -421,6 +422,7 @@ addhstaiX (struct database_dyn *db, int 
+                timeout value.  Note that the new record has been
+                allocated on the stack and need not be freed.  */
+             dh->timeout = dataset->head.timeout;
++            dh->ttl = dataset->head.ttl;
+             ++dh->nreloads;
+           }
+         else
+@@ -496,6 +498,9 @@ next_nip:
+       if (reload_count != UINT_MAX && dh->nreloads == reload_count)
+       /* Do not reset the value if we never not reload the record.  */
+       dh->nreloads = reload_count - 1;
++
++      /* Reload with the same time-to-live value.  */
++      timeout = dh->timeout = time (NULL) + dh->ttl;
+     }
+   else
+     {
+@@ -517,7 +522,8 @@ next_nip:
+         dataset->head.usable = true;
+         /* Compute the timeout time.  */
+-        dataset->head.timeout = time (NULL) + db->negtimeout;
++        timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
++        dataset->head.ttl = db->negtimeout;
+         /* This is the reply.  */
+         memcpy (&dataset->resp, &notfound, total);
+@@ -551,6 +557,8 @@ next_nip:
+       if (dh != NULL)
+       dh->usable = false;
+     }
++
++  return timeout;
+ }
+@@ -562,7 +570,7 @@ addhstai (struct database_dyn *db, int f
+ }
+-void
++time_t
+ readdhstai (struct database_dyn *db, struct hashentry *he, struct datahead *dh)
+ {
+   request_header req =
+@@ -571,5 +579,5 @@ readdhstai (struct database_dyn *db, str
+       .key_len = he->len
+     };
+-  addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstaiX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/cache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/cache.c
++++ glibc-2.12-2-gc4ccff1/nscd/cache.c
+@@ -45,9 +45,9 @@ extern void *xcalloc (size_t n, size_t s
+ unsigned int reload_count = DEFAULT_RELOAD_LIMIT;
+-static void (*const readdfcts[LASTREQ]) (struct database_dyn *,
+-                                       struct hashentry *,
+-                                       struct datahead *) =
++static time_t (*const readdfcts[LASTREQ]) (struct database_dyn *,
++                                         struct hashentry *,
++                                         struct datahead *) =
+ {
+   [GETPWBYNAME] = readdpwbyname,
+   [GETPWBYUID] = readdpwbyuid,
+@@ -389,7 +389,8 @@ prune_cache (struct database_dyn *table,
+                     assert (runp->type < LASTREQ
+                             && readdfcts[runp->type] != NULL);
+-                    readdfcts[runp->type] (table, runp, dh);
++                    time_t timeout = readdfcts[runp->type] (table, runp, dh);
++                    next_timeout = MIN (next_timeout, timeout);
+                     /* If the entry has been replaced, we might need
+                        cleanup.  */
+Index: glibc-2.12-2-gc4ccff1/nscd/connections.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/connections.c
++++ glibc-2.12-2-gc4ccff1/nscd/connections.c
+@@ -1533,10 +1533,7 @@ nscd_run_prune (void *p)
+            pruning we want to know about it.  Therefore set the
+            timeout to the maximum.  It will be descreased when adding
+            new entries to the cache, if necessary.  */
+-        if (sizeof (time_t) == sizeof (long int))
+-          dbs[my_number].wakeup_time = LONG_MAX;
+-        else
+-          dbs[my_number].wakeup_time = INT_MAX;
++        dbs[my_number].wakeup_time = MAX_TIMEOUT_VALUE;
+         /* Unconditionally reset the flag.  */
+         time_t prune_now = dbs[my_number].clear_cache ? LONG_MAX : now;
+Index: glibc-2.12-2-gc4ccff1/nscd/grpcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/grpcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/grpcache.c
+@@ -71,7 +71,7 @@ static const gr_response_header notfound
+ };
+-static void
++static time_t
+ cache_addgr (struct database_dyn *db, int fd, request_header *req,
+            const void *key, struct group *grp, uid_t owner,
+            struct hashentry *const he, struct datahead *dh, int errval)
+@@ -91,6 +91,7 @@ cache_addgr (struct database_dyn *db, in
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (grp == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -102,6 +103,9 @@ cache_addgr (struct database_dyn *db, in
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -125,7 +129,7 @@ cache_addgr (struct database_dyn *db, in
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -217,7 +221,7 @@ cache_addgr (struct database_dyn *db, in
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -379,6 +383,8 @@ cache_addgr (struct database_dyn *db, in
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -400,7 +406,7 @@ lookup (int type, union keytype key, str
+ }
+-static void
++static time_t
+ addgrbyX (struct database_dyn *db, int fd, request_header *req,
+         union keytype key, const char *keystr, uid_t uid,
+         struct hashentry *he, struct datahead *dh)
+@@ -456,10 +462,12 @@ addgrbyX (struct database_dyn *db, int f
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval);
++  time_t timeout = cache_addgr (db, fd, req, keystr, grp, uid, he, dh, errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -473,7 +481,7 @@ addgrbyname (struct database_dyn *db, in
+ }
+-void
++time_t
+ readdgrbyname (struct database_dyn *db, struct hashentry *he,
+              struct datahead *dh)
+ {
+@@ -484,7 +492,7 @@ readdgrbyname (struct database_dyn *db, 
+     };
+   union keytype u = { .v = db->data + he->key };
+-  addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+@@ -510,7 +518,7 @@ addgrbygid (struct database_dyn *db, int
+ }
+-void
++time_t
+ readdgrbygid (struct database_dyn *db, struct hashentry *he,
+             struct datahead *dh)
+ {
+@@ -527,5 +535,5 @@ readdgrbygid (struct database_dyn *db, s
+     };
+   union keytype u = { .g = gid };
+-  addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addgrbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/hstcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/hstcache.c
+@@ -91,7 +91,7 @@ static const hst_response_header tryagai
+ };
+-static void
++static time_t
+ cache_addhst (struct database_dyn *db, int fd, request_header *req,
+             const void *key, struct hostent *hst, uid_t owner,
+             struct hashentry *const he, struct datahead *dh, int errval,
+@@ -111,6 +111,7 @@ cache_addhst (struct database_dyn *db, i
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (hst == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -121,6 +122,9 @@ cache_addhst (struct database_dyn *db, i
+         if (reload_count != UINT_MAX)
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + dh->ttl;
+       }
+       else
+       {
+@@ -149,8 +153,8 @@ cache_addhst (struct database_dyn *db, i
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + (ttl == INT32_MAX
+-                                         ? db->negtimeout : ttl);
++            dataset->head.ttl = ttl == INT32_MAX ? db->negtimeout : ttl;
++            timeout = dataset->head.timeout = t + dataset->head.ttl;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, resp, total);
+@@ -214,7 +218,7 @@ cache_addhst (struct database_dyn *db, i
+       if (h_addr_list_cnt == 0)
+       /* Invalid entry.  */
+-      return;
++      return MAX_TIMEOUT_VALUE;
+       total += (sizeof (struct dataset)
+               + h_name_len
+@@ -255,7 +259,8 @@ cache_addhst (struct database_dyn *db, i
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + (ttl == INT32_MAX ? db->postimeout : ttl);
++      dataset->head.ttl = ttl == INT32_MAX ? db->postimeout : ttl;
++      timeout = dataset->head.timeout = t + dataset->head.ttl;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -312,6 +317,7 @@ cache_addhst (struct database_dyn *db, i
+                timeout value.  Note that the new record has been
+                allocated on the stack and need not be freed.  */
+             assert (h_addr_list_cnt == 1);
++            dh->ttl = dataset->head.ttl;
+             dh->timeout = dataset->head.timeout;
+             ++dh->nreloads;
+           }
+@@ -433,6 +439,8 @@ cache_addhst (struct database_dyn *db, i
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -454,7 +462,7 @@ lookup (int type, void *key, struct host
+ }
+-static void
++static time_t
+ addhstbyX (struct database_dyn *db, int fd, request_header *req,
+          void *key, uid_t uid, struct hashentry *he, struct datahead *dh)
+ {
+@@ -520,11 +528,13 @@ addhstbyX (struct database_dyn *db, int 
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addhst (db, fd, req, key, hst, uid, he, dh,
+-              h_errno == TRY_AGAIN ? errval : 0, ttl);
++  time_t timeout = cache_addhst (db, fd, req, key, hst, uid, he, dh,
++                               h_errno == TRY_AGAIN ? errval : 0, ttl);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -536,7 +546,7 @@ addhstbyname (struct database_dyn *db, i
+ }
+-void
++time_t
+ readdhstbyname (struct database_dyn *db, struct hashentry *he,
+               struct datahead *dh)
+ {
+@@ -546,7 +556,7 @@ readdhstbyname (struct database_dyn *db,
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -558,7 +568,7 @@ addhstbyaddr (struct database_dyn *db, i
+ }
+-void
++time_t
+ readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+               struct datahead *dh)
+ {
+@@ -568,7 +578,7 @@ readdhstbyaddr (struct database_dyn *db,
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -580,7 +590,7 @@ addhstbynamev6 (struct database_dyn *db,
+ }
+-void
++time_t
+ readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
+                 struct datahead *dh)
+ {
+@@ -590,7 +600,7 @@ readdhstbynamev6 (struct database_dyn *d
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -602,7 +612,7 @@ addhstbyaddrv6 (struct database_dyn *db,
+ }
+-void
++time_t
+ readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
+                 struct datahead *dh)
+ {
+@@ -612,5 +622,5 @@ readdhstbyaddrv6 (struct database_dyn *d
+       .key_len = he->len
+     };
+-  addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addhstbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/initgrcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/initgrcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/initgrcache.c
+@@ -52,7 +52,7 @@ static const initgr_response_header notf
+ #include "../grp/compat-initgroups.c"
+-static void
++static time_t
+ addinitgroupsX (struct database_dyn *db, int fd, request_header *req,
+               void *key, uid_t uid, struct hashentry *const he,
+               struct datahead *dh)
+@@ -174,7 +174,9 @@ addinitgroupsX (struct database_dyn *db,
+   ssize_t total;
+   ssize_t written;
++  time_t timeout;
+  out:
++  timeout = MAX_TIMEOUT_VALUE;
+   if (!any_success)
+     {
+       /* Nothing found.  Create a negative result record.  */
+@@ -188,6 +190,9 @@ addinitgroupsX (struct database_dyn *db,
+         if (reload_count != UINT_MAX && dh->nreloads == reload_count)
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = time (NULL) + db->postimeout;
+       }
+       else
+       {
+@@ -209,7 +214,7 @@ addinitgroupsX (struct database_dyn *db,
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = time (NULL) + db->negtimeout;
++            timeout = dataset->head.timeout = time (NULL) + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -273,7 +278,7 @@ addinitgroupsX (struct database_dyn *db,
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = time (NULL) + db->postimeout;
++      timeout = dataset->head.timeout = time (NULL) + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -401,6 +406,8 @@ addinitgroupsX (struct database_dyn *db,
+       dbg_log (_("short write in %s: %s"), __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -412,7 +419,7 @@ addinitgroups (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdinitgroups (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -422,5 +429,5 @@ readdinitgroups (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addinitgroupsX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd-client.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd-client.h
++++ glibc-2.12-2-gc4ccff1/nscd/nscd-client.h
+@@ -179,6 +179,10 @@ typedef uint32_t ref_t;
+ /* Timestamp type.  */
+ typedef uint64_t nscd_time_t;
++/* Maximum timestamp.  */
++#define MAX_TIMEOUT_VALUE \
++  (sizeof (time_t) == sizeof (long int) ? LONG_MAX : INT_MAX)
++
+ /* Alignment requirement of the beginning of the data region.  */
+ #define ALIGN 16
+@@ -192,7 +196,8 @@ struct datahead
+   uint8_t notfound;           /* Nonzero if data has not been found.  */
+   uint8_t nreloads;           /* Reloads without use.  */
+   uint8_t usable;             /* False if the entry must be ignored.  */
+-  uint64_t :40;                       /* Alignment.  */
++  uint8_t unused;             /* Unused.  */
++  uint32_t ttl;                       /* TTL value used.  */
+   /* We need to have the following element aligned for the response
+      header data types and their use in the 'struct dataset' types
+Index: glibc-2.12-2-gc4ccff1/nscd/nscd.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/nscd.h
++++ glibc-2.12-2-gc4ccff1/nscd/nscd.h
+@@ -217,20 +217,20 @@ extern void addpwbyname (struct database
+                        void *key, uid_t uid);
+ extern void addpwbyuid (struct database_dyn *db, int fd, request_header *req,
+                       void *key, uid_t uid);
+-extern void readdpwbyname (struct database_dyn *db, struct hashentry *he,
+-                         struct datahead *dh);
+-extern void readdpwbyuid (struct database_dyn *db, struct hashentry *he,
+-                        struct datahead *dh);
++extern time_t readdpwbyname (struct database_dyn *db, struct hashentry *he,
++                           struct datahead *dh);
++extern time_t readdpwbyuid (struct database_dyn *db, struct hashentry *he,
++                          struct datahead *dh);
+ /* grpcache.c */
+ extern void addgrbyname (struct database_dyn *db, int fd, request_header *req,
+                        void *key, uid_t uid);
+ extern void addgrbygid (struct database_dyn *db, int fd, request_header *req,
+                       void *key, uid_t uid);
+-extern void readdgrbyname (struct database_dyn *db, struct hashentry *he,
+-                         struct datahead *dh);
+-extern void readdgrbygid (struct database_dyn *db, struct hashentry *he,
+-                        struct datahead *dh);
++extern time_t readdgrbyname (struct database_dyn *db, struct hashentry *he,
++                           struct datahead *dh);
++extern time_t readdgrbygid (struct database_dyn *db, struct hashentry *he,
++                          struct datahead *dh);
+ /* hstcache.c */
+ extern void addhstbyname (struct database_dyn *db, int fd, request_header *req,
+@@ -241,37 +241,37 @@ extern void addhstbynamev6 (struct datab
+                           request_header *req, void *key, uid_t uid);
+ extern void addhstbyaddrv6 (struct database_dyn *db, int fd,
+                           request_header *req, void *key, uid_t uid);
+-extern void readdhstbyname (struct database_dyn *db, struct hashentry *he,
+-                          struct datahead *dh);
+-extern void readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+-                          struct datahead *dh);
+-extern void readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
++extern time_t readdhstbyname (struct database_dyn *db, struct hashentry *he,
+                             struct datahead *dh);
+-extern void readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
++extern time_t readdhstbyaddr (struct database_dyn *db, struct hashentry *he,
+                             struct datahead *dh);
++extern time_t readdhstbynamev6 (struct database_dyn *db, struct hashentry *he,
++                              struct datahead *dh);
++extern time_t readdhstbyaddrv6 (struct database_dyn *db, struct hashentry *he,
++                              struct datahead *dh);
+ /* aicache.c */
+ extern void addhstai (struct database_dyn *db, int fd, request_header *req,
+                     void *key, uid_t uid);
+-extern void readdhstai (struct database_dyn *db, struct hashentry *he,
+-                      struct datahead *dh);
++extern time_t readdhstai (struct database_dyn *db, struct hashentry *he,
++                        struct datahead *dh);
+ /* initgrcache.c */
+ extern void addinitgroups (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdinitgroups (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdinitgroups (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ /* servicecache.c */
+ extern void addservbyname (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdservbyname (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdservbyname (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ extern void addservbyport (struct database_dyn *db, int fd,
+                          request_header *req, void *key, uid_t uid);
+-extern void readdservbyport (struct database_dyn *db, struct hashentry *he,
+-                           struct datahead *dh);
++extern time_t readdservbyport (struct database_dyn *db, struct hashentry *he,
++                             struct datahead *dh);
+ /* mem.c */
+ extern void *mempool_alloc (struct database_dyn *db, size_t len,
+Index: glibc-2.12-2-gc4ccff1/nscd/pwdcache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/pwdcache.c
++++ glibc-2.12-2-gc4ccff1/nscd/pwdcache.c
+@@ -77,7 +77,7 @@ static const pw_response_header notfound
+ };
+-static void
++static time_t
+ cache_addpw (struct database_dyn *db, int fd, request_header *req,
+            const void *key, struct passwd *pwd, uid_t owner,
+            struct hashentry *const he, struct datahead *dh, int errval)
+@@ -97,6 +97,7 @@ cache_addpw (struct database_dyn *db, in
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (pwd == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -108,6 +109,9 @@ cache_addpw (struct database_dyn *db, in
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -132,7 +136,7 @@ cache_addpw (struct database_dyn *db, in
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -212,7 +216,7 @@ cache_addpw (struct database_dyn *db, in
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -293,8 +297,8 @@ cache_addpw (struct database_dyn *db, in
+             assert ((char *) dataset - (char *) db->head
+                     + total
+                     <= (sizeof (struct database_pers_head)
+-                          + db->head->module * sizeof (ref_t)
+-                          + db->head->data_size));
++                        + db->head->module * sizeof (ref_t)
++                        + db->head->data_size));
+             written = sendfileall (fd, db->wr_fd,
+                                    (char *) &dataset->resp
+                                    - (char *) db->head, dataset->head.recsize );
+@@ -374,6 +378,8 @@ cache_addpw (struct database_dyn *db, in
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -395,7 +401,7 @@ lookup (int type, union keytype key, str
+ }
+-static void
++static time_t
+ addpwbyX (struct database_dyn *db, int fd, request_header *req,
+         union keytype key, const char *keystr, uid_t c_uid,
+         struct hashentry *he, struct datahead *dh)
+@@ -452,10 +458,13 @@ addpwbyX (struct database_dyn *db, int f
+     }
+   /* Add the entry to the cache.  */
+-  cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh, errval);
++  time_t timeout = cache_addpw (db, fd, req, keystr, pwd, c_uid, he, dh,
++                              errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -469,7 +478,7 @@ addpwbyname (struct database_dyn *db, in
+ }
+-void
++time_t
+ readdpwbyname (struct database_dyn *db, struct hashentry *he,
+              struct datahead *dh)
+ {
+@@ -480,7 +489,7 @@ readdpwbyname (struct database_dyn *db, 
+     };
+   union keytype u = { .v = db->data + he->key };
+-  addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+@@ -506,7 +515,7 @@ addpwbyuid (struct database_dyn *db, int
+ }
+-void
++time_t
+ readdpwbyuid (struct database_dyn *db, struct hashentry *he,
+             struct datahead *dh)
+ {
+@@ -523,5 +532,5 @@ readdpwbyuid (struct database_dyn *db, s
+     };
+   union keytype u = { .u = uid };
+-  addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
++  return addpwbyX (db, -1, &req, u, db->data + he->key, he->owner, he, dh);
+ }
+Index: glibc-2.12-2-gc4ccff1/nscd/servicescache.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nscd/servicescache.c
++++ glibc-2.12-2-gc4ccff1/nscd/servicescache.c
+@@ -61,7 +61,7 @@ static const serv_response_header notfou
+ };
+-static void
++static time_t
+ cache_addserv (struct database_dyn *db, int fd, request_header *req,
+              const void *key, struct servent *serv, uid_t owner,
+              struct hashentry *const he, struct datahead *dh, int errval)
+@@ -81,6 +81,7 @@ cache_addserv (struct database_dyn *db, 
+   assert (offsetof (struct dataset, resp) == offsetof (struct datahead, data));
++  time_t timeout = MAX_TIMEOUT_VALUE;
+   if (serv == NULL)
+     {
+       if (he != NULL && errval == EAGAIN)
+@@ -92,6 +93,9 @@ cache_addserv (struct database_dyn *db, 
+           /* Do not reset the value if we never not reload the record.  */
+           dh->nreloads = reload_count - 1;
++        /* Reload with the same time-to-live value.  */
++        timeout = dh->timeout = t + db->postimeout;
++
+         written = total = 0;
+       }
+       else
+@@ -115,7 +119,7 @@ cache_addserv (struct database_dyn *db, 
+             dataset->head.usable = true;
+             /* Compute the timeout time.  */
+-            dataset->head.timeout = t + db->negtimeout;
++            timeout = dataset->head.timeout = t + db->negtimeout;
+             /* This is the reply.  */
+             memcpy (&dataset->resp, &notfound, total);
+@@ -203,7 +207,7 @@ cache_addserv (struct database_dyn *db, 
+       dataset->head.usable = true;
+       /* Compute the timeout time.  */
+-      dataset->head.timeout = t + db->postimeout;
++      timeout = dataset->head.timeout = t + db->postimeout;
+       dataset->resp.version = NSCD_VERSION;
+       dataset->resp.found = 1;
+@@ -328,6 +332,8 @@ cache_addserv (struct database_dyn *db, 
+       dbg_log (_("short write in %s: %s"),  __FUNCTION__,
+              strerror_r (errno, buf, sizeof (buf)));
+     }
++
++  return timeout;
+ }
+@@ -354,7 +360,7 @@ lookup (int type, char *key, struct serv
+ }
+-static void
++static time_t
+ addservbyX (struct database_dyn *db, int fd, request_header *req,
+           char *key, uid_t uid, struct hashentry *he, struct datahead *dh)
+ {
+@@ -409,10 +415,12 @@ addservbyX (struct database_dyn *db, int
+       buffer = (char *) extend_alloca (buffer, buflen, 2 * buflen);
+     }
+-  cache_addserv (db, fd, req, key, serv, uid, he, dh, errval);
++  time_t timeout = cache_addserv (db, fd, req, key, serv, uid, he, dh, errval);
+   if (use_malloc)
+     free (buffer);
++
++  return timeout;
+ }
+@@ -424,7 +432,7 @@ addservbyname (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdservbyname (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -434,7 +442,7 @@ readdservbyname (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
+@@ -446,7 +454,7 @@ addservbyport (struct database_dyn *db, 
+ }
+-void
++time_t
+ readdservbyport (struct database_dyn *db, struct hashentry *he,
+                struct datahead *dh)
+ {
+@@ -456,5 +464,5 @@ readdservbyport (struct database_dyn *db
+       .key_len = he->len
+     };
+-  addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  return addservbyX (db, -1, &req, db->data + he->key, he->owner, he, dh);
+ }
diff --git a/src/patches/glibc/glibc-rh705465.patch b/src/patches/glibc/glibc-rh705465.patch
new file mode 100644 (file)
index 0000000..63b971e
--- /dev/null
@@ -0,0 +1,449 @@
+2011-11-07  Andreas Schwab  <schwab@redhat.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn):
+       Fix size of allocated buffer.
+
+2011-05-10  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #11257]
+       * grp/initgroups.c (internal_getgrouplist): When we found the service
+       list through the initgroups entry in nsswitch.conf do not always
+       continue on a successful lookup.  Don't always use the
+       __nss_group_data-ase value if it is set.
+       * nss/nsswitch.conf (initgroups): Change action for successful db
+       lookup to continue for compatibility.
+
+2011-05-06  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Return
+       NSS_STATUS_NOTFOUND if no record was found.
+
+2011-04-29  Ulrich Drepper  <drepper@gmail.com>
+
+       * grp/initgroups.c (internal_getgrouplist): Prefer initgroups setting
+       to groups setting in database lookup.
+       * nss/nsswitch.conf: Add initgroups entry.
+
+2011-04-21  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c (_nss_files_initgroups_dyn): Fix
+       problem in reallocation in last patch.
+
+2011-04-19  Ulrich Drepper  <drepper@gmail.com>
+
+       * nss/nss_files/files-initgroups.c: New file.
+       * nss/Makefile (libnss_files-routines): Add files-initgroups.
+       * nss/Versions (libnss_files) [GLIBC_PRIVATE]: Export
+       _nss_files_initgroups_dyn.
+
+2011-01-13  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10484]
+       * nss/nss_files/files-hosts.c (HOST_DB_LOOKUP): Handle overflows of
+       temporary buffer used to handle multi lookups locally.
+       * include/alloca.h: Add libc_hidden_proto for __libc_alloca_cutoff.
+
+2011-01-13  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10484]
+       * Versions [libc] (GLIBC_PRIVATE): Export __libc_alloca_cutoff.
+       * alloca_cutoff.c: Add libc_hidden_def.
+
+Index: glibc-2.12-2-gc4ccff1/grp/initgroups.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/grp/initgroups.c
++++ glibc-2.12-2-gc4ccff1/grp/initgroups.c
+@@ -43,6 +43,8 @@ extern int __nss_group_lookup (service_u
+ extern void *__nss_lookup_function (service_user *ni, const char *fct_name);
+ extern service_user *__nss_group_database attribute_hidden;
++static service_user *initgroups_database;
++static bool use_initgroups_entry;
+ #include "compat-initgroups.c"
+@@ -67,32 +69,41 @@ internal_getgrouplist (const char *user,
+     }
+ #endif
+-  service_user *nip = NULL;
+-  initgroups_dyn_function fct;
+   enum nss_status status = NSS_STATUS_UNAVAIL;
+-  int no_more;
+-  /* Start is one, because we have the first group as parameter.  */
+-  long int start = 1;
++  int no_more = 0;
+   /* Never store more than the starting *SIZE number of elements.  */
+   assert (*size > 0);
+   (*groupsp)[0] = group;
++  /* Start is one, because we have the first group as parameter.  */
++  long int start = 1;
+-  if (__nss_group_database != NULL)
++  if (initgroups_database == NULL)
+     {
+-      no_more = 0;
+-      nip = __nss_group_database;
++      no_more = __nss_database_lookup ("initgroups", NULL, "",
++                                     &initgroups_database);
++      if (no_more == 0 && initgroups_database == NULL)
++      {
++        if (__nss_group_database == NULL)
++          no_more = __nss_database_lookup ("group", NULL, "compat files",
++                                           &__nss_group_database);
++
++        initgroups_database = __nss_group_database;
++      }
++      else if (initgroups_database != NULL)
++      {
++        assert (no_more == 0);
++        use_initgroups_entry = true;
++      }
+     }
+-  else
+-    no_more = __nss_database_lookup ("group", NULL,
+-                                   "compat [NOTFOUND=return] files", &nip);
++  service_user *nip = initgroups_database;
+   while (! no_more)
+     {
+       long int prev_start = start;
+-      fct = __nss_lookup_function (nip, "initgroups_dyn");
+-
++      initgroups_dyn_function fct = __nss_lookup_function (nip,
++                                                         "initgroups_dyn");
+       if (fct == NULL)
+       status = compat_call (nip, user, group, &start, size, groupsp,
+                             limit, &errno);
+@@ -119,7 +130,13 @@ internal_getgrouplist (const char *user,
+       if (NSS_STATUS_TRYAGAIN > status || status > NSS_STATUS_RETURN)
+       __libc_fatal ("illegal status in internal_getgrouplist");
+-      if (status != NSS_STATUS_SUCCESS
++      /* For compatibility reason we will continue to look for more
++       entries using the next service even though data has already
++       been found if the nsswitch.conf file contained only a 'groups'
++       line and no 'initgroups' line.  If the latter is available
++       we always respect the status.  This means that the default
++       for successful lookups is to return.  */
++      if ((use_initgroups_entry || status != NSS_STATUS_SUCCESS)
+         && nss_next_action (nip, status) == NSS_ACTION_RETURN)
+        break;
+Index: glibc-2.12-2-gc4ccff1/include/alloca.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/include/alloca.h
++++ glibc-2.12-2-gc4ccff1/include/alloca.h
+@@ -14,6 +14,7 @@ extern void *__alloca (size_t __size);
+ extern int __libc_use_alloca (size_t size) __attribute__ ((const));
+ extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
++libc_hidden_proto (__libc_alloca_cutoff)
+ #define __MAX_ALLOCA_CUTOFF   65536
+Index: glibc-2.12-2-gc4ccff1/nptl/Versions
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/Versions
++++ glibc-2.12-2-gc4ccff1/nptl/Versions
+@@ -27,6 +27,7 @@ libc {
+     pthread_cond_broadcast; pthread_cond_timedwait;
+   }
+   GLIBC_PRIVATE {
++    __libc_alloca_cutoff;
+     # Internal libc interface to libpthread
+     __libc_dl_error_tsd;
+   }
+Index: glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/alloca_cutoff.c
++++ glibc-2.12-2-gc4ccff1/nptl/alloca_cutoff.c
+@@ -34,3 +34,4 @@ __libc_alloca_cutoff (size_t size)
+                         assume the maximum available stack space.  */
+                      ?: __MAX_ALLOCA_CUTOFF * 4));
+ }
++libc_hidden_def (__libc_alloca_cutoff)
+Index: glibc-2.12-2-gc4ccff1/nss/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Makefile
++++ glibc-2.12-2-gc4ccff1/nss/Makefile
+@@ -63,7 +63,7 @@ vpath %.c $(subdir-dirs)
+ libnss_files-routines := $(addprefix files-,$(databases)) \
+-                         files-have_o_cloexec
++                         files-initgroups files-have_o_cloexec
+ distribute            += files-XXX.c files-parse.c
+Index: glibc-2.12-2-gc4ccff1/nss/Versions
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/Versions
++++ glibc-2.12-2-gc4ccff1/nss/Versions
+@@ -95,5 +95,7 @@ libnss_files {
+     _nss_netgroup_parseline;
+     _nss_files_getpublickey;
+     _nss_files_getsecretkey;
++
++    _nss_files_initgroups_dyn;
+   }
+ }
+Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/nss_files/files-hosts.c
++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-hosts.c
+@@ -129,19 +129,22 @@ _nss_files_get##name##_r (proto,                                    
+         && _res_hconf.flags & HCONF_FLAG_MULTI)                             \
+       {                                                                     \
+         /* We have to get all host entries from the file.  */               \
+-        const size_t tmp_buflen = MIN (buflen, 4096);                       \
+-        char tmp_buffer[tmp_buflen]                                         \
++        size_t tmp_buflen = MIN (buflen, 4096);                             \
++        char tmp_buffer_stack[tmp_buflen]                                   \
+           __attribute__ ((__aligned__ (__alignof__ (struct hostent_data))));\
++        char *tmp_buffer = tmp_buffer_stack;                                \
+         struct hostent tmp_result_buf;                                      \
+         int naddrs = 1;                                                     \
+         int naliases = 0;                                                   \
+         char *bufferend;                                                    \
++        bool tmp_buffer_malloced = false;                                   \
+                                                                             \
+         while (result->h_aliases[naliases] != NULL)                         \
+           ++naliases;                                                       \
+                                                                             \
+         bufferend = (char *) &result->h_aliases[naliases + 1];              \
+                                                                             \
++      again:                                                                \
+         while ((status = internal_getent (&tmp_result_buf, tmp_buffer,      \
+                                           tmp_buflen, errnop H_ERRNO_ARG    \
+                                           EXTRA_ARGS_VALUE))                \
+@@ -182,7 +185,7 @@ _nss_files_get##name##_r (proto,                                      
+                   }                                                         \
+                 /* If the real name is different add it also to the         \
+                    aliases.  This means that there is a duplication         \
+-                   in the alias list but this is really the users           \
++                   in the alias list but this is really the user's          \
+                    problem.  */                                             \
+                 if (strcmp (old_result->h_name,                             \
+                             tmp_result_buf.h_name) != 0)                    \
+@@ -204,7 +207,7 @@ _nss_files_get##name##_r (proto,                                      
+                     *errnop = ERANGE;                                       \
+                     *herrnop = NETDB_INTERNAL;                              \
+                     status = NSS_STATUS_TRYAGAIN;                           \
+-                    break;                                                  \
++                    goto out;                                               \
+                   }                                                         \
+                                                                             \
+                 new_h_addr_list =                                           \
+@@ -268,8 +271,54 @@ _nss_files_get##name##_r (proto,                                     
+               }                                                             \
+           }                                                                 \
+                                                                             \
+-        if (status != NSS_STATUS_TRYAGAIN)                                  \
++        if (status == NSS_STATUS_TRYAGAIN)                                  \
++          {                                                                 \
++            size_t newsize = 2 * tmp_buflen;                                \
++            if (tmp_buffer_malloced)                                        \
++              {                                                             \
++                char *newp = realloc (tmp_buffer, newsize);                 \
++                if (newp != NULL)                                           \
++                  {                                                         \
++                    assert ((((uintptr_t) newp)                             \
++                             & (__alignof__ (struct hostent_data) - 1))     \
++                            == 0);                                          \
++                    tmp_buffer = newp;                                      \
++                    tmp_buflen = newsize;                                   \
++                    goto again;                                             \
++                  }                                                         \
++              }                                                             \
++            else if (!__libc_use_alloca (buflen + newsize))                 \
++              {                                                             \
++                tmp_buffer = malloc (newsize);                              \
++                if (tmp_buffer != NULL)                                     \
++                  {                                                         \
++                    assert ((((uintptr_t) tmp_buffer)                       \
++                             & (__alignof__ (struct hostent_data) - 1))     \
++                            == 0);                                          \
++                    tmp_buffer_malloced = true;                             \
++                    tmp_buflen = newsize;                                   \
++                    goto again;                                             \
++                  }                                                         \
++              }                                                             \
++            else                                                            \
++              {                                                             \
++                tmp_buffer                                                  \
++                  = extend_alloca (tmp_buffer, tmp_buflen,                  \
++                                   newsize                                  \
++                                   + __alignof__ (struct hostent_data));    \
++                tmp_buffer = (char *) (((uintptr_t) tmp_buffer              \
++                                        + __alignof__ (struct hostent_data) \
++                                        - 1)                                \
++                                       & ~(__alignof__ (struct hostent_data)\
++                                           - 1));                           \
++                goto again;                                                 \
++              }                                                             \
++          }                                                                 \
++        else                                                                \
+           status = NSS_STATUS_SUCCESS;                                      \
++      out:                                                                  \
++        if (tmp_buffer_malloced)                                            \
++          free (tmp_buffer);                                                \
+       }                                                                     \
+                                                                             \
+                                                                             \
+Index: glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/nss/nss_files/files-initgroups.c
+@@ -0,0 +1,137 @@
++/* Initgroups handling in nss_files module.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <alloca.h>
++#include <errno.h>
++#include <grp.h>
++#include <nss.h>
++#include <stdio_ext.h>
++#include <string.h>
++#include <sys/param.h>
++
++enum nss_status
++_nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
++                         long int *size, gid_t **groupsp, long int limit,
++                         int *errnop)
++{
++  FILE *stream = fopen ("/etc/group", "re");
++  if (stream == NULL)
++    {
++      *errnop = errno;
++      return *errnop == ENOMEM ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL;
++    }
++
++  /* No other thread using this stream.  */
++  __fsetlocking (stream, FSETLOCKING_BYCALLER);
++
++  char *line = NULL;
++  size_t linelen = 0;
++  enum nss_status status = NSS_STATUS_SUCCESS;
++  bool any = false;
++
++  size_t buflen = 1024;
++  void *buffer = alloca (buflen);
++  bool buffer_use_malloc = false;
++
++  gid_t *groups = *groupsp;
++
++  /* We have to iterate over the entire file.  */
++  while (!feof_unlocked (stream))
++    {
++      ssize_t n = getline (&line, &linelen, stream);
++      if (n < 0)
++      {
++        if (! feof_unlocked (stream))
++          status = ((*errnop = errno) == ENOMEM
++                    ? NSS_STATUS_TRYAGAIN : NSS_STATUS_UNAVAIL);
++        break;
++      }
++
++      struct group grp;
++      int res;
++      while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen,
++                                          errnop)) == -1)
++      {
++        size_t newbuflen = 2 * buflen;
++        if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen))
++          {
++            void *newbuf = realloc (buffer_use_malloc ? buffer : NULL,
++                                    newbuflen);
++            if (newbuf == NULL)
++              {
++                *errnop = ENOMEM;
++                status = NSS_STATUS_TRYAGAIN;
++                goto out;
++              }
++            buffer = newbuf;
++            buflen = newbuflen;
++            buffer_use_malloc = true;
++          }
++        else
++          buffer = extend_alloca (buffer, buflen, newbuflen);
++      }
++
++      if (res > 0 && grp.gr_gid != group)
++      for (char **m = grp.gr_mem; *m != NULL; ++m)
++        if (strcmp (*m, user) == 0)
++          {
++            /* Matches user.  Insert this group.  */
++            if (*start == *size)
++              {
++                /* Need a bigger buffer.  */
++                if (limit > 0 && *size == limit)
++                  /* We reached the maximum.  */
++                  goto out;
++
++                long int newsize;
++                if (limit <= 0)
++                  newsize = 2 * *size;
++                else
++                  newsize = MIN (limit, 2 * *size);
++
++                gid_t *newgroups = realloc (groups,
++                                            newsize * sizeof (*groups));
++                if (newgroups == NULL)
++                  {
++                    *errnop = ENOMEM;
++                    status = NSS_STATUS_TRYAGAIN;
++                    goto out;
++                  }
++                *groupsp = groups = newgroups;
++                *size = newsize;
++              }
++
++            groups[*start] = grp.gr_gid;
++            *start += 1;
++            any = true;
++
++            break;
++          }
++    }
++
++ out:
++  /* Free memory.  */
++  if (buffer_use_malloc)
++    free (buffer);
++  free (line);
++
++  fclose (stream);
++
++  return status == NSS_STATUS_SUCCESS && !any ? NSS_STATUS_NOTFOUND : status;
++}
+Index: glibc-2.12-2-gc4ccff1/nss/nsswitch.conf
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nss/nsswitch.conf
++++ glibc-2.12-2-gc4ccff1/nss/nsswitch.conf
+@@ -5,6 +5,7 @@
+ passwd:               db files
+ group:                db files
++initgroups:   db [SUCCESS=continue] files
+ shadow:               db files
+ gshadow:      files
diff --git a/src/patches/glibc/glibc-rh711927.patch b/src/patches/glibc/glibc-rh711927.patch
new file mode 100644 (file)
index 0000000..26949fe
--- /dev/null
@@ -0,0 +1,503 @@
+Index: glibc-2.12-2-gc4ccff1/config.h.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/config.h.in
++++ glibc-2.12-2-gc4ccff1/config.h.in
+@@ -201,6 +201,9 @@
+ /* Define if multi-arch DSOs should be generated.  */
+ #undef USE_MULTIARCH
++/* Define if Systemtap <sys/sdt.h> probes should be defined.  */
++#undef USE_STAP_PROBE
++
+ /*
\f */
+Index: glibc-2.12-2-gc4ccff1/configure
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/configure
++++ glibc-2.12-2-gc4ccff1/configure
+@@ -830,6 +830,7 @@ enable_all_warnings
+ enable_multi_arch
+ enable_experimental_malloc
+ enable_nss_crypt
++enable_systemtap
+ with_cpu
+ '
+       ac_precious_vars='build_alias
+@@ -1501,6 +1502,7 @@ Optional Features:
+   --enable-experimental-malloc
+                           enable experimental malloc features
+   --enable-nss-crypt      enable libcrypt to use nss
++  --enable-systemtap      enable systemtap static probe points [default=no]
+ Optional Packages:
+   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+@@ -3932,6 +3934,79 @@ else
+ fi
++# Check whether --enable-systemtap was given.
++if test "${enable_systemtap+set}" = set; then
++  enableval=$enable_systemtap; systemtap=$enableval
++else
++  systemtap=no
++fi
++
++if test x$systemtap != xno; then
++
++  { $as_echo "$as_me:$LINENO: checking for systemtap static probe support" >&5
++$as_echo_n "checking for systemtap static probe support... " >&6; }
++if test "${libc_cv_sdt+set}" = set; then
++  $as_echo_n "(cached) " >&6
++else
++    old_CFLAGS="$CFLAGS"
++  CFLAGS="-std=gnu99 $CFLAGS"
++  cat >conftest.$ac_ext <<_ACEOF
++#include <sys/sdt.h>
++void foo (int i, void *p)
++{
++  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
++       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
++}
++_ACEOF
++rm -f conftest.$ac_objext
++if { (ac_try="$ac_compile"
++case "(($ac_try" in
++  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
++  *) ac_try_echo=$ac_try;;
++esac
++eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
++$as_echo "$ac_try_echo") >&5
++  (eval "$ac_compile") 2>conftest.er1
++  ac_status=$?
++  grep -v '^ *+' conftest.er1 >conftest.err
++  rm -f conftest.er1
++  cat conftest.err >&5
++  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
++  (exit $ac_status); } && {
++       test -z "$ac_c_werror_flag" ||
++       test ! -s conftest.err
++       } && test -s conftest.$ac_objext; then
++  libc_cv_sdt=yes
++else
++  $as_echo "$as_me: failed program was:" >&5
++sed 's/^/| /' conftest.$ac_ext >&5
++
++      libc_cv_sdt=no
++fi
++
++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
++  CFLAGS="$old_CFLAGS"
++fi
++{ $as_echo "$as_me:$LINENO: result: $libc_cv_sdt" >&5
++$as_echo "$libc_cv_sdt" >&6; }
++  if test $libc_cv_sdt = yes; then
++    cat >>confdefs.h <<\_ACEOF
++#define USE_STAP_PROBE 1
++_ACEOF
++
++  else
++    { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
++$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
++{ { $as_echo "$as_me:$LINENO: error: systemtap support needs sys/sdt.h with asm support
++See \`config.log' for more details." >&5
++$as_echo "$as_me: error: systemtap support needs sys/sdt.h with asm support
++See \`config.log' for more details." >&2;}
++   { (exit 1); exit 1; }; }; }
++  fi
++
++fi
++
++
+ # The way shlib-versions is used to generate soversions.mk uses a
+ # fairly simplistic model for name recognition that can't distinguish
+ # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
+Index: glibc-2.12-2-gc4ccff1/configure.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/configure.in
++++ glibc-2.12-2-gc4ccff1/configure.in
+@@ -319,6 +319,29 @@ else
+ fi
+ AC_SUBST(libc_cv_nss_crypt)
++AC_ARG_ENABLE([systemtap],
++              [AS_HELP_STRING([--enable-systemtap],
++             [enable systemtap static probe points @<:@default=no@:>@])],
++              [systemtap=$enableval],
++            [systemtap=no])
++AS_IF([test x$systemtap != xno], [
++  AC_CACHE_CHECK([for systemtap static probe support], libc_cv_sdt, [dnl
++  old_CFLAGS="$CFLAGS"
++  CFLAGS="-std=gnu99 $CFLAGS"
++  AC_COMPILE_IFELSE([#include <sys/sdt.h>
++void foo (int i, void *p)
++{
++  asm ("" STAP_PROBE_ASM (foo, bar, STAP_PROBE_ASM_TEMPLATE (2)) ""
++       :: STAP_PROBE_ASM_OPERANDS (2, i, p));
++}], [libc_cv_sdt=yes], [libc_cv_sdt=no])
++  CFLAGS="$old_CFLAGS"])
++  if test $libc_cv_sdt = yes; then
++    AC_DEFINE([USE_STAP_PROBE])
++  else
++    AC_MSG_FAILURE([systemtap support needs sys/sdt.h with asm support])
++  fi
++])
++
+ # The way shlib-versions is used to generate soversions.mk uses a
+ # fairly simplistic model for name recognition that can't distinguish
+ # i486-pc-linux-gnu fully from i486-pc-gnu.  So we mutate a $host_os
+Index: glibc-2.12-2-gc4ccff1/elf/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/Makefile
++++ glibc-2.12-2-gc4ccff1/elf/Makefile
+@@ -458,7 +458,8 @@ CFLAGS-ldconfig.c = $(SYSCONF-FLAGS) -D'
+ CFLAGS-dl-cache.c = $(SYSCONF-FLAGS)
+ CFLAGS-cache.c = $(SYSCONF-FLAGS)
+-CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),-DNOT_IN_libc=1 -DIS_IN_rtld=1)
++CPPFLAGS-.os += $(if $(filter $(@F),$(patsubst %,%.os,$(all-rtld-routines))),\
++                   -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld)
+ test-modules = $(addprefix $(objpfx),$(addsuffix .so,$(strip $(modules-names))))
+ generated += $(addsuffix .so,$(strip $(modules-names)))
+Index: glibc-2.12-2-gc4ccff1/elf/dl-close.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-close.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-close.c
+@@ -32,6 +32,7 @@
+ #include <sys/mman.h>
+ #include <sysdep-cancel.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ /* Type of the constructor functions.  */
+@@ -469,6 +470,7 @@ _dl_close_worker (struct link_map *map)
+   struct r_debug *r = _dl_debug_initialize (0, nsid);
+   r->r_state = RT_DELETE;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_unmap_start, 2, nsid, r);
+   if (unload_global)
+     {
+@@ -722,6 +724,7 @@ _dl_close_worker (struct link_map *map)
+   /* Notify the debugger those objects are finalized and gone.  */
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_unmap_complete, 2, nsid, r);
+   /* Recheck if we need to retry, release the lock.  */
+  out:
+Index: glibc-2.12-2-gc4ccff1/elf/dl-load.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-load.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-load.c
+@@ -36,6 +36,7 @@
+ #include <stackinfo.h>
+ #include <caller.h>
+ #include <sysdep.h>
++#include <stap-probe.h>
+ #include <dl-dst.h>
+@@ -806,7 +807,7 @@ _dl_init_paths (const char *llp)
+ static void
+ __attribute__ ((noreturn, noinline))
+ lose (int code, int fd, const char *name, char *realname, struct link_map *l,
+-      const char *msg, struct r_debug *r)
++      const char *msg, struct r_debug *r, Lmid_t nsid)
+ {
+   /* The file might already be closed.  */
+   if (fd != -1)
+@@ -818,6 +819,7 @@ lose (int code, int fd, const char *name
+     {
+       r->r_state = RT_CONSISTENT;
+       _dl_debug_state ();
++      LIBC_PROBE (rtld_map_complete, 2, nsid, r);
+     }
+   _dl_signal_error (code, name, NULL, msg);
+@@ -856,7 +858,7 @@ _dl_map_object_from_fd (const char *name
+       errval = errno;
+     call_lose:
+       lose (errval, fd, name, realname, l, errstring,
+-          make_consistent ? r : NULL);
++          make_consistent ? r : NULL, nsid);
+     }
+   /* Look again to see if the real name matched another already loaded.  */
+@@ -963,6 +965,7 @@ _dl_map_object_from_fd (const char *name
+        linking has not been used before.  */
+       r->r_state = RT_ADD;
+       _dl_debug_state ();
++      LIBC_PROBE (rtld_map_start, 2, nsid, r);
+       make_consistent = true;
+     }
+   else
+@@ -1656,7 +1659,7 @@ open_verify (const char *name, struct fi
+             name = strdupa (realname);
+             free (realname);
+           }
+-        lose (errval, fd, name, NULL, NULL, errstring, NULL);
++        lose (errval, fd, name, NULL, NULL, errstring, NULL, 0);
+       }
+       /* See whether the ELF header is what we expect.  */
+Index: glibc-2.12-2-gc4ccff1/elf/dl-open.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/dl-open.c
++++ glibc-2.12-2-gc4ccff1/elf/dl-open.c
+@@ -33,6 +33,7 @@
+ #include <caller.h>
+ #include <sysdep-cancel.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ #include <dl-dst.h>
+@@ -297,6 +298,7 @@ dl_open_worker (void *a)
+   struct r_debug *r = _dl_debug_initialize (0, args->nsid);
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_map_complete, 2, args->nsid, r);
+   /* Only do lazy relocation if `LD_BIND_NOW' is not set.  */
+   int reloc_mode = mode & __RTLD_AUDIT;
+@@ -309,10 +311,18 @@ dl_open_worker (void *a)
+   struct link_map *l = new;
+   while (l->l_next)
+     l = l->l_next;
++  int relocation_in_progress = 0;
+   while (1)
+     {
+       if (! l->l_real->l_relocated)
+       {
++        if (! relocation_in_progress)
++          {
++            /* Notify the debugger that relocations are about to happen.  */
++            LIBC_PROBE (rtld_reloc_start, 2, args->nsid, r);
++            relocation_in_progress = 1;
++          }
++
+ #ifdef SHARED
+         if (__builtin_expect (GLRO(dl_profile) != NULL, 0))
+           {
+@@ -460,6 +470,10 @@ cannot load any more object with static 
+     _dl_fatal_printf (N_("\
+ TLS generation counter wrapped!  Please report this."));
++  /* Notify the debugger all new objects have been relocated.  */
++  if (relocation_in_progress)
++    LIBC_PROBE (rtld_reloc_complete, 2, args->nsid, r);
++
+   /* Run the initializer functions of new objects.  */
+   _dl_init (new, args->argc, args->argv, args->env);
+Index: glibc-2.12-2-gc4ccff1/elf/rtld-Rules
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld-Rules
++++ glibc-2.12-2-gc4ccff1/elf/rtld-Rules
+@@ -122,6 +122,6 @@ ifdef rtld-depfiles
+ endif
+ # This here is the whole point of all the shenanigans.
+-rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1
++rtld-CPPFLAGS := -DNOT_IN_libc=1 -DIS_IN_rtld=1 -DIN_LIB=rtld
+ endif
+Index: glibc-2.12-2-gc4ccff1/elf/rtld.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/rtld.c
++++ glibc-2.12-2-gc4ccff1/elf/rtld.c
+@@ -40,6 +40,7 @@
+ #include <dl-osinfo.h>
+ #include <dl-procinfo.h>
+ #include <tls.h>
++#include <stap-probe.h>
+ #include <assert.h>
+@@ -1656,6 +1657,7 @@ ERROR: ld.so: object '%s' cannot be load
+   /* We start adding objects.  */
+   r->r_state = RT_ADD;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_init_start, 2, LM_ID_BASE, r);
+   /* Auditing checkpoint: we are ready to signal that the initial map
+      is being constructed.  */
+@@ -2353,6 +2355,7 @@ ERROR: ld.so: object '%s' cannot be load
+   r = _dl_debug_initialize (0, LM_ID_BASE);
+   r->r_state = RT_CONSISTENT;
+   _dl_debug_state ();
++  LIBC_PROBE (rtld_init_complete, 2, LM_ID_BASE, r);
+ #ifndef MAP_COPY
+   /* We must munmap() the cache file.  */
+Index: glibc-2.12-2-gc4ccff1/extra-lib.mk
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/extra-lib.mk
++++ glibc-2.12-2-gc4ccff1/extra-lib.mk
+@@ -101,4 +101,4 @@ ifneq (,$(cpp-srcs-left))
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ endif
+-CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1
++CPPFLAGS-$(lib) := -DNOT_IN_libc=1 -DIS_IN_$(lib)=1 -DIN_LIB=$(lib)
+Index: glibc-2.12-2-gc4ccff1/include/stap-probe.h
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/include/stap-probe.h
+@@ -0,0 +1,140 @@
++/* Macros for defining Systemtap <sys/sdt.h> static probe points.
++   Copyright (C) 2011 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#ifndef _STAP_PROBE_H
++#define _STAP_PROBE_H 1
++
++#ifdef USE_STAP_PROBE
++
++# include <sys/sdt.h>
++
++/* Our code uses one macro LIBC_PROBE (name, n, arg1, ..., argn).
++
++   Without USE_STAP_PROBE, that does nothing but evaluates all
++   its arguments (to prevent bit rot, unlike e.g. assert).
++
++   Systemtap's header defines the macros STAP_PROBE (provider, name) and
++   STAP_PROBEn (provider, name, arg1, ..., argn).  For "provider" we paste
++   in the IN_LIB name (libc, libpthread, etc.) automagically.  */
++
++# ifndef NOT_IN_libc
++#  define IN_LIB      libc
++# elif !defined IN_LIB
++/* This is intentionally defined with extra unquoted commas in it so
++   that macro substitution will bomb out when it is used.  We don't
++   just use #error here, so that this header can be included by
++   other headers that use LIBC_PROBE inside their own macros.  We
++   only want such headers to fail to compile if those macros are
++   actually used in a context where IN_LIB has not been defined.  */
++#  define IN_LIB      ,,,missing -DIN_LIB=... -- not extra-lib.mk?,,,
++# endif
++
++# define LIBC_PROBE(name, n, ...)     \
++  LIBC_PROBE_1 (IN_LIB, name, n, ## __VA_ARGS__)
++
++# define LIBC_PROBE_1(lib, name, n, ...) \
++  STAP_PROBE##n (lib, name, ## __VA_ARGS__)
++
++# define STAP_PROBE0          STAP_PROBE
++
++# define LIBC_PROBE_ASM(name, template) \
++  STAP_PROBE_ASM (IN_LIB, name, template)
++
++# define LIBC_PROBE_ASM_OPERANDS STAP_PROBE_ASM_OPERANDS
++
++#else  /* Not USE_STAP_PROBE.  */
++
++# ifndef __ASSEMBLER__
++#  define LIBC_PROBE(name, n, ...)            DUMMY_PROBE##n (__VA_ARGS__)
++# else
++#  define LIBC_PROBE(name, n, ...)            /* Nothing.  */
++# endif
++
++# define LIBC_PROBE_ASM(name, template)               /* Nothing.  */
++# define LIBC_PROBE_ASM_OPERANDS(n, ...)      /* Nothing.  */
++
++/* This silliness lets us evaluate all the arguments for each arity
++   of probe.  My kingdom for a real macro system.  */
++
++# define DUMMY_PROBE0()                       do {} while (0)
++# define DUMMY_PROBE1(a1)             do {} while ((void) (a1), 0)
++# define DUMMY_PROBE2(a1, a2)         do {} while ((void) (a1), \
++                                                   (void) (a2), 0)
++# define DUMMY_PROBE3(a1, a2, a3)     do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), 0)
++# define DUMMY_PROBE4(a1, a2, a3, a4) do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), 0)
++# define DUMMY_PROBE5(a1, a2, a3, a4, a5)                       \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), 0)
++# define DUMMY_PROBE6(a1, a2, a3, a4, a5, a6)                   \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), 0)
++# define DUMMY_PROBE7(a1, a2, a3, a4, a5, a6, a7)               \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), 0)
++# define DUMMY_PROBE8(a1, a2, a3, a4, a5, a6, a7, a8)           \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), 0)
++# define DUMMY_PROBE9(a1, a2, a3, a4, a5, a6, a7, a8, a9)       \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), \
++                                                   (void) (a9), 0)
++# define DUMMY_PROBE10(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10)         \
++                                      do {} while ((void) (a1), \
++                                                   (void) (a2), \
++                                                   (void) (a3), \
++                                                   (void) (a4), \
++                                                   (void) (a5), \
++                                                   (void) (a6), \
++                                                   (void) (a7), \
++                                                   (void) (a8), \
++                                                   (void) (a9), \
++                                                   (void) (a10), 0)
++
++#endif        /* USE_STAP_PROBE.  */
++
++#endif        /* stap-probe.h */
+Index: glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/scripts/check-local-headers.sh
++++ glibc-2.12-2-gc4ccff1/scripts/check-local-headers.sh
+@@ -31,6 +31,8 @@ fgrep -v "$includedir/asm" |
+ fgrep -v "$includedir/linux" |
+ fgrep -v "$includedir/selinux" |
+ fgrep -v "$includedir/sys/capability.h" |
++fgrep -v "$includedir/sys/sdt.h" |
++fgrep -v "$includedir/sys/sdt-config.h" |
+ fgrep -v "$includedir/gd" |
+ fgrep -v "$includedir/nss3"; then
+   # If we found a match something is wrong.
diff --git a/src/patches/glibc/glibc-rh711987.patch b/src/patches/glibc/glibc-rh711987.patch
new file mode 100644 (file)
index 0000000..bd286e1
--- /dev/null
@@ -0,0 +1,136 @@
+2010-08-11  Ulrich Drepper  <drepper@redhat.com>
+
+       * sysdeps/unix/sysv/linux/bits/statfs.h (struct statfs): Add f_flags
+       field.
+       (struct statfs64): Likewise.
+       (_STATFS_F_FLAGS): Define.
+       * sysdeps/unix/sysv/linux/s390/bits/statfs.h: Likewise.
+       * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
+       Don't define if __ASSUME_STATFS_F_FLAGS is defined.
+       (ST_VALID): Define locally.
+       (INTERNAL_STATVFS): If f_flags has ST_VALID set don't call
+       __statvfs_getflags, use the provided value.
+       * sysdeps/unix/sysv/linux/kernel-features.h: Define
+       __ASSUME_STATFS_F_FLAGS.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/statfs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/statfs.h
+@@ -42,7 +42,8 @@ struct statfs
+     __fsid_t f_fsid;
+     __SWORD_TYPE f_namelen;
+     __SWORD_TYPE f_frsize;
+-    __SWORD_TYPE f_spare[5];
++    __SWORD_TYPE f_flags;
++    __SWORD_TYPE f_spare[4];
+   };
+ #ifdef __USE_LARGEFILE64
+@@ -58,10 +59,12 @@ struct statfs64
+     __fsid_t f_fsid;
+     __SWORD_TYPE f_namelen;
+     __SWORD_TYPE f_frsize;
+-    __SWORD_TYPE f_spare[5];
++    __SWORD_TYPE f_flags;
++    __SWORD_TYPE f_spare[4];
+   };
+ #endif
+ /* Tell code we have these members.  */
+ #define _STATFS_F_NAMELEN
+ #define _STATFS_F_FRSIZE
++#define _STATFS_F_FLAGS
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+@@ -29,6 +29,11 @@
+ #include <sys/statfs.h>
+ #include <sys/statvfs.h>
+ #include "linux_fsinfo.h"
++#include "kernel-features.h"
++
++
++/* Special internal-only bit value.  */
++#define ST_VALID 0x0020
+ #ifndef STATFS
+@@ -37,6 +42,7 @@
+ # define INTERNAL_STATVFS __internal_statvfs
++# ifndef __ASSUME_STATFS_F_FLAGS
+ int
+ __statvfs_getflags (const char *name, int fstype, struct stat64 *st)
+ {
+@@ -200,6 +206,7 @@ __statvfs_getflags (const char *name, in
+   return result;
+ }
++# endif
+ #else
+ extern int __statvfs_getflags (const char *name, int fstype,
+                              struct stat64 *st);
+@@ -240,9 +247,14 @@ INTERNAL_STATVFS (const char *name, stru
+   /* XXX I have no idea how to compute f_favail.  Any idea???  */
+   buf->f_favail = buf->f_ffree;
+-  /* Determining the flags is tricky.  We have to read /proc/mounts or
+-     the /etc/mtab file and search for the entry which matches the given
+-     file.  The way we can test for matching filesystem is using the
+-     device number.  */
+-  buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st);
++#ifndef __ASSUME_STATFS_F_FLAGS
++  if ((fsbuf->f_flags & ST_VALID) == 0)
++    /* Determining the flags is tricky.  We have to read /proc/mounts or
++       the /etc/mtab file and search for the entry which matches the given
++       file.  The way we can test for matching filesystem is using the
++       device number.  */
++    buf->f_flag = __statvfs_getflags (name, fsbuf->f_type, st);
++  else
++#endif
++    buf->f_flag = fsbuf->f_flags ^ ST_VALID;
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/kernel-features.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/kernel-features.h
+@@ -552,3 +552,8 @@
+ #if __LINUX_KERNEL_VERSION >= 0x020621
+ # define __ASSUME_RECVMMSG    1
+ #endif
++
++/* statfs fills in f_flags since 2.6.36.  */
++#if __LINUX_KERNEL_VERSION >= 0x020624
++# define __ASSUME_STATFS_F_FLAGS      1
++#endif
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/s390/bits/statfs.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/s390/bits/statfs.h
+@@ -42,7 +42,8 @@ struct statfs
+     __fsid_t f_fsid;
+     int f_namelen;
+     int f_frsize;
+-    int f_spare[5];
++    int f_flags;
++    int f_spare[4];
+   };
+ #ifdef __USE_LARGEFILE64
+@@ -58,10 +59,12 @@ struct statfs64
+     __fsid_t f_fsid;
+     int f_namelen;
+     int f_frsize;
+-    int f_spare[5];
++    int f_flags;
++    int f_spare[4];
+   };
+ #endif
+ /* Tell code we have this member.  */
+ #define _STATFS_F_NAMELEN
+ #define _STATFS_F_FRSIZE
++#define _STATFS_F_FLAGS
diff --git a/src/patches/glibc/glibc-rh712248.patch b/src/patches/glibc/glibc-rh712248.patch
new file mode 100644 (file)
index 0000000..afadc66
--- /dev/null
@@ -0,0 +1,69 @@
+2011-07-07  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12868]
+       * sysdeps/unix/sysv/linux/linux_fsinfo.h: Define Lustre constants.
+       * sysdeps/unix/sysv/linux/internal_statvfs.c (__statvfs_getflags):
+       Handle Lustre.
+       * sysdeps/unix/sysv/linux/pathconf.c (__statfs_link_max): Likewise.
+       (__statfs_filesize_max): Likewise.
+       Patch mostly by Andreas Dilger <adilger@whamcloud.com>.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/internal_statvfs.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/internal_statvfs.c
+@@ -109,6 +109,9 @@ __statvfs_getflags (const char *name, in
+     case LOGFS_MAGIC_U32:
+       fsname = "logfs";
+       break;
++    case LUSTRE_SUPER_MAGIC:
++      fsname = "lustre";
++      break;
+     }
+   FILE *mtab = __setmntent ("/proc/mounts", "r");
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/linux_fsinfo.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/linux_fsinfo.h
+@@ -77,6 +77,9 @@
+ /* Constant that identifies the `logfs´ filesystem.  */
+ #define LOGFS_MAGIC_U32               0xc97e8168u
++/* Constant that identifies the `lustre' filesystem.  */
++#define LUSTRE_SUPER_MAGIC    0x0BD00BD0
++
+ /* Constants that identify the `minix2' filesystem.  */
+ #define MINIX2_SUPER_MAGIC    0x2468
+ #define MINIX2_SUPER_MAGIC2   0x2478
+@@ -144,6 +147,8 @@
+ /* Maximum link counts.  */
+ #define COH_LINK_MAX          10000
+ #define EXT2_LINK_MAX         32000
++#define EXT4_LINK_MAX         65000
++#define LUSTRE_LINK_MAX               EXT4_LINK_MAX
+ #define MINIX2_LINK_MAX               65530
+ #define MINIX_LINK_MAX                250
+ #define REISERFS_LINK_MAX     64535
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/pathconf.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/pathconf.c
+@@ -104,6 +104,9 @@ __statfs_link_max (int result, const str
+     case XFS_SUPER_MAGIC:
+       return XFS_LINK_MAX;
++    case LUSTRE_SUPER_MAGIC:
++      return LUSTRE_LINK_MAX;
++
+     default:
+       return LINUX_LINK_MAX;
+     }
+@@ -136,6 +139,7 @@ __statfs_filesize_max (int result, const
+     case UDF_SUPER_MAGIC:
+     case JFS_SUPER_MAGIC:
+     case VXFS_SUPER_MAGIC:
++    case LUSTRE_SUPER_MAGIC:
+       return 64;
+     case MSDOS_SUPER_MAGIC:
diff --git a/src/patches/glibc/glibc-rh713134.patch b/src/patches/glibc/glibc-rh713134.patch
new file mode 100644 (file)
index 0000000..dc979be
--- /dev/null
@@ -0,0 +1,36 @@
+2011-03-18  Andreas Schwab  <schwab@redhat.com>
+
+       * elf/ldd.bash.in: Never run file directly.
+
+Index: glibc-2.12-2-gc4ccff1/elf/ldd.bash.in
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/ldd.bash.in
++++ glibc-2.12-2-gc4ccff1/elf/ldd.bash.in
+@@ -167,18 +167,6 @@ warning: you do not have execution permi
+       fi
+     done
+     case $ret in
+-    0)
+-      # If the program exits with exit code 5, it means the process has been
+-      # invoked with __libc_enable_secure.  Fall back to running it through
+-      # the dynamic linker.
+-      try_trace "$file"
+-      rc=$?
+-      if [ $rc = 5 ]; then
+-      try_trace "$RTLD" "$file"
+-      rc=$?
+-      fi
+-      [ $rc = 0 ] || result=1
+-      ;;
+     1)
+       # This can be a non-ELF binary or no binary at all.
+       nonelf "$file" || {
+@@ -186,7 +174,7 @@ warning: you do not have execution permi
+       result=1
+       }
+       ;;
+-    2)
++    0|2)
+       try_trace "$RTLD" "$file" || result=1
+       ;;
+     *)
diff --git a/src/patches/glibc/glibc-rh714823.patch b/src/patches/glibc/glibc-rh714823.patch
new file mode 100644 (file)
index 0000000..8bd121b
--- /dev/null
@@ -0,0 +1,126 @@
+2011-06-28  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Don't use gethostbyaddr
+       to determine canonical name.
+
+2011-06-22  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): Fix last change.
+
+2011-06-21  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #12885]
+       * sysdeps/posix/getaddrinfo.c (gaih_inet): When looking up only IPv6
+       addresses using gethostbyname4_r ignore IPv4 addresses.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/posix/getaddrinfo.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/posix/getaddrinfo.c
+@@ -512,10 +512,11 @@ gaih_inet (const char *name, const struc
+         /* If we do not have to look for IPv4 and IPv6 together, use
+            the simple, old functions.  */
+-        if (req->ai_family == AF_INET
+-            || (req->ai_family == AF_INET6
+-                && ((req->ai_flags & AI_V4MAPPED) == 0
+-                    || (req->ai_flags & AI_ALL) == 0)))
++        if ((req->ai_family == AF_INET
++             || (req->ai_family == AF_INET6
++                 && ((req->ai_flags & AI_V4MAPPED) == 0
++                     || (req->ai_flags & AI_ALL) == 0)))
++            && (req->ai_flags & AI_CANONNAME) == 0)
+           {
+             int family = req->ai_family;
+             size_t tmpbuflen = 512;
+@@ -731,16 +732,44 @@ gaih_inet (const char *name, const struc
+                                             tmpbuflen, 2 * tmpbuflen);
+                   }
+-                no_inet6_data = no_data;
+-
+                 if (status == NSS_STATUS_SUCCESS)
+                   {
++                    assert (!no_data);
++                    no_data = 1;
++
+                     if ((req->ai_flags & AI_CANONNAME) != 0 && canon == NULL)
+                       canon = (*pat)->name;
+                     while (*pat != NULL)
+-                      pat = &((*pat)->next);
++                      {
++                        if ((*pat)->family == AF_INET
++                            && req->ai_family == AF_INET6
++                            && (req->ai_flags & AI_V4MAPPED) != 0)
++                          {
++                            uint32_t *pataddr = (*pat)->addr;
++                            (*pat)->family = AF_INET6;
++                            pataddr[3] = pataddr[0];
++                            pataddr[2] = htonl (0xffff);
++                            pataddr[1] = 0;
++                            pataddr[0] = 0;
++                            pat = &((*pat)->next);
++                            no_data = 0;
++                          }
++                        else if (req->ai_family == AF_UNSPEC
++                                 || (*pat)->family == req->ai_family)
++                          {
++                            pat = &((*pat)->next);
++
++                            no_data = 0;
++                            if (req->ai_family == AF_INET6)
++                              got_ipv6 = true;
++                          }
++                        else
++                          *pat = ((*pat)->next);
++                      }
+                   }
++
++                no_inet6_data = no_data;
+               }
+             else
+               {
+@@ -905,39 +934,9 @@ gaih_inet (const char *name, const struc
+         {
+           if (canon == NULL)
+             {
+-              struct hostent *h = NULL;
+-              int herrno;
+-              struct hostent th;
+-              size_t tmpbuflen = 512;
+-              char *tmpbuf = NULL;
+-
+-              do
+-                {
+-                  tmpbuf = extend_alloca (tmpbuf, tmpbuflen, tmpbuflen * 2);
+-                  rc = __gethostbyaddr_r (at2->addr,
+-                                          ((at2->family == AF_INET6)
+-                                           ? sizeof (struct in6_addr)
+-                                           : sizeof (struct in_addr)),
+-                                          at2->family, &th, tmpbuf,
+-                                          tmpbuflen, &h, &herrno);
+-                }
+-              while (rc == ERANGE && herrno == NETDB_INTERNAL);
+-
+-              if (rc != 0 && herrno == NETDB_INTERNAL)
+-                {
+-                  __set_h_errno (herrno);
+-                  return -EAI_SYSTEM;
+-                }
+-
+-              if (h != NULL)
+-                canon = h->h_name;
+-              else
+-                {
+-                  assert (orig_name != NULL);
+-                  /* If the canonical name cannot be determined, use
+-                     the passed in string.  */
+-                  canon = orig_name;
+-                }
++              /* If the canonical name cannot be determined, use
++                 the passed in string.  */
++              canon = orig_name;
+             }
+ #ifdef HAVE_LIBIDN
diff --git a/src/patches/glibc/glibc-rh718057.patch b/src/patches/glibc/glibc-rh718057.patch
new file mode 100644 (file)
index 0000000..d331996
--- /dev/null
@@ -0,0 +1,109 @@
+2011-07-01  Andreas Schwab  <schwab@redhat.com>
+
+       * nis/nss_compat/compat-pwd.c (getpwent_next_nss_netgr): Query NIS
+       domain only when needed.
+
+Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-pwd.c
++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-pwd.c
+@@ -360,7 +360,7 @@ getpwent_next_nss_netgr (const char *nam
+                        char *group, char *buffer, size_t buflen,
+                        int *errnop)
+ {
+-  char *curdomain, *host, *user, *domain, *p2;
++  char *curdomain = NULL, *host, *user, *domain, *p2;
+   int status;
+   size_t p2len;
+@@ -369,15 +369,7 @@ getpwent_next_nss_netgr (const char *nam
+   if (!nss_getpwnam_r)
+     return NSS_STATUS_UNAVAIL;
+-  if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
+-    {
+-      ent->netgroup = false;
+-      ent->first = false;
+-      give_pwd_free (&ent->pwd);
+-      return NSS_STATUS_UNAVAIL;
+-    }
+-
+-  if (ent->first == true)
++  if (ent->first)
+     {
+       memset (&ent->netgrdata, 0, sizeof (struct __netgrent));
+       __internal_setnetgrent (group, &ent->netgrdata);
+@@ -403,8 +395,19 @@ getpwent_next_nss_netgr (const char *nam
+       if (user == NULL || user[0] == '-')
+       continue;
+-      if (domain != NULL && strcmp (curdomain, domain) != 0)
+-      continue;
++      if (domain != NULL)
++      {
++        if (curdomain == NULL
++            && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
++          {
++            __internal_endnetgrent (&ent->netgrdata);
++            ent->netgroup = false;
++            give_pwd_free (&ent->pwd);
++            return NSS_STATUS_UNAVAIL;
++          }
++        if (strcmp (curdomain, domain) != 0)
++          continue;
++      }
+       /* If name != NULL, we are called from getpwnam.  */
+       if (name != NULL)
+Index: glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nis/nss_compat/compat-spwd.c
++++ glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-spwd.c
+@@ -317,7 +317,7 @@ getspent_next_nss_netgr (const char *nam
+                        char *group, char *buffer, size_t buflen,
+                        int *errnop)
+ {
+-  char *curdomain, *host, *user, *domain, *p2;
++  char *curdomain = NULL, *host, *user, *domain, *p2;
+   size_t p2len;
+   if (!nss_getspnam_r)
+@@ -327,15 +327,7 @@ getspent_next_nss_netgr (const char *nam
+   if (ent->setent_status != NSS_STATUS_SUCCESS)
+     return ent->setent_status;
+-  if (yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
+-    {
+-      ent->netgroup = false;
+-      ent->first = false;
+-      give_spwd_free (&ent->pwd);
+-      return NSS_STATUS_UNAVAIL;
+-    }
+-
+-  if (ent->first == true)
++  if (ent->first)
+     {
+       memset (&ent->netgrdata, 0, sizeof (struct __netgrent));
+       __internal_setnetgrent (group, &ent->netgrdata);
+@@ -362,8 +354,19 @@ getspent_next_nss_netgr (const char *nam
+       if (user == NULL || user[0] == '-')
+       continue;
+-      if (domain != NULL && strcmp (curdomain, domain) != 0)
+-      continue;
++      if (domain != NULL)
++      {
++        if (curdomain == NULL
++            && yp_get_default_domain (&curdomain) != YPERR_SUCCESS)
++          {
++            __internal_endnetgrent (&ent->netgrdata);
++            ent->netgroup = false;
++            give_spwd_free (&ent->pwd);
++            return NSS_STATUS_UNAVAIL;
++          }
++        if (strcmp (curdomain, domain) != 0)
++          continue;
++      }
+       /* If name != NULL, we are called from getpwnam */
+       if (name != NULL)
diff --git a/src/patches/glibc/glibc-rh726517.patch b/src/patches/glibc/glibc-rh726517.patch
new file mode 100644 (file)
index 0000000..26addbf
--- /dev/null
@@ -0,0 +1,173 @@
+Index: glibc-2.12-2-gc4ccff1/malloc/arena.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/arena.c
++++ glibc-2.12-2-gc4ccff1/malloc/arena.c
+@@ -870,7 +870,7 @@ heap_trim(heap, pad) heap_info *heap; si
+     heap = prev_heap;
+     if(!prev_inuse(p)) { /* consolidate backward */
+       p = prev_chunk(p);
+-      unlink(p, bck, fwd);
++      unlink(ar_ptr, p, bck, fwd);
+     }
+     assert(((unsigned long)((char*)p + new_size) & (pagesz-1)) == 0);
+     assert( ((char*)p + new_size) == ((char*)heap + heap->size) );
+Index: glibc-2.12-2-gc4ccff1/malloc/hooks.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/hooks.c
++++ glibc-2.12-2-gc4ccff1/malloc/hooks.c
+@@ -219,7 +219,9 @@ top_check()
+       (char*)t + chunksize(t) == mp_.sbrk_base + main_arena.system_mem)))
+     return 0;
++  mutex_unlock(&main_arena);
+   malloc_printerr (check_action, "malloc: top chunk is corrupt", t);
++  mutex_lock(&main_arena);
+   /* Try to set up a new top chunk. */
+   brk = MORECORE(0);
+Index: glibc-2.12-2-gc4ccff1/malloc/malloc.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/malloc/malloc.c
++++ glibc-2.12-2-gc4ccff1/malloc/malloc.c
+@@ -2109,12 +2109,14 @@ typedef struct malloc_chunk* mbinptr;
+ #define last(b)      ((b)->bk)
+ /* Take a chunk off a bin list */
+-#define unlink(P, BK, FD) {                                            \
++#define unlink(AV, P, BK, FD) {                                              \
+   FD = P->fd;                                                          \
+   BK = P->bk;                                                          \
+-  if (__builtin_expect (FD->bk != P || BK->fd != P, 0))                \
++  if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) {            \
++    mutex_unlock(&(AV)->mutex);                                              \
+     malloc_printerr (check_action, "corrupted double-linked list", P); \
+-  else {                                                               \
++    mutex_lock(&(AV)->mutex);                                        \
++  } else {                                                           \
+     FD->bk = BK;                                                       \
+     BK->fd = FD;                                                       \
+     if (!in_smallbin_range (P->size)                                 \
+@@ -3257,7 +3259,9 @@ static Void_t* sYSMALLOc(nb, av) INTERNA
+     else if (contiguous(av) && old_size && brk < old_end) {
+       /* Oops!  Someone else killed our space..  Can't touch anything.  */
++      mutex_unlock(&av->mutex);
+       malloc_printerr (3, "break adjusted to free malloc space", brk);
++      mutex_lock(&av->mutex);
+     }
+     /*
+@@ -4305,7 +4309,9 @@ _int_malloc(mstate av, size_t bytes)
+       {
+         errstr = "malloc(): memory corruption (fast)";
+       errout:
++        mutex_unlock(&av->mutex);
+         malloc_printerr (check_action, errstr, chunk2mem (victim));
++        mutex_lock(&av->mutex);
+         return NULL;
+       }
+ #ifndef ATOMIC_FASTBINS
+@@ -4393,8 +4399,12 @@ _int_malloc(mstate av, size_t bytes)
+       bck = victim->bk;
+       if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)
+         || __builtin_expect (victim->size > av->system_mem, 0))
+-      malloc_printerr (check_action, "malloc(): memory corruption",
+-                       chunk2mem (victim));
++      {
++        void *p = chunk2mem(victim);
++        mutex_unlock(&av->mutex);
++        malloc_printerr (check_action, "malloc(): memory corruption", p);
++        mutex_lock(&av->mutex);
++      }
+       size = chunksize(victim);
+       /*
+@@ -4535,7 +4545,7 @@ _int_malloc(mstate av, size_t bytes)
+         victim = victim->fd;
+       remainder_size = size - nb;
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE)  {
+@@ -4633,7 +4643,7 @@ _int_malloc(mstate av, size_t bytes)
+       remainder_size = size - nb;
+       /* unlink */
+-      unlink(victim, bck, fwd);
++      unlink(av, victim, bck, fwd);
+       /* Exhaust */
+       if (remainder_size < MINSIZE) {
+@@ -4789,10 +4799,14 @@ _int_free(mstate av, mchunkptr p)
+       errstr = "free(): invalid pointer";
+     errout:
+ #ifdef ATOMIC_FASTBINS
+-      if (! have_lock && locked)
++      if (have_lock || locked)
+       (void)mutex_unlock(&av->mutex);
+ #endif
+       malloc_printerr (check_action, errstr, chunk2mem(p));
++#ifdef ATOMIC_FASTBINS
++      if (have_lock)
++      mutex_lock(&av->mutex);
++#endif
+       return;
+     }
+   /* We know that each chunk is at least MINSIZE bytes in size.  */
+@@ -4961,7 +4975,7 @@ _int_free(mstate av, mchunkptr p)
+       prevsize = p->prev_size;
+       size += prevsize;
+       p = chunk_at_offset(p, -((long) prevsize));
+-      unlink(p, bck, fwd);
++      unlink(av, p, bck, fwd);
+     }
+     if (nextchunk != av->top) {
+@@ -4970,7 +4984,7 @@ _int_free(mstate av, mchunkptr p)
+       /* consolidate forward */
+       if (!nextinuse) {
+-      unlink(nextchunk, bck, fwd);
++      unlink(av, nextchunk, bck, fwd);
+       size += nextsize;
+       } else
+       clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -5158,7 +5172,7 @@ static void malloc_consolidate(av) mstat
+           prevsize = p->prev_size;
+           size += prevsize;
+           p = chunk_at_offset(p, -((long) prevsize));
+-          unlink(p, bck, fwd);
++          unlink(av, p, bck, fwd);
+         }
+         if (nextchunk != av->top) {
+@@ -5166,7 +5180,7 @@ static void malloc_consolidate(av) mstat
+           if (!nextinuse) {
+             size += nextsize;
+-            unlink(nextchunk, bck, fwd);
++            unlink(av, nextchunk, bck, fwd);
+           } else
+             clear_inuse_bit_at_offset(nextchunk, 0);
+@@ -5235,7 +5249,9 @@ _int_realloc(mstate av, mchunkptr oldp, 
+     {
+       errstr = "realloc(): invalid old size";
+     errout:
++      mutex_unlock(&av->mutex);
+       malloc_printerr (check_action, errstr, chunk2mem(oldp));
++      mutex_lock(&av->mutex);
+       return NULL;
+     }
+@@ -5282,7 +5298,7 @@ _int_realloc(mstate av, mchunkptr oldp, 
+              (unsigned long)(newsize = oldsize + nextsize) >=
+              (unsigned long)(nb)) {
+       newp = oldp;
+-      unlink(next, bck, fwd);
++      unlink(av, next, bck, fwd);
+       }
+       /* allocate, copy, free */
diff --git a/src/patches/glibc/glibc-rh730379.patch b/src/patches/glibc/glibc-rh730379.patch
new file mode 100644 (file)
index 0000000..45808af
--- /dev/null
@@ -0,0 +1,34 @@
+2011-08-17  Ulrich Drepper  <drepper@gmail.com>
+
+       * Makeconfig (override CFLAGS): Add library-specific CFLAGS.
+       * resolv/Makefile: Define CFLAGS-libresolv.
+
+Index: glibc-2.12-2-gc4ccff1/Makeconfig
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/Makeconfig
++++ glibc-2.12-2-gc4ccff1/Makeconfig
+@@ -700,7 +700,9 @@ CPPFLAGS = $($(subdir)-CPPFLAGS) $(+incl
+ override CFLAGS       = -std=gnu99 $(gnu89-inline-CFLAGS) \
+                 $(filter-out %frame-pointer,$(+cflags)) $(+gccwarn-c) \
+                 $(sysdep-CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) \
+-                $(CFLAGS-$(@F))
++                $(CFLAGS-$(@F)) \
++                $(foreach lib,$(libof-$(basename $(@F))) \
++                              $(libof-$(<F)) $(libof-$(@F)),$(CFLAGS-$(lib)))
+ override CXXFLAGS = $(c++-sysincludes) \
+                   $(filter-out %frame-pointer,$(+cflags)) $(sysdep-CFLAGS) \
+                   $(CFLAGS-$(suffix $@)) $(CFLAGS-$(<F)) $(CFLAGS-$(@F))
+Index: glibc-2.12-2-gc4ccff1/resolv/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/resolv/Makefile
++++ glibc-2.12-2-gc4ccff1/resolv/Makefile
+@@ -76,6 +76,9 @@ CPPFLAGS += -Dgethostbyname=res_gethostb
+           -Dgetnetbyname=res_getnetbyname \
+           -Dgetnetbyaddr=res_getnetbyaddr
++ifeq (yes,$(have-ssp))
++CFLAGS-libresolv += -fstack-protector
++endif
+ CFLAGS-res_hconf.c = -fexceptions
+ CFLAGS-res_send.c += -fno-strict-aliasing
diff --git a/src/patches/glibc/glibc-rh731042.patch b/src/patches/glibc/glibc-rh731042.patch
new file mode 100644 (file)
index 0000000..d2f7b55
--- /dev/null
@@ -0,0 +1,51 @@
+2011-08-08  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/x86_64/cancellation.S: Maintain aligned
+       stack.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S: Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
+@@ -71,7 +71,9 @@ ENTRY(__pthread_enable_asynccancel)
+ 1:    ret
+-3:    movq    $TCB_PTHREAD_CANCELED, %fs:RESULT
++3:    subq    $8, %rsp
++      cfi_adjust_cfa_offset(8)
++      movq    $TCB_PTHREAD_CANCELED, %fs:RESULT
+       lock
+       orl     $TCB_EXITING_BITMASK, %fs:CANCELHANDLING
+       movq    %fs:CLEANUP_JMP_BUF, %rdi
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
+@@ -63,9 +63,9 @@ __pthread_cond_timedwait:
+       cfi_adjust_cfa_offset(8)
+       cfi_rel_offset(%r15, 0)
+ #ifdef __ASSUME_FUTEX_CLOCK_REALTIME
+-# define FRAME_SIZE 32
++# define FRAME_SIZE (32+8)
+ #else
+-# define FRAME_SIZE 48
++# define FRAME_SIZE (48+8)
+ #endif
+       subq    $FRAME_SIZE, %rsp
+       cfi_adjust_cfa_offset(FRAME_SIZE)
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
+@@ -45,7 +45,7 @@ __pthread_cond_wait:
+       cfi_lsda(DW_EH_PE_udata4, .LexceptSTART)
+ #endif
+-#define FRAME_SIZE 32
++#define FRAME_SIZE (32+8)
+       leaq    -FRAME_SIZE(%rsp), %rsp
+       cfi_adjust_cfa_offset(FRAME_SIZE)
diff --git a/src/patches/glibc/glibc-rh736346.patch b/src/patches/glibc/glibc-rh736346.patch
new file mode 100644 (file)
index 0000000..2dd3f8a
--- /dev/null
@@ -0,0 +1,116 @@
+2011-01-14  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10563]
+       * sysdeps/unix/sysv/linux/i386/setgroups.c: Use INLINE_SETXID_SYSCALL
+       to make the syscall.
+       * sysdeps/unix/sysv/linux/setgroups.c: New file.
+
+2011-01-14  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #10563]
+       * sysdeps/pthread/setxid.h (__SETXID_1): Add cast to assignment.
+       (__SETXID_2): Likewise.
+       (__SETXID_3): Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/setxid.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/setxid.h
+@@ -20,11 +20,11 @@
+ #include <sysdep.h>
+ #define __SETXID_1(cmd, arg1) \
+-  cmd.id[0] = arg1
++  cmd.id[0] = (long int) arg1
+ #define __SETXID_2(cmd, arg1, arg2) \
+-  __SETXID_1 (cmd, arg1); cmd.id[1] = arg2
++  __SETXID_1 (cmd, arg1); cmd.id[1] = (long int) arg2
+ #define __SETXID_3(cmd, arg1, arg2, arg3) \
+-  __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = arg3
++  __SETXID_2 (cmd, arg1, arg2); cmd.id[2] = (long int) arg3
+ #ifdef SINGLE_THREAD
+ # define INLINE_SETXID_SYSCALL(name, nr, args...) \
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/i386/setgroups.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/i386/setgroups.c
+@@ -25,6 +25,7 @@
+ #include <sys/syscall.h>
+ #include <bp-checks.h>
++#include <setxid.h>
+ #include <linux/posix_types.h>
+ #include <kernel-features.h>
+@@ -44,7 +45,7 @@ int
+ setgroups (size_t n, const gid_t *groups)
+ {
+ #if __ASSUME_32BITUIDS > 0
+-  return INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
++  return INLINE_SETXID_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
+ #else
+   if (n > (size_t) __sysconf (_SC_NGROUPS_MAX))
+     {
+@@ -62,7 +63,8 @@ setgroups (size_t n, const gid_t *groups
+         int result;
+         int saved_errno = errno;
+-        result = INLINE_SYSCALL (setgroups32, 2, n, CHECK_N (groups, n));
++        result = INLINE_SETXID_SYSCALL (setgroups32, 2, n,
++                                        CHECK_N (groups, n));
+         if (result == 0 || errno != ENOSYS)
+           return result;
+@@ -80,7 +82,8 @@ setgroups (size_t n, const gid_t *groups
+           }
+       }
+-      return INLINE_SYSCALL (setgroups, 2, n, CHECK_N (kernel_groups, n));
++      return INLINE_SETXID_SYSCALL (setgroups, 2, n,
++                                  CHECK_N (kernel_groups, n));
+     }
+ #endif
+ }
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c
+===================================================================
+--- /dev/null
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/setgroups.c
+@@ -0,0 +1,37 @@
++/* Copyright (C) 1997,1998,2000,2002,2004,2006,2011
++   Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <errno.h>
++#include <grp.h>
++#include <setxid.h>
++#include <sysdep.h>
++
++
++/* Set the group set for the current user to GROUPS (N of them).  For
++   Linux we must convert the array of groups into the format that the
++   kernel expects.  */
++int
++setgroups (size_t n, const gid_t *groups)
++{
++#ifdef __NR_setgroups32
++# error "wrong setgroups.c file used"
++#endif
++  return INLINE_SETXID_SYSCALL (setgroups, 2, n, groups);
++}
++libc_hidden_def (setgroups)
diff --git a/src/patches/glibc/glibc-rh737778.patch b/src/patches/glibc/glibc-rh737778.patch
new file mode 100644 (file)
index 0000000..5d3c131
--- /dev/null
@@ -0,0 +1,122 @@
+2011-08-14  Roland McGrath  <roland@hack.frob.com>
+
+       * locale/Makefile (locale-CPPFLAGS): Renamed CPPFLAGS-locale-programs.
+       (locale-CPPFLAGS): New variable; put LOCALEDIR, LOCALE_ALIAS_PATH and
+       -Iprograms here.
+       (cppflags-iterator.mk sequence): Use locale-programs in place of nonlib.
+       (localedef-modules): Add localedef.
+       (locale-modules): Add locale.
+
+2011-08-13  Ulrich Drepper  <drepper@gmail.com>
+
+       * intl/l10nflist.c (_nl_normalize_codeset): Make it compile outside
+       of libc.  Make tolower call locale-independent.  Optimize a bit by
+       using isdigit instead of isalnum.
+       * locale/Makefile (locale-CPPFLAGS): Add -DNOT_IN_libc.
+
+2011-08-11  Ulrich Drepper  <drepper@gmail.com>
+
+       * intl/l10nflist.c (_nl_make_l10nflist): Use locale-independent
+       classification.
+
+Index: glibc-2.12-2-gc4ccff1/intl/l10nflist.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/intl/l10nflist.c
++++ glibc-2.12-2-gc4ccff1/intl/l10nflist.c
+@@ -332,13 +332,18 @@ _nl_normalize_codeset (codeset, name_len
+   char *retval;
+   char *wp;
+   size_t cnt;
++#ifdef NOT_IN_libc
++  locale_t locale = newlocale (0, "C", NULL);
++#else
++# define locale _nl_C_locobj_ptr
++#endif
+   for (cnt = 0; cnt < name_len; ++cnt)
+-    if (isalnum ((unsigned char) codeset[cnt]))
++    if (__isalnum_l ((unsigned char) codeset[cnt], locale))
+       {
+       ++len;
+-      if (isalpha ((unsigned char) codeset[cnt]))
++      if (! __isdigit_l ((unsigned char) codeset[cnt], locale))
+         only_digit = 0;
+       }
+@@ -346,15 +351,14 @@ _nl_normalize_codeset (codeset, name_len
+   if (retval != NULL)
+     {
++      wp = retval;
+       if (only_digit)
+-      wp = stpcpy (retval, "iso");
+-      else
+-      wp = retval;
++      wp = stpcpy (wp, "iso");
+       for (cnt = 0; cnt < name_len; ++cnt)
+-      if (isalpha ((unsigned char) codeset[cnt]))
+-        *wp++ = tolower ((unsigned char) codeset[cnt]);
+-      else if (isdigit ((unsigned char) codeset[cnt]))
++      if (__isalpha_l ((unsigned char) codeset[cnt], locale))
++        *wp++ = __tolower_l ((unsigned char) codeset[cnt], locale);
++      else if (__isdigit_l ((unsigned char) codeset[cnt], locale))
+         *wp++ = codeset[cnt];
+       *wp = '\0';
+Index: glibc-2.12-2-gc4ccff1/locale/Makefile
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/locale/Makefile
++++ glibc-2.12-2-gc4ccff1/locale/Makefile
+@@ -59,10 +59,11 @@ vpath %.c programs ../crypt
+ vpath %.h programs
+ vpath %.gperf programs
+-localedef-modules     := $(categories:%=ld-%) charmap linereader locfile \
++localedef-modules     := localedef $(categories:%=ld-%) \
++                         charmap linereader locfile \
+                          repertoire locarchive
+ localedef-aux         := md5
+-locale-modules                := locale-spec
++locale-modules                := locale locale-spec
+ lib-modules           := charmap-dir simple-hash xmalloc xstrdup
+@@ -90,22 +91,27 @@ endif
+ localepath = "$(localedir):$(i18ndir)"
+-locale-CPPFLAGS := -DLOCALE_PATH='$(localepath)' \
+-                 -DLOCALEDIR='"$(localedir)"' \
+-                 -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \
+-                 -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
+-                 -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
+-                 -DLOCSRCDIR='"$(i18ndir)/locales"' -DHAVE_CONFIG_H \
+-                 -Iprograms
++# -Iprograms doesn't really belong here, but this gets it at the head
++# of the list instead of the tail, where CPPFLAGS-$(lib) gets added.
++# We need it before the standard -I's to see programs/config.h first.
++locale-CPPFLAGS = -DLOCALEDIR='"$(localedir)"' \
++                -DLOCALE_ALIAS_PATH='"$(msgcatdir)"' \
++                -Iprograms
++
++CPPFLAGS-locale-programs = -DLOCALE_PATH='$(localepath)' \
++                         -DCHARMAP_PATH='"$(i18ndir)/charmaps"' \
++                         -DREPERTOIREMAP_PATH='"$(i18ndir)/repertoiremaps"' \
++                         -DLOCSRCDIR='"$(i18ndir)/locales"' \
++                         -DHAVE_CONFIG_H -DNOT_IN_libc
+ CFLAGS-charmap.c = -Wno-write-strings -Wno-char-subscripts
+ CFLAGS-locfile.c = -Wno-write-strings -Wno-char-subscripts
+ CFLAGS-charmap-dir.c = -Wno-write-strings
+-# This makes sure -DNOT_IN_libc is passed for all these modules.
++# This makes sure -DNOT_IN_libc et al are passed for all these modules.
+ cpp-srcs-left := $(addsuffix .c,$(localedef-modules) $(localedef-aux) \
+                               $(locale-modules) $(lib-modules))
+-lib := nonlib
++lib := locale-programs
+ include $(patsubst %,$(..)cppflags-iterator.mk,$(cpp-srcs-left))
+ # Depend on libc.so so a DT_NEEDED is generated in the shared objects.
diff --git a/src/patches/glibc/glibc-rh738665.patch b/src/patches/glibc/glibc-rh738665.patch
new file mode 100644 (file)
index 0000000..1eea554
--- /dev/null
@@ -0,0 +1,149 @@
+2011-09-15  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/pthread/list.h: Define only list_t if __need_list_t is
+       defined.
+       (list_add): Add atomic_write_barrier.
+       * descr.h: Define __need_list_t before including <list.h>.
+       * nptl-init.c: Include <list.h>
+       * allocatestack.c: Likewise.
+
+2011-09-15  Andreas Schwab  <schwab@redhat.com>
+
+       * thread_dbP.h: Include <list.h>
+
+Index: glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/allocatestack.c
++++ glibc-2.12-2-gc4ccff1/nptl/allocatestack.c
+@@ -27,6 +27,7 @@
+ #include <sys/param.h>
+ #include <dl-sysdep.h>
+ #include <tls.h>
++#include <list.h>
+ #include <lowlevellock.h>
+ #include <kernel-features.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/descr.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/descr.h
++++ glibc-2.12-2-gc4ccff1/nptl/descr.h
+@@ -26,6 +26,7 @@
+ #include <stdbool.h>
+ #include <sys/types.h>
+ #include <hp-timing.h>
++#define __need_list_t
+ #include <list.h>
+ #include <lowlevellock.h>
+ #include <pthreaddef.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/nptl-init.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/nptl-init.c
++++ glibc-2.12-2-gc4ccff1/nptl/nptl-init.c
+@@ -29,6 +29,7 @@
+ #include <atomic.h>
+ #include <ldsodefs.h>
+ #include <tls.h>
++#include <list.h>
+ #include <fork.h>
+ #include <version.h>
+ #include <shlib-compat.h>
+Index: glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl/sysdeps/pthread/list.h
++++ glibc-2.12-2-gc4ccff1/nptl/sysdeps/pthread/list.h
+@@ -18,27 +18,39 @@
+    02111-1307 USA.  */
+ #ifndef _LIST_H
+-#define _LIST_H       1
++
++#ifndef __need_list_t
++# define _LIST_H      1
++#endif
+ /* The definitions of this file are adopted from those which can be
+    found in the Linux kernel headers to enable people familiar with
+    the latter find their way in these sources as well.  */
++#if defined __need_list_t || defined _LIST_H
++# ifndef __list_t_defined
++#  define __list_t_defined
+ /* Basic type for the double-link list.  */
+ typedef struct list_head
+ {
+   struct list_head *next;
+   struct list_head *prev;
+ } list_t;
++# endif
++# undef __need_list_t
++#endif
++
++#ifdef _LIST_H
++# include <atomic.h>
+ /* Define a variable with the head and tail of the list.  */
+-#define LIST_HEAD(name) \
++# define LIST_HEAD(name) \
+   list_t name = { &(name), &(name) }
+ /* Initialize a new list head.  */
+-#define INIT_LIST_HEAD(ptr) \
++# define INIT_LIST_HEAD(ptr) \
+   (ptr)->next = (ptr)->prev = (ptr)
+@@ -49,6 +61,7 @@ list_add (list_t *newp, list_t *head)
+   newp->next = head->next;
+   newp->prev = head;
+   head->next->prev = newp;
++  atomic_write_barrier ();
+   head->next = newp;
+ }
+@@ -78,26 +91,28 @@ list_splice (list_t *add, list_t *head)
+ /* Get typed element from list at a given position.  */
+-#define list_entry(ptr, type, member) \
++# define list_entry(ptr, type, member) \
+   ((type *) ((char *) (ptr) - (unsigned long) (&((type *) 0)->member)))
+ /* Iterate forward over the elements of the list.  */
+-#define list_for_each(pos, head) \
++# define list_for_each(pos, head) \
+   for (pos = (head)->next; pos != (head); pos = pos->next)
+ /* Iterate forward over the elements of the list.  */
+-#define list_for_each_prev(pos, head) \
++# define list_for_each_prev(pos, head) \
+   for (pos = (head)->prev; pos != (head); pos = pos->prev)
+ /* Iterate backwards over the elements list.  The list elements can be
+    removed from the list while doing this.  */
+-#define list_for_each_prev_safe(pos, p, head) \
++# define list_for_each_prev_safe(pos, p, head) \
+   for (pos = (head)->prev, p = pos->prev; \
+        pos != (head); \
+        pos = p, p = pos->prev)
++#endif /* _LIST_H */
++
+ #endif        /* list.h */
+Index: glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/nptl_db/thread_dbP.h
++++ glibc-2.12-2-gc4ccff1/nptl_db/thread_dbP.h
+@@ -29,6 +29,7 @@
+ #include "proc_service.h"
+ #include "thread_db.h"
+ #include "../nptl/pthreadP.h"         /* This is for *_BITMASK only.  */
++#include <list.h>
+ /* Indeces for the symbol names.  */
+ enum
diff --git a/src/patches/glibc/glibc-rh738763.patch b/src/patches/glibc/glibc-rh738763.patch
new file mode 100644 (file)
index 0000000..728464d
--- /dev/null
@@ -0,0 +1,17 @@
+2011-09-15  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/unix/sysv/linux/bits/in.h (IP_MULTICAST_ALL): Define.
+       Patch mostly by Neil Horman <nhorman@tuxdriver.com>.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/bits/in.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/bits/in.h
+@@ -70,6 +70,7 @@
+ #define IP_XFRM_POLICY        17
+ #define IP_PASSSEC    18
+ #define IP_TRANSPARENT        19
++#define IP_MULTICAST_ALL 49   /* bool */
+ /* TProxy original addresses */
+ #define IP_ORIGDSTADDR       20
diff --git a/src/patches/glibc/glibc-rh739184.patch b/src/patches/glibc/glibc-rh739184.patch
new file mode 100644 (file)
index 0000000..cf12246
--- /dev/null
@@ -0,0 +1,18 @@
+2010-06-10  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/getpagesize.c: Don't assume AT_PAGESIZE
+       is always available.
+
+Index: glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/unix/sysv/linux/getpagesize.c
++++ glibc-2.12-2-gc4ccff1/sysdeps/unix/sysv/linux/getpagesize.c
+@@ -28,7 +28,7 @@
+ int
+ __getpagesize ()
+ {
+-#ifdef __ASSUME_AT_PAGESIZE
++#if 0 && defined __ASSUME_AT_PAGESIZE
+   assert (GLRO(dl_pagesize) != 0);
+   return GLRO(dl_pagesize);
+ #else
diff --git a/src/patches/glibc/glibc-rh739971.patch b/src/patches/glibc/glibc-rh739971.patch
new file mode 100644 (file)
index 0000000..960c192
--- /dev/null
@@ -0,0 +1,44 @@
+commit 32c76b63be605d12314e0c6ac2bd702c883d1423
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Sep 26 17:49:14 2011 +0200
+
+    Correctly reparse group line after enlarging the buffer
+
+diff --git a/nss/nss_files/files-initgroups.c b/nss/nss_files/files-initgroups.c
+index 113abf2..c343b35 100644
+--- a/nss/nss_files/files-initgroups.c
++++ b/nss/nss_files/files-initgroups.c
+@@ -52,8 +52,10 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+   gid_t *groups = *groupsp;
+   /* We have to iterate over the entire file.  */
+-  while (!feof_unlocked (stream))
++  while (1)
+     {
++      fpos_t pos;
++      fgetpos (stream, &pos);
+       ssize_t n = getline (&line, &linelen, stream);
+       if (n < 0)
+       {
+@@ -64,9 +66,8 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+       }
+       struct group grp;
+-      int res;
+-      while ((res = _nss_files_parse_grent (line, &grp, buffer, buflen,
+-                                          errnop)) == -1)
++      int res = _nss_files_parse_grent (line, &grp, buffer, buflen, errnop);
++      if (res == -1)
+       {
+         size_t newbuflen = 2 * buflen;
+         if (buffer_use_malloc || ! __libc_use_alloca (buflen + newbuflen))
+@@ -85,6 +86,9 @@ _nss_files_initgroups_dyn (const char *user, gid_t group, long int *start,
+           }
+         else
+           buffer = extend_alloca (buffer, buflen, newbuflen);
++        /* Reread current line, the parser has clobbered it.  */
++        fsetpos (stream, &pos);
++        continue;
+       }
+       if (res > 0 && grp.gr_gid != group)
diff --git a/src/patches/glibc/glibc-rh740506-2.patch b/src/patches/glibc/glibc-rh740506-2.patch
new file mode 100644 (file)
index 0000000..adefea0
--- /dev/null
@@ -0,0 +1,35 @@
+       * malloc/arena.c (arena_get2): Avoid unnecessarily
+       retrieving #cpus from /proc.
+       * malloc/malloc.c (mALLOPt): Clamp arena_test based on
+       the value of arena_max.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index cb8548b..00f1da5 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -828,7 +828,7 @@ arena_get2(mstate a_tsd, size_t size)
+       {
+         if (mp_.arena_max != 0)
+           narenas_limit = mp_.arena_max;
+-        else
++        else if (narenas > mp_.arena_test)
+           {
+             int n  = __get_nprocs ();
+diff --git a/malloc/malloc.c b/malloc/malloc.c
+index 8608083..f8d32da 100644
+--- a/malloc/malloc.c
++++ b/malloc/malloc.c
+@@ -6134,6 +6134,12 @@ int mALLOPt(param_number, value) int par
+     break;
+ #endif
+   }
++#ifdef PER_THREAD
++  /* Clamp ARENA_TEST from ARENA_MAX to avoid creating too many
++     arenas.  */
++  if (mp_.arena_max > 0 && mp_.arena_max <= mp_.arena_test)
++    mp_.arena_test = mp_.arena_max - 1;
++#endif
+   (void)mutex_unlock(&av->mutex);
+   return res;
+ }
diff --git a/src/patches/glibc/glibc-rh740506.patch b/src/patches/glibc/glibc-rh740506.patch
new file mode 100644 (file)
index 0000000..6c74ccf
--- /dev/null
@@ -0,0 +1,132 @@
+2011-11-14  Andreas Schwab  <schwab@redhat.com>
+
+       * malloc/arena.c (arena_get2): Don't call reused_arena when
+       _int_new_arena failed.
+
+2011-11-10  Andreas Schwab  <schwab@redhat.com>
+
+       * malloc/arena.c (_int_new_arena): Don't increment narenas.
+       (reused_arena): Don't check arena limit.
+       (arena_get2): Atomically check arena limit.
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index 9114fd2..042cac8 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -747,8 +747,6 @@ _int_new_arena(size_t size)
+   main_arena.next = a;
+ #ifdef PER_THREAD
+-  ++narenas;
+-
+   (void)mutex_unlock(&list_lock);
+ #endif
+@@ -786,30 +784,6 @@ get_free_list (void)
+ static mstate
+ reused_arena (void)
+ {
+-  if (narenas <= mp_.arena_test)
+-    return NULL;
+-
+-  static int narenas_limit;
+-  if (narenas_limit == 0)
+-    {
+-      if (mp_.arena_max != 0)
+-      narenas_limit = mp_.arena_max;
+-      else
+-      {
+-        int n  = __get_nprocs ();
+-
+-        if (n >= 1)
+-          narenas_limit = NARENAS_FROM_NCORES (n);
+-        else
+-          /* We have no information about the system.  Assume two
+-             cores.  */
+-          narenas_limit = NARENAS_FROM_NCORES (2);
+-      }
+-    }
+-
+-  if (narenas < narenas_limit)
+-    return NULL;
+-
+   mstate result;
+   static mstate next_to_use;
+   if (next_to_use == NULL)
+@@ -844,10 +818,41 @@ arena_get2(mstate a_tsd, size_t size)
+   mstate a;
+ #ifdef PER_THREAD
+-  if ((a = get_free_list ()) == NULL
+-      && (a = reused_arena ()) == NULL)
+-    /* Nothing immediately available, so generate a new arena.  */
+-    a = _int_new_arena(size);
++  static size_t narenas_limit;
++
++  a = get_free_list ();
++  if (a == NULL)
++    {
++      /* Nothing immediately available, so generate a new arena.  */
++      if (narenas_limit == 0)
++      {
++        if (mp_.arena_max != 0)
++          narenas_limit = mp_.arena_max;
++        else
++          {
++            int n  = __get_nprocs ();
++
++            if (n >= 1)
++              narenas_limit = NARENAS_FROM_NCORES (n);
++            else
++              /* We have no information about the system.  Assume two
++                 cores.  */
++              narenas_limit = NARENAS_FROM_NCORES (2);
++          }
++      }
++    repeat:;
++      size_t n = narenas;
++      if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
++      {
++        if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n))
++          goto repeat;
++        a = _int_new_arena (size);
++        if (__builtin_expect (a != NULL, 1))
++          return a;
++        catomic_decrement(&narenas);
++      }
++      a = reused_arena ();
++    }
+ #else
+   if(!a_tsd)
+     a = a_tsd = &main_arena;
+
+commit a5fb313cb7b7e692fd4684916aaa98e03ec7e8b6
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Nov 14 11:41:52 2011 +0100
+
+    Don't call reused_arena when _int_new_arena failed
+
+diff --git a/malloc/arena.c b/malloc/arena.c
+index 042cac8..cb8548b 100644
+--- a/malloc/arena.c
++++ b/malloc/arena.c
+@@ -844,14 +844,14 @@ arena_get2(mstate a_tsd, size_t size)
+       size_t n = narenas;
+       if (__builtin_expect (n <= mp_.arena_test || n < narenas_limit, 0))
+       {
+-        if (catomic_compare_and_exchange_bool_acq(&narenas, n + 1, n))
++        if (catomic_compare_and_exchange_bool_acq (&narenas, n + 1, n))
+           goto repeat;
+         a = _int_new_arena (size);
+-        if (__builtin_expect (a != NULL, 1))
+-          return a;
+-        catomic_decrement(&narenas);
++        if (__builtin_expect (a == NULL, 0))
++          catomic_decrement (&narenas);
+       }
+-      a = reused_arena ();
++      else
++      a = reused_arena ();
+     }
+ #else
+   if(!a_tsd)
diff --git a/src/patches/glibc/glibc-rh749188.patch b/src/patches/glibc/glibc-rh749188.patch
new file mode 100644 (file)
index 0000000..43157cd
--- /dev/null
@@ -0,0 +1,32 @@
+commit 0e8131bb32cf026c87baeacb7abf2a9bdbbc4953
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Sun May 8 21:48:03 2011 -0400
+
+    Remove .UTF-8 suffix from locale names when it is the only supported codeset
+
+diff --git a/localedata/SUPPORTED b/localedata/SUPPORTED
+index d665961..e952c17 100644
+--- a/localedata/SUPPORTED
++++ b/localedata/SUPPORTED
+@@ -46,8 +46,8 @@ ar_TN.UTF-8/UTF-8 \
+ ar_TN/ISO-8859-6 \
+ ar_YE.UTF-8/UTF-8 \
+ ar_YE/ISO-8859-6 \
+-az_AZ.UTF-8/UTF-8 \
+-as_IN.UTF-8/UTF-8 \
++az_AZ/UTF-8 \
++as_IN/UTF-8 \
+ ast_ES.UTF-8/UTF-8 \
+ ast_ES/ISO-8859-15 \
+ be_BY.UTF-8/UTF-8 \
+@@ -385,8 +385,8 @@ tr_CY/ISO-8859-9 \
+ tr_TR.UTF-8/UTF-8 \
+ tr_TR/ISO-8859-9 \
+ ts_ZA/UTF-8 \
+-tt_RU.UTF-8/UTF-8 \
+-tt_RU.UTF-8@iqtelif/UTF-8 \
++tt_RU/UTF-8 \
++tt_RU@iqtelif/UTF-8 \
+ ug_CN/UTF-8 \
+ uk_UA.UTF-8/UTF-8 \
+ uk_UA/KOI8-U \
diff --git a/src/patches/glibc/glibc-rh750531.patch b/src/patches/glibc/glibc-rh750531.patch
new file mode 100644 (file)
index 0000000..a53e770
--- /dev/null
@@ -0,0 +1,122 @@
+commit 69da074d7adfab7b57004a0dea9403a928e310a5
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Wed Nov 10 02:38:35 2010 -0500
+
+    Fix warnings in __bswap_16.
+
+diff --git a/sysdeps/i386/bits/byteswap.h b/sysdeps/i386/bits/byteswap.h
+index 1f3fc5e..c246ae8 100644
+--- a/sysdeps/i386/bits/byteswap.h
++++ b/sysdeps/i386/bits/byteswap.h
+@@ -1,5 +1,5 @@
+ /* Macros to swap the order of bytes in integer values.
+-   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008
++   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2006, 2007, 2008, 2010
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -27,26 +27,27 @@
+ /* Swap bytes in 16 bit value.  */
+ #define __bswap_constant_16(x) \
+-     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++     ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
+ #ifdef __GNUC__
+ # if __GNUC__ >= 2
+ #  define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __v, __x = (x);                        \
++      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+        if (__builtin_constant_p (__x))                                      \
+          __v = __bswap_constant_16 (__x);                                   \
+        else                                                                 \
+          __asm__ ("rorw $8, %w0"                                            \
+                   : "=r" (__v)                                              \
+-                  : "0" (__x)                                               \
+-                  : "cc");                                                  \
++                  : "0" (__x)                                               \
++                  : "cc");                                                  \
+        __v; }))
+ # else
+ /* This is better than nothing.  */
+ #  define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
++      ({ register unsigned short int __x = (unsigned short int) (x);        \
++       __bswap_constant_16 (__x); }))
+ # endif
+ #else
+ static __inline unsigned short int
+@@ -122,7 +123,7 @@ __bswap_32 (unsigned int __bsx)
+      (__extension__                                                         \
+       ({ union { __extension__ unsigned long long int __ll;                 \
+                unsigned long int __l[2]; } __w, __r;                        \
+-         if (__builtin_constant_p (x))                                              \
++       if (__builtin_constant_p (x))                                        \
+          __r.__ll = __bswap_constant_64 (x);                                \
+        else                                                                 \
+          {                                                                  \
+diff --git a/sysdeps/x86_64/bits/byteswap.h b/sysdeps/x86_64/bits/byteswap.h
+index 08b38e8..e350fb8 100644
+--- a/sysdeps/x86_64/bits/byteswap.h
++++ b/sysdeps/x86_64/bits/byteswap.h
+@@ -1,5 +1,5 @@
+ /* Macros to swap the order of bytes in integer values.
+-   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008
++   Copyright (C) 1997, 1998, 2000, 2002, 2003, 2007, 2008, 2010
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -29,12 +29,12 @@
+ /* Swap bytes in 16 bit value.  */
+ #define __bswap_constant_16(x) \
+-     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++     ((unsigned short int) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8)))
+ #if defined __GNUC__ && __GNUC__ >= 2
+ # define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __v, __x = (x);                        \
++      ({ register unsigned short int __v, __x = (unsigned short int) (x);     \
+        if (__builtin_constant_p (__x))                                      \
+          __v = __bswap_constant_16 (__x);                                   \
+        else                                                                 \
+@@ -47,7 +47,8 @@
+ /* This is better than nothing.  */
+ # define __bswap_16(x) \
+      (__extension__                                                         \
+-      ({ register unsigned short int __x = (x); __bswap_constant_16 (__x); }))
++      ({ register unsigned short int __x = (unsigned short int) (x);          \
++       __bswap_constant_16 (__x); }))
+ #endif
+@@ -120,16 +121,16 @@
+ #  define __bswap_64(x) \
+      (__extension__                                                           \
+       ({ union { __extension__ unsigned long long int __ll;                   \
+-                 unsigned int __l[2]; } __w, __r;                             \
+-         if (__builtin_constant_p (x))                                        \
+-           __r.__ll = __bswap_constant_64 (x);                                \
+-         else                                                                 \
+-           {                                                                  \
+-             __w.__ll = (x);                                                  \
+-             __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
+-             __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
+-           }                                                                  \
+-         __r.__ll; }))
++               unsigned int __l[2]; } __w, __r;                             \
++       if (__builtin_constant_p (x))                                        \
++         __r.__ll = __bswap_constant_64 (x);                                \
++       else                                                                 \
++         {                                                                  \
++           __w.__ll = (x);                                                  \
++           __r.__l[0] = __bswap_32 (__w.__l[1]);                            \
++           __r.__l[1] = __bswap_32 (__w.__l[0]);                            \
++         }                                                                  \
++       __r.__ll; }))
+ # endif
+ #endif
diff --git a/src/patches/glibc/glibc-rh751750.patch b/src/patches/glibc/glibc-rh751750.patch
new file mode 100644 (file)
index 0000000..6f9dd12
--- /dev/null
@@ -0,0 +1,28 @@
+commit 7583a88d1c7170caad26966bcea8bfc2c92093ba
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Mon Nov 7 15:07:31 2011 +0100
+
+    Fix locking in _IO_flush_all_lockp
+
+diff --git a/libio/genops.c b/libio/genops.c
+index 5d21c42..bb40c34 100644
+--- a/libio/genops.c
++++ b/libio/genops.c
+@@ -826,7 +826,7 @@ _IO_flush_all_lockp (int do_lock)
+   int last_stamp;
+ #ifdef _IO_MTSAFE_IO
+-  _IO_cleanup_region_start_noarg (flush_cleanup);
++  __libc_cleanup_region_start (do_lock, flush_cleanup, 0);
+   if (do_lock)
+     _IO_lock_lock (list_all_lock);
+ #endif
+@@ -866,7 +866,7 @@ _IO_flush_all_lockp (int do_lock)
+ #ifdef _IO_MTSAFE_IO
+   if (do_lock)
+     _IO_lock_unlock (list_all_lock);
+-  _IO_cleanup_region_end (0);
++  __libc_cleanup_region_end (0);
+ #endif
+   return result;
diff --git a/src/patches/glibc/glibc-rh752122.patch b/src/patches/glibc/glibc-rh752122.patch
new file mode 100644 (file)
index 0000000..0176dc9
--- /dev/null
@@ -0,0 +1,260 @@
+2011-07-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Simplify
+       AVX check.
+
+2011-08-20  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.h: If MORE_CODE is defined, restore
+       the CFI state in the end.
+       * sysdeps/x86_64/dl-trampoline.S: Define MORE_CODE before first
+       inclusion of dl-trampoline.h.
+       Based on a patch by Jiri Olsa <jolsa@redhat.com>.
+
+2011-07-23  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix one more
+       typo.
+       (_dl_x86_64_save_sse): Likewise.
+
+2011-07-22  Ulrich Drepper  <drepper@gmail.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix test for
+       OSXSAVE.
+       (_dl_x86_64_save_sse): Likewise.
+
+2011-07-21  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): Fix last
+       change.
+       (_dl_x86_64_save_sse): Use correct AVX check.
+
+2011-07-20  Ulrich Drepper  <drepper@gmail.com>
+
+       [BZ #13007]
+       * sysdeps/x86_64/dl-trampoline.S (_dl_runtime_profile): More complete
+       check for AVX enablement so that we don't crash with old kernels and
+       new hardware.
+       * elf/tst-audit4.c: Add same checks here.
+       * elf/tst-audit6.c: Likewise.
+
+Index: glibc-2.12-2-gc4ccff1/elf/tst-audit4.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit4.c
++++ glibc-2.12-2-gc4ccff1/elf/tst-audit4.c
+@@ -6,16 +6,30 @@
+ #include <cpuid.h>
+ #include <immintrin.h>
++
++static int
++avx_enabled (void)
++{
++  unsigned int eax, ebx, ecx, edx;
++
++  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0
++      || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE))
++    return 0;
++
++  /* Check the OS has AVX and SSE saving enabled.  */
++  asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
++
++  return (eax & 6) == 6;
++}
++
++
+ extern __m256i audit_test (__m256i, __m256i, __m256i, __m256i,
+                          __m256i, __m256i, __m256i, __m256i);
+ int
+ main (void)
+ {
+-  unsigned int eax, ebx, ecx, edx;
+-
+   /* Run AVX test only if AVX is supported.  */
+-  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)
+-      && (ecx & bit_AVX))
++  if (avx_enabled ())
+     {
+       __m256i ymm = _mm256_setzero_si256 ();
+       __m256i ret = audit_test (ymm, ymm, ymm, ymm, ymm, ymm, ymm, ymm);
+Index: glibc-2.12-2-gc4ccff1/elf/tst-audit6.c
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/elf/tst-audit6.c
++++ glibc-2.12-2-gc4ccff1/elf/tst-audit6.c
+@@ -8,14 +8,28 @@
+ extern __m128i audit_test (__m128i, __m128i, __m128i, __m128i,
+                          __m128i, __m128i, __m128i, __m128i);
+-int
+-main (void)
++
++static int
++avx_enabled (void)
+ {
+   unsigned int eax, ebx, ecx, edx;
++  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx) == 0
++      || (ecx & (bit_AVX | bit_OSXSAVE)) != (bit_AVX | bit_OSXSAVE))
++    return 0;
++
++  /* Check the OS has AVX and SSE saving enabled.  */
++  asm ("xgetbv" : "=a" (eax), "=d" (edx) : "c" (0));
++
++  return (eax & 6) == 6;
++}
++
++
++int
++main (void)
++{
+   /* Run AVX test only if AVX is supported.  */
+-  if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)
+-      && (ecx & bit_AVX))
++  if (avx_enabled ())
+     {
+       __m128i xmm = _mm_setzero_si128 ();
+       __m128i ret = audit_test (xmm, xmm, xmm, xmm, xmm, xmm, xmm, xmm);
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.S
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.S
+@@ -139,24 +139,31 @@ L(have_avx):
+       movl    $1, %eax
+       cpuid
+       movq    %r11,%rbx               # Restore rbx
+-      movl    $1, %eax
+-      testl   $(1 << 28), %ecx
++      xorl    %eax, %eax
++      // AVX and XSAVE supported?
++      andl    $((1 << 28) | (1 << 27)), %ecx
++      cmpl    $((1 << 28) | (1 << 27)), %ecx
+       jne     2f
+-      negl    %eax
+-2:    movl    %eax, L(have_avx)(%rip)
++      xorl    %ecx, %ecx
++      // Get XFEATURE_ENABLED_MASK
++      xgetbv
++      andl    $0x6, %eax
++2:    subl    $0x5, %eax
++      movl    %eax, L(have_avx)(%rip)
+       cmpl    $0, %eax
+ 1:    js      L(no_avx)
+ #  define RESTORE_AVX
++#  define MORE_CODE
+ #  include "dl-trampoline.h"
+       .align 16
+ L(no_avx):
+ # endif
+-#  undef RESTORE_AVX
+-#  include "dl-trampoline.h"
++# undef RESTORE_AVX
++# include "dl-trampoline.h"
+       cfi_endproc
+       .size _dl_runtime_profile, .-_dl_runtime_profile
+@@ -176,11 +183,20 @@ _dl_x86_64_save_sse:
+       movl    $1, %eax
+       cpuid
+       movq    %r11,%rbx               # Restore rbx
+-      movl    $1, %eax
+-      testl   $(1 << 28), %ecx
++      xorl    %eax, %eax
++      // AVX and XSAVE supported?
++      andl    $((1 << 28) | (1 << 27)), %ecx
++      cmpl    $((1 << 28) | (1 << 27)), %ecx
+       jne     2f
+-      negl    %eax
+-2:    movl    %eax, L(have_avx)(%rip)
++      xorl    %ecx, %ecx
++      // Get XFEATURE_ENABLED_MASK
++      xgetbv
++      andl    $0x6, %eax
++      cmpl    $0x6, %eax
++      // Nonzero if SSE and AVX state saving is enabled.
++      sete    %al
++2:    leal    -1(%eax,%eax), %eax
++      movl    %eax, L(have_avx)(%rip)
+       cmpl    $0, %eax
+ 1:    js      L(no_avx5)
+Index: glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h
+===================================================================
+--- glibc-2.12-2-gc4ccff1.orig/sysdeps/x86_64/dl-trampoline.h
++++ glibc-2.12-2-gc4ccff1/sysdeps/x86_64/dl-trampoline.h
+@@ -195,14 +195,14 @@
+          _dl_call_pltexit.  The La_x86_64_regs is being pointed by rsp now,
+          so we just need to allocate the sizeof(La_x86_64_retval) space on
+          the stack, since the alignment has already been taken care of. */
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* sizeof(La_x86_64_retval).  Need extra space for 2 SSE
+          registers to detect if xmm0/xmm1 registers are changed
+          by audit module.  */
+       subq $(LRV_SIZE + XMM_SIZE*2), %rsp
+-# else
++#else
+       subq $LRV_SIZE, %rsp    # sizeof(La_x86_64_retval)
+-# endif
++#endif
+       movq %rsp, %rcx         # La_x86_64_retval argument to %rcx.
+       /* Fill in the La_x86_64_retval structure.  */
+@@ -212,7 +212,7 @@
+       movaps %xmm0, LRV_XMM0_OFFSET(%rcx)
+       movaps %xmm1, LRV_XMM1_OFFSET(%rcx)
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* This is to support AVX audit modules.  */
+       vmovdqu %ymm0, LRV_VECTOR0_OFFSET(%rcx)
+       vmovdqu %ymm1, LRV_VECTOR1_OFFSET(%rcx)
+@@ -221,14 +221,14 @@
+          by audit module.  */
+       vmovdqa %xmm0,            (LRV_SIZE)(%rcx)
+       vmovdqa %xmm1, (LRV_SIZE + XMM_SIZE)(%rcx)
+-# endif
++#endif
+       fstpt LRV_ST0_OFFSET(%rcx)
+       fstpt LRV_ST1_OFFSET(%rcx)
+       movq 24(%rbx), %rdx     # La_x86_64_regs argument to %rdx.
+       movq 40(%rbx), %rsi     # Copy args pushed by PLT in register.
+-        movq 32(%rbx), %rdi   # %rdi: link_map, %rsi: reloc_index
++      movq 32(%rbx), %rdi     # %rdi: link_map, %rsi: reloc_index
+       call _dl_call_pltexit
+       /* Restore return registers.  */
+@@ -238,7 +238,7 @@
+       movaps LRV_XMM0_OFFSET(%rsp), %xmm0
+       movaps LRV_XMM1_OFFSET(%rsp), %xmm1
+-# ifdef RESTORE_AVX
++#ifdef RESTORE_AVX
+       /* Check if xmm0/xmm1 registers are changed by audit module.  */
+       vpcmpeqq (LRV_SIZE)(%rsp), %xmm0, %xmm2
+       vpmovmskb %xmm2, %esi
+@@ -253,7 +253,7 @@
+       vmovdqu LRV_VECTOR1_OFFSET(%rsp), %ymm1
+ 1:
+-# endif
++#endif
+       fldt LRV_ST1_OFFSET(%rsp)
+       fldt LRV_ST0_OFFSET(%rsp)
+@@ -267,3 +267,10 @@
+                               # (eats the reloc index and link_map)
+       cfi_adjust_cfa_offset(-48)
+       retq
++
++#ifdef MORE_CODE
++      cfi_adjust_cfa_offset(48)
++      cfi_rel_offset(%rbx, 0)
++      cfi_def_cfa_register(%rbx)
++# undef MORE_CODE
++#endif
diff --git a/src/patches/glibc/glibc-rh757888.patch b/src/patches/glibc/glibc-rh757888.patch
new file mode 100644 (file)
index 0000000..721d4a4
--- /dev/null
@@ -0,0 +1,225 @@
+commit f3a6cc0a560a17f32a3e90d2f20501a53cab6058
+Author: Andreas Schwab <schwab@redhat.com>
+Date:   Tue Nov 29 10:52:22 2011 +0100
+
+    Fix access after end of search string in regex matcher
+
+diff --git a/locale/weight.h b/locale/weight.h
+index dc70a00..967e176 100644
+--- a/locale/weight.h
++++ b/locale/weight.h
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004 Free Software Foundation, Inc.
++/* Copyright (C) 1996,1997,1998,1999,2000,2003,2004,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper, <drepper@cygnus.com>.
+@@ -20,7 +20,7 @@
+ /* Find index of weight.  */
+ auto inline int32_t
+ __attribute ((always_inline))
+-findidx (const unsigned char **cpp)
++findidx (const unsigned char **cpp, size_t len)
+ {
+   int_fast32_t i = table[*(*cpp)++];
+   const unsigned char *cp;
+@@ -34,6 +34,7 @@ findidx (const unsigned char **cpp)
+      Search for the correct one.  */
+   cp = &extra[-i];
+   usrc = *cpp;
++  --len;
+   while (1)
+     {
+       size_t nhere;
+@@ -56,7 +57,7 @@ findidx (const unsigned char **cpp)
+            already.  */
+         size_t cnt;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+@@ -79,13 +80,13 @@ findidx (const unsigned char **cpp)
+         size_t cnt;
+         size_t offset = 0;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+         if (cnt != nhere)
+           {
+-            if (cp[cnt] > usrc[cnt])
++            if (cnt == len || cp[cnt] > usrc[cnt])
+               {
+                 /* Cannot be in this range.  */
+                 cp += 2 * nhere;
+diff --git a/locale/weightwc.h b/locale/weightwc.h
+index 9ea1126..7862091 100644
+--- a/locale/weightwc.h
++++ b/locale/weightwc.h
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996-2001,2003,2004,2005,2007 Free Software Foundation, Inc.
++/* Copyright (C) 1996-2001,2003,2004,2005,2007,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper, <drepper@cygnus.com>.
+@@ -20,7 +20,7 @@
+ /* Find index of weight.  */
+ auto inline int32_t
+ __attribute ((always_inline))
+-findidx (const wint_t **cpp)
++findidx (const wint_t **cpp, size_t len)
+ {
+   wint_t ch = *(*cpp)++;
+   int32_t i = __collidx_table_lookup ((const char *) table, ch);
+@@ -32,6 +32,7 @@ findidx (const wint_t **cpp)
+   /* Oh well, more than one sequence starting with this byte.
+      Search for the correct one.  */
+   const int32_t *cp = (const int32_t *) &extra[-i];
++  --len;
+   while (1)
+     {
+       size_t nhere;
+@@ -54,7 +55,7 @@ findidx (const wint_t **cpp)
+            already.  */
+         size_t cnt;
+-        for (cnt = 0; cnt < nhere; ++cnt)
++        for (cnt = 0; cnt < nhere && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+@@ -75,7 +76,7 @@ findidx (const wint_t **cpp)
+         size_t cnt;
+         size_t offset;
+-        for (cnt = 0; cnt < nhere - 1; ++cnt)
++        for (cnt = 0; cnt < nhere - 1 && cnt < len; ++cnt)
+           if (cp[cnt] != usrc[cnt])
+             break;
+diff --git a/posix/fnmatch_loop.c b/posix/fnmatch_loop.c
+index 18a6667..72bd3ee 100644
+--- a/posix/fnmatch_loop.c
++++ b/posix/fnmatch_loop.c
+@@ -412,7 +412,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+                         _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+ # endif
+-                      idx = findidx (&cp);
++                      idx = findidx (&cp, 1);
+                       if (idx != 0)
+                         {
+                           /* We found a table entry.  Now see whether the
+@@ -422,7 +422,7 @@ FCT (pattern, string, string_end, no_leading_period, flags, ends, alloca_used)
+                           int32_t idx2;
+                           const UCHAR *np = (const UCHAR *) n;
+-                          idx2 = findidx (&np);
++                          idx2 = findidx (&np, string_end - n);
+                           if (idx2 != 0
+                               && (idx >> 24) == (idx2 >> 24)
+                               && len == weights[idx2 & 0xffffff])
+diff --git a/posix/regcomp.c b/posix/regcomp.c
+index b238c08..34ee845 100644
+--- a/posix/regcomp.c
++++ b/posix/regcomp.c
+@@ -1,5 +1,5 @@
+ /* Extended regular expression matching and search library.
+-   Copyright (C) 2002-2007,2009,2010 Free Software Foundation, Inc.
++   Copyright (C) 2002-2007,2009,2010,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>.
+@@ -3409,19 +3409,18 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name)
+                                                  _NL_COLLATE_EXTRAMB);
+       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+                                               _NL_COLLATE_INDIRECTMB);
+-      idx1 = findidx (&cp);
+-      if (BE (idx1 == 0 || cp < name + strlen ((const char *) name), 0))
++      idx1 = findidx (&cp, -1);
++      if (BE (idx1 == 0 || *cp != '\0', 0))
+       /* This isn't a valid character.  */
+       return REG_ECOLLATE;
+       /* Build single byte matcing table for this equivalence class.  */
+-      char_buf[1] = (unsigned char) '\0';
+       len = weights[idx1 & 0xffffff];
+       for (ch = 0; ch < SBC_MAX; ++ch)
+       {
+         char_buf[0] = ch;
+         cp = char_buf;
+-        idx2 = findidx (&cp);
++        idx2 = findidx (&cp, 1);
+ /*
+         idx2 = table[ch];
+ */
+
+--- a/posix/regex_internal.h   2011-11-30 12:47:02.706567482 -0700
++++ a/posix/regex_internal.h   2011-11-30 12:47:32.969558337 -0700
+@@ -756,7 +756,7 @@
+       indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE,
+                                               _NL_COLLATE_INDIRECTMB);
+       p = pstr->mbs + idx;
+-      tmp = findidx (&p);
++      tmp = findidx (&p, pstr->len - idx);
+       return p - pstr->mbs - idx;
+     }
+   else
+diff --git a/posix/regexec.c b/posix/regexec.c
+index 9e0c565..3ea810b 100644
+--- a/posix/regexec.c
++++ b/posix/regexec.c
+@@ -3924,7 +3924,7 @@ check_node_accept_bytes (const re_dfa_t *dfa, int node_idx,
+               _NL_CURRENT (LC_COLLATE, _NL_COLLATE_EXTRAMB);
+             indirect = (const int32_t *)
+               _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+-            int32_t idx = findidx (&cp);
++            int32_t idx = findidx (&cp, elem_len);
+             if (idx > 0)
+               for (i = 0; i < cset->nequiv_classes; ++i)
+                 {
+diff --git a/string/strcoll_l.c b/string/strcoll_l.c
+index d8d1139..fb77d08 100644
+--- a/string/strcoll_l.c
++++ b/string/strcoll_l.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1995-1997,2002,2004,2007,2010 Free Software Foundation, Inc.
++/* Copyright (C) 1995-1997,2002,2004,2007,2010,2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Written by Ulrich Drepper <drepper@gnu.org>, 1995.
+@@ -205,7 +205,7 @@ STRCOLL (s1, s2, l)
+               while (*us1 != L('\0'))
+                 {
+-                  int32_t tmp = findidx (&us1);
++                  int32_t tmp = findidx (&us1, -1);
+                   rule1arr[idx1max] = tmp >> 24;
+                   idx1arr[idx1max] = tmp & 0xffffff;
+                   idx1cnt = idx1max++;
+@@ -267,7 +267,7 @@ STRCOLL (s1, s2, l)
+               while (*us2 != L('\0'))
+                 {
+-                  int32_t tmp = findidx (&us2);
++                  int32_t tmp = findidx (&us2, -1);
+                   rule2arr[idx2max] = tmp >> 24;
+                   idx2arr[idx2max] = tmp & 0xffffff;
+                   idx2cnt = idx2max++;
+diff --git a/string/strxfrm_l.c b/string/strxfrm_l.c
+index 220253c..b06556d 100644
+--- a/string/strxfrm_l.c
++++ b/string/strxfrm_l.c
+@@ -176,7 +176,7 @@ STRXFRM (STRING_TYPE *dest, const STRING_TYPE *src, size_t n, __locale_t l)
+   idxmax = 0;
+   do
+     {
+-      int32_t tmp = findidx (&usrc);
++      int32_t tmp = findidx (&usrc, -1);
+       rulearr[idxmax] = tmp >> 24;
+       idxarr[idxmax] = tmp & 0xffffff;
diff --git a/src/patches/glibc/glibc-rh766513.patch b/src/patches/glibc/glibc-rh766513.patch
new file mode 100644 (file)
index 0000000..3f629b4
--- /dev/null
@@ -0,0 +1,14 @@
+diff -rup a/po/ja.po b/po/ja.po
+--- a/po/ja.po 2010-05-04 05:27:23.000000000 -0600
++++ b/po/ja.po 2012-02-07 12:21:03.023806370 -0700
+@@ -3549,8 +3549,8 @@ msgstr "%s: ÉÔÀµ¤Ê¥ª¥×¥·¥ç¥ó¤Ç¤¹ -- %c\n
+ #: posix/getopt.c:945 posix/getopt.c:948
+ #, c-format
+-msgid "%s: invalid option -- %c\n"
+-msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- %c\n"
++msgid "%s: invalid option -- '%c'\n"
++msgstr "%s: ¥ª¥×¥·¥ç¥ó¤¬°ã¤¤¤Þ¤¹ -- '%c'\n"
+ #: posix/getopt.c:1003 posix/getopt.c:1022 posix/getopt.c:1234
+ #: posix/getopt.c:1255
diff --git a/src/patches/glibc/glibc-rh767146.patch b/src/patches/glibc/glibc-rh767146.patch
new file mode 100644 (file)
index 0000000..8252062
--- /dev/null
@@ -0,0 +1,21 @@
+diff -rup a/elf/dl-load.c b/elf/dl-load.c
+--- a/elf/dl-load.c    2012-02-03 10:59:58.917870716 -0700
++++ b/elf/dl-load.c    2012-02-03 11:01:01.796580644 -0700
+@@ -1130,6 +1130,16 @@ _dl_map_object_from_fd (const char *name
+               = N_("ELF load command address/offset not properly aligned");
+             goto call_lose;
+           }
++        if (__builtin_expect ((ph->p_offset + ph->p_filesz > st.st_size), 0))
++          {
++            /* If the segment requires zeroing of part of its last
++               page, we'll crash when accessing the unmapped page.
++               There's still a possibility of a race, if the shared
++               object is truncated between the fxstat above and the
++               memset below.  */
++            errstring = N_("ELF load command past end of file");
++            goto call_lose;
++          }
+         c = &loadcmds[nloadcmds++];
+         c->mapstart = ph->p_vaddr & ~(GLRO(dl_pagesize) - 1);
+Only in b/elf: dl-load.c.orig
diff --git a/src/patches/glibc/glibc-rh767693-2.patch b/src/patches/glibc/glibc-rh767693-2.patch
new file mode 100644 (file)
index 0000000..4418ac6
--- /dev/null
@@ -0,0 +1,79 @@
+Index: glibc-2.5-20061008T1257/sunrpc/svc_tcp.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_tcp.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_tcp.c
+@@ -50,6 +50,7 @@ static char sccsid[] = "@(#)svc_tcp.c 1.
+ #include <sys/poll.h>
+ #include <errno.h>
+ #include <stdlib.h>
++#include <time.h>
+ #ifdef USE_IN_LIBIO
+ # include <wchar.h>
+@@ -249,6 +250,11 @@ again:
+     {
+       if (errno == EINTR)
+       goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
+       return FALSE;
+     }
+   /*
+Index: glibc-2.5-20061008T1257/sunrpc/svc_udp.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_udp.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_udp.c
+@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)svc_udp.c 1.
+ #include <sys/socket.h>
+ #include <errno.h>
+ #include <libintl.h>
++#include <time.h>
+ #ifdef IP_PKTINFO
+ #include <sys/uio.h>
+@@ -277,8 +278,16 @@ again:
+                      (int) su->su_iosz, 0,
+                      (struct sockaddr *) &(xprt->xp_raddr), &len);
+   xprt->xp_addrlen = len;
+-  if (rlen == -1 && errno == EINTR)
+-    goto again;
++  if (rlen == -1)
++    {
++      if (errno == EINTR)
++        goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
++    }
+   if (rlen < 16)              /* < 4 32-bit ints? */
+     return FALSE;
+   xdrs->x_op = XDR_DECODE;
+Index: glibc-2.5-20061008T1257/sunrpc/svc_unix.c
+===================================================================
+--- glibc-2.5-20061008T1257.orig/sunrpc/svc_unix.c
++++ glibc-2.5-20061008T1257/sunrpc/svc_unix.c
+@@ -48,6 +48,7 @@
+ #include <errno.h>
+ #include <stdlib.h>
+ #include <libintl.h>
++#include <time.h>
+ #ifdef USE_IN_LIBIO
+ # include <wchar.h>
+@@ -247,6 +248,11 @@ again:
+     {
+       if (errno == EINTR)
+       goto again;
++      if (errno == EMFILE)
++        {
++          struct timespec ts = { .tv_sec = 0, .tv_nsec = 50000000 };
++          __nanosleep(&ts , NULL);
++        }
+       return FALSE;
+     }
+   /*
diff --git a/src/patches/glibc/glibc-rh767693.patch b/src/patches/glibc/glibc-rh767693.patch
new file mode 100644 (file)
index 0000000..8f76beb
--- /dev/null
@@ -0,0 +1,89 @@
+commit 97ac2654b2d831acaa18a2b018b0736245903fd2
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Sat Dec 17 20:18:42 2011 -0500
+
+    Check values from TZ file header
+
+
+       [BZ #13506]
+       * time/tzfile.c (__tzfile_read): Check values from file header.
+
+diff -ru a/time/tzfile.c b/time/tzfile.c
+--- a/time/tzfile.c    2010-05-04 11:27:23.000000000 +0000
++++ b/time/tzfile.c    2011-12-19 06:39:49.875358578 +0000
+@@ -19,6 +19,7 @@
+ #include <assert.h>
+ #include <limits.h>
++#include <stdint.h>
+ #include <stdio.h>
+ #include <stdio_ext.h>
+ #include <stdlib.h>
+@@ -234,23 +235,58 @@
+       goto read_again;
+     }
++  if (__builtin_expect (num_transitions
++                      > ((SIZE_MAX - (__alignof__ (struct ttinfo) - 1))
++                         / (sizeof (time_t) + 1)), 0))
++    goto lose;
+   total_size = num_transitions * (sizeof (time_t) + 1);
+   total_size = ((total_size + __alignof__ (struct ttinfo) - 1)
+               & ~(__alignof__ (struct ttinfo) - 1));
+   types_idx = total_size;
+-  total_size += num_types * sizeof (struct ttinfo) + chars;
++  if (__builtin_expect (num_types
++                      > (SIZE_MAX - total_size) / sizeof (struct ttinfo), 0))
++    goto lose;
++  total_size += num_types * sizeof (struct ttinfo);
++  if (__builtin_expect (chars > SIZE_MAX - total_size, 0))
++    goto lose;
++  total_size += chars;
++  if (__builtin_expect (__alignof__ (struct leap) - 1
++                      > SIZE_MAX - total_size, 0))
++    goto lose;
+   total_size = ((total_size + __alignof__ (struct leap) - 1)
+               & ~(__alignof__ (struct leap) - 1));
+   leaps_idx = total_size;
++  if (__builtin_expect (num_leaps
++                      > (SIZE_MAX - total_size) / sizeof (struct leap), 0))
++    goto lose;
+   total_size += num_leaps * sizeof (struct leap);
+-  tzspec_len = (sizeof (time_t) == 8 && trans_width == 8
+-              ? st.st_size - (ftello (f)
+-                              + num_transitions * (8 + 1)
+-                              + num_types * 6
+-                              + chars
+-                              + num_leaps * 12
+-                              + num_isstd
+-                              + num_isgmt) - 1 : 0);
++  tzspec_len = 0;
++  if (sizeof (time_t) == 8 && trans_width == 8)
++    {
++      off_t rem = st.st_size - ftello (f);
++      if (__builtin_expect (rem < 0
++                          || (size_t) rem < (num_transitions * (8 + 1)
++                                             + num_types * 6
++                                             + chars), 0))
++      goto lose;
++      tzspec_len = (size_t) rem - (num_transitions * (8 + 1)
++                                 + num_types * 6
++                                 + chars);
++      if (__builtin_expect (num_leaps > SIZE_MAX / 12
++                          || tzspec_len < num_leaps * 12, 0))
++      goto lose;
++      tzspec_len -= num_leaps * 12;
++      if (__builtin_expect (tzspec_len < num_isstd, 0))
++      goto lose;
++      tzspec_len -= num_isstd;
++      if (__builtin_expect (tzspec_len == 0 || tzspec_len - 1 < num_isgmt, 0))
++      goto lose;
++      tzspec_len -= num_isgmt + 1;
++      if (__builtin_expect (SIZE_MAX - total_size < tzspec_len, 0))
++      goto lose;
++    }
++  if (__builtin_expect (SIZE_MAX - total_size - tzspec_len < extra, 0))
++    goto lose;
+   /* Allocate enough memory including the extra block requested by the
+      caller.  */
diff --git a/src/patches/glibc/glibc-rh767746.patch b/src/patches/glibc/glibc-rh767746.patch
new file mode 100644 (file)
index 0000000..58d96d8
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/nptl/pthread_create.c    2011-12-13 11:41:37.000000000 -0700
++++ b/nptl/pthread_create.c    2011-12-14 10:03:13.000000000 -0700
+@@ -440,8 +440,9 @@
+   int err = ALLOCATE_STACK (iattr, &pd);
+   if (__builtin_expect (err != 0, 0))
+     /* Something went wrong.  Maybe a parameter of the attributes is
+-       invalid or we could not allocate memory.  */
+-    return err;
++       invalid or we could not allocate memory.  Note we have to
++       translate error codes.  */
++    return err == ENOMEM ? EAGAIN : err;
+   /* Initialize the TCB.  All initializations with zero should be
diff --git a/src/patches/glibc/glibc-rh771342.patch b/src/patches/glibc/glibc-rh771342.patch
new file mode 100644 (file)
index 0000000..0a49b8c
--- /dev/null
@@ -0,0 +1,155 @@
+2011-06-30  Ulrich Drepper  <drepper@gmail.com>
+
+       * nptl-init.c (__nptl_set_robust): New function.
+       (pthread_functions): Add reference.
+       * npthreadP.h: Declare __nptl_set_robust.
+       * sysdeps/pthread/pthread-functions.h (pthread_functions): Add
+       ptr_set_robust member.
+       * sysdeps/unix/sysv/linux/fork.c: Call set_robust_list syscall in
+       child if threads are used.
+
+diff -Nrup a/nptl/nptl-init.c b/nptl/nptl-init.c
+--- a/nptl/nptl-init.c 2011-12-20 00:29:54.645538691 -0700
++++ b/nptl/nptl-init.c 2012-01-03 10:18:38.977513783 -0700
+@@ -69,6 +69,13 @@ extern void __libc_setup_tls (size_t tcb
+ #endif
+ #ifdef SHARED
++static
++#else
++extern
++#endif
++void __nptl_set_robust (struct pthread *);
++
++#ifdef SHARED
+ static void nptl_freeres (void);
+@@ -131,13 +138,25 @@ static const struct pthread_functions pt
+     .ptr__nptl_deallocate_tsd = __nptl_deallocate_tsd,
+     .ptr__nptl_setxid = __nptl_setxid,
+     /* For now only the stack cache needs to be freed.  */
+-    .ptr_freeres = nptl_freeres
++    .ptr_freeres = nptl_freeres,
++    .ptr_set_robust = __nptl_set_robust
+   };
+ # define ptr_pthread_functions &pthread_functions
+ #else
+ # define ptr_pthread_functions NULL
+ #endif
++#ifdef SHARED
++static
++#endif
++void
++__nptl_set_robust (struct pthread *self)
++{
++  INTERNAL_SYSCALL_DECL (err);
++  INTERNAL_SYSCALL (set_robust_list, err, 2, &self->robust_head,
++                   sizeof (struct robust_list_head));
++}
++
+ #ifdef SHARED
+ /* This function is called indirectly from the freeres code in libc.  */
+diff -Nrup a/nptl/pthreadP.h b/nptl/pthreadP.h
+--- a/nptl/pthreadP.h  2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/pthreadP.h  2012-01-03 10:12:35.599269269 -0700
+@@ -555,17 +555,20 @@ extern void __pthread_cleanup_pop_restor
+ /* Old cleanup interfaces, still used in libc.so.  */
+ extern void _pthread_cleanup_push (struct _pthread_cleanup_buffer *buffer,
+-                                   void (*routine) (void *), void *arg);
++                                 void (*routine) (void *), void *arg);
+ extern void _pthread_cleanup_pop (struct _pthread_cleanup_buffer *buffer,
+-                                  int execute);
++                                int execute);
+ extern void _pthread_cleanup_push_defer (struct _pthread_cleanup_buffer *buffer,
+-                                         void (*routine) (void *), void *arg);
++                                       void (*routine) (void *), void *arg);
+ extern void _pthread_cleanup_pop_restore (struct _pthread_cleanup_buffer *buffer,
+-                                          int execute);
++                                        int execute);
+ extern void __nptl_deallocate_tsd (void) attribute_hidden;
+ extern int __nptl_setxid (struct xid_command *cmdp) attribute_hidden;
++#ifndef SHARED
++extern void __nptl_set_robust (struct pthread *self);
++#endif
+ extern void __free_stacks (size_t limit) attribute_hidden;
+diff -Nrup a/nptl/sysdeps/pthread/pthread-functions.h b/nptl/sysdeps/pthread/pthread-functions.h
+--- a/nptl/sysdeps/pthread/pthread-functions.h 2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/sysdeps/pthread/pthread-functions.h 2012-01-03 10:12:35.639269301 -0700
+@@ -97,6 +97,7 @@ struct pthread_functions
+   void (*ptr__nptl_deallocate_tsd) (void);
+   int (*ptr__nptl_setxid) (struct xid_command *);
+   void (*ptr_freeres) (void);
++  void (*ptr_set_robust) (struct pthread *);
+ };
+ /* Variable in libc.so.  */
+diff -Nrup a/nptl/sysdeps/unix/sysv/linux/fork.c b/nptl/sysdeps/unix/sysv/linux/fork.c
+--- a/nptl/sysdeps/unix/sysv/linux/fork.c      2010-05-04 05:27:23.000000000 -0600
++++ b/nptl/sysdeps/unix/sysv/linux/fork.c      2012-01-03 10:12:35.649269309 -0700
+@@ -29,6 +29,7 @@
+ #include <ldsodefs.h>
+ #include <bits/stdio-lock.h>
+ #include <atomic.h>
++#include <pthreadP.h>
+ unsigned long int *__fork_generation_pointer;
+@@ -86,8 +87,8 @@ __libc_fork (void)
+        just go away.  The unloading code works in the order of the
+        list.
+-         While executing the registered handlers we are building a
+-         list of all the entries so that we can go backward later on.  */
++       While executing the registered handlers we are building a
++       list of all the entries so that we can go backward later on.  */
+       while (1)
+       {
+         /* Execute the handler if there is one.  */
+@@ -154,6 +155,24 @@ __libc_fork (void)
+       GL(dl_cpuclock_offset) = now;
+ #endif
++#ifdef __NR_set_robust_list
++      /* Initialize the robust mutex list which has been reset during
++       the fork.  We do not check for errors since if it fails here
++       it failed at process start as well and noone could have used
++       robust mutexes.  We also do not have to set
++       self->robust_head.futex_offset since we inherit the correct
++       value from the parent.  */
++# ifdef SHARED
++      if (__libc_pthread_functions.ptr_set_robust != NULL)
++      PTHFCT_CALL (ptr_set_robust, (self));
++# else
++      extern __typeof (__nptl_set_robust) __nptl_set_robust
++      __attribute__((weak));
++      if (__builtin_expect (__nptl_set_robust != NULL, 0))
++      __nptl_set_robust (self);
++# endif
++#endif
++
+       /* Reset the file list.  These are recursive mutexes.  */
+       fresetlockfiles ();
+@@ -170,10 +189,10 @@ __libc_fork (void)
+           allp->handler->child_handler ();
+         /* Note that we do not have to wake any possible waiter.
+-           This is the only thread in the new process.  The count
+-           may have been bumped up by other threads doing a fork.
+-           We reset it to 1, to avoid waiting for non-existing
+-           thread(s) to release the count.  */
++           This is the only thread in the new process.  The count
++           may have been bumped up by other threads doing a fork.
++           We reset it to 1, to avoid waiting for non-existing
++           thread(s) to release the count.  */
+         allp->handler->refcntr = 1;
+         /* XXX We could at this point look through the object pool
diff --git a/src/patches/glibc/glibc-rh782585.patch b/src/patches/glibc/glibc-rh782585.patch
new file mode 100644 (file)
index 0000000..a554d4b
--- /dev/null
@@ -0,0 +1,329 @@
+diff -rup a/elf/dl-close.c b/elf/dl-close.c
+--- a/elf/dl-close.c   2012-01-19 12:59:42.759484350 -0700
++++ b/elf/dl-close.c   2012-01-19 14:10:20.439263806 -0700
+@@ -223,7 +223,7 @@ _dl_close_worker (struct link_map *map)
+     }
+   /* Sort the entries.  */
+-  _dl_sort_fini (ns->_ns_loaded, maps, nloaded, used, nsid);
++  _dl_sort_fini (maps, nloaded, used, nsid);
+   /* Call all termination functions at once.  */
+ #ifdef SHARED
+diff -rup a/elf/dl-deps.c b/elf/dl-deps.c
+--- a/elf/dl-deps.c    2012-01-19 12:59:42.716484301 -0700
++++ b/elf/dl-deps.c    2012-01-19 13:52:35.223720556 -0700
+@@ -614,51 +614,67 @@ Filters not supported with LD_TRACE_PREL
+       map->l_searchlist.r_list[i]->l_reserved = 0;
+     }
+-  /* Now determine the order in which the initialization has to happen.  */
++  /* Sort the initializer list to take dependencies into account.  The binary
++     itself will always be initialize last.  */
+   memcpy (l_initfini, map->l_searchlist.r_list,
+         nlist * sizeof (struct link_map *));
+-  /* We can skip looking for the binary itself which is at the front
+-     of the search list.  Look through the list backward so that circular
+-     dependencies are not changing the order.  */
+-  for (i = 1; i < nlist; ++i)
++  if (__builtin_expect (nlist > 1, 1))
+     {
+-      struct link_map *l = map->l_searchlist.r_list[i];
+-      unsigned int j;
+-      unsigned int k;
+-
+-      /* Find the place in the initfini list where the map is currently
+-       located.  */
+-      for (j = 1; l_initfini[j] != l; ++j)
+-      ;
+-
+-      /* Find all object for which the current one is a dependency and
+-       move the found object (if necessary) in front.  */
+-      for (k = j + 1; k < nlist; ++k)
++      /* We can skip looking for the binary itself which is at the front
++       of the search list.  */
++      i = 1;
++      unsigned int seen[nlist];
++      memset (seen, 0, nlist * sizeof (seen[0]));
++      while (1)
+       {
+-        struct link_map **runp;
+-
+-        runp = l_initfini[k]->l_initfini;
+-        if (runp != NULL)
++        /* Keep track of which object we looked at this round.  */
++        ++seen[i];
++        struct link_map *thisp = l_initfini[i];
++
++        /* Find the last object in the list for which the current one is
++           a dependency and move the current object behind the object
++           with the dependency.  */
++        unsigned int k = nlist - 1;
++        while (k > i)
+           {
+-            while (*runp != NULL)
+-              if (__builtin_expect (*runp++ == l, 0))
+-                {
+-                  struct link_map *here = l_initfini[k];
+-
+-                  /* Move it now.  */
+-                  memmove (&l_initfini[j] + 1, &l_initfini[j],
+-                           (k - j) * sizeof (struct link_map *));
+-                  l_initfini[j] = here;
+-
+-                  /* Don't insert further matches before the last
+-                     entry moved to the front.  */
+-                  ++j;
++            struct link_map **runp = l_initfini[k]->l_initfini;
++            if (runp != NULL)
++              /* Look through the dependencies of the object.  */
++              while (*runp != NULL)
++                if (__builtin_expect (*runp++ == thisp, 0))
++                  {
++                    /* Move the current object to the back past the last
++                       object with it as the dependency.  */
++                    memmove (&l_initfini[i], &l_initfini[i + 1],
++                             (k - i) * sizeof (l_initfini[0]));
++                    l_initfini[k] = thisp;
++
++                    if (seen[i + 1] > nlist - i - 2)
++                      {
++                        ++i;
++                        goto next_clear;
++                      }
++
++                    unsigned int this_seen = seen[i];
++                    memmove (&seen[i], &seen[i + 1],
++                             (k - i) * sizeof (seen[0]));
++                    seen[k] = this_seen;
++
++                    goto next;
++                  }
+-                  break;
+-                }
++            --k;
+           }
++
++        if (++i == nlist)
++          break;
++      next_clear:
++        memset (&seen[i], 0, (nlist - i) * sizeof (seen[0]));
++
++      next:;
+       }
+     }
++
+   /* Terminate the list of dependencies.  */
+   l_initfini[nlist] = NULL;
+   atomic_write_barrier ();
+diff -rup a/elf/dl-fini.c b/elf/dl-fini.c
+--- a/elf/dl-fini.c    2010-05-04 05:27:23.000000000 -0600
++++ b/elf/dl-fini.c    2012-01-19 13:56:38.653842046 -0700
+@@ -1,5 +1,6 @@
+ /* Call the termination functions of loaded shared objects.
+-   Copyright (C) 1995,96,1998-2002,2004-2005,2009 Free Software Foundation, Inc.
++   Copyright (C) 1995,96,1998-2002,2004-2005,2009,2011
++   Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    The GNU C Library is free software; you can redistribute it and/or
+@@ -29,89 +30,100 @@ typedef void (*fini_t) (void);
+ void
+ internal_function
+-_dl_sort_fini (struct link_map *l, struct link_map **maps, size_t nmaps,
+-             char *used, Lmid_t ns)
++_dl_sort_fini (struct link_map **maps, size_t nmaps, char *used, Lmid_t ns)
+ {
+-  if (ns == LM_ID_BASE)
+-    /* The main executable always comes first.  */
+-    l = l->l_next;
+-
+-  for (; l != NULL; l = l->l_next)
+-    /* Do not handle ld.so in secondary namespaces and object which
+-       are not removed.  */
+-    if (l == l->l_real && l->l_idx != -1)
+-      {
+-      /* Find the place in the 'maps' array.  */
+-      unsigned int j;
+-      for (j = ns == LM_ID_BASE ? 1 : 0; maps[j] != l; ++j)
+-        assert (j < nmaps);
+-
+-      /* Find all object for which the current one is a dependency
+-         and move the found object (if necessary) in front.  */
+-      for (unsigned int k = j + 1; k < nmaps; ++k)
+-        {
+-          struct link_map **runp = maps[k]->l_initfini;
+-          if (runp != NULL)
+-            {
+-              while (*runp != NULL)
+-                if (*runp == l)
+-                  {
+-                    struct link_map *here = maps[k];
++  /* A list of one element need not be sorted.  */
++  if (nmaps == 1)
++    return;
++
++  /* We can skip looking for the binary itself which is at the front
++     of the search list for the main namespace.  */
++  unsigned int i = ns == LM_ID_BASE;
++  unsigned int seen[nmaps];
++  memset (seen, 0, nmaps * sizeof (seen[0]));
++  while (1)
++    {
++      /* Keep track of which object we looked at this round.  */
++      ++seen[i];
++      struct link_map *thisp = maps[i];
++
++      /* Do not handle ld.so in secondary namespaces and object which
++       are not removed.  */
++      if (thisp != thisp->l_real || thisp->l_idx == -1)
++      goto skip;
++
++      /* Find the last object in the list for which the current one is
++       a dependency and move the current object behind the object
++       with the dependency.  */
++      unsigned int k = nmaps - 1;
++      while (k > i)
++      {
++        struct link_map **runp = maps[k]->l_initfini;
++        if (runp != NULL)
++          /* Look through the dependencies of the object.  */
++          while (*runp != NULL)
++            if (__builtin_expect (*runp++ == thisp, 0))
++              {
++              move:
++                /* Move the current object to the back past the last
++                   object with it as the dependency.  */
++                memmove (&maps[i], &maps[i + 1],
++                         (k - i) * sizeof (maps[0]));
++                maps[k] = thisp;
+-                    /* Move it now.  */
+-                    memmove (&maps[j] + 1,
+-                             &maps[j], (k - j) * sizeof (struct link_map *));
+-                    maps[j] = here;
++                if (used != NULL)
++                  {
++                    char here_used = used[i];
++                    memmove (&used[i], &used[i + 1],
++                             (k - i) * sizeof (used[0]));
++                    used[k] = here_used;
++                  }
+-                    if (used != NULL)
+-                      {
+-                        char here_used = used[k];
++                if (seen[i + 1] > nmaps - i - 2)
++                  {
++                    ++i;
++                    goto next_clear;
++                  }
+-                        memmove (&used[j] + 1,
+-                                 &used[j], (k - j) * sizeof (char));
+-                        used[j] = here_used;
+-                      }
++                unsigned int this_seen = seen[i];
++                memmove (&seen[i], &seen[i + 1], (k - i) * sizeof (seen[0]));
++                seen[k] = this_seen;
+-                    ++j;
++                goto next;
++              }
+-                    break;
+-                  }
+-                else
+-                  ++runp;
+-            }
+-
+-          if (__builtin_expect (maps[k]->l_reldeps != NULL, 0))
+-            {
+-              unsigned int m = maps[k]->l_reldeps->act;
+-              struct link_map **relmaps = &maps[k]->l_reldeps->list[0];
++        if (__builtin_expect (maps[k]->l_reldeps != NULL, 0))
++          {
++            unsigned int m = maps[k]->l_reldeps->act;
++            struct link_map **relmaps = &maps[k]->l_reldeps->list[0];
+-              while (m-- > 0)
++            /* Look through the relocation dependencies of the object.  */
++            while (m-- > 0)
++              if (__builtin_expect (relmaps[m] == thisp, 0))
+                 {
+-                  if (relmaps[m] == l)
+-                    {
+-                      struct link_map *here = maps[k];
+-
+-                      /* Move it now.  */
+-                      memmove (&maps[j] + 1,
+-                               &maps[j],
+-                               (k - j) * sizeof (struct link_map *));
+-                      maps[j] = here;
+-
+-                      if (used != NULL)
+-                        {
+-                          char here_used = used[k];
+-
+-                          memmove (&used[j] + 1,
+-                                   &used[j], (k - j) * sizeof (char));
+-                          used[j] = here_used;
+-                        }
+-
+-                      break;
+-                    }
++                  /* If a cycle exists with a link time dependency,
++                     preserve the latter.  */
++                  struct link_map **runp = thisp->l_initfini;
++                  if (runp != NULL)
++                    while (*runp != NULL)
++                      if (__builtin_expect (*runp++ == maps[k], 0))
++                        goto ignore;
++                  goto move;
+                 }
+-            }
+-        }
+-      }
++          ignore:;
++          }
++
++        --k;
++      }
++
++    skip:
++      if (++i == nmaps)
++      break;
++    next_clear:
++      memset (&seen[i], 0, (nmaps - i) * sizeof (seen[0]));
++
++    next:;
++    }
+ }
+@@ -196,9 +208,8 @@ _dl_fini (void)
+       assert (ns == LM_ID_BASE || i == nloaded || i == nloaded - 1);
+       nmaps = i;
+-      if (nmaps != 0)
+-      /* Now we have to do the sorting.  */
+-      _dl_sort_fini (GL(dl_ns)[ns]._ns_loaded, maps, nmaps, NULL, ns);
++      /* Now we have to do the sorting.  */
++      _dl_sort_fini (maps, nmaps, NULL, ns);
+       /* We do not rely on the linked list of loaded object anymore from
+        this point on.  We have our own list here (maps).  The various
+diff -rup a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
+--- a/sysdeps/generic/ldsodefs.h       2012-01-19 12:59:42.446483997 -0700
++++ b/sysdeps/generic/ldsodefs.h       2012-01-19 14:16:36.242453532 -0700
+@@ -947,7 +947,7 @@ extern void _dl_init (struct link_map *m
+ extern void _dl_fini (void) internal_function;
+ /* Sort array MAPS according to dependencies of the contained objects.  */
+-extern void _dl_sort_fini (struct link_map *l, struct link_map **maps,
++extern void _dl_sort_fini (struct link_map **maps,
+                          size_t nmaps, char *used, Lmid_t ns)
+      internal_function;
diff --git a/src/patches/glibc/glibc-rh784402.patch b/src/patches/glibc/glibc-rh784402.patch
new file mode 100644 (file)
index 0000000..d75773e
--- /dev/null
@@ -0,0 +1,166 @@
+commit 3e1aa84e7f9f38815f5db9cd7654b1a9497cf6e4
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Fri Jan 20 22:39:54 2012 -0500
+
+    Do not cache negative results in nscd if these are transient
+
+diff -rup a/nscd/aicache.c b/nscd/aicache.c
+--- a/nscd/aicache.c   2012-01-24 20:32:58.906826425 -0700
++++ b/nscd/aicache.c   2012-01-24 20:42:17.663968882 -0700
+@@ -511,9 +511,17 @@ next_nip:
+       if (fd != -1)
+       TEMP_FAILURE_RETRY (send (fd, &notfound, total, MSG_NOSIGNAL));
+-      dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1);
+-      /* If we cannot permanently store the result, so be it.  */
+-      if (dataset != NULL)
++      /* If we have a transient error or cannot permanently store the
++       result, so be it.  */
++      if (rc4 == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++      {
++        /* Mark the old entry as obsolete.  */
++        if (dh != NULL)
++          dh->usable = false;
++        dataset = NULL;
++      }
++      else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                            + req->key_len), 1)) != NULL)
+       {
+         dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+         dataset->head.recsize = total;
+diff -rup a/nscd/grpcache.c b/nscd/grpcache.c
+--- a/nscd/grpcache.c  2012-01-24 20:32:58.910826427 -0700
++++ b/nscd/grpcache.c  2012-01-24 20:42:17.666968883 -0700
+@@ -114,13 +114,21 @@ cache_addgr (struct database_dyn *db, in
+            case.  */
+         total = sizeof (notfound);
+-        written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+-                                            MSG_NOSIGNAL));
++        if (fd != -1)
++          written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++                                              MSG_NOSIGNAL));
++        else
++          written = total;
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/hstcache.c b/nscd/hstcache.c
+--- a/nscd/hstcache.c  2012-01-24 20:32:58.911826427 -0700
++++ b/nscd/hstcache.c  2012-01-24 20:42:17.668968883 -0700
+@@ -141,10 +141,16 @@ cache_addhst (struct database_dyn *db, i
+                                       MSG_NOSIGNAL)) != total)
+           all_written = false;
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/initgrcache.c b/nscd/initgrcache.c
+--- a/nscd/initgrcache.c       2012-01-24 20:32:58.912826427 -0700
++++ b/nscd/initgrcache.c       2012-01-24 20:42:17.671968883 -0700
+@@ -202,10 +202,16 @@ addinitgroupsX (struct database_dyn *db,
+           written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+                                               MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (all_tryagain || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/pwdcache.c b/nscd/pwdcache.c
+--- a/nscd/pwdcache.c  2012-01-24 20:32:58.914826427 -0700
++++ b/nscd/pwdcache.c  2012-01-24 20:42:17.671968883 -0700
+@@ -124,10 +124,16 @@ cache_addpw (struct database_dyn *db, in
+           written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+                                               MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errno == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
+diff -rup a/nscd/servicescache.c b/nscd/servicescache.c
+--- a/nscd/servicescache.c     2012-01-24 20:32:58.915826427 -0700
++++ b/nscd/servicescache.c     2012-01-24 20:42:17.672968884 -0700
+@@ -102,15 +102,22 @@ cache_addserv (struct database_dyn *db,
+       {
+         /* We have no data.  This means we send the standard reply for this
+            case.  */
+-        total = sizeof (notfound);
++        written = total = sizeof (notfound);
+-        written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
+-                                            MSG_NOSIGNAL));
++        if (fd != -1)
++          written = TEMP_FAILURE_RETRY (send (fd, &notfound, total,
++                                              MSG_NOSIGNAL));
+-        dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len,
+-                                 1);
+-        /* If we cannot permanently store the result, so be it.  */
+-        if (dataset != NULL)
++        /* If we have a transient error or cannot permanently store
++           the result, so be it.  */
++        if (errval == EAGAIN || __builtin_expect (db->negtimeout == 0, 0))
++          {
++            /* Mark the old entry as obsolete.  */
++            if (dh != NULL)
++              dh->usable = false;
++          }
++        else if ((dataset = mempool_alloc (db, (sizeof (struct dataset)
++                                                + req->key_len), 1)) != NULL)
+           {
+             dataset->head.allocsize = sizeof (struct dataset) + req->key_len;
+             dataset->head.recsize = total;
diff --git a/src/patches/glibc/glibc-rh785984.patch b/src/patches/glibc/glibc-rh785984.patch
new file mode 100644 (file)
index 0000000..80ba5e8
--- /dev/null
@@ -0,0 +1,20 @@
+diff -rup a/localedata/locales/zh_CN b/localedata/locales/zh_CN
+--- a/localedata/locales/zh_CN 2006-07-30 16:19:43.000000000 -0600
++++ b/localedata/locales/zh_CN 2012-01-30 21:24:46.905115483 -0700
+@@ -108,11 +108,11 @@ day      "<U661F><U671F><U65E5>";/
+       "<U661F><U671F><U4E94>";/
+       "<U661F><U671F><U516D>"
+-abmon "<U0020><U0031><U6708>";"<U0020><U0032><U6708>";/
+-      "<U0020><U0033><U6708>";"<U0020><U0034><U6708>";/
+-      "<U0020><U0035><U6708>";"<U0020><U0036><U6708>";/
+-      "<U0020><U0037><U6708>";"<U0020><U0038><U6708>";/
+-      "<U0020><U0039><U6708>";"<U0031><U0030><U6708>";/
++abmon "<U0031><U6708>";"<U0032><U6708>";/
++      "<U0033><U6708>";"<U0034><U6708>";/
++      "<U0035><U6708>";"<U0036><U6708>";/
++      "<U0037><U6708>";"<U0038><U6708>";/
++      "<U0039><U6708>";"<U0031><U0030><U6708>";/
+       "<U0031><U0031><U6708>";"<U0031><U0032><U6708>"
+ mon   "<U4E00><U6708>";"<U4E8C><U6708>";"<U4E09><U6708>";/
diff --git a/src/patches/glibc/glibc-rh788959-2.patch b/src/patches/glibc/glibc-rh788959-2.patch
new file mode 100644 (file)
index 0000000..1064640
--- /dev/null
@@ -0,0 +1,153 @@
+diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c
+*** a/nscd/grpcache.c  Wed Apr 11 12:50:07 2012
+--- b/nscd/grpcache.c  Wed Apr 11 21:45:58 2012
+*************** cache_addgr (struct database_dyn *db, in
+*** 178,184 ****
+        char *cp;
+        const size_t key_len = strlen (key);
+        const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
+!       char *buf = alloca (buf_len);
+        ssize_t n;
+        size_t cnt;
+  
+--- 178,185 ----
+        char *cp;
+        const size_t key_len = strlen (key);
+        const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
+!       size_t alloca_used = 0;
+!       char *buf = alloca_account (buf_len, alloca_used);
+        ssize_t n;
+        size_t cnt;
+  
+*************** cache_addgr (struct database_dyn *db, in
+*** 190,196 ****
+        /* Determine the length of all members.  */
+        while (grp->gr_mem[gr_mem_cnt])
+       ++gr_mem_cnt;
+!       gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t));
+        for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
+       {
+         gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
+--- 191,198 ----
+        /* Determine the length of all members.  */
+        while (grp->gr_mem[gr_mem_cnt])
+       ++gr_mem_cnt;
+!       gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t),
+!                                              alloca_used);
+        for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
+       {
+         gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
+*************** cache_addgr (struct database_dyn *db, in
+*** 205,214 ****
+        change.  Allocate memory on the cache since it is likely
+        discarded anyway.  If it turns out to be necessary to have a
+        new record we can still allocate real memory.  */
+!       bool alloca_used = false;
+        dataset = NULL;
+  
+!       if (he == NULL)
+       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
+  
+        if (dataset == NULL)
+--- 207,216 ----
+        change.  Allocate memory on the cache since it is likely
+        discarded anyway.  If it turns out to be necessary to have a
+        new record we can still allocate real memory.  */
+!       bool dataset_in_stack_or_freed = false;
+        dataset = NULL;
+  
+!       if (he == NULL || ! __libc_use_alloca (alloca_used + total + n))
+       dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
+  
+        if (dataset == NULL)
+*************** cache_addgr (struct database_dyn *db, in
+*** 216,225 ****
+         /* We cannot permanently add the result in the moment.  But
+            we can provide the result as is.  Store the data in some
+            temporary memory.  */
+!        dataset = (struct dataset *) alloca (total + n);
+  
+         /* We cannot add this record to the permanent database.  */
+!        alloca_used = true;
+       }
+  
+        dataset->head.allocsize = total + n;
+--- 218,227 ----
+         /* We cannot permanently add the result in the moment.  But
+            we can provide the result as is.  Store the data in some
+            temporary memory.  */
+!        dataset = (struct dataset *) alloca_account (total + n, alloca_used);
+  
+         /* We cannot add this record to the permanent database.  */
+!        dataset_in_stack_or_freed = true;
+       }
+  
+        dataset->head.allocsize = total + n;
+*************** cache_addgr (struct database_dyn *db, in
+*** 273,278 ****
+--- 275,288 ----
+                allocated on the stack and need not be freed.  */
+             dh->timeout = dataset->head.timeout;
+             ++dh->nreloads;
++ 
++            /* If the new record was not allocated on the stack, then it must
++               be freed.  Note that it can no longer be used.  */
++            if (! dataset_in_stack_or_freed)
++              {
++                free (dataset);
++                dataset_in_stack_or_freed = true;
++              }
+           }
+         else
+           {
+*************** cache_addgr (struct database_dyn *db, in
+*** 288,294 ****
+                 key_copy = (char *) newp + (key_copy - (char *) dataset);
+  
+                 dataset = memcpy (newp, dataset, total + n);
+!                alloca_used = false;
+               }
+  
+             /* Mark the old record as obsolete.  */
+--- 298,304 ----
+                 key_copy = (char *) newp + (key_copy - (char *) dataset);
+  
+                 dataset = memcpy (newp, dataset, total + n);
+!                dataset_in_stack_or_freed = false;
+               }
+  
+             /* Mark the old record as obsolete.  */
+*************** cache_addgr (struct database_dyn *db, in
+*** 303,309 ****
+         assert (fd != -1);
+  
+  #ifdef HAVE_SENDFILE
+!        if (__builtin_expect (db->mmap_used, 1) && !alloca_used)
+           {
+             assert (db->wr_fd != -1);
+             assert ((char *) &dataset->resp > (char *) db->data);
+--- 313,319 ----
+         assert (fd != -1);
+  
+  #ifdef HAVE_SENDFILE
+!        if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed)
+           {
+             assert (db->wr_fd != -1);
+             assert ((char *) &dataset->resp > (char *) db->data);
+*************** cache_addgr (struct database_dyn *db, in
+*** 330,336 ****
+  
+        /* Add the record to the database.  But only if it has not been
+        stored on the stack.  */
+!       if (! alloca_used)
+       {
+         /* If necessary, we also propagate the data to disk.  */
+         if (db->persistent)
+--- 340,346 ----
+  
+        /* Add the record to the database.  But only if it has not been
+        stored on the stack.  */
+!       if (! dataset_in_stack_or_freed)
+       {
+         /* If necessary, we also propagate the data to disk.  */
+         if (db->persistent)
diff --git a/src/patches/glibc/glibc-rh788959.patch b/src/patches/glibc/glibc-rh788959.patch
new file mode 100644 (file)
index 0000000..adc6c99
--- /dev/null
@@ -0,0 +1,130 @@
+diff -pruN glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c
+--- glibc-2.12-2-gc4ccff1/nis/nss_compat/compat-initgroups.c   2010-05-04 16:57:23.000000000 +0530
++++ glibc-2.12-2-gc4ccff1.patched/nis/nss_compat/compat-initgroups.c   2012-02-21 11:11:19.877008465 +0530
+@@ -297,6 +297,8 @@ getgrent_next_nss (ent_t *ent, char *buf
+       if (nss_initgroups_dyn (user, group, &mystart, &mysize, &mygroups,
+                             limit, errnop) == NSS_STATUS_SUCCESS)
+       {
++        status = NSS_STATUS_NOTFOUND;
++
+         /* If there is no blacklist we can trust the underlying
+            initgroups implementation.  */
+         if (ent->blacklist.current <= 1)
+@@ -309,6 +311,7 @@ getgrent_next_nss (ent_t *ent, char *buf
+                overwrite the pointer with one to a bigger buffer.  */
+             char *tmpbuf = buffer;
+             size_t tmplen = buflen;
++            bool use_malloc = false;
+             for (int i = 0; i < mystart; i++)
+               {
+@@ -316,21 +319,36 @@ getgrent_next_nss (ent_t *ent, char *buf
+                                                  tmpbuf, tmplen, errnop))
+                        == NSS_STATUS_TRYAGAIN
+                        && *errnop == ERANGE)
+-                  if (tmpbuf == buffer)
+-                    {
+-                      tmplen *= 2;
+-                      tmpbuf = __alloca (tmplen);
+-                    }
+-                  else
+-                    tmpbuf = extend_alloca (tmpbuf, tmplen, 2 * tmplen);
++                    {
++                      if (__libc_use_alloca (tmplen * 2))
++                        {
++                          if (tmpbuf == buffer)
++                            {
++                              tmplen *= 2;
++                              tmpbuf = __alloca (tmplen);
++                            }
++                          else
++                            tmpbuf = extend_alloca (tmpbuf, tmplen, tmplen * 2);
++                        }
++                      else
++                        {
++                          tmplen *= 2;
++                          char *newbuf = realloc (use_malloc ? tmpbuf : NULL, tmplen);
++                    
++                          if (newbuf == NULL)
++                            {
++                              status = NSS_STATUS_TRYAGAIN;
++                            goto done;
++                            }
++                          use_malloc = true;
++                          tmpbuf = newbuf;
++                        }
++                    }
+                 if (__builtin_expect  (status != NSS_STATUS_NOTFOUND, 1))
+                   {
+                     if (__builtin_expect  (status != NSS_STATUS_SUCCESS, 0))
+-                      {
+-                        free (mygroups);
+-                        return status;
+-                      }
++                      goto done;
+                     if (!in_blacklist (grpbuf.gr_name,
+                                        strlen (grpbuf.gr_name), ent)
+@@ -348,11 +366,17 @@ getgrent_next_nss (ent_t *ent, char *buf
+                       }
+                   }
+               }
++
++              status = NSS_STATUS_NOTFOUND;
++
++ done:
++              if (use_malloc)
++                free (tmpbuf);
+           }
+         free (mygroups);
+-        return NSS_STATUS_NOTFOUND;
++        return status;
+       }
+       free (mygroups);
+@@ -506,6 +530,7 @@ _nss_compat_initgroups_dyn (const char *
+   char *tmpbuf;
+   enum nss_status status;
+   ent_t intern = { true, false, false, NULL, {NULL, 0, 0} };
++  bool use_malloc = false;
+   status = internal_setgrent (&intern);
+   if (status != NSS_STATUS_SUCCESS)
+@@ -519,13 +544,32 @@ _nss_compat_initgroups_dyn (const char *
+                                           user, group, start, size,
+                                           groupsp, limit, errnop))
+            == NSS_STATUS_TRYAGAIN && *errnop == ERANGE)
+-      tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen);
++        if (__libc_use_alloca (buflen * 2))
++          tmpbuf = extend_alloca (tmpbuf, buflen, 2 * buflen);
++        else
++          {
++            buflen *= 2;
++            char *newbuf = realloc (use_malloc ? tmpbuf : NULL, buflen);
++            if (newbuf == NULL)
++              {
++                status = NSS_STATUS_TRYAGAIN;
++                goto done;
++              }
++            use_malloc = true;
++            tmpbuf = newbuf;
++          }
+     }
+   while (status == NSS_STATUS_SUCCESS);
++  status = NSS_STATUS_SUCCESS;
++
++ done:
++  if (use_malloc)
++    free (tmpbuf);
++
+   internal_endgrent (&intern);
+-  return NSS_STATUS_SUCCESS;
++  return status;
+ }
diff --git a/src/patches/glibc/glibc-rh789189.patch b/src/patches/glibc/glibc-rh789189.patch
new file mode 100644 (file)
index 0000000..fc0e2e0
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rup a/resolv/res_init.c b/resolv/res_init.c
+--- a/resolv/res_init.c        2010-05-04 05:27:23.000000000 -0600
++++ b/resolv/res_init.c        2012-02-10 10:20:24.923578396 -0700
+@@ -325,7 +325,7 @@ __res_vinit(res_state statp, int preinit
+                         struct in6_addr a6;
+                         char *el;
+-                        if ((el = strchr(cp, '\n')) != NULL)
++                        if ((el = strpbrk(cp, " \t\n")) != NULL)
+                             *el = '\0';
+                       if ((el = strchr(cp, SCOPE_DELIMITER)) != NULL)
+                           *el = '\0';
diff --git a/src/patches/glibc/glibc-rh789209.patch b/src/patches/glibc/glibc-rh789209.patch
new file mode 100644 (file)
index 0000000..3aea97e
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rup a/localedata/locales/uk_UA b/localedata/locales/uk_UA
+--- a/localedata/locales/uk_UA 2010-05-04 05:27:23.000000000 -0600
++++ b/localedata/locales/uk_UA 2012-02-10 09:59:16.934189715 -0700
+@@ -700,7 +700,7 @@ LC_MONETARY
+ % 200 hrv. - 200 hryven (money)
+ % the local currency symbol
+-currency_symbol           "<U0433><U0440>" % hr (hryvnya)
++currency_symbol           "<U0433><U0440><U043D><U002E>"  % hr (hryvnya)
+ % This must be a 4-character string containing the international currency
+ % symbol as defined by the ISO 4217 standard (three characters) followed
diff --git a/src/patches/glibc/glibc-rh789238-2.patch b/src/patches/glibc/glibc-rh789238-2.patch
new file mode 100644 (file)
index 0000000..62b5492
--- /dev/null
@@ -0,0 +1,114 @@
+diff -rup a/malloc/arena.c b/malloc/arena.c
+--- a/malloc/arena.c   2012-03-02 10:22:47.025002715 -0700
++++ b/malloc/arena.c   2012-03-02 10:27:47.442361529 -0700
+@@ -123,14 +123,14 @@ int __malloc_initialized = -1;
+   if(ptr) \
+     (void)mutex_lock(&ptr->mutex); \
+   else \
+-    ptr = arena_get2(ptr, (size)); \
++    ptr = arena_get2(ptr, (size), false); \
+ } while(0)
+ #else
+ #define arena_lock(ptr, size) do { \
+   if(ptr && !mutex_trylock(&ptr->mutex)) { \
+     THREAD_STAT(++(ptr->stat_lock_direct)); \
+   } else \
+-    ptr = arena_get2(ptr, (size)); \
++    ptr = arena_get2(ptr, (size), false); \
+ } while(0)
+ #endif
+@@ -982,7 +982,7 @@ get_free_list (void)
+ static mstate
+-reused_arena (void)
++reused_arena (bool retrying)
+ {
+   mstate result;
+   static mstate next_to_use;
+@@ -999,6 +999,15 @@ reused_arena (void)
+     }
+   while (result != next_to_use);
++  /* If we are retrying due to a failure to allocate in the main
++     arena, don't wait for the main arena to become available, select
++     another.
++
++     To really fix this right we would have to try the allocation
++     in every other arena, but that seems like severe overkill.  */
++  if (retrying && result == &main_arena)
++    result = result->next;
++
+   /* No arena available.  Wait for the next in line.  */
+   (void)mutex_lock(&result->mutex);
+@@ -1014,9 +1023,9 @@ reused_arena (void)
+ static mstate
+ internal_function
+ #if __STD_C
+-arena_get2(mstate a_tsd, size_t size)
++arena_get2(mstate a_tsd, size_t size, bool retrying)
+ #else
+-arena_get2(a_tsd, size) mstate a_tsd; size_t size;
++arena_get2(a_tsd, size, retrying) mstate a_tsd; size_t size; bool retrying
+ #endif
+ {
+   mstate a;
+@@ -1055,7 +1064,7 @@ arena_get2(a_tsd, size) mstate a_tsd; si
+           catomic_decrement (&narenas);
+       }
+       else
+-      a = reused_arena ();
++      a = reused_arena (retrying);
+     }
+ #else
+   if(!a_tsd)
+diff -rup a/malloc/malloc.c b/malloc/malloc.c
+--- a/malloc/malloc.c  2012-03-02 10:22:47.061002519 -0700
++++ b/malloc/malloc.c  2012-03-02 10:23:53.151643863 -0700
+@@ -3671,7 +3671,7 @@ public_mALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       victim = _int_malloc(ar_ptr, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3892,7 +3892,7 @@ public_mEMALIGn(size_t alignment, size_t
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, alignment, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3943,7 +3943,7 @@ public_vALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes);
++      ar_ptr = arena_get2(prev, bytes, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3992,7 +3992,7 @@ public_pVALLOc(size_t bytes)
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = ar_ptr->next ? ar_ptr : 0;
+       (void)mutex_unlock(&ar_ptr->mutex);
+-      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE);
++      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE, true);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -4086,7 +4086,7 @@ public_cALLOc(size_t n, size_t elem_size
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+       mstate prev = av->next ? av : 0;
+       (void)mutex_unlock(&av->mutex);
+-      av = arena_get2(prev, sz);
++      av = arena_get2(prev, sz, true);
+       if(av) {
+       mem = _int_malloc(av, sz);
+       (void)mutex_unlock(&av->mutex);
diff --git a/src/patches/glibc/glibc-rh789238.patch b/src/patches/glibc/glibc-rh789238.patch
new file mode 100644 (file)
index 0000000..f2c90e2
--- /dev/null
@@ -0,0 +1,119 @@
+diff -rup a/malloc/malloc.c b/malloc/malloc.c
+--- a/malloc/malloc.c  2012-02-13 21:46:11.678847531 -0700
++++ b/malloc/malloc.c  2012-02-13 22:43:14.788431976 -0700
+@@ -3669,8 +3669,9 @@ public_mALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
+-      (void)mutex_unlock(&main_arena.mutex);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes);
+       if(ar_ptr) {
+       victim = _int_malloc(ar_ptr, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+@@ -3929,10 +3930,10 @@ public_vALLOc(size_t bytes)
+   if(!ar_ptr)
+     return 0;
+   p = _int_valloc(ar_ptr, bytes);
+-  (void)mutex_unlock(&ar_ptr->mutex);
+   if(!p) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(ar_ptr != &main_arena) {
++      (void)mutex_unlock(&ar_ptr->mutex);
+       ar_ptr = &main_arena;
+       (void)mutex_lock(&ar_ptr->mutex);
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+@@ -3940,14 +3941,17 @@ public_vALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0, bytes);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+       }
+ #endif
+     }
+-  }
++  } else
++    (void)mutex_unlock(&ar_ptr->mutex);
+   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+        ar_ptr == arena_for_chunk(mem2chunk(p)));
+@@ -3975,10 +3979,10 @@ public_pVALLOc(size_t bytes)
+   arena_get(ar_ptr, bytes + 2*pagesz + MINSIZE);
+   p = _int_pvalloc(ar_ptr, bytes);
+-  (void)mutex_unlock(&ar_ptr->mutex);
+   if(!p) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(ar_ptr != &main_arena) {
++      (void)mutex_unlock(&ar_ptr->mutex);
+       ar_ptr = &main_arena;
+       (void)mutex_lock(&ar_ptr->mutex);
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+@@ -3986,15 +3990,17 @@ public_pVALLOc(size_t bytes)
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      ar_ptr = arena_get2(ar_ptr->next ? ar_ptr : 0,
+-                        bytes + 2*pagesz + MINSIZE);
++      mstate prev = ar_ptr->next ? ar_ptr : 0;
++      (void)mutex_unlock(&ar_ptr->mutex);
++      ar_ptr = arena_get2(prev, bytes + 2*pagesz + MINSIZE);
+       if(ar_ptr) {
+       p = _int_memalign(ar_ptr, pagesz, rounded_bytes);
+       (void)mutex_unlock(&ar_ptr->mutex);
+       }
+ #endif
+     }
+-  }
++  } else
++    (void)mutex_unlock(&ar_ptr->mutex);
+   assert(!p || chunk_is_mmapped(mem2chunk(p)) ||
+        ar_ptr == arena_for_chunk(mem2chunk(p)));
+@@ -4064,8 +4070,6 @@ public_cALLOc(size_t n, size_t elem_size
+ #endif
+   mem = _int_malloc(av, sz);
+-  /* Only clearing follows, so we can unlock early. */
+-  (void)mutex_unlock(&av->mutex);
+   assert(!mem || chunk_is_mmapped(mem2chunk(mem)) ||
+        av == arena_for_chunk(mem2chunk(mem)));
+@@ -4073,15 +4077,16 @@ public_cALLOc(size_t n, size_t elem_size
+   if (mem == 0) {
+     /* Maybe the failure is due to running out of mmapped areas. */
+     if(av != &main_arena) {
++      (void)mutex_unlock(&av->mutex);
+       (void)mutex_lock(&main_arena.mutex);
+       mem = _int_malloc(&main_arena, sz);
+       (void)mutex_unlock(&main_arena.mutex);
+     } else {
+ #if USE_ARENAS
+       /* ... or sbrk() has failed and there is still a chance to mmap() */
+-      (void)mutex_lock(&main_arena.mutex);
+-      av = arena_get2(av->next ? av : 0, sz);
+-      (void)mutex_unlock(&main_arena.mutex);
++      mstate prev = av->next ? av : 0;
++      (void)mutex_unlock(&av->mutex);
++      av = arena_get2(prev, sz);
+       if(av) {
+       mem = _int_malloc(av, sz);
+       (void)mutex_unlock(&av->mutex);
+@@ -4089,7 +4094,8 @@ public_cALLOc(size_t n, size_t elem_size
+ #endif
+     }
+     if (mem == 0) return 0;
+-  }
++  } else
++    (void)mutex_unlock(&av->mutex);
+   p = mem2chunk(mem);
+   /* Two optional cases in which clearing not necessary */
diff --git a/src/patches/glibc/glibc-rh794817-2.patch b/src/patches/glibc/glibc-rh794817-2.patch
new file mode 100644 (file)
index 0000000..15774b4
--- /dev/null
@@ -0,0 +1,85 @@
+diff -rup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+--- a/stdio-common/vfprintf.c  2012-03-05 09:43:14.705536167 -0700
++++ b/stdio-common/vfprintf.c  2012-03-05 09:48:11.602890982 -0700
+@@ -822,7 +822,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                                                                             \
+       if (function_done < 0)                                                \
+         {                                                                   \
+-          /* Error in print handler.  */                                    \
++          /* Error in print handler; up to handler to set errno.  */        \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -876,7 +876,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                                                                             \
+       if (function_done < 0)                                                \
+         {                                                                   \
+-          /* Error in print handler.  */                                    \
++          /* Error in print handler; up to handler to set errno.  */        \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -1117,7 +1117,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                        &mbstate);                                           \
+       if (len == (size_t) -1)                                               \
+         {                                                                   \
+-          /* Something went wron gduring the conversion.  Bail out.  */     \
++          /* Something went wrong during the conversion.  Bail out.  */     \
+           done = -1;                                                        \
+           goto all_done;                                                    \
+         }                                                                   \
+@@ -1188,6 +1188,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+                     if (__mbsnrtowcs (ignore, &str2, strend - str2,         \
+                                       ignore_size, &ps) == (size_t) -1)     \
+                       {                                                     \
++                        /* Conversion function has set errno.  */           \
+                         done = -1;                                          \
+                         goto all_done;                                      \
+                       }                                                     \
+@@ -1599,6 +1600,7 @@ vfprintf (FILE *s, const CHAR_T *format,
+         if (spec == L_('\0'))
+           {
+             /* The format string ended before the specifier is complete.  */
++            __set_errno (EINVAL);
+             done = -1;
+             goto all_done;
+           }
+@@ -1696,17 +1698,20 @@ do_positional:
+     /* Determine the number of arguments the format string consumes.  */
+     nargs = MAX (nargs, max_ref_arg);
++    /* Calculate total size needed to represent a single argument across
++       all three argument-related arrays.  */
+     bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
+                     + sizeof (*args_type);
+     /* Check for potential integer overflow.  */
+-    if (nargs > SIZE_MAX / bytes_per_arg)
++    if (__builtin_expect (nargs > SIZE_MAX / bytes_per_arg, 0))
+       {
++         __set_errno (ERANGE);
+          done = -1;
+          goto all_done;
+       }
+-    /* Allocate memory for the argument descriptions.  */
++    /* Allocate memory for all three argument arrays.  */
+     if (__libc_use_alloca (nargs * bytes_per_arg))
+         args_value = alloca (nargs * bytes_per_arg);
+     else
+@@ -1937,6 +1942,7 @@ do_positional:
+                      about # of chars.  */
+                   if (function_done < 0)
+                     {
++                      /* Function has set errno.  */
+                       done = -1;
+                       goto all_done;
+                     }
+@@ -1971,6 +1977,7 @@ do_positional:
+                of chars.  */
+             if (function_done < 0)
+               {
++                /* Function has set errno.  */
+                 done = -1;
+                 goto all_done;
+               }
diff --git a/src/patches/glibc/glibc-rh794817.patch b/src/patches/glibc/glibc-rh794817.patch
new file mode 100644 (file)
index 0000000..e21caaa
--- /dev/null
@@ -0,0 +1,239 @@
+From libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org Thu Feb 16 16:21:17 2012
+Return-Path: <libc-alpha-return-25252-listarch-libc-alpha=sources dot redhat dot com at sourceware dot org>
+Delivered-To: listarch-libc-alpha at sources dot redhat dot com
+Received: (qmail 5187 invoked by alias); 16 Feb 2012 16:21:14 -0000
+Delivered-To: moderator for libc-alpha at sourceware dot org
+Received: (qmail 2174 invoked by uid 22791); 16 Feb 2012 16:17:18 -0000
+X-SWARE-Spam-Status: No, hits=-2.0 required=5.0
+       tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,TW_TV,TW_VB,TW_VF,T_RP_MATCHES_RCVD
+X-Spam-Check-By: sourceware.org
+Date: Thu, 16 Feb 2012 08:16:13 -0800
+From: Kees Cook <kees at outflux dot net>
+To: "Ryan S dot  Arnold" <ryan dot arnold at gmail dot com>
+Cc: libc-alpha at sourceware dot org, Paul Eggert <eggert at cs dot ucla dot edu>,
+        Roland McGrath <roland at hack dot frob dot com>,
+        Andreas Schwab <schwab at linux-m68k dot org>
+Subject: Re: [PATCH] vfprintf: validate nargs and maybe allocate from heap
+Message-ID: <20120216161613.GZ20420@outflux.net>
+References: <20120206062537.GM4979@outflux.net>
+ <20120207000509 dot GP4989 at outflux dot net>
+ <20120210192457 dot GF20420 at outflux dot net>
+ <CAAKybw8AgkGsKAx=kvX4Tsi74f+HtuVnatTCB0VfsHi7vVFi1Q at mail dot gmail dot com>
+ <20120214223048 dot GM20420 at outflux dot net>
+ <CAAKybw_HS+cav+YcDw3ns7UXu6_xA7EHPrkiB87P+OGwEB0PVQ at mail dot gmail dot com>
+ <20120214224543 dot GN20420 at outflux dot net>
+MIME-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <20120214224543 dot GN20420 at outflux dot net>
+X-MIMEDefang-Filter: outflux$Revision: 1.316 $
+X-HELO: www.outflux.net
+Mailing-List: contact libc-alpha-help at sourceware dot org; run by ezmlm
+Precedence: bulk
+List-Id: <libc-alpha.sourceware.org>
+List-Subscribe: <mailto:libc-alpha-subscribe at sourceware dot org>
+List-Archive: <http://sourceware.org/ml/libc-alpha/>
+List-Post: <mailto:libc-alpha at sourceware dot org>
+List-Help: <mailto:libc-alpha-help at sourceware dot org>, <http://sourceware dot org/ml/#faqs>
+Sender: libc-alpha-owner at sourceware dot org
+Delivered-To: mailing list libc-alpha at sourceware dot org
+
+The nargs value can overflow when doing allocations, allowing arbitrary
+memory writes via format strings, bypassing _FORTIFY_SOURCE:
+http://www.phrack.org/issues.html?issue=67&id=9
+
+This checks for nargs overflow and possibly allocates from heap instead of
+stack, and adds a regression test for the situation.
+
+I have FSF assignment via Google. (Sent from @outflux since that's how I'm
+subscribed here, but CL shows @chromium.org as part of my Google work.)
+
+This version disables the useless test on non-32-bit platforms.
+
+2012-02-16  Kees Cook  <keescook@chromium.org>
+
+       [BZ #13656]
+       * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and
+       possibly allocate from heap instead of stack.
+       * stdio-common/bug-vfprintf-nargs.c: New file.
+       * stdio-common/Makefile (tests): Add nargs overflow test.
+
+diff -rup a/stdio-common/Makefile b/stdio-common/Makefile
+--- a/stdio-common/Makefile    2010-05-04 05:27:23.000000000 -0600
++++ b/stdio-common/Makefile    2012-02-20 21:57:52.983040992 -0700
+@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t
+        tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+        tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+        bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+-       scanf16 scanf17 tst-setvbuf1
++       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs
+ test-srcs = tst-unbputc tst-printf
+diff --git a/stdio-common/bug-vfprintf-nargs.c b/stdio-common/bug-vfprintf-nargs.c
+new file mode 100644
+index 0000000..13c66c0
+--- /dev/null
++++ b/stdio-common/bug-vfprintf-nargs.c
+@@ -0,0 +1,78 @@
++/* Test for vfprintf nargs allocation overflow (BZ #13656).
++   Copyright (C) 2012 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++   Contributed by Kees Cook <keescook@chromium.org>, 2012.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, write to the Free
++   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
++   02111-1307 USA.  */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <unistd.h>
++#include <inttypes.h>
++#include <string.h>
++#include <signal.h>
++
++static int
++format_failed (const char *fmt, const char *expected)
++{
++  char output[80];
++
++  printf ("%s : ", fmt);
++
++  memset (output, 0, sizeof output);
++  /* Having sprintf itself detect a failure is good.  */
++  if (sprintf (output, fmt, 1, 2, 3, "test") > 0
++      && strcmp (output, expected) != 0)
++    {
++      printf ("FAIL (output '%s' != expected '%s')\n", output, expected);
++      return 1;
++    }
++  puts ("ok");
++  return 0;
++}
++
++static int
++do_test (void)
++{
++  int rc = 0;
++  char buf[64];
++
++  /* Regular positionals work.  */
++  if (format_failed ("%1$d", "1") != 0)
++    rc = 1;
++
++  /* Regular width positionals work.  */
++  if (format_failed ("%1$*2$d", " 1") != 0)
++    rc = 1;
++
++  /* Positional arguments are constructed via read_int, so nargs can only
++     overflow on 32-bit systems.  On 64-bit systems, it will attempt to
++     allocate a giant amount of memory and possibly crash, which is the
++     expected situation.  Since the 64-bit behavior is arch-specific, only
++     test this on 32-bit systems.  */
++  if (sizeof (long int) == 4)
++    {
++      sprintf (buf, "%%1$d %%%" PRIdPTR "$d", UINT32_MAX / sizeof (int));
++      if (format_failed (buf, "1 %$d") != 0)
++        rc = 1;
++    }
++
++  return rc;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff --git a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+index 863cd5d..022e72b 100644
+--- a/stdio-common/vfprintf.c
++++ b/stdio-common/vfprintf.c
+@@ -235,6 +235,9 @@ vfprintf (FILE *s, const CHAR_T *format, va_list ap)
+      0 if unknown.  */
+   int readonly_format = 0;
++  /* For the argument descriptions, which may be allocated on the heap.  */
++  void *args_malloced = NULL;
++
+   /* This table maps a character into a number representing a
+      class.  In each step there is a destination label for each
+      class.  */
+@@ -1647,9 +1650,10 @@ do_positional:
+        determine the size of the array needed to store the argument
+        attributes.  */
+     size_t nargs = 0;
+-    int *args_type;
+-    union printf_arg *args_value = NULL;
++    size_t bytes_per_arg;
++    union printf_arg *args_value;
+     int *args_size;
++    int *args_type;
+     /* Positional parameters refer to arguments directly.  This could
+        also determine the maximum number of arguments.  Track the
+@@ -1698,13 +1702,33 @@ do_positional:
+     /* Determine the number of arguments the format string consumes.  */
+     nargs = MAX (nargs, max_ref_arg);
++    bytes_per_arg = sizeof (*args_value) + sizeof (*args_size)
++                    + sizeof (*args_type);
++
++    /* Check for potential integer overflow.  */
++    if (nargs > SIZE_MAX / bytes_per_arg)
++      {
++         done = -1;
++         goto all_done;
++      }
+     /* Allocate memory for the argument descriptions.  */
+-    args_type = alloca (nargs * sizeof (int));
++    if (__libc_use_alloca (nargs * bytes_per_arg))
++        args_value = alloca (nargs * bytes_per_arg);
++    else
++      {
++        args_value = args_malloced = malloc (nargs * bytes_per_arg);
++        if (args_value == NULL)
++          {
++            done = -1;
++            goto all_done;
++          }
++      }
++
++    args_size = &args_value[nargs].pa_int;
++    args_type = &args_size[nargs];
+     memset (args_type, s->_flags2 & _IO_FLAGS2_FORTIFY ? '\xff' : '\0',
+-          nargs * sizeof (int));
+-    args_value = alloca (nargs * sizeof (union printf_arg));
+-    args_size = alloca (nargs * sizeof (int));
++          nargs * sizeof (*args_type));
+     /* XXX Could do sanity check here: If any element in ARGS_TYPE is
+        still zero after this loop, format is invalid.  For now we
+@@ -1973,8 +1997,8 @@ do_positional:
+   }
+ all_done:
+-  if (__builtin_expect (workstart != NULL, 0))
+-    free (workstart);
++  free (args_malloced);
++  free (workstart);
+   /* Unlock the stream.  */
+   _IO_funlockfile (s);
+   _IO_cleanup_region_end (0);
+-- 
+1.7.5.4
+
+-- 
+Kees Cook                                            @outflux.net
+
diff --git a/src/patches/glibc/glibc-rh795498.patch b/src/patches/glibc/glibc-rh795498.patch
new file mode 100644 (file)
index 0000000..729c5a4
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+index 01369f6..44ad04d 100644
+--- a/resolv/nss_dns/dns-host.c
++++ b/resolv/nss_dns/dns-host.c
+@@ -1219,7 +1219,7 @@ gaih_getanswer (const querybuf *answer1, int anslen1, const querybuf *answer2,
+                                 &first);
+   if ((status == NSS_STATUS_SUCCESS || status == NSS_STATUS_NOTFOUND
+        || (status == NSS_STATUS_TRYAGAIN
+-         && (errno != ERANGE || *h_errnop != NO_RECOVERY)))
++         && (*errnop != ERANGE || *h_errnop == NO_RECOVERY)))
+       && answer2 != NULL && anslen2 > 0)
+     {
+       enum nss_status status2 = gaih_getanswer_slice(answer2, anslen2, qname,
diff --git a/src/patches/glibc/glibc-rh797094-1.patch b/src/patches/glibc/glibc-rh797094-1.patch
new file mode 100644 (file)
index 0000000..e98b9c0
--- /dev/null
@@ -0,0 +1,657 @@
+diff -rup a/include/alloca.h b/include/alloca.h
+--- a/include/alloca.h 2012-02-29 13:11:19.439693476 -0700
++++ b/include/alloca.h 2012-02-29 13:11:49.832530623 -0700
+@@ -49,15 +49,24 @@ libc_hidden_proto (__libc_alloca_cutoff)
+ #if defined stackinfo_get_sp && defined stackinfo_sub_sp
+ # define alloca_account(size, avar) \
+-  ({ void *old__ = stackinfo_get_sp ();                       \
+-     void *m__ = __alloca (size);                     \
+-     avar += stackinfo_sub_sp (old__);                        \
++  ({ void *old__ = stackinfo_get_sp ();                                             \
++     void *m__ = __alloca (size);                                           \
++     avar += stackinfo_sub_sp (old__);                                              \
++     m__; })
++# define extend_alloca_account(buf, len, newlen, avar) \
++  ({ void *old__ = stackinfo_get_sp ();                                             \
++     void *m__ = extend_alloca (buf, len, newlen);                          \
++     avar += stackinfo_sub_sp (old__);                                              \
+      m__; })
+ #else
+ # define alloca_account(size, avar) \
+-  ({ size_t s__ = (size);                 \
+-     avar += s__;                         \
++  ({ size_t s__ = (size);                                                   \
++     avar += s__;                                                           \
+      __alloca (s__); })
++# define extend_alloca_account(buf, len, newlen, avar) \
++  ({ size_t s__ = (newlen);                                                 \
++     avar += s__;                                                           \
++     extend_alloca (buf, len, s__); })
+ #endif
+ #endif
+diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+--- a/sysdeps/posix/getaddrinfo.c      2012-02-29 13:11:19.588692676 -0700
++++ b/sysdeps/posix/getaddrinfo.c      2012-02-29 13:12:42.972245862 -0700
+@@ -278,6 +278,7 @@ gaih_inet (const char *name, const struc
+   bool got_ipv6 = false;
+   const char *canon = NULL;
+   const char *orig_name = name;
++  size_t alloca_used = 0;
+   if (req->ai_protocol || req->ai_socktype)
+     {
+@@ -310,7 +311,7 @@ gaih_inet (const char *name, const struc
+         if (tp->name[0])
+           {
+             st = (struct gaih_servtuple *)
+-              __alloca (sizeof (struct gaih_servtuple));
++              alloca_account (sizeof (struct gaih_servtuple), alloca_used);
+             if ((rc = gaih_inet_serv (service->name, tp, req, st)))
+               return rc;
+@@ -334,7 +335,8 @@ gaih_inet (const char *name, const struc
+                   continue;
+                 newp = (struct gaih_servtuple *)
+-                  __alloca (sizeof (struct gaih_servtuple));
++                  alloca_account (sizeof (struct gaih_servtuple),
++                                  alloca_used);
+                 if ((rc = gaih_inet_serv (service->name, tp, req, newp)))
+                   {
+@@ -362,7 +364,7 @@ gaih_inet (const char *name, const struc
+       if (req->ai_socktype || req->ai_protocol)
+       {
+-        st = __alloca (sizeof (struct gaih_servtuple));
++        st = alloca_account (sizeof (struct gaih_servtuple), alloca_used);
+         st->next = NULL;
+         st->socktype = tp->socktype;
+         st->protocol = ((tp->protoflag & GAI_PROTO_PROTOANY)
+@@ -379,7 +381,8 @@ gaih_inet (const char *name, const struc
+             {
+               struct gaih_servtuple *newp;
+-              newp = __alloca (sizeof (struct gaih_servtuple));
++              newp = alloca_account (sizeof (struct gaih_servtuple),
++                                     alloca_used);
+               newp->next = NULL;
+               newp->socktype = tp->socktype;
+               newp->protocol = tp->protocol;
+@@ -391,10 +394,17 @@ gaih_inet (const char *name, const struc
+       }
+     }
++  bool malloc_name = false;
++  bool malloc_addrmem = false;
++  struct gaih_addrtuple *addrmem = NULL;
++  bool malloc_canonbuf = false;
++  char *canonbuf = NULL;
++  bool malloc_tmpbuf = false;
++  char *tmpbuf = NULL;
++  int result = 0;
+   if (name != NULL)
+     {
+-      at = __alloca (sizeof (struct gaih_addrtuple));
+-
++      at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used);
+       at->family = AF_UNSPEC;
+       at->scopeid = 0;
+       at->next = NULL;
+@@ -412,6 +422,7 @@ gaih_inet (const char *name, const struc
+         rc = __idna_to_ascii_lz (name, &p, idn_flags);
+         if (rc != IDNA_SUCCESS)
+           {
++            /* No need to jump to free_and_return here.  */
+             if (rc == IDNA_MALLOC_ERROR)
+               return -EAI_MEMORY;
+             if (rc == IDNA_DLOPEN_ERROR)
+@@ -421,10 +432,7 @@ gaih_inet (const char *name, const struc
+         /* In case the output string is the same as the input string
+            no new string has been allocated.  */
+         if (p != name)
+-          {
+-            name = strdupa (p);
+-            free (p);
+-          }
++          malloc_name = true;
+       }
+ #endif
+@@ -441,23 +449,59 @@ gaih_inet (const char *name, const struc
+             at->family = AF_INET6;
+           }
+         else
+-          return -EAI_ADDRFAMILY;
++          {
++            result = -EAI_ADDRFAMILY;
++            goto free_and_return;
++          }
+         if (req->ai_flags & AI_CANONNAME)
+           canon = name;
+       }
+       else if (at->family == AF_UNSPEC)
+       {
+-        char *namebuf = (char *) name;
+         char *scope_delim = strchr (name, SCOPE_DELIMITER);
++        int e;
+-        if (__builtin_expect (scope_delim != NULL, 0))
+-          {
+-            namebuf = alloca (scope_delim - name + 1);
+-            *((char *) __mempcpy (namebuf, name, scope_delim - name)) = '\0';
+-          }
++        {
++          bool malloc_namebuf = false;
++          char *namebuf = (char *) name;
++
++          if (__builtin_expect (scope_delim != NULL, 0))
++            {
++              if (malloc_name)
++                *scope_delim = '\0';
++              else
++                {
++                  if (__libc_use_alloca (alloca_used
++                                         + scope_delim - name + 1))
++                    {
++                      namebuf = alloca_account (scope_delim - name + 1,
++                                                alloca_used);
++                      *((char *) __mempcpy (namebuf, name,
++                                            scope_delim - name)) = '\0';
++                    }
++                  else
++                    {
++                      namebuf = strndup (name, scope_delim - name);
++                      if (namebuf == NULL)
++                        {
++                          assert (!malloc_name);
++                          return -EAI_MEMORY;
++                        }
++                      malloc_namebuf = true;
++                    }
++                }
++            }
+-        if (inet_pton (AF_INET6, namebuf, at->addr) > 0)
++          e = inet_pton (AF_INET6, namebuf, at->addr);
++
++          if (malloc_namebuf)
++            free (namebuf);
++          else if (scope_delim != NULL && malloc_name)
++            /* Undo what we did above.  */
++            *scope_delim = SCOPE_DELIMITER;
++        }
++        if (e > 0)
+           {
+             if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET6)
+               at->family = AF_INET6;
+@@ -468,7 +512,10 @@ gaih_inet (const char *name, const struc
+                 at->family = AF_INET;
+               }
+             else
+-              return -EAI_ADDRFAMILY;
++              {
++                result = -EAI_ADDRFAMILY;
++                goto free_and_return;
++              }
+             if (scope_delim != NULL)
+               {
+@@ -490,7 +537,10 @@ gaih_inet (const char *name, const struc
+                     at->scopeid = (uint32_t) strtoul (scope_delim + 1, &end,
+                                                       10);
+                     if (*end != '\0')
+-                      return GAIH_OKIFUNSPEC | -EAI_NONAME;
++                      {
++                        result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++                        goto free_and_return;
++                      }
+                   }
+               }
+@@ -520,59 +570,80 @@ gaih_inet (const char *name, const struc
+           {
+             int family = req->ai_family;
+             size_t tmpbuflen = 512;
+-            char *tmpbuf = alloca (tmpbuflen);
++            assert (tmpbuf == NULL);
++            tmpbuf = alloca_account (tmpbuflen, alloca_used);
+             int rc;
+             struct hostent th;
+             struct hostent *h;
+             int herrno;
+-          simple_again:
+             while (1)
+               {
+-                rc = __gethostbyname2_r (name, family, &th, tmpbuf,
++                rc = __gethostbyname2_r (name, AF_INET, &th, tmpbuf,
+                                          tmpbuflen, &h, &herrno);
+                 if (rc != ERANGE || herrno != NETDB_INTERNAL)
+                   break;
+-                tmpbuf = extend_alloca (tmpbuf, tmpbuflen, 2 * tmpbuflen);
++
++                if (!malloc_tmpbuf
++                    && __libc_use_alloca (alloca_used + 2 * tmpbuflen))
++                  tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen,
++                                                  2 * tmpbuflen,
++                                                  alloca_used);
++                else
++                  {
++                    char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,
++                                          2 * tmpbuflen);
++                    if (newp == NULL)
++                      {
++                        result = -EAI_MEMORY;
++                        goto free_and_return;
++                      }
++                    tmpbuf = newp;
++                    malloc_tmpbuf = true;
++                    tmpbuflen = 2 * tmpbuflen;
++                  }
+               }
+             if (rc == 0)
+               {
+-                if (h == NULL)
++                if (h != NULL)
+                   {
+-                    if (req->ai_family == AF_INET6
+-                        && (req->ai_flags & AI_V4MAPPED)
+-                        && family == AF_INET6)
++                    int i;
++                    /* We found data, count the number of addresses.  */
++                    for (i = 0; h->h_addr_list[i]; ++i)
++                      ;
++                    if (i > 0 && *pat != NULL)
++                      --i;
++
++                    if (__libc_use_alloca (alloca_used
++                                           + i * sizeof (struct gaih_addrtuple)))
++                      addrmem = alloca_account (i * sizeof (struct gaih_addrtuple),
++                                                alloca_used);
++                    else
+                       {
+-                        /* Try again, this time looking for IPv4
+-                           addresses.  */
+-                        family = AF_INET;
+-                        goto simple_again;
++                        addrmem = malloc (i
++                                          * sizeof (struct gaih_addrtuple));
++                        if (addrmem == NULL)
++                      {
++                            result = -EAI_MEMORY;
++                            goto free_and_return;
+                       }
++                        malloc_addrmem = true;
+                   }
+-                else
+-                  {
+-                    /* We found data, now convert it into the list.  */
+-                    for (int i = 0; h->h_addr_list[i]; ++i)
++
++                    /* Now convert it into the list.  */
++                    struct gaih_addrtuple *addrfree = addrmem;
++                    for (i = 0; h->h_addr_list[i]; ++i)
+                       {
+                         if (*pat == NULL)
+                           {
+-                            *pat = __alloca (sizeof (struct gaih_addrtuple));
++                            *pat = addrfree++;
+                             (*pat)->scopeid = 0;
+                           }
+                         (*pat)->next = NULL;
+-                        (*pat)->family = req->ai_family;
+-                        if (family == req->ai_family)
++                        (*pat)->family = AF_INET;
+                           memcpy ((*pat)->addr, h->h_addr_list[i],
+                                   h->h_length);
+-                        else
+-                          {
+-                            uint32_t *addr = (uint32_t *) (*pat)->addr;
+-                            addr[3] = *(uint32_t *) h->h_addr_list[i];
+-                            addr[2] = htonl (0xffff);
+-                            addr[1] = 0;
+-                            addr[0] = 0;
+-                          }
+                         pat = &((*pat)->next);
+                       }
+                   }
+@@ -582,15 +653,16 @@ gaih_inet (const char *name, const struc
+                 if (herrno == NETDB_INTERNAL)
+                   {
+                     __set_h_errno (herrno);
+-                    return -EAI_SYSTEM;
+-                  }
+-                if (herrno == TRY_AGAIN)
+-                  {
+-                    return -EAI_AGAIN;
++                    result = -EAI_SYSTEM;
+                   }
++                else if (herrno == TRY_AGAIN)
++                  result = -EAI_AGAIN;
++                else
+                 /* We made requests but they turned out no data.
+                    The name is known, though.  */
+-                return GAIH_OKIFUNSPEC | -EAI_NODATA;
++                  result = GAIH_OKIFUNSPEC | -EAI_NODATA;
++
++                goto free_and_return;
+               }
+             goto process_list;
+@@ -613,21 +685,56 @@ gaih_inet (const char *name, const struc
+                 bool added_canon = (req->ai_flags & AI_CANONNAME) == 0;
+                 char *addrs = air->addrs;
++                if (__libc_use_alloca (alloca_used
++                                       + air->naddrs * sizeof (struct gaih_addrtuple)))
++                  addrmem = alloca_account (air->naddrs
++                                            * sizeof (struct gaih_addrtuple),
++                                            alloca_used);
++                else
++                  {
++                    addrmem = malloc (air->naddrs
++                                      * sizeof (struct gaih_addrtuple));
++                    if (addrmem == NULL)
++                      {
++                        result = -EAI_MEMORY;
++                        goto free_and_return;
++                      }
++                    malloc_addrmem = true;
++                  }
++
++                struct gaih_addrtuple *addrfree = addrmem;
+                 for (int i = 0; i < air->naddrs; ++i)
+                   {
+                     socklen_t size = (air->family[i] == AF_INET
+                                       ? INADDRSZ : IN6ADDRSZ);
+                     if (*pat == NULL)
+                       {
+-                        *pat = __alloca (sizeof (struct gaih_addrtuple));
++                        *pat = addrfree++;
+                         (*pat)->scopeid = 0;
+                       }
+                     uint32_t *pataddr = (*pat)->addr;
+                     (*pat)->next = NULL;
+                     if (added_canon || air->canon == NULL)
+                       (*pat)->name = NULL;
+-                    else
+-                      canon = (*pat)->name = strdupa (air->canon);
++                    else if (canonbuf == NULL)
++                      {
++                        size_t canonlen = strlen (air->canon) + 1;
++                        if ((req->ai_flags & AI_CANONIDN) != 0
++                            && __libc_use_alloca (alloca_used + canonlen))
++                          canonbuf = alloca_account (canonlen, alloca_used);
++                        else
++                          {
++                            canonbuf = malloc (canonlen);
++                            if (canonbuf == NULL)
++                              {
++                                result = -EAI_MEMORY;
++                                goto free_and_return;
++                              }
++                            malloc_canonbuf = true;
++                          }
++                        canon = (*pat)->name = memcpy (canonbuf, air->canon,
++                                                       canonlen);
++                      }
+                     if (air->family[i] == AF_INET
+                         && req->ai_family == AF_INET6
+@@ -657,20 +764,26 @@ gaih_inet (const char *name, const struc
+                 free (air);
+                 if (at->family == AF_UNSPEC)
+-                  return GAIH_OKIFUNSPEC | -EAI_NONAME;
++                  {
++                    result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++                    goto free_and_return;
++                  }
+                 goto process_list;
+               }
+             else if (err == 0)
+               /* The database contains a negative entry.  */
+-              return 0;
++              goto free_and_return;
+             else if (__nss_not_use_nscd_hosts == 0)
+               {
+                 if (herrno == NETDB_INTERNAL && errno == ENOMEM)
+-                  return -EAI_MEMORY;
+-                if (herrno == TRY_AGAIN)
+-                  return -EAI_AGAIN;
+-                return -EAI_SYSTEM;
++                  result = -EAI_MEMORY;
++                else if (herrno == TRY_AGAIN)
++                  result = -EAI_AGAIN;
++                else
++                  result = -EAI_SYSTEM;
++
++                goto free_and_return;
+               }
+           }
+ #endif
+@@ -699,7 +812,19 @@ gaih_inet (const char *name, const struc
+         _res.options &= ~RES_USE_INET6;
+         size_t tmpbuflen = 1024;
+-        char *tmpbuf = alloca (tmpbuflen);
++        malloc_tmpbuf = !__libc_use_alloca (alloca_used + tmpbuflen);
++        assert (tmpbuf == NULL);
++        if (!malloc_tmpbuf)
++          tmpbuf = alloca_account (tmpbuflen, alloca_used);
++        else
++          {
++            tmpbuf = malloc (tmpbuflen);
++            if (tmpbuf == NULL)
++              {
++                result = -EAI_MEMORY;
++                goto free_and_return;
++              }
++          }
+         while (!no_more)
+           {
+@@ -728,8 +853,25 @@ gaih_inet (const char *name, const struc
+                           no_data = herrno == NO_DATA;
+                         break;
+                       }
+-                    tmpbuf = extend_alloca (tmpbuf,
+-                                            tmpbuflen, 2 * tmpbuflen);
++
++                    if (!malloc_tmpbuf
++                        && __libc_use_alloca (alloca_used + 2 * tmpbuflen))
++                      tmpbuf = extend_alloca_account (tmpbuf, tmpbuflen,
++                                                      2 * tmpbuflen,
++                                                      alloca_used);
++                    else
++                      {
++                        char *newp = realloc (malloc_tmpbuf ? tmpbuf : NULL,
++                                              2 * tmpbuflen);
++                        if (newp == NULL)
++                          {
++                            result = -EAI_MEMORY;
++                            goto free_and_return;
++                          }
++                        tmpbuf = newp;
++                        malloc_tmpbuf = true;
++                        tmpbuflen = 2 * tmpbuflen;
++                      }
+                   }
+                 if (status == NSS_STATUS_SUCCESS)
+@@ -832,18 +974,40 @@ gaih_inet (const char *name, const struc
+                             if (cfct != NULL)
+                               {
+                                 const size_t max_fqdn_len = 256;
+-                                char *buf = alloca (max_fqdn_len);
++                                if ((req->ai_flags & AI_CANONIDN) != 0
++                                    && __libc_use_alloca (alloca_used
++                                                          + max_fqdn_len))
++                                  canonbuf = alloca_account (max_fqdn_len,
++                                                             alloca_used);
++                                else
++                                  {
++                                    canonbuf = malloc (max_fqdn_len);
++                                    if (canonbuf == NULL)
++                                      {
++                                        result = -EAI_MEMORY;
++                                        goto free_and_return;
++                                      }
++                                    malloc_canonbuf = true;
++                                  }
+                                 char *s;
+                                 if (DL_CALL_FCT (cfct, (at->name ?: name,
+-                                                        buf, max_fqdn_len,
++                                                        canonbuf,
++                                                        max_fqdn_len,
+                                                         &s, &rc, &herrno))
+                                     == NSS_STATUS_SUCCESS)
+                                   canon = s;
+                                 else
+-                                  /* Set to name now to avoid using
+-                                     gethostbyaddr.  */
+-                                  canon = name;
++                                  {
++                                    /* Set to name now to avoid using
++                                       gethostbyaddr.  */
++                                    if (malloc_canonbuf)
++                                      {
++                                        free (canonbuf);
++                                        malloc_canonbuf = false;
++                                      }
++                                    canon = name;
++                                  }
+                               }
+                           }
+                         status = NSS_STATUS_SUCCESS;
+@@ -878,22 +1042,27 @@ gaih_inet (const char *name, const struc
+           {
+             /* If both requests timed out report this.  */
+             if (no_data == EAI_AGAIN && no_inet6_data == EAI_AGAIN)
+-              return -EAI_AGAIN;
++              result = -EAI_AGAIN;
++            else
++              /* We made requests but they turned out no data.  The name
++                 is known, though.  */
++              result = GAIH_OKIFUNSPEC | -EAI_NODATA;
+-            /* We made requests but they turned out no data.  The name
+-               is known, though.  */
+-            return GAIH_OKIFUNSPEC | -EAI_NODATA;
++            goto free_and_return;
+           }
+       }
+     process_list:
+       if (at->family == AF_UNSPEC)
+-      return GAIH_OKIFUNSPEC | -EAI_NONAME;
++      {
++        result = GAIH_OKIFUNSPEC | -EAI_NONAME;
++        goto free_and_return;
++      }
+     }
+   else
+     {
+       struct gaih_addrtuple *atr;
+-      atr = at = __alloca (sizeof (struct gaih_addrtuple));
++      atr = at = alloca_account (sizeof (struct gaih_addrtuple), alloca_used);
+       memset (at, '\0', sizeof (struct gaih_addrtuple));
+       if (req->ai_family == AF_UNSPEC)
+@@ -932,6 +1101,9 @@ gaih_inet (const char *name, const struc
+       /* Only the first entry gets the canonical name.  */
+       if (at2 == at && (req->ai_flags & AI_CANONNAME) != 0)
+         {
++          char *tmpbuf2 = NULL;
++          bool malloc_tmpbuf2 = false;
++
+           if (canon == NULL)
+             {
+               /* If the canonical name cannot be determined, use
+@@ -952,11 +1124,16 @@ gaih_inet (const char *name, const struc
+               int rc = __idna_to_unicode_lzlz (canon, &out, idn_flags);
+               if (rc != IDNA_SUCCESS)
+                 {
++                  if (malloc_tmpbuf2)
++                    free (tmpbuf2);
++
+                   if (rc == IDNA_MALLOC_ERROR)
+-                    return -EAI_MEMORY;
+-                  if (rc == IDNA_DLOPEN_ERROR)
+-                    return -EAI_SYSTEM;
+-                  return -EAI_IDN_ENCODE;
++                    result = -EAI_MEMORY;
++                  else if (rc == IDNA_DLOPEN_ERROR)
++                    result = -EAI_SYSTEM;
++                  else
++                    result = -EAI_IDN_ENCODE;
++                  goto free_and_return;
+                 }
+               /* In case the output string is the same as the input
+                  string no new string has been allocated and we
+@@ -970,10 +1147,25 @@ gaih_inet (const char *name, const struc
+ #ifdef HAVE_LIBIDN
+             make_copy:
+ #endif
+-              canon = strdup (canon);
+-              if (canon == NULL)
+-                return -EAI_MEMORY;
++              if (malloc_canonbuf)
++                /* We already allocated the string using malloc.  */
++                malloc_canonbuf = false;
++              else
++                {
++                  canon = strdup (canon);
++                  if (canon == NULL)
++                    {
++                      if (malloc_tmpbuf2)
++                        free (tmpbuf2);
++
++                      result = -EAI_MEMORY;
++                      goto free_and_return;
++                    }
++                }
+             }
++
++          if (malloc_tmpbuf2)
++            free (tmpbuf2);
+         }
+       family = at2->family;
+@@ -999,7 +1191,8 @@ gaih_inet (const char *name, const struc
+           if (ai == NULL)
+             {
+               free ((char *) canon);
+-              return -EAI_MEMORY;
++              result = -EAI_MEMORY;
++              goto free_and_return;
+             }
+           ai->ai_flags = req->ai_flags;
+@@ -1052,7 +1245,18 @@ gaih_inet (const char *name, const struc
+       at2 = at2->next;
+       }
+   }
+-  return 0;
++
++ free_and_return:
++  if (malloc_name)
++    free ((char *) name);
++  if (malloc_addrmem)
++    free (addrmem);
++  if (malloc_canonbuf)
++    free (canonbuf);
++  if (malloc_tmpbuf)
++    free (tmpbuf);
++
++  return result;
+ }
diff --git a/src/patches/glibc/glibc-rh797094-2.patch b/src/patches/glibc/glibc-rh797094-2.patch
new file mode 100644 (file)
index 0000000..5aa9084
--- /dev/null
@@ -0,0 +1,862 @@
+From: Ulrich Drepper <drepper@gmail.com>
+Date: Mon, 23 May 2011 03:04:16 +0000 (-0400)
+Subject: Add a few more alloca size checks
+X-Git-Tag: glibc-2.14~41
+X-Git-Url: http://sourceware.org/git/?p=glibc.git;a=commitdiff_plain;h=f2962a71959fd254a7a223437ca4b63b9e81130c
+
+Add a few more alloca size checks
+---
+
+ 2011-05-22  Ulrich Drepper  <drepper@gmail.com>
+       [BZ #12671]
+       * nis/nss_nis/nis-alias.c (_nss_nis_getaliasbyname_r): Use malloc in
+       some situations.
+       * nscd/nscd_getserv_r.c (nscd_getserv_r): Likewise.
+       * posix/glob.c (glob_in_dir): Take additional parameter alloca_used.
+       add in in __libc_use_alloca calls.  Adjust callers.
+       (glob): Use malloc in some situations.
+diff --git a/nis/nss_nis/nis-alias.c b/nis/nss_nis/nis-alias.c
+index 9286e36..cfe4097 100644
+--- a/nis/nss_nis/nis-alias.c
++++ b/nis/nss_nis/nis-alias.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1996-2002, 2003, 2006 Free Software Foundation, Inc.
++/* Copyright (C) 1996-2002, 2003, 2006, 2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Thorsten Kukuk <kukuk@vt.uni-paderborn.de>, 1996.
+@@ -142,10 +142,10 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
+       int yperr;
+       if (new_start)
+-        yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result,
++      yperr = yp_first (domain, "mail.aliases", &outkey, &keylen, &result,
+                         &len);
+       else
+-        yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey,
++      yperr = yp_next (domain, "mail.aliases", oldkey, oldkeylen, &outkey,
+                        &keylen, &result, &len);
+       if (__builtin_expect (yperr != YPERR_SUCCESS, 0))
+@@ -153,20 +153,20 @@ internal_nis_getaliasent_r (struct aliasent *alias, char *buffer,
+         enum nss_status retval = yperr2nss (yperr);
+         if (retval == NSS_STATUS_TRYAGAIN)
+-            *errnop = errno;
+-          return retval;
+-        }
++          *errnop = errno;
++        return retval;
++      }
+       if (__builtin_expect ((size_t) (len + 1) > buflen, 0))
+-        {
++      {
+         free (result);
+-          *errnop = ERANGE;
+-          return NSS_STATUS_TRYAGAIN;
+-        }
++        *errnop = ERANGE;
++        return NSS_STATUS_TRYAGAIN;
++      }
+       char *p = strncpy (buffer, result, len);
+       buffer[len] = '\0';
+       while (isspace (*p))
+-        ++p;
++      ++p;
+       free (result);
+       parse_res = _nss_nis_parse_aliasent (outkey, p, alias, buffer,
+@@ -213,13 +213,25 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
+       return NSS_STATUS_UNAVAIL;
+     }
+-  size_t namlen = strlen (name);
+-  char name2[namlen + 1];
+-
+   char *domain;
+   if (__builtin_expect (yp_get_default_domain (&domain), 0))
+     return NSS_STATUS_UNAVAIL;
++  size_t namlen = strlen (name);
++  char *name2;
++  int use_alloca = __libc_use_alloca (namlen + 1);
++  if (use_alloca)
++    name2 = __alloca (namlen + 1);
++  else
++    {
++      name2 = malloc (namlen + 1);
++      if (name2 == NULL)
++      {
++        *errnop = ENOMEM;
++        return NSS_STATUS_TRYAGAIN;
++      }
++    }
++
+   /* Convert name to lowercase.  */
+   size_t i;
+   for (i = 0; i < namlen; ++i)
+@@ -230,6 +242,9 @@ _nss_nis_getaliasbyname_r (const char *name, struct aliasent *alias,
+   int len;
+   int yperr = yp_match (domain, "mail.aliases", name2, namlen, &result, &len);
++  if (!use_alloca)
++    free (name2);
++
+   if (__builtin_expect (yperr != YPERR_SUCCESS, 0))
+     {
+       enum nss_status retval = yperr2nss (yperr);
+diff --git a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
+index dce4165..de96a57 100644
+--- a/nscd/nscd_getserv_r.c
++++ b/nscd/nscd_getserv_r.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 2007, 2009 Free Software Foundation, Inc.
++/* Copyright (C) 2007, 2009, 2011 Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+    Contributed by Ulrich Drepper <drepper@redhat.com>, 2007.
+@@ -17,6 +17,7 @@
+    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+    02111-1307 USA.  */
++#include <assert.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <not-cancel.h>
+@@ -80,6 +81,7 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+ {
+   int gc_cycle;
+   int nretries = 0;
++  size_t alloca_used = 0;
+   /* If the mapping is available, try to search there instead of
+      communicating with the nscd.  */
+@@ -88,13 +90,23 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+                              &gc_cycle);
+   size_t protolen = proto == NULL ? 0 : strlen (proto);
+   size_t keylen = critlen + 1 + protolen + 1;
+-  char *key = alloca (keylen);
++  int alloca_key = __libc_use_alloca (keylen);
++  char *key;
++  if (alloca_key)
++    key = alloca_account (keylen, alloca_used);
++  else
++    {
++      key = malloc (keylen);
++      if (key == NULL)
++      return -1;
++    }
+   memcpy (__mempcpy (__mempcpy (key, crit, critlen),
+                    "/", 1), proto ?: "", protolen + 1);
+  retry:;
+   const char *s_name = NULL;
+   const char *s_proto = NULL;
++  int alloca_aliases_len = 0;
+   const uint32_t *aliases_len = NULL;
+   const char *aliases_list = NULL;
+   int retval = -1;
+@@ -136,8 +148,22 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+         if (((uintptr_t) aliases_len & (__alignof__ (*aliases_len) - 1))
+             != 0)
+           {
+-            uint32_t *tmp = alloca (serv_resp.s_aliases_cnt
+-                                    * sizeof (uint32_t));
++            uint32_t *tmp;
++            alloca_aliases_len
++              = __libc_use_alloca (alloca_used
++                                   + (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t)));
++            if (alloca_aliases_len)
++              tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++            else
++              {
++                tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++                if (tmp == NULL)
++                  {
++                    retval = ENOMEM;
++                    goto out;
++                  }
++              }
+             aliases_len = memcpy (tmp, aliases_len,
+                                   serv_resp.s_aliases_cnt
+                                   * sizeof (uint32_t));
+@@ -217,8 +243,24 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+         if (serv_resp.s_aliases_cnt > 0)
+           {
+-            aliases_len = alloca (serv_resp.s_aliases_cnt
+-                                  * sizeof (uint32_t));
++            assert (alloca_aliases_len == 0);
++            alloca_aliases_len
++              = __libc_use_alloca (alloca_used
++                                   + (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t)));
++            if (alloca_aliases_len)
++              aliases_len = alloca (serv_resp.s_aliases_cnt
++                                    * sizeof (uint32_t));
++            else
++              {
++                aliases_len = malloc (serv_resp.s_aliases_cnt
++                                      * sizeof (uint32_t));
++                if (aliases_len == NULL)
++                  {
++                    retval = ENOMEM;
++                    goto out_close;
++                  }
++              }
+             vec[n].iov_base = (void *) aliases_len;
+             vec[n].iov_len = serv_resp.s_aliases_cnt * sizeof (uint32_t);
+@@ -329,5 +371,10 @@ nscd_getserv_r (const char *crit, size_t critlen, const char *proto,
+       goto retry;
+     }
++  if (!alloca_aliases_len)
++    free ((void *) aliases_len);
++  if (!alloca_key)
++    free (key);
++
+   return retval;
+ }
+diff --git a/posix/glob.c b/posix/glob.c
+index 6df083a..79b6e50 100644
+--- a/posix/glob.c
++++ b/posix/glob.c
+@@ -1,4 +1,4 @@
+-/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010
++/* Copyright (C) 1991-2002, 2003, 2004, 2005, 2006, 2007, 2008, 2010, 2011
+    Free Software Foundation, Inc.
+    This file is part of the GNU C Library.
+@@ -199,7 +199,7 @@ static const char *next_brace_sub (const char *begin, int flags) __THROW;
+ static int glob_in_dir (const char *pattern, const char *directory,
+                       int flags, int (*errfunc) (const char *, int),
+-                      glob_t *pglob);
++                      glob_t *pglob, size_t alloca_used);
+ extern int __glob_pattern_type (const char *pattern, int quote)
+     attribute_hidden;
+@@ -253,13 +253,18 @@ glob (pattern, flags, errfunc, pglob)
+      glob_t *pglob;
+ {
+   const char *filename;
+-  const char *dirname;
++  char *dirname = NULL;
+   size_t dirlen;
+   int status;
+   size_t oldcount;
+   int meta;
+   int dirname_modified;
++  int malloc_dirname = 0;
+   glob_t dirs;
++  int retval = 0;
++#ifdef _LIBC
++  size_t alloca_used = 0;
++#endif
+   if (pattern == NULL || pglob == NULL || (flags & ~__GLOB_FLAGS) != 0)
+     {
+@@ -308,20 +313,26 @@ glob (pattern, flags, errfunc, pglob)
+         const char *next;
+         const char *rest;
+         size_t rest_len;
+-#ifdef __GNUC__
+-        char onealt[strlen (pattern) - 1];
+-#else
+-        char *onealt = (char *) malloc (strlen (pattern) - 1);
+-        if (onealt == NULL)
++        char *onealt;
++        size_t pattern_len = strlen (pattern) - 1;
++#ifdef _LIBC
++        int alloca_onealt = __libc_use_alloca (alloca_used + pattern_len);
++        if (alloca_onealt)
++          onealt = alloca_account (pattern_len, alloca_used);
++        else
++#endif
+           {
+-            if (!(flags & GLOB_APPEND))
++            onealt = (char *) malloc (pattern_len);
++            if (onealt == NULL)
+               {
+-                pglob->gl_pathc = 0;
+-                pglob->gl_pathv = NULL;
++                if (!(flags & GLOB_APPEND))
++                  {
++                    pglob->gl_pathc = 0;
++                    pglob->gl_pathv = NULL;
++                  }
++                return GLOB_NOSPACE;
+               }
+-            return GLOB_NOSPACE;
+           }
+-#endif
+         /* We know the prefix for all sub-patterns.  */
+         alt_start = mempcpy (onealt, pattern, begin - pattern);
+@@ -332,9 +343,11 @@ glob (pattern, flags, errfunc, pglob)
+         if (next == NULL)
+           {
+             /* It is an illegal expression.  */
+-#ifndef __GNUC__
+-            free (onealt);
++          illegal_brace:
++#ifdef _LIBC
++            if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++              free (onealt);
+             return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob);
+           }
+@@ -344,13 +357,8 @@ glob (pattern, flags, errfunc, pglob)
+           {
+             rest = next_brace_sub (rest + 1, flags);
+             if (rest == NULL)
+-              {
+-                /* It is an illegal expression.  */
+-#ifndef __GNUC__
+-                free (onealt);
+-#endif
+-                return glob (pattern, flags & ~GLOB_BRACE, errfunc, pglob);
+-              }
++              /* It is an illegal expression.  */
++              goto illegal_brace;
+           }
+         /* Please note that we now can be sure the brace expression
+            is well-formed.  */
+@@ -386,9 +394,10 @@ glob (pattern, flags, errfunc, pglob)
+             /* If we got an error, return it.  */
+             if (result && result != GLOB_NOMATCH)
+               {
+-#ifndef __GNUC__
+-                free (onealt);
++#ifdef _LIBC
++                if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++                  free (onealt);
+                 if (!(flags & GLOB_APPEND))
+                   {
+                     globfree (pglob);
+@@ -406,9 +415,10 @@ glob (pattern, flags, errfunc, pglob)
+             assert (next != NULL);
+           }
+-#ifndef __GNUC__
+-        free (onealt);
++#ifdef _LIBC
++        if (__builtin_expect (!alloca_onealt, 0))
+ #endif
++          free (onealt);
+         if (pglob->gl_pathc != firstc)
+           /* We found some entries.  */
+@@ -455,7 +465,7 @@ glob (pattern, flags, errfunc, pglob)
+        case is nothing but a notation for a directory.  */
+       if ((flags & (GLOB_TILDE|GLOB_TILDE_CHECK)) && pattern[0] == '~')
+       {
+-        dirname = pattern;
++        dirname = (char *) pattern;
+         dirlen = strlen (pattern);
+         /* Set FILENAME to NULL as a special flag.  This is ugly but
+@@ -473,9 +483,9 @@ glob (pattern, flags, errfunc, pglob)
+         filename = pattern;
+ #ifdef _AMIGA
+-        dirname = "";
++        dirname = (char *) "";
+ #else
+-        dirname = ".";
++        dirname = (char *) ".";
+ #endif
+         dirlen = 0;
+       }
+@@ -485,7 +495,7 @@ glob (pattern, flags, errfunc, pglob)
+              && (flags & GLOB_NOESCAPE) == 0))
+     {
+       /* "/pattern" or "\\/pattern".  */
+-      dirname = "/";
++      dirname = (char *) "/";
+       dirlen = 1;
+       ++filename;
+     }
+@@ -511,7 +521,17 @@ glob (pattern, flags, errfunc, pglob)
+            from "d:/", since "d:" and "d:/" are not the same.*/
+       }
+ #endif
+-      newp = (char *) __alloca (dirlen + 1);
++#ifdef _LIBC
++      if (__libc_use_alloca (alloca_used + dirlen + 1))
++      newp = alloca_account (dirlen + 1, alloca_used);
++      else
++#endif
++      {
++        newp = malloc (dirlen + 1);
++        if (newp == NULL)
++          return GLOB_NOSPACE;
++        malloc_dirname = 1;
++      }
+       *((char *) mempcpy (newp, pattern, dirlen)) = '\0';
+       dirname = newp;
+       ++filename;
+@@ -551,7 +571,8 @@ glob (pattern, flags, errfunc, pglob)
+             oldcount = pglob->gl_pathc + pglob->gl_offs;
+             goto no_matches;
+           }
+-        return val;
++        retval = val;
++        goto out;
+       }
+     }
+@@ -563,7 +584,8 @@ glob (pattern, flags, errfunc, pglob)
+             && (dirname[2] == '\0' || dirname[2] == '/')))
+       {
+         /* Look up home directory.  */
+-        const char *home_dir = getenv ("HOME");
++        char *home_dir = getenv ("HOME");
++        int malloc_home_dir = 0;
+ # ifdef _AMIGA
+         if (home_dir == NULL || home_dir[0] == '\0')
+           home_dir = "SYS:";
+@@ -582,7 +604,7 @@ glob (pattern, flags, errfunc, pglob)
+               /* `sysconf' does not support _SC_LOGIN_NAME_MAX.  Try
+                  a moderate value.  */
+               buflen = 20;
+-            name = (char *) __alloca (buflen);
++            name = alloca_account (buflen, alloca_used);
+             success = getlogin_r (name, buflen) == 0;
+             if (success)
+@@ -592,6 +614,7 @@ glob (pattern, flags, errfunc, pglob)
+                 long int pwbuflen = GETPW_R_SIZE_MAX ();
+                 char *pwtmpbuf;
+                 struct passwd pwbuf;
++                int malloc_pwtmpbuf = 0;
+                 int save = errno;
+ #    ifndef _LIBC
+@@ -600,7 +623,18 @@ glob (pattern, flags, errfunc, pglob)
+                      Try a moderate value.  */
+                   pwbuflen = 1024;
+ #    endif
+-                pwtmpbuf = (char *) __alloca (pwbuflen);
++                if (__libc_use_alloca (alloca_used + pwbuflen))
++                  pwtmpbuf = alloca_account (pwbuflen, alloca_used);
++                else
++                  {
++                    pwtmpbuf = malloc (pwbuflen);
++                    if (pwtmpbuf == NULL)
++                      {
++                        retval = GLOB_NOSPACE;
++                        goto out;
++                      }
++                    malloc_pwtmpbuf = 1;
++                  }
+                 while (getpwnam_r (name, &pwbuf, pwtmpbuf, pwbuflen, &p)
+                        != 0)
+@@ -610,46 +644,115 @@ glob (pattern, flags, errfunc, pglob)
+                         p = NULL;
+                         break;
+                       }
+-#    ifdef _LIBC
+-                    pwtmpbuf = extend_alloca (pwtmpbuf, pwbuflen,
++
++                    if (!malloc_pwtmpbuf
++                        && __libc_use_alloca (alloca_used
++                                              + 2 * pwbuflen))
++                      pwtmpbuf = extend_alloca_account (pwtmpbuf, pwbuflen,
++                                                        2 * pwbuflen,
++                                                        alloca_used);
++                    else
++                      {
++                        char *newp = realloc (malloc_pwtmpbuf
++                                              ? pwtmpbuf : NULL,
+                                               2 * pwbuflen);
+-#    else
+-                    pwbuflen *= 2;
+-                    pwtmpbuf = (char *) __alloca (pwbuflen);
+-#    endif
++                        if (newp == NULL)
++                          {
++                            if (__builtin_expect (malloc_pwtmpbuf, 0))
++                              free (pwtmpbuf);
++                            retval = GLOB_NOSPACE;
++                            goto out;
++                          }
++                        pwtmpbuf = newp;
++                        pwbuflen = 2 * pwbuflen;
++                        malloc_pwtmpbuf = 1;
++                      }
+                     __set_errno (save);
+                   }
+ #   else
+                 p = getpwnam (name);
+ #   endif
+                 if (p != NULL)
+-                  home_dir = p->pw_dir;
++                  {
++                    if (!malloc_pwtmpbuf)
++                      home_dir = p->pw_dir;
++                    else
++                      {
++                        size_t home_dir_len = strlen (p->pw_dir) + 1;
++                        if (__libc_use_alloca (alloca_used + home_dir_len))
++                          home_dir = alloca_account (home_dir_len,
++                                                     alloca_used);
++                        else
++                          {
++                            home_dir = malloc (home_dir_len);
++                            if (home_dir == NULL)
++                              {
++                                free (pwtmpbuf);
++                                retval = GLOB_NOSPACE;
++                                goto out;
++                              }
++                            malloc_home_dir = 1;
++                          }
++                        memcpy (home_dir, p->pw_dir, home_dir_len);
++
++                        free (pwtmpbuf);
++                      }
++                  }
+               }
+           }
+         if (home_dir == NULL || home_dir[0] == '\0')
+           {
+             if (flags & GLOB_TILDE_CHECK)
+-              return GLOB_NOMATCH;
++              {
++                if (__builtin_expect (malloc_home_dir, 0))
++                  free (home_dir);
++                retval = GLOB_NOMATCH;
++                goto out;
++              }
+             else
+-              home_dir = "~"; /* No luck.  */
++              home_dir = (char *) "~"; /* No luck.  */
+           }
+ #  endif /* WINDOWS32 */
+ # endif
+         /* Now construct the full directory.  */
+         if (dirname[1] == '\0')
+           {
++            if (__builtin_expect (malloc_dirname, 0))
++              free (dirname);
++
+             dirname = home_dir;
+             dirlen = strlen (dirname);
++            malloc_dirname = malloc_home_dir;
+           }
+         else
+           {
+             char *newp;
+             size_t home_len = strlen (home_dir);
+-            newp = (char *) __alloca (home_len + dirlen);
++            int use_alloca = __libc_use_alloca (alloca_used
++                                                + home_len + dirlen);
++            if (use_alloca)
++              newp = alloca_account (home_len + dirlen, alloca_used);
++            else
++              {
++                newp = malloc (home_len + dirlen);
++                if (newp == NULL)
++                  {
++                    if (__builtin_expect (malloc_home_dir, 0))
++                      free (home_dir);
++                    retval = GLOB_NOSPACE;
++                    goto out;
++                  }
++              }
++
+             mempcpy (mempcpy (newp, home_dir, home_len),
+                      &dirname[1], dirlen);
++
++            if (__builtin_expect (malloc_dirname, 0))
++              free (dirname);
++
+             dirname = newp;
+             dirlen += home_len - 1;
++            malloc_dirname = !use_alloca;
+           }
+         dirname_modified = 1;
+       }
+@@ -657,7 +760,8 @@ glob (pattern, flags, errfunc, pglob)
+       else
+       {
+         char *end_name = strchr (dirname, '/');
+-        const char *user_name;
++        char *user_name;
++        int malloc_user_name = 0;
+         const char *home_dir;
+         char *unescape = NULL;
+@@ -677,7 +781,18 @@ glob (pattern, flags, errfunc, pglob)
+         else
+           {
+             char *newp;
+-            newp = (char *) __alloca (end_name - dirname);
++            if (__libc_use_alloca (alloca_used + (end_name - dirname)))
++              newp = alloca_account (end_name - dirname, alloca_used);
++            else
++              {
++                newp = malloc (end_name - dirname);
++                if (newp == NULL)
++                  {
++                    retval = GLOB_NOSPACE;
++                    goto out;
++                  }
++                malloc_user_name = 1;
++              }
+             if (unescape != NULL)
+               {
+                 char *p = mempcpy (newp, dirname + 1,
+@@ -714,6 +829,7 @@ glob (pattern, flags, errfunc, pglob)
+ #  if defined HAVE_GETPWNAM_R || defined _LIBC
+           long int buflen = GETPW_R_SIZE_MAX ();
+           char *pwtmpbuf;
++          int malloc_pwtmpbuf = 0;
+           struct passwd pwbuf;
+           int save = errno;
+@@ -723,7 +839,21 @@ glob (pattern, flags, errfunc, pglob)
+                moderate value.  */
+             buflen = 1024;
+ #   endif
+-          pwtmpbuf = (char *) __alloca (buflen);
++          if (__libc_use_alloca (alloca_used + buflen))
++            pwtmpbuf = alloca_account (buflen, alloca_used);
++          else
++            {
++              pwtmpbuf = malloc (buflen);
++              if (pwtmpbuf == NULL)
++                {
++                nomem_getpw:
++                  if (__builtin_expect (malloc_user_name, 0))
++                    free (user_name);
++                  retval = GLOB_NOSPACE;
++                  goto out;
++                }
++              malloc_pwtmpbuf = 1;
++            }
+           while (getpwnam_r (user_name, &pwbuf, pwtmpbuf, buflen, &p) != 0)
+             {
+@@ -732,40 +862,77 @@ glob (pattern, flags, errfunc, pglob)
+                   p = NULL;
+                   break;
+                 }
+-#   ifdef _LIBC
+-              pwtmpbuf = extend_alloca (pwtmpbuf, buflen, 2 * buflen);
+-#   else
+-              buflen *= 2;
+-              pwtmpbuf = __alloca (buflen);
+-#   endif
++              if (!malloc_pwtmpbuf
++                  && __libc_use_alloca (alloca_used + 2 * buflen))
++                pwtmpbuf = extend_alloca_account (pwtmpbuf, buflen,
++                                                  2 * buflen, alloca_used);
++              else
++                {
++                  char *newp = realloc (malloc_pwtmpbuf ? pwtmpbuf : NULL,
++                                        2 * buflen);
++                  if (newp == NULL)
++                    {
++                      if (__builtin_expect (malloc_pwtmpbuf, 0))
++                        free (pwtmpbuf);
++                      goto nomem_getpw;
++                    }
++                  pwtmpbuf = newp;
++                  malloc_pwtmpbuf = 1;
++                }
+               __set_errno (save);
+             }
+ #  else
+           p = getpwnam (user_name);
+ #  endif
++
++          if (__builtin_expect (malloc_user_name, 0))
++            free (user_name);
++
++          /* If we found a home directory use this.  */
+           if (p != NULL)
+-            home_dir = p->pw_dir;
++            {
++              size_t home_len = strlen (p->pw_dir);
++              size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
++
++              if (__builtin_expect (malloc_dirname, 0))
++                free (dirname);
++              malloc_dirname = 0;
++
++              if (__libc_use_alloca (alloca_used + home_len + rest_len + 1))
++                dirname = alloca_account (home_len + rest_len + 1,
++                                          alloca_used);
++              else
++                {
++                  dirname = malloc (home_len + rest_len + 1);
++                  if (dirname == NULL)
++                    {
++                      if (__builtin_expect (malloc_pwtmpbuf, 0))
++                        free (pwtmpbuf);
++                      retval = GLOB_NOSPACE;
++                      goto out;
++                    }
++                  malloc_dirname = 1;
++                }
++              *((char *) mempcpy (mempcpy (dirname, p->pw_dir, home_len),
++                                  end_name, rest_len)) = '\0';
++
++              dirlen = home_len + rest_len;
++              dirname_modified = 1;
++
++              if (__builtin_expect (malloc_pwtmpbuf, 0))
++                free (pwtmpbuf);
++            }
+           else
+-            home_dir = NULL;
++            {
++              if (__builtin_expect (malloc_pwtmpbuf, 0))
++                free (pwtmpbuf);
++
++              if (flags & GLOB_TILDE_CHECK)
++                /* We have to regard it as an error if we cannot find the
++                   home directory.  */
++                return GLOB_NOMATCH;
++            }
+         }
+-        /* If we found a home directory use this.  */
+-        if (home_dir != NULL)
+-          {
+-            char *newp;
+-            size_t home_len = strlen (home_dir);
+-            size_t rest_len = end_name == NULL ? 0 : strlen (end_name);
+-            newp = (char *) __alloca (home_len + rest_len + 1);
+-            *((char *) mempcpy (mempcpy (newp, home_dir, home_len),
+-                                end_name, rest_len)) = '\0';
+-            dirname = newp;
+-            dirlen = home_len + rest_len;
+-            dirname_modified = 1;
+-          }
+-        else
+-          if (flags & GLOB_TILDE_CHECK)
+-            /* We have to regard it as an error if we cannot find the
+-               home directory.  */
+-            return GLOB_NOMATCH;
+       }
+ # endif       /* Not Amiga && not WINDOWS32.  */
+     }
+@@ -899,7 +1066,7 @@ glob (pattern, flags, errfunc, pglob)
+         status = glob_in_dir (filename, dirs.gl_pathv[i],
+                               ((flags | GLOB_APPEND)
+                                & ~(GLOB_NOCHECK | GLOB_NOMAGIC)),
+-                              errfunc, pglob);
++                              errfunc, pglob, alloca_used);
+         if (status == GLOB_NOMATCH)
+           /* No matches in this directory.  Try the next.  */
+           continue;
+@@ -1000,7 +1167,8 @@ glob (pattern, flags, errfunc, pglob)
+       }
+       if (dirname_modified)
+       flags &= ~(GLOB_NOCHECK | GLOB_NOMAGIC);
+-      status = glob_in_dir (filename, dirname, flags, errfunc, pglob);
++      status = glob_in_dir (filename, dirname, flags, errfunc, pglob,
++                          alloca_used);
+       if (status != 0)
+       {
+         if (status == GLOB_NOMATCH && flags != orig_flags
+@@ -1063,7 +1231,11 @@ glob (pattern, flags, errfunc, pglob)
+            sizeof (char *), collated_compare);
+     }
+-  return 0;
++ out:
++  if (__builtin_expect (malloc_dirname, 0))
++    free (dirname);
++
++  return retval;
+ }
+ #if defined _LIBC && !defined glob
+ libc_hidden_def (glob)
+@@ -1273,7 +1445,7 @@ link_exists2_p (const char *dir, size_t dirlen, const char *fname,
+ static int
+ glob_in_dir (const char *pattern, const char *directory, int flags,
+            int (*errfunc) (const char *, int),
+-           glob_t *pglob)
++           glob_t *pglob, size_t alloca_used)
+ {
+   size_t dirlen = strlen (directory);
+   void *stream = NULL;
+@@ -1288,11 +1460,12 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+   struct globnames *names = &init_names;
+   struct globnames *names_alloca = &init_names;
+   size_t nfound = 0;
+-  size_t allocasize = sizeof (init_names);
+   size_t cur = 0;
+   int meta;
+   int save;
++  alloca_used += sizeof (init_names);
++
+   init_names.next = NULL;
+   init_names.count = INITIAL_COUNT;
+@@ -1308,20 +1481,36 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+     {
+       /* Since we use the normal file functions we can also use stat()
+        to verify the file is there.  */
+-      struct stat st;
+-      struct_stat64 st64;
++      union
++      {
++      struct stat st;
++      struct_stat64 st64;
++      } ust;
+       size_t patlen = strlen (pattern);
+-      char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
++      int alloca_fullname = __libc_use_alloca (alloca_used
++                                             + dirlen + 1 + patlen + 1);
++      char *fullname;
++      if (alloca_fullname)
++      fullname = alloca_account (dirlen + 1 + patlen + 1, alloca_used);
++      else
++      {
++        fullname = malloc (dirlen + 1 + patlen + 1);
++        if (fullname == NULL)
++          return GLOB_NOSPACE;
++      }
+       mempcpy (mempcpy (mempcpy (fullname, directory, dirlen),
+                       "/", 1),
+              pattern, patlen + 1);
+       if ((__builtin_expect (flags & GLOB_ALTDIRFUNC, 0)
+-         ? (*pglob->gl_stat) (fullname, &st)
+-         : __stat64 (fullname, &st64)) == 0)
++         ? (*pglob->gl_stat) (fullname, &ust.st)
++         : __stat64 (fullname, &ust.st64)) == 0)
+       /* We found this file to be existing.  Now tell the rest
+          of the function to copy this name into the result.  */
+       flags |= GLOB_NOCHECK;
++
++      if (__builtin_expect (!alloca_fullname, 0))
++      free (fullname);
+     }
+   else
+     {
+@@ -1409,9 +1598,9 @@ glob_in_dir (const char *pattern, const char *directory, int flags,
+                         size_t size = (sizeof (struct globnames)
+                                        + ((count - INITIAL_COUNT)
+                                           * sizeof (char *)));
+-                        allocasize += size;
+-                        if (__libc_use_alloca (allocasize))
+-                          newnames = names_alloca = __alloca (size);
++                        if (__libc_use_alloca (alloca_used + size))
++                          newnames = names_alloca
++                            = alloca_account (size, alloca_used);
+                         else if ((newnames = malloc (size))
+                                  == NULL)
+                           goto memory_error;
diff --git a/src/patches/glibc/glibc-rh804630.patch b/src/patches/glibc/glibc-rh804630.patch
new file mode 100644 (file)
index 0000000..75dbe94
--- /dev/null
@@ -0,0 +1,23 @@
+diff -rup c/resolv/res_send.c d/resolv/res_send.c
+--- c/resolv/res_send.c        2012-01-01 05:16:32.000000000 -0700
++++ d/resolv/res_send.c        2012-03-30 12:39:30.862467628 -0600
+@@ -409,6 +409,7 @@ __libc_res_nsend(res_state statp, const
+        */
+       if (EXT(statp).nsinit == 0) {
+               unsigned char map[MAXNS];
++              unsigned int ext_total_nscount;
+               memset (map, MAXNS, sizeof (map));
+               for (n = 0; n < MAXNS; n++) {
+@@ -422,8 +423,9 @@ __libc_res_nsend(res_state statp, const
+                       }
+               }
+               n = statp->nscount;
+-              if (statp->nscount > EXT(statp).nscount)
+-                      for (n = EXT(statp).nscount, ns = 0;
++              ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6;
++              if (statp->nscount > ext_total_nscount)
++                      for (n = ext_total_nscount, ns = 0;
+                            n < statp->nscount; n++) {
+                               while (ns < MAXNS
+                                      && EXT(statp).nsmap[ns] != MAXNS)
diff --git a/src/patches/glibc/glibc-rh804689.patch b/src/patches/glibc/glibc-rh804689.patch
new file mode 100644 (file)
index 0000000..a96a33f
--- /dev/null
@@ -0,0 +1,23 @@
+diff -rup a/sysdeps/posix/getaddrinfo.c b/sysdeps/posix/getaddrinfo.c
+--- a/sysdeps/posix/getaddrinfo.c      2012-03-20 21:31:14.177358937 -0600
++++ b/sysdeps/posix/getaddrinfo.c      2012-03-21 09:13:17.198290683 -0600
+@@ -560,15 +563,11 @@ gaih_inet (const char *name, const struc
+         int no_more;
+         int old_res_options;
+-        /* If we do not have to look for IPv4 and IPv6 together, use
+-           the simple, old functions.  */
+-        if ((req->ai_family == AF_INET
+-             || (req->ai_family == AF_INET6
+-                 && ((req->ai_flags & AI_V4MAPPED) == 0
+-                     || (req->ai_flags & AI_ALL) == 0)))
+-            && (req->ai_flags & AI_CANONNAME) == 0)
++        /* If we do not have to look for IPv6 addresses, use
++           the simple, old functions, which do not support
++           IPv6 scope ids. */
++        if (req->ai_family == AF_INET)
+           {
+-            int family = req->ai_family;
+             size_t tmpbuflen = 512;
+             assert (tmpbuf == NULL);
+             tmpbuf = alloca_account (tmpbuflen, alloca_used);
diff --git a/src/patches/glibc/glibc-rh808337.patch b/src/patches/glibc/glibc-rh808337.patch
new file mode 100644 (file)
index 0000000..bc20cbc
--- /dev/null
@@ -0,0 +1,21 @@
+commit 6a5ee1029b3966c5ae9adaaa881e255b2880f511
+Author: Ulrich Drepper <drepper@gmail.com>
+Date:   Sun Mar 6 00:01:50 2011 -0500
+
+    Fix loading first object along a path when tracing.
+
+diff --git a/elf/dl-load.c b/elf/dl-load.c
+index 1ad16a0..f866066 100644
+--- a/elf/dl-load.c
++++ b/elf/dl-load.c
+@@ -2111,7 +2111,9 @@ _dl_map_object (struct link_map *loader, const char *name,
+           {
+ #ifdef SHARED
+             // XXX Correct to unconditionally default to namespace 0?
+-            l = loader ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded;
++            l = (loader
++                 ?: GL(dl_ns)[LM_ID_BASE]._ns_loaded
++                 ?: &GL(dl_rtld_map));
+ #else
+             l = loader;
+ #endif
diff --git a/src/patches/glibc/glibc-rh808545.patch b/src/patches/glibc/glibc-rh808545.patch
new file mode 100644 (file)
index 0000000..9a2cae3
--- /dev/null
@@ -0,0 +1,44 @@
+diff -rup a/resolv/nss_dns/dns-host.c b/resolv/nss_dns/dns-host.c
+--- a/resolv/nss_dns/dns-host.c        2012-04-18 11:17:31.527539744 -0600
++++ b/resolv/nss_dns/dns-host.c        2012-04-18 11:21:45.441394159 -0600
+@@ -745,6 +745,10 @@ getanswer_r (const querybuf *answer, int
+       if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME)
+       {
++        /* A CNAME could also have a TTL entry.  */
++        if (ttlp != NULL && ttl < *ttlp)
++            *ttlp = ttl;
++
+         if (ap >= &host_data->aliases[MAX_NR_ALIASES - 1])
+           continue;
+         n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
+@@ -906,7 +910,7 @@ getanswer_r (const querybuf *answer, int
+           {
+             register int nn;
+-            if (ttlp != NULL)
++            if (ttlp != NULL && ttl < *ttlp)
+               *ttlp = ttl;
+             if (canonp != NULL)
+               *canonp = bp;
+@@ -1082,6 +1086,11 @@ gaih_getanswer_slice (const querybuf *an
+       if (type == T_CNAME)
+       {
+         char tbuf[MAXDNAME];
++
++        /* A CNAME could also have a TTL entry.  */
++        if (ttlp != NULL && ttl < *ttlp)
++          *ttlp = ttl;
++
+         n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
+         if (__builtin_expect (n < 0 || res_hnok (tbuf) == 0, 0))
+           {
+@@ -1162,7 +1171,7 @@ gaih_getanswer_slice (const querybuf *an
+       if (*firstp)
+       {
+-        if (ttlp != NULL)
++        if (ttlp != NULL && ttl < *ttlp)
+           *ttlp = ttl;
+         (*pat)->name = canon ?: h_name;
diff --git a/src/patches/glibc/glibc-rh809602.patch b/src/patches/glibc/glibc-rh809602.patch
new file mode 100644 (file)
index 0000000..81aa63a
--- /dev/null
@@ -0,0 +1,47 @@
+diff -rup a/nscd/nscd_getserv_r.c b/nscd/nscd_getserv_r.c
+--- a/nscd/nscd_getserv_r.c    2012-04-04 16:37:27.873951850 -0600
++++ b/nscd/nscd_getserv_r.c    2012-04-04 16:37:49.904837348 -0600
+@@ -124,6 +123,7 @@ nscd_getserv_r (const char *crit, size_t
+         s_name = (char *) (&found->data[0].servdata + 1);
+         serv_resp = found->data[0].servdata;
+         s_proto = s_name + serv_resp.s_name_len;
++        alloca_aliases_len = 1;
+         aliases_len = (uint32_t *) (s_proto + serv_resp.s_proto_len);
+         aliases_list = ((char *) aliases_len
+                         + serv_resp.s_aliases_cnt * sizeof (uint32_t));
+@@ -154,7 +154,9 @@ nscd_getserv_r (const char *crit, size_t
+                                    + (serv_resp.s_aliases_cnt
+                                       * sizeof (uint32_t)));
+             if (alloca_aliases_len)
+-              tmp = __alloca (serv_resp.s_aliases_cnt * sizeof (uint32_t));
++              tmp = alloca_account (serv_resp.s_aliases_cnt
++                                    * sizeof (uint32_t),
++                                    alloca_used);
+             else
+               {
+                 tmp = malloc (serv_resp.s_aliases_cnt * sizeof (uint32_t));
+@@ -249,8 +251,9 @@ nscd_getserv_r (const char *crit, size_t
+                                    + (serv_resp.s_aliases_cnt
+                                       * sizeof (uint32_t)));
+             if (alloca_aliases_len)
+-              aliases_len = alloca (serv_resp.s_aliases_cnt
+-                                    * sizeof (uint32_t));
++              aliases_len = alloca_account (serv_resp.s_aliases_cnt
++                                            * sizeof (uint32_t),
++                                            alloca_used);
+             else
+               {
+                 aliases_len = malloc (serv_resp.s_aliases_cnt
+@@ -368,7 +371,11 @@ nscd_getserv_r (const char *crit, size_t
+       }
+       if (retval != -1)
+-      goto retry;
++      {
++        if (!alloca_aliases_len)
++          free ((void *) aliases_len);
++        goto retry;
++      }
+     }
+   if (!alloca_aliases_len)
diff --git a/src/patches/glibc/glibc-rh833716.patch b/src/patches/glibc/glibc-rh833716.patch
new file mode 100644 (file)
index 0000000..e44573c
--- /dev/null
@@ -0,0 +1,45265 @@
+diff -Nrup a/stdio-common/Makefile b/stdio-common/Makefile
+--- a/stdio-common/Makefile    2012-05-23 14:54:54.670443298 -0600
++++ b/stdio-common/Makefile    2012-05-22 13:47:51.000000000 -0600
+@@ -60,7 +60,7 @@ tests := tstscanf test_rdwr test-popen t
+        tst-popen tst-unlockedio tst-fmemopen2 tst-put-error tst-fgets \
+        tst-fwrite bug16 bug17 tst-swscanf tst-sprintf2 bug18 bug18a \
+        bug19 bug19a tst-popen2 scanf13 scanf14 scanf15 bug20 bug21 bug22 \
+-       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs
++       scanf16 scanf17 tst-setvbuf1 bug-vfprintf-nargs bug23 bug23-2 bug23-3
+ test-srcs = tst-unbputc tst-printf
+diff -Nrup a/stdio-common/bug23-2.c b/stdio-common/bug23-2.c
+--- a/stdio-common/bug23-2.c   1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23-2.c   2012-05-24 07:12:55.331644716 -0600
+@@ -0,0 +1,70 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++static int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1,
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return strcmp (buf, expected) != 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff -Nrup a/stdio-common/bug23-3.c b/stdio-common/bug23-3.c
+--- a/stdio-common/bug23-3.c   1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23-3.c   2012-05-24 07:13:26.948480695 -0600
+@@ -0,0 +1,45076 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++
++
++int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1, 
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return (strcmp (buf, expected) != 0);
++}
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
++
+diff -Nrup a/stdio-common/bug23.c b/stdio-common/bug23.c
+--- a/stdio-common/bug23.c     1969-12-31 17:00:00.000000000 -0700
++++ b/stdio-common/bug23.c     2012-05-24 07:12:27.636788393 -0600
+@@ -0,0 +1,22 @@
++#include <stdio.h>
++#include <string.h>
++#include <stdlib.h>
++
++static const char expected[] = "\
++\n\
++a\n\
++abbcd55%%%%%%%%%%%%%%%%%%%%%%%%%%\n";
++
++static int
++do_test (void)
++{
++  char *buf = malloc (strlen (expected) + 1);
++  snprintf (buf, strlen (expected) + 1,
++          "\n%1$s\n" "%1$s" "%2$s" "%2$s" "%3$s" "%4$s" "%5$d" "%5$d"
++          "%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\n",
++          "a", "b", "c", "d", 5);
++  return strcmp (buf, expected) != 0;
++}
++
++#define TEST_FUNCTION do_test ()
++#include "../test-skeleton.c"
+diff -Nrup a/stdio-common/vfprintf.c b/stdio-common/vfprintf.c
+--- a/stdio-common/vfprintf.c  2012-05-23 14:54:54.689443199 -0600
++++ b/stdio-common/vfprintf.c  2012-05-23 23:16:55.376155638 -0600
+@@ -238,6 +238,12 @@ vfprintf (FILE *s, const CHAR_T *format,
+   /* For the argument descriptions, which may be allocated on the heap.  */
+   void *args_malloced = NULL;
++  /* For positional argument handling.  */
++  struct printf_spec *specs;
++
++  /* Track if we malloced the SPECS array and thus must free it.  */
++  bool specs_malloced = false;
++
+   /* This table maps a character into a number representing a
+      class.  In each step there is a destination label for each
+      class.  */
+@@ -1638,10 +1644,10 @@ do_positional:
+     /* Array with information about the needed arguments.  This has to
+        be dynamically extensible.  */
+     size_t nspecs = 0;
+-    size_t nspecs_max = 32;   /* A more or less arbitrary start value.  */
+-    struct printf_spec *specs
+-      = alloca (nspecs_max * sizeof (struct printf_spec));
++    /* A more or less arbitrary start value.  */
++    size_t nspecs_size = 32 * sizeof (struct printf_spec);
++    specs = alloca (nspecs_size);
+     /* The number of arguments the format string requests.  This will
+        determine the size of the array needed to store the argument
+        attributes.  */
+@@ -1678,14 +1684,30 @@ do_positional:
+     for (f = lead_str_end; *f != L_('\0'); f = specs[nspecs++].next_fmt)
+       {
+-      if (nspecs >= nspecs_max)
++      if (nspecs * sizeof (*specs) >= nspecs_size)
+         {
+           /* Extend the array of format specifiers.  */
+           struct printf_spec *old = specs;
+-          specs = extend_alloca (specs, nspecs_max, 2 * nspecs_max);
++          if (__libc_use_alloca (2 * nspecs_size))
++            specs = extend_alloca (specs, nspecs_size, 2 * nspecs_size);
++          else
++            {
++              nspecs_size *= 2;
++              specs = malloc (nspecs_size);
++            }
++              
+           /* Copy the old array's elements to the new space.  */
+-          memmove (specs, old, nspecs * sizeof (struct printf_spec));
++          memmove (specs, old, nspecs * sizeof (*specs));
++
++          /* If we had previously malloc'd space for SPECS, then
++             release it after the copy is complete.  */
++          if (specs_malloced)
++            free (old);
++
++          /* Now set SPECS_MALLOCED if needed.  */
++         if (!__libc_use_alloca (nspecs_size))
++           specs_malloced = true;
+         }
+       /* Parse the format specifier.  */
+@@ -1998,6 +2020,8 @@ do_positional:
+   }
+ all_done:
++  if (specs_malloced)
++    free (specs);
+   free (args_malloced);
+   free (workstart);
+   /* Unlock the stream.  */
diff --git a/src/patches/glibc/glibc-rh837026.patch b/src/patches/glibc/glibc-rh837026.patch
new file mode 100644 (file)
index 0000000..558ad4f
--- /dev/null
@@ -0,0 +1,30 @@
+diff -rup a/resolv/res_send.c b/resolv/res_send.c
+--- a/resolv/res_send.c        2012-06-28 11:55:38.361886650 -0600
++++ b/resolv/res_send.c        2012-06-28 11:51:38.253963687 -0600
+@@ -424,17 +424,15 @@ __libc_res_nsend(res_state statp, const
+               }
+               n = statp->nscount;
+               ext_total_nscount = EXT(statp).nscount + EXT(statp).nscount6;
+-              if (statp->nscount > ext_total_nscount)
+-                      for (n = ext_total_nscount, ns = 0;
+-                           n < statp->nscount; n++) {
+-                              while (ns < MAXNS
+-                                     && EXT(statp).nsmap[ns] != MAXNS)
+-                                      ns++;
+-                              if (ns == MAXNS)
+-                                      break;
+-                              EXT(statp).nsmap[ns] = n;
+-                              map[n] = ns++;
+-                      }
++              for (n = 0, ns = 0; n < statp->nscount - ext_total_nscount; n++) {
++                      while (ns < MAXNS
++                             && EXT(statp).nsmap[ns] != MAXNS)
++                              ns++;
++                      if (ns == MAXNS)
++                              break;
++                      EXT(statp).nsmap[ns] = n;
++                      map[n] = ns++;
++              }
+               EXT(statp).nscount = n;
+               for (ns = 0; ns < EXT(statp).nscount; ns++) {
+                       n = map[ns];
diff --git a/src/patches/grep-2.5.1a-redhat_fixes-2.patch b/src/patches/grep-2.5.1a-redhat_fixes-2.patch
deleted file mode 100644 (file)
index 9c30342..0000000
+++ /dev/null
@@ -1,2109 +0,0 @@
-Submitted by: Alexander E. Patrakov
-Date: 2005-08-13
-Initial Package Version: 2.5.1a
-Upstream Status: Partially accepted, partially rejected, but required for LSB >= 2.0 certification
-Origin: RedHat
-Description: Various fixes from RedHat. Individual patches:
-
-   grep-2.5.1-fgrep.patch
-   grep-2.5.1-bracket.patch
-   grep-2.5-i18n.patch
-   grep-2.5.1-oi.patch
-   grep-2.5.1-manpage.patch
-   grep-2.5.1-color.patch
-   grep-2.5.1-icolor.patch
-   grep-2.5.1-egf-speedup.patch
-   grep-2.5.1-dfa-optional.patch
-   grep-2.5.1-tests.patch
-   grep-2.5.1-w.patch
-
-Testcases:
-
- -fgrep: ???, but required for other patches
- -bracket: echo "[" | LANG=en_US.UTF-8 grep "[[:space:]]"
- -i18n: many fixes for multibyte locale support, required for LSB.
- -oi: echo xxYYzz | LANG=C grep -i -o yy
- -manpage: typo
- -color: restore the background color correctly
- -icolor: ??? echo 'spam foo SPAM FOO' | grep -i --color spam
-     (but that's also fixed by -oi. Is this patch just a cleanup?)
- -egf-speedup: without this, grep is as slow as a snail in UTF-8 locales.
- -dfa-optional: disables dfa in multibyte locales by default.
- -w: (echo 'foo';echo 'fo') > /tmp/testfile && grep -F -w fo /tmp/testfile
-
-diff -urN grep-2.5.1a.orig/doc/grep.1 grep-2.5.1a/doc/grep.1
---- grep-2.5.1a.orig/doc/grep.1        2004-11-12 16:26:37.000000000 +0500
-+++ grep-2.5.1a/doc/grep.1     2005-10-23 09:49:43.000000000 +0600
-@@ -191,6 +191,7 @@
- .I PATTERN
- as a list of fixed strings, separated by newlines,
- any of which is to be matched.
-+.TP
- .BR \-P ", " \-\^\-perl-regexp
- Interpret
- .I PATTERN
-@@ -302,7 +303,7 @@
- This is especially useful for tools like zgrep, e.g.
- .B "gzip -cd foo.gz |grep --label=foo something"
- .TP
--.BR \-\^\-line-buffering
-+.BR \-\^\-line-buffered
- Use line buffering, it can be a performance penality.
- .TP
- .BR \-q ", " \-\^\-quiet ", " \-\^\-silent
-diff -urN grep-2.5.1a.orig/lib/posix/regex.h grep-2.5.1a/lib/posix/regex.h
---- grep-2.5.1a.orig/lib/posix/regex.h 2001-04-02 23:56:50.000000000 +0600
-+++ grep-2.5.1a/lib/posix/regex.h      2005-10-23 09:49:31.000000000 +0600
-@@ -109,6 +109,10 @@
-    If not set, \{, \}, {, and } are literals.  */
- #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
-+/* If this bit is set, then ignore case when matching.
-+   If not set, then case is significant.  */
-+#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
-+
- /* If this bit is set, +, ? and | aren't recognized as operators.
-    If not set, they are.  */
- #define RE_LIMITED_OPS (RE_INTERVALS << 1)
-diff -urN grep-2.5.1a.orig/src/dfa.c grep-2.5.1a/src/dfa.c
---- grep-2.5.1a.orig/src/dfa.c 2001-09-26 22:57:55.000000000 +0600
-+++ grep-2.5.1a/src/dfa.c      2005-10-23 09:49:17.000000000 +0600
-@@ -414,7 +414,7 @@
- /* This function fetch a wide character, and update cur_mb_len,
-    used only if the current locale is a multibyte environment.  */
--static wchar_t
-+static wint_t
- fetch_wc (char const *eoferr)
- {
-   wchar_t wc;
-@@ -423,7 +423,7 @@
-       if (eoferr != 0)
-       dfaerror (eoferr);
-       else
--      return -1;
-+      return WEOF;
-     }
-   cur_mb_len = mbrtowc(&wc, lexptr, lexleft, &mbs);
-@@ -459,7 +459,7 @@
- static void
- parse_bracket_exp_mb ()
- {
--  wchar_t wc, wc1, wc2;
-+  wint_t wc, wc1, wc2;
-   /* Work area to build a mb_char_classes.  */
-   struct mb_char_classes *work_mbc;
-@@ -496,7 +496,7 @@
-     work_mbc->invert = 0;
-   do
-     {
--      wc1 = -1; /* mark wc1 is not initialized".  */
-+      wc1 = WEOF; /* mark wc1 is not initialized".  */
-       /* Note that if we're looking at some other [:...:] construct,
-        we just treat it as a bunch of ordinary characters.  We can do
-@@ -586,7 +586,7 @@
-                     work_mbc->coll_elems[work_mbc->ncoll_elems++] = elem;
-                   }
-               }
--            wc = -1;
-+            wc1 = wc = WEOF;
-           }
-         else
-           /* We treat '[' as a normal character here.  */
-@@ -600,7 +600,7 @@
-           wc = fetch_wc(("Unbalanced ["));
-       }
--      if (wc1 == -1)
-+      if (wc1 == WEOF)
-       wc1 = fetch_wc(_("Unbalanced ["));
-       if (wc1 == L'-')
-@@ -630,17 +630,17 @@
-           }
-         REALLOC_IF_NECESSARY(work_mbc->range_sts, wchar_t,
-                              range_sts_al, work_mbc->nranges + 1);
--        work_mbc->range_sts[work_mbc->nranges] = wc;
-+        work_mbc->range_sts[work_mbc->nranges] = (wchar_t)wc;
-         REALLOC_IF_NECESSARY(work_mbc->range_ends, wchar_t,
-                              range_ends_al, work_mbc->nranges + 1);
--        work_mbc->range_ends[work_mbc->nranges++] = wc2;
-+        work_mbc->range_ends[work_mbc->nranges++] = (wchar_t)wc2;
-       }
--      else if (wc != -1)
-+      else if (wc != WEOF)
-       /* build normal characters.  */
-       {
-         REALLOC_IF_NECESSARY(work_mbc->chars, wchar_t, chars_al,
-                              work_mbc->nchars + 1);
--        work_mbc->chars[work_mbc->nchars++] = wc;
-+        work_mbc->chars[work_mbc->nchars++] = (wchar_t)wc;
-       }
-     }
-   while ((wc = wc1) != L']');
-@@ -2552,6 +2552,8 @@
-     }
-   /* match with a character?  */
-+  if (case_fold)
-+    wc = towlower (wc);
-   for (i = 0; i<work_mbc->nchars; i++)
-     {
-       if (wc == work_mbc->chars[i])
-diff -urN grep-2.5.1a.orig/src/grep.c grep-2.5.1a/src/grep.c
---- grep-2.5.1a.orig/src/grep.c        2004-11-12 16:25:35.000000000 +0500
-+++ grep-2.5.1a/src/grep.c     2005-10-23 09:50:06.000000000 +0600
-@@ -30,6 +30,12 @@
- # include <sys/time.h>
- # include <sys/resource.h>
- #endif
-+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
-+/* We can handle multibyte string.  */
-+# define MBS_SUPPORT
-+# include <wchar.h>
-+# include <wctype.h>
-+#endif
- #include <stdio.h>
- #include "system.h"
- #include "getopt.h"
-@@ -558,33 +564,6 @@
-     {
-       size_t match_size;
-       size_t match_offset;
--      if(match_icase)
--        {
--        /* Yuck, this is tricky */
--          char *buf = (char*) xmalloc (lim - beg);
--        char *ibeg = buf;
--        char *ilim = ibeg + (lim - beg);
--        int i;
--        for (i = 0; i < lim - beg; i++)
--          ibeg[i] = tolower (beg[i]);
--        while ((match_offset = (*execute) (ibeg, ilim-ibeg, &match_size, 1))
--               != (size_t) -1)
--          {
--            char const *b = beg + match_offset;
--            if (b == lim)
--              break;
--            fwrite (beg, sizeof (char), match_offset, stdout);
--            printf ("\33[%sm", grep_color);
--            fwrite (b, sizeof (char), match_size, stdout);
--            fputs ("\33[00m", stdout);
--            beg = b + match_size;
--            ibeg = ibeg + match_offset + match_size;
--          }
--        fwrite (beg, 1, lim - beg, stdout);
--        free (buf);
--        lastout = lim;
--        return;
--      }
-       while (lim-beg && (match_offset = (*execute) (beg, lim - beg, &match_size, 1))
-            != (size_t) -1)
-       {
-@@ -601,6 +580,7 @@
-         fputs ("\33[00m", stdout);
-         beg = b + match_size;
-       }
-+      fputs ("\33[K", stdout);
-     }
-   fwrite (beg, 1, lim - beg, stdout);
-   if (ferror (stdout))
-@@ -1697,6 +1677,37 @@
-   if (!install_matcher (matcher) && !install_matcher ("default"))
-     abort ();
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX != 1 && match_icase)
-+    {
-+      wchar_t wc;
-+      mbstate_t cur_state, prev_state;
-+      int i, len = strlen(keys);
-+
-+      memset(&cur_state, 0, sizeof(mbstate_t));
-+      for (i = 0; i <= len ;)
-+      {
-+        size_t mbclen;
-+        mbclen = mbrtowc(&wc, keys + i, len - i, &cur_state);
-+        if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
-+          {
-+            /* An invalid sequence, or a truncated multibyte character.
-+               We treat it as a singlebyte character.  */
-+            mbclen = 1;
-+          }
-+        else
-+          {
-+            if (iswupper((wint_t)wc))
-+              {
-+                wc = towlower((wint_t)wc);
-+                wcrtomb(keys + i, wc, &cur_state);
-+              }
-+          }
-+        i += mbclen;
-+      }
-+    }
-+#endif /* MBS_SUPPORT */
-+
-   (*compile)(keys, keycc);
-   if ((argc - optind > 1 && !no_filenames) || with_filenames)
-diff -urN grep-2.5.1a.orig/src/search.c grep-2.5.1a/src/search.c
---- grep-2.5.1a.orig/src/search.c      2001-04-19 09:42:14.000000000 +0600
-+++ grep-2.5.1a/src/search.c   2005-10-23 09:51:25.000000000 +0600
-@@ -18,9 +18,13 @@
- /* Written August 1992 by Mike Haertel. */
-+#ifndef _GNU_SOURCE
-+# define _GNU_SOURCE 1
-+#endif
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+#include <assert.h>
- #include <sys/types.h>
- #if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
- /* We can handle multibyte string.  */
-@@ -31,7 +35,7 @@
- #include "system.h"
- #include "grep.h"
--#include "regex.h"
-+#include <regex.h>
- #include "dfa.h"
- #include "kwset.h"
- #include "error.h"
-@@ -39,6 +43,9 @@
- #ifdef HAVE_LIBPCRE
- # include <pcre.h>
- #endif
-+#ifdef HAVE_LANGINFO_CODESET
-+# include <langinfo.h>
-+#endif
- #define NCHAR (UCHAR_MAX + 1)
-@@ -70,9 +77,10 @@
-    call the regexp matcher at all. */
- static int kwset_exact_matches;
--#if defined(MBS_SUPPORT)
--static char* check_multibyte_string PARAMS ((char const *buf, size_t size));
--#endif
-+/* UTF-8 encoding allows some optimizations that we can't otherwise
-+   assume in a multibyte encoding. */
-+static int using_utf8;
-+
- static void kwsinit PARAMS ((void));
- static void kwsmusts PARAMS ((void));
- static void Gcompile PARAMS ((char const *, size_t));
-@@ -84,6 +92,15 @@
- static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int));
- void
-+check_utf8 (void)
-+{
-+#ifdef HAVE_LANGINFO_CODESET
-+  if (strcmp (nl_langinfo (CODESET), "UTF-8") == 0)
-+    using_utf8 = 1;
-+#endif
-+}
-+
-+void
- dfaerror (char const *mesg)
- {
-   error (2, 0, mesg);
-@@ -141,38 +158,6 @@
-     }
- }
--#ifdef MBS_SUPPORT
--/* This function allocate the array which correspond to "buf".
--   Then this check multibyte string and mark on the positions which
--   are not singlebyte character nor the first byte of a multibyte
--   character.  Caller must free the array.  */
--static char*
--check_multibyte_string(char const *buf, size_t size)
--{
--  char *mb_properties = malloc(size);
--  mbstate_t cur_state;
--  int i;
--  memset(&cur_state, 0, sizeof(mbstate_t));
--  memset(mb_properties, 0, sizeof(char)*size);
--  for (i = 0; i < size ;)
--    {
--      size_t mbclen;
--      mbclen = mbrlen(buf + i, size - i, &cur_state);
--
--      if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
--      {
--        /* An invalid sequence, or a truncated multibyte character.
--           We treat it as a singlebyte character.  */
--        mbclen = 1;
--      }
--      mb_properties[i] = mbclen;
--      i += mbclen;
--    }
--
--  return mb_properties;
--}
--#endif
--
- static void
- Gcompile (char const *pattern, size_t size)
- {
-@@ -181,7 +166,8 @@
-   size_t total = size;
-   char const *motif = pattern;
--  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE);
-+  check_utf8 ();
-+  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE | (match_icase ? RE_ICASE : 0));
-   dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte);
-   /* For GNU regex compiler we have to pass the patterns separately to detect
-@@ -233,7 +219,7 @@
-       static char const line_end[] = "\\)$";
-       static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\(";
-       static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)";
--      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
-       size_t i;
-       strcpy (n, match_lines ? line_beg : word_beg);
-       i = strlen (n);
-@@ -257,14 +243,15 @@
-   size_t total = size;
-   char const *motif = pattern;
-+  check_utf8 ();
-   if (strcmp (matcher, "awk") == 0)
-     {
--      re_set_syntax (RE_SYNTAX_AWK);
-+      re_set_syntax (RE_SYNTAX_AWK | (match_icase ? RE_ICASE : 0));
-       dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte);
-     }
-   else
-     {
--      re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-+      re_set_syntax (RE_SYNTAX_POSIX_EGREP | (match_icase ? RE_ICASE : 0));
-       dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte);
-     }
-@@ -316,7 +303,7 @@
-       static char const line_end[] = ")$";
-       static char const word_beg[] = "(^|[^[:alnum:]_])(";
-       static char const word_end[] = ")([^[:alnum:]_]|$)";
--      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      char *n = xmalloc (sizeof word_beg - 1 + size + sizeof word_end);
-       size_t i;
-       strcpy (n, match_lines ? line_beg : word_beg);
-       i = strlen(n);
-@@ -339,15 +326,35 @@
-   char eol = eolbyte;
-   int backref, start, len;
-   struct kwsmatch kwsm;
--  size_t i;
-+  size_t i, ret_val;
-+  static int use_dfa;
-+  static int use_dfa_checked = 0;
- #ifdef MBS_SUPPORT
--  char *mb_properties = NULL;
-+  const char *last_char = NULL;
-+  int mb_cur_max = MB_CUR_MAX;
-+  mbstate_t mbs;
-+  memset (&mbs, '\0', sizeof (mbstate_t));
- #endif /* MBS_SUPPORT */
-+  if (!use_dfa_checked)
-+    {
-+      char *grep_use_dfa = getenv ("GREP_USE_DFA");
-+      if (!grep_use_dfa)
-+      {
- #ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && kwset)
--    mb_properties = check_multibyte_string(buf, size);
-+        /* Turn off DFA when processing multibyte input. */
-+        use_dfa = (MB_CUR_MAX == 1);
-+#else
-+        use_dfa = 1;
- #endif /* MBS_SUPPORT */
-+      }
-+      else
-+      {
-+        use_dfa = atoi (grep_use_dfa);
-+      }
-+
-+      use_dfa_checked = 1;
-+    }
-   buflim = buf + size;
-@@ -358,47 +365,124 @@
-         if (kwset)
-           {
-             /* Find a possible match using the KWset matcher. */
--            size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-+#ifdef MBS_SUPPORT
-+            size_t bytes_left = 0;
-+#endif /* MBS_SUPPORT */
-+            size_t offset;
-+#ifdef MBS_SUPPORT
-+            /* kwsexec doesn't work with match_icase and multibyte input. */
-+            if (match_icase && mb_cur_max > 1)
-+              /* Avoid kwset */
-+              offset = 0;
-+            else
-+#endif /* MBS_SUPPORT */
-+            offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-             if (offset == (size_t) -1)
--              {
-+              goto failure;
- #ifdef MBS_SUPPORT
--                if (MB_CUR_MAX > 1)
--                  free(mb_properties);
--#endif
--                return (size_t)-1;
-+            if (mb_cur_max > 1 && !using_utf8)
-+              {
-+                bytes_left = offset;
-+                while (bytes_left)
-+                  {
-+                    size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                    last_char = beg;
-+                    if (mlen == (size_t) -1 || mlen == 0)
-+                      {
-+                        /* Incomplete character: treat as single-byte. */
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        beg++;
-+                        bytes_left--;
-+                        continue;
-+                      }
-+
-+                    if (mlen == (size_t) -2)
-+                      /* Offset points inside multibyte character:
-+                       * no good. */
-+                      break;
-+
-+                    beg += mlen;
-+                    bytes_left -= mlen;
-+                  }
-               }
-+            else
-+#endif /* MBS_SUPPORT */
-             beg += offset;
-             /* Narrow down to the line containing the candidate, and
-                run it through DFA. */
-             end = memchr(beg, eol, buflim - beg);
-             end++;
- #ifdef MBS_SUPPORT
--            if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0)
-+            if (mb_cur_max > 1 && bytes_left)
-               continue;
--#endif
-+#endif /* MBS_SUPPORT */
-             while (beg > buf && beg[-1] != eol)
-               --beg;
--            if (kwsm.index < kwset_exact_matches)
--              goto success;
--            if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-+            if (
-+#ifdef MBS_SUPPORT
-+                !(match_icase && mb_cur_max > 1) &&
-+#endif /* MBS_SUPPORT */
-+                (kwsm.index < kwset_exact_matches))
-+              goto success_in_beg_and_end;
-+            if (use_dfa &&
-+                dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-               continue;
-           }
-         else
-           {
-             /* No good fixed strings; start with DFA. */
--            size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-+#ifdef MBS_SUPPORT
-+            size_t bytes_left = 0;
-+#endif /* MBS_SUPPORT */
-+            size_t offset = 0;
-+            if (use_dfa)
-+              offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-             if (offset == (size_t) -1)
-               break;
-             /* Narrow down to the line we've found. */
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1 && !using_utf8)
-+              {
-+                bytes_left = offset;
-+                while (bytes_left)
-+                  {
-+                    size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                    last_char = beg;
-+                    if (mlen == (size_t) -1 || mlen == 0)
-+                      {
-+                        /* Incomplete character: treat as single-byte. */
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        beg++;
-+                        bytes_left--;
-+                        continue;
-+                      }
-+
-+                    if (mlen == (size_t) -2)
-+                      /* Offset points inside multibyte character:
-+                       * no good. */
-+                      break;
-+
-+                    beg += mlen;
-+                    bytes_left -= mlen;
-+                  }
-+              }
-+            else
-+#endif /* MBS_SUPPORT */
-             beg += offset;
-             end = memchr (beg, eol, buflim - beg);
-             end++;
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1 && bytes_left)
-+              continue;
-+#endif /* MBS_SUPPORT */
-             while (beg > buf && beg[-1] != eol)
-               --beg;
-           }
-         /* Successful, no backreferences encountered! */
--        if (!backref)
--          goto success;
-+        if (use_dfa && !backref)
-+          goto success_in_beg_and_end;
-       }
-       else
-       end = beg + size;
-@@ -413,14 +497,11 @@
-                                      end - beg - 1, &(patterns[i].regs))))
-           {
-             len = patterns[i].regs.end[0] - start;
--            if (exact)
--              {
--                *match_size = len;
--                return start;
--              }
-+            if (exact && !match_words)
-+              goto success_in_start_and_len;
-             if ((!match_lines && !match_words)
-                 || (match_lines && len == end - beg - 1))
--              goto success;
-+              goto success_in_beg_and_end;
-             /* If -w, check if the match aligns with word boundaries.
-                We do this iteratively because:
-                (a) the line may contain more than one occurence of the
-@@ -431,10 +512,84 @@
-             if (match_words)
-               while (start >= 0)
-                 {
--                  if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1]))
--                      && (len == end - beg - 1
--                          || !WCHAR ((unsigned char) beg[start + len])))
--                    goto success;
-+                  int lword_match = 0;
-+                  if (start == 0)
-+                    lword_match = 1;
-+                  else
-+                    {
-+                      assert (start > 0);
-+#ifdef MBS_SUPPORT
-+                      if (mb_cur_max > 1)
-+                        {
-+                          const char *s;
-+                          int mr;
-+                          wchar_t pwc;
-+
-+                          if (using_utf8)
-+                            {
-+                              s = beg + start - 1;
-+                              while (s > buf
-+                                     && (unsigned char) *s >= 0x80
-+                                     && (unsigned char) *s <= 0xbf)
-+                                --s;
-+                            }
-+                          else
-+                            s = last_char;
-+                          mr = mbtowc (&pwc, s, beg + start - s);
-+                          if (mr <= 0)
-+                            {
-+                              memset (&mbs, '\0', sizeof (mbstate_t));
-+                              lword_match = 1;
-+                            }
-+                          else if (!(iswalnum (pwc) || pwc == L'_')
-+                                   && mr == (int) (beg + start - s))
-+                            lword_match = 1;
-+                        }
-+                      else
-+#endif /* MBS_SUPPORT */
-+                      if (!WCHAR ((unsigned char) beg[start - 1]))
-+                        lword_match = 1;
-+                    }
-+
-+                  if (lword_match)
-+                    {
-+                      int rword_match = 0;
-+                      if (start + len == end - beg - 1)
-+                        rword_match = 1;
-+                      else
-+                        {
-+#ifdef MBS_SUPPORT
-+                          if (mb_cur_max > 1)
-+                            {
-+                              wchar_t nwc;
-+                              int mr;
-+
-+                              mr = mbtowc (&nwc, beg + start + len,
-+                                           end - beg - start - len - 1);
-+                              if (mr <= 0)
-+                                {
-+                                  memset (&mbs, '\0', sizeof (mbstate_t));
-+                                  rword_match = 1;
-+                                }
-+                              else if (!iswalnum (nwc) && nwc != L'_')
-+                                rword_match = 1;
-+                            }
-+                          else
-+#endif /* MBS_SUPPORT */
-+                          if (!WCHAR ((unsigned char) beg[start + len]))
-+                            rword_match = 1;
-+                        }
-+
-+                      if (rword_match)
-+                        {
-+                          if (!exact)
-+                            /* Returns the whole line. */
-+                            goto success_in_beg_and_end;
-+                          else
-+                            /* Returns just this word match. */
-+                            goto success_in_start_and_len;
-+                        }
-+                    }
-                   if (len > 0)
-                     {
-                       /* Try a shorter length anchored at the same place. */
-@@ -461,26 +616,154 @@
-           }
-       } /* for Regex patterns.  */
-     } /* for (beg = end ..) */
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && mb_properties)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
-+
-+ failure:
-   return (size_t) -1;
-- success:
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1 && mb_properties)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
--  *match_size = end - beg;
--  return beg - buf;
-+ success_in_beg_and_end:
-+  len = end - beg;
-+  start = beg - buf;
-+  /* FALLTHROUGH */
-+
-+ success_in_start_and_len:
-+  *match_size = len;
-+  return start;
- }
-+#ifdef MBS_SUPPORT
-+static int f_i_multibyte; /* whether we're using the new -Fi MB method */
-+static struct
-+{
-+  wchar_t **patterns;
-+  size_t count, maxlen;
-+  unsigned char *match;
-+} Fimb;
-+#endif
-+
- static void
- Fcompile (char const *pattern, size_t size)
- {
-+  int mb_cur_max = MB_CUR_MAX;
-   char const *beg, *lim, *err;
-+  check_utf8 ();
-+#ifdef MBS_SUPPORT
-+  /* Support -F -i for UTF-8 input. */
-+  if (match_icase && mb_cur_max > 1)
-+    {
-+      mbstate_t mbs;
-+      wchar_t *wcpattern = xmalloc ((size + 1) * sizeof (wchar_t));
-+      const char *patternend = pattern;
-+      size_t wcsize;
-+      kwset_t fimb_kwset = NULL;
-+      char *starts = NULL;
-+      wchar_t *wcbeg, *wclim;
-+      size_t allocated = 0;
-+
-+      memset (&mbs, '\0', sizeof (mbs));
-+# ifdef __GNU_LIBRARY__
-+      wcsize = mbsnrtowcs (wcpattern, &patternend, size, size, &mbs);
-+      if (patternend != pattern + size)
-+      wcsize = (size_t) -1;
-+# else
-+      {
-+      char *patterncopy = xmalloc (size + 1);
-+
-+      memcpy (patterncopy, pattern, size);
-+      patterncopy[size] = '\0';
-+      patternend = patterncopy;
-+      wcsize = mbsrtowcs (wcpattern, &patternend, size, &mbs);
-+      if (patternend != patterncopy + size)
-+        wcsize = (size_t) -1;
-+      free (patterncopy);
-+      }
-+# endif
-+      if (wcsize + 2 <= 2)
-+      {
-+fimb_fail:
-+        free (wcpattern);
-+        free (starts);
-+        if (fimb_kwset)
-+          kwsfree (fimb_kwset);
-+        free (Fimb.patterns);
-+        Fimb.patterns = NULL;
-+      }
-+      else
-+      {
-+        if (!(fimb_kwset = kwsalloc (NULL)))
-+          error (2, 0, _("memory exhausted"));
-+
-+        starts = xmalloc (mb_cur_max * 3);
-+        wcbeg = wcpattern;
-+        do
-+          {
-+            int i;
-+            size_t wclen;
-+
-+            if (Fimb.count >= allocated)
-+              {
-+                if (allocated == 0)
-+                  allocated = 128;
-+                else
-+                  allocated *= 2;
-+                Fimb.patterns = xrealloc (Fimb.patterns,
-+                                          sizeof (wchar_t *) * allocated);
-+              }
-+            Fimb.patterns[Fimb.count++] = wcbeg;
-+            for (wclim = wcbeg;
-+                 wclim < wcpattern + wcsize && *wclim != L'\n'; ++wclim)
-+              *wclim = towlower (*wclim);
-+            *wclim = L'\0';
-+            wclen = wclim - wcbeg;
-+            if (wclen > Fimb.maxlen)
-+              Fimb.maxlen = wclen;
-+            if (wclen > 3)
-+              wclen = 3;
-+            if (wclen == 0)
-+              {
-+                if ((err = kwsincr (fimb_kwset, "", 0)) != 0)
-+                  error (2, 0, err);
-+              }
-+            else
-+              for (i = 0; i < (1 << wclen); i++)
-+                {
-+                  char *p = starts;
-+                  int j, k;
-+
-+                  for (j = 0; j < wclen; ++j)
-+                    {
-+                      wchar_t wc = wcbeg[j];
-+                      if (i & (1 << j))
-+                        {
-+                          wc = towupper (wc);
-+                          if (wc == wcbeg[j])
-+                            continue;
-+                        }
-+                      k = wctomb (p, wc);
-+                      if (k <= 0)
-+                        goto fimb_fail;
-+                      p += k;
-+                    }
-+                  if ((err = kwsincr (fimb_kwset, starts, p - starts)) != 0)
-+                    error (2, 0, err);
-+                }
-+            if (wclim < wcpattern + wcsize)
-+              ++wclim;
-+            wcbeg = wclim;
-+          }
-+        while (wcbeg < wcpattern + wcsize);
-+        f_i_multibyte = 1;
-+        kwset = fimb_kwset;
-+        free (starts);
-+        Fimb.match = xmalloc (Fimb.count);
-+        if ((err = kwsprep (kwset)) != 0)
-+          error (2, 0, err);
-+        return;
-+      }
-+    }
-+#endif /* MBS_SUPPORT */
-+
-+
-   kwsinit ();
-   beg = pattern;
-   do
-@@ -499,6 +782,76 @@
-     error (2, 0, err);
- }
-+#ifdef MBS_SUPPORT
-+static int
-+Fimbexec (const char *buf, size_t size, size_t *plen, int exact)
-+{
-+  size_t len, letter, i;
-+  int ret = -1;
-+  mbstate_t mbs;
-+  wchar_t wc;
-+  int patterns_left;
-+
-+  assert (match_icase && f_i_multibyte == 1);
-+  assert (MB_CUR_MAX > 1);
-+
-+  memset (&mbs, '\0', sizeof (mbs));
-+  memset (Fimb.match, '\1', Fimb.count);
-+  letter = len = 0;
-+  patterns_left = 1;
-+  while (patterns_left && len <= size)
-+    {
-+      size_t c;
-+
-+      patterns_left = 0;
-+      if (len < size)
-+      {
-+        c = mbrtowc (&wc, buf + len, size - len, &mbs);
-+        if (c + 2 <= 2)
-+          return ret;
-+
-+        wc = towlower (wc);
-+      }
-+      else
-+      {
-+        c = 1;
-+        wc = L'\0';
-+      }
-+
-+      for (i = 0; i < Fimb.count; i++)
-+      {
-+        if (Fimb.match[i])
-+          {
-+            if (Fimb.patterns[i][letter] == L'\0')
-+              {
-+                /* Found a match. */
-+                *plen = len;
-+                if (!exact && !match_words)
-+                  return 0;
-+                else
-+                  {
-+                    /* For -w or exact look for longest match.  */
-+                    ret = 0;
-+                    Fimb.match[i] = '\0';
-+                    continue;
-+                  }
-+              }
-+
-+            if (Fimb.patterns[i][letter] == wc)
-+              patterns_left = 1;
-+            else
-+              Fimb.match[i] = '\0';
-+          }
-+      }
-+
-+      len += c;
-+      letter++;
-+    }
-+
-+  return ret;
-+}
-+#endif /* MBS_SUPPORT */
-+
- static size_t
- Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
- {
-@@ -506,88 +859,268 @@
-   register size_t len;
-   char eol = eolbyte;
-   struct kwsmatch kwsmatch;
-+  size_t ret_val;
- #ifdef MBS_SUPPORT
--  char *mb_properties;
--  if (MB_CUR_MAX > 1)
--    mb_properties = check_multibyte_string (buf, size);
-+  int mb_cur_max = MB_CUR_MAX;
-+  mbstate_t mbs;
-+  memset (&mbs, '\0', sizeof (mbstate_t));
-+  const char *last_char = NULL;
- #endif /* MBS_SUPPORT */
-   for (beg = buf; beg <= buf + size; ++beg)
-     {
--      size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+      size_t offset;
-+      offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+
-       if (offset == (size_t) -1)
--      {
-+      goto failure;
- #ifdef MBS_SUPPORT
--        if (MB_CUR_MAX > 1)
--          free(mb_properties);
--#endif /* MBS_SUPPORT */
--        return offset;
-+      if (mb_cur_max > 1 && !using_utf8)
-+      {
-+        size_t bytes_left = offset;
-+        while (bytes_left)
-+          {
-+            size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+            last_char = beg;
-+            if (mlen == (size_t) -1 || mlen == 0)
-+              {
-+                /* Incomplete character: treat as single-byte. */
-+                memset (&mbs, '\0', sizeof (mbstate_t));
-+                beg++;
-+                bytes_left--;
-+                continue;
-+              }
-+
-+            if (mlen == (size_t) -2)
-+              /* Offset points inside multibyte character: no good. */
-+              break;
-+
-+            beg += mlen;
-+            bytes_left -= mlen;
-+          }
-+
-+        if (bytes_left)
-+          continue;
-       }
--#ifdef MBS_SUPPORT
--      if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0)
--      continue; /* It is a part of multibyte character.  */
-+      else
- #endif /* MBS_SUPPORT */
-       beg += offset;
--      len = kwsmatch.size[0];
--      if (exact)
--      {
--        *match_size = len;
- #ifdef MBS_SUPPORT
--        if (MB_CUR_MAX > 1)
--          free (mb_properties);
-+      /* For f_i_multibyte, the string at beg now matches first 3 chars of
-+       one of the search strings (less if there are shorter search strings).
-+       See if this is a real match.  */
-+      if (f_i_multibyte
-+        && Fimbexec (beg, buf + size - beg, &kwsmatch.size[0], exact))
-+      goto next_char;
- #endif /* MBS_SUPPORT */
--        return beg - buf;
--      }
-+      len = kwsmatch.size[0];
-+      if (exact && !match_words)
-+      goto success_in_beg_and_len;
-       if (match_lines)
-       {
-         if (beg > buf && beg[-1] != eol)
--          continue;
-+          goto next_char;
-         if (beg + len < buf + size && beg[len] != eol)
--          continue;
-+          goto next_char;
-         goto success;
-       }
-       else if (match_words)
--      for (try = beg; len; )
--        {
--          if (try > buf && WCHAR((unsigned char) try[-1]))
--            break;
--          if (try + len < buf + size && WCHAR((unsigned char) try[len]))
--            {
--              offset = kwsexec (kwset, beg, --len, &kwsmatch);
--              if (offset == (size_t) -1)
--                {
-+      {
-+        while (len)
-+          {
-+            int word_match = 0;
-+            if (beg > buf)
-+              {
- #ifdef MBS_SUPPORT
--                  if (MB_CUR_MAX > 1)
--                    free (mb_properties);
-+                if (mb_cur_max > 1)
-+                  {
-+                    const char *s;
-+                    int mr;
-+                    wchar_t pwc;
-+
-+                    if (using_utf8)
-+                      {
-+                        s = beg - 1;
-+                        while (s > buf
-+                               && (unsigned char) *s >= 0x80
-+                               && (unsigned char) *s <= 0xbf)
-+                          --s;
-+                      }
-+                    else
-+                      s = last_char;
-+                    mr = mbtowc (&pwc, s, beg - s);
-+                    if (mr <= 0)
-+                      memset (&mbs, '\0', sizeof (mbstate_t));
-+                    else if ((iswalnum (pwc) || pwc == L'_')
-+                             && mr == (int) (beg - s))
-+                      goto next_char;
-+                  }
-+                else
- #endif /* MBS_SUPPORT */
--                  return offset;
--                }
--              try = beg + offset;
--              len = kwsmatch.size[0];
--            }
--          else
--            goto success;
--        }
-+                if (WCHAR ((unsigned char) beg[-1]))
-+                  goto next_char;
-+              }
-+#ifdef MBS_SUPPORT
-+            if (mb_cur_max > 1)
-+              {
-+                wchar_t nwc;
-+                int mr;
-+
-+                mr = mbtowc (&nwc, beg + len, buf + size - beg - len);
-+                if (mr <= 0)
-+                  {
-+                    memset (&mbs, '\0', sizeof (mbstate_t));
-+                    word_match = 1;
-+                  }
-+                else if (!iswalnum (nwc) && nwc != L'_')
-+                  word_match = 1;
-+              }
-+            else
-+#endif /* MBS_SUPPORT */
-+              if (beg + len >= buf + size || !WCHAR ((unsigned char) beg[len]))
-+                word_match = 1;
-+            if (word_match)
-+              {
-+                if (!exact)
-+                  /* Returns the whole line now we know there's a word match. */
-+                  goto success;
-+                else
-+                  /* Returns just this word match. */
-+                  goto success_in_beg_and_len;
-+              }
-+            if (len > 0)
-+              {
-+                /* Try a shorter length anchored at the same place. */
-+                --len;
-+                offset = kwsexec (kwset, beg, len, &kwsmatch);
-+
-+                if (offset == -1)
-+                  goto next_char; /* Try a different anchor. */
-+#ifdef MBS_SUPPORT
-+                if (mb_cur_max > 1 && !using_utf8)
-+                  {
-+                    size_t bytes_left = offset;
-+                    while (bytes_left)
-+                      {
-+                        size_t mlen = mbrlen (beg, bytes_left, &mbs);
-+
-+                        last_char = beg;
-+                        if (mlen == (size_t) -1 || mlen == 0)
-+                          {
-+                            /* Incomplete character: treat as single-byte. */
-+                            memset (&mbs, '\0', sizeof (mbstate_t));
-+                            beg++;
-+                            bytes_left--;
-+                            continue;
-+                          }
-+
-+                        if (mlen == (size_t) -2)
-+                          {
-+                            /* Offset points inside multibyte character:
-+                             * no good. */
-+                            break;
-+                          }
-+
-+                        beg += mlen;
-+                        bytes_left -= mlen;
-+                      }
-+
-+                    if (bytes_left)
-+                      {
-+                        memset (&mbs, '\0', sizeof (mbstate_t));
-+                        goto next_char; /* Try a different anchor. */
-+                      }
-+                  }
-+                else
-+#endif /* MBS_SUPPORT */
-+                beg += offset;
-+#ifdef MBS_SUPPORT
-+                /* The string at beg now matches first 3 chars of one of
-+                   the search strings (less if there are shorter search
-+                   strings).  See if this is a real match.  */
-+                if (f_i_multibyte
-+                    && Fimbexec (beg, len - offset, &kwsmatch.size[0],
-+                                 exact))
-+                  goto next_char;
-+#endif /* MBS_SUPPORT */
-+                len = kwsmatch.size[0];
-+              }
-+          }
-+      }
-       else
-       goto success;
--    }
--
-+next_char:;
- #ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1)
--    free (mb_properties);
-+      /* Advance to next character.  For MB_CUR_MAX == 1 case this is handled
-+       by ++beg above.  */
-+      if (mb_cur_max > 1)
-+      {
-+        if (using_utf8)
-+          {
-+            unsigned char c = *beg;
-+            if (c >= 0xc2)
-+              {
-+                if (c < 0xe0)
-+                  ++beg;
-+                else if (c < 0xf0)
-+                  beg += 2;
-+                else if (c < 0xf8)
-+                  beg += 3;
-+                else if (c < 0xfc)
-+                  beg += 4;
-+                else if (c < 0xfe)
-+                  beg += 5;
-+              }
-+          }
-+        else
-+          {
-+            size_t l = mbrlen (beg, buf + size - beg, &mbs);
-+
-+            last_char = beg;
-+            if (l + 2 >= 2)
-+              beg += l - 1;
-+            else
-+              memset (&mbs, '\0', sizeof (mbstate_t));
-+          }
-+      }
- #endif /* MBS_SUPPORT */
-+    }
-+
-+ failure:
-   return -1;
-  success:
-+#ifdef MBS_SUPPORT
-+  if (mb_cur_max > 1 && !using_utf8)
-+    {
-+      end = beg + len;
-+      while (end < buf + size)
-+      {
-+        size_t mlen = mbrlen (end, buf + size - end, &mbs);
-+        if (mlen == (size_t) -1 || mlen == (size_t) -2 || mlen == 0)
-+          {
-+            memset (&mbs, '\0', sizeof (mbstate_t));
-+            mlen = 1;
-+          }
-+        if (mlen == 1 && *end == eol)
-+          break;
-+
-+        end += mlen;
-+      }
-+    }
-+  else
-+#endif /* MBS_SUPPORT */
-   end = memchr (beg + len, eol, (buf + size) - (beg + len));
-+
-   end++;
-   while (buf < beg && beg[-1] != eol)
-     --beg;
--  *match_size = end - beg;
--#ifdef MBS_SUPPORT
--  if (MB_CUR_MAX > 1)
--    free (mb_properties);
--#endif /* MBS_SUPPORT */
-+  len = end - beg;
-+  /* FALLTHROUGH */
-+
-+ success_in_beg_and_len:
-+  *match_size = len;
-   return beg - buf;
- }
-diff -urN grep-2.5.1a.orig/src/search.c.orig grep-2.5.1a/src/search.c.orig
---- grep-2.5.1a.orig/src/search.c.orig 1970-01-01 05:00:00.000000000 +0500
-+++ grep-2.5.1a/src/search.c.orig      2005-10-23 09:48:39.000000000 +0600
-@@ -0,0 +1,714 @@
-+/* search.c - searching subroutines using dfa, kwset and regex for grep.
-+   Copyright 1992, 1998, 2000 Free Software Foundation, Inc.
-+
-+   This program is free software; you can redistribute it and/or modify
-+   it under the terms of the GNU General Public License as published by
-+   the Free Software Foundation; either version 2, or (at your option)
-+   any later version.
-+
-+   This program is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+   GNU General Public License for more details.
-+
-+   You should have received a copy of the GNU General Public License
-+   along with this program; if not, write to the Free Software
-+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-+   02111-1307, USA.  */
-+
-+/* Written August 1992 by Mike Haertel. */
-+
-+#ifdef HAVE_CONFIG_H
-+# include <config.h>
-+#endif
-+#include <sys/types.h>
-+#if defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H && defined HAVE_MBRTOWC
-+/* We can handle multibyte string.  */
-+# define MBS_SUPPORT
-+# include <wchar.h>
-+# include <wctype.h>
-+#endif
-+
-+#include "system.h"
-+#include "grep.h"
-+#include "regex.h"
-+#include "dfa.h"
-+#include "kwset.h"
-+#include "error.h"
-+#include "xalloc.h"
-+#ifdef HAVE_LIBPCRE
-+# include <pcre.h>
-+#endif
-+
-+#define NCHAR (UCHAR_MAX + 1)
-+
-+/* For -w, we also consider _ to be word constituent.  */
-+#define WCHAR(C) (ISALNUM(C) || (C) == '_')
-+
-+/* DFA compiled regexp. */
-+static struct dfa dfa;
-+
-+/* The Regex compiled patterns.  */
-+static struct patterns
-+{
-+  /* Regex compiled regexp. */
-+  struct re_pattern_buffer regexbuf;
-+  struct re_registers regs; /* This is here on account of a BRAIN-DEAD
-+                             Q@#%!# library interface in regex.c.  */
-+} patterns0;
-+
-+struct patterns *patterns;
-+size_t pcount;
-+
-+/* KWset compiled pattern.  For Ecompile and Gcompile, we compile
-+   a list of strings, at least one of which is known to occur in
-+   any string matching the regexp. */
-+static kwset_t kwset;
-+
-+/* Number of compiled fixed strings known to exactly match the regexp.
-+   If kwsexec returns < kwset_exact_matches, then we don't need to
-+   call the regexp matcher at all. */
-+static int kwset_exact_matches;
-+
-+#if defined(MBS_SUPPORT)
-+static char* check_multibyte_string PARAMS ((char const *buf, size_t size));
-+#endif
-+static void kwsinit PARAMS ((void));
-+static void kwsmusts PARAMS ((void));
-+static void Gcompile PARAMS ((char const *, size_t));
-+static void Ecompile PARAMS ((char const *, size_t));
-+static size_t EGexecute PARAMS ((char const *, size_t, size_t *, int ));
-+static void Fcompile PARAMS ((char const *, size_t));
-+static size_t Fexecute PARAMS ((char const *, size_t, size_t *, int));
-+static void Pcompile PARAMS ((char const *, size_t ));
-+static size_t Pexecute PARAMS ((char const *, size_t, size_t *, int));
-+
-+void
-+dfaerror (char const *mesg)
-+{
-+  error (2, 0, mesg);
-+}
-+
-+static void
-+kwsinit (void)
-+{
-+  static char trans[NCHAR];
-+  int i;
-+
-+  if (match_icase)
-+    for (i = 0; i < NCHAR; ++i)
-+      trans[i] = TOLOWER (i);
-+
-+  if (!(kwset = kwsalloc (match_icase ? trans : (char *) 0)))
-+    error (2, 0, _("memory exhausted"));
-+}
-+
-+/* If the DFA turns out to have some set of fixed strings one of
-+   which must occur in the match, then we build a kwset matcher
-+   to find those strings, and thus quickly filter out impossible
-+   matches. */
-+static void
-+kwsmusts (void)
-+{
-+  struct dfamust const *dm;
-+  char const *err;
-+
-+  if (dfa.musts)
-+    {
-+      kwsinit ();
-+      /* First, we compile in the substrings known to be exact
-+       matches.  The kwset matcher will return the index
-+       of the matching string that it chooses. */
-+      for (dm = dfa.musts; dm; dm = dm->next)
-+      {
-+        if (!dm->exact)
-+          continue;
-+        ++kwset_exact_matches;
-+        if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0)
-+          error (2, 0, err);
-+      }
-+      /* Now, we compile the substrings that will require
-+       the use of the regexp matcher.  */
-+      for (dm = dfa.musts; dm; dm = dm->next)
-+      {
-+        if (dm->exact)
-+          continue;
-+        if ((err = kwsincr (kwset, dm->must, strlen (dm->must))) != 0)
-+          error (2, 0, err);
-+      }
-+      if ((err = kwsprep (kwset)) != 0)
-+      error (2, 0, err);
-+    }
-+}
-+
-+#ifdef MBS_SUPPORT
-+/* This function allocate the array which correspond to "buf".
-+   Then this check multibyte string and mark on the positions which
-+   are not singlebyte character nor the first byte of a multibyte
-+   character.  Caller must free the array.  */
-+static char*
-+check_multibyte_string(char const *buf, size_t size)
-+{
-+  char *mb_properties = malloc(size);
-+  mbstate_t cur_state;
-+  int i;
-+  memset(&cur_state, 0, sizeof(mbstate_t));
-+  memset(mb_properties, 0, sizeof(char)*size);
-+  for (i = 0; i < size ;)
-+    {
-+      size_t mbclen;
-+      mbclen = mbrlen(buf + i, size - i, &cur_state);
-+
-+      if (mbclen == (size_t) -1 || mbclen == (size_t) -2 || mbclen == 0)
-+      {
-+        /* An invalid sequence, or a truncated multibyte character.
-+           We treat it as a singlebyte character.  */
-+        mbclen = 1;
-+      }
-+      mb_properties[i] = mbclen;
-+      i += mbclen;
-+    }
-+
-+  return mb_properties;
-+}
-+#endif
-+
-+static void
-+Gcompile (char const *pattern, size_t size)
-+{
-+  const char *err;
-+  char const *sep;
-+  size_t total = size;
-+  char const *motif = pattern;
-+
-+  re_set_syntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE);
-+  dfasyntax (RE_SYNTAX_GREP | RE_HAT_LISTS_NOT_NEWLINE, match_icase, eolbyte);
-+
-+  /* For GNU regex compiler we have to pass the patterns separately to detect
-+     errors like "[\nallo\n]\n".  The patterns here are "[", "allo" and "]"
-+     GNU regex should have raise a syntax error.  The same for backref, where
-+     the backref should have been local to each pattern.  */
-+  do
-+    {
-+      size_t len;
-+      sep = memchr (motif, '\n', total);
-+      if (sep)
-+      {
-+        len = sep - motif;
-+        sep++;
-+        total -= (len + 1);
-+      }
-+      else
-+      {
-+        len = total;
-+        total = 0;
-+      }
-+
-+      patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns));
-+      if (patterns == NULL)
-+      error (2, errno, _("memory exhausted"));
-+
-+      patterns[pcount] = patterns0;
-+
-+      if ((err = re_compile_pattern (motif, len,
-+                                  &(patterns[pcount].regexbuf))) != 0)
-+      error (2, 0, err);
-+      pcount++;
-+
-+      motif = sep;
-+    } while (sep && total != 0);
-+
-+  /* In the match_words and match_lines cases, we use a different pattern
-+     for the DFA matcher that will quickly throw out cases that won't work.
-+     Then if DFA succeeds we do some hairy stuff using the regex matcher
-+     to decide whether the match should really count. */
-+  if (match_words || match_lines)
-+    {
-+      /* In the whole-word case, we use the pattern:
-+       \(^\|[^[:alnum:]_]\)\(userpattern\)\([^[:alnum:]_]|$\).
-+       In the whole-line case, we use the pattern:
-+       ^\(userpattern\)$.  */
-+
-+      static char const line_beg[] = "^\\(";
-+      static char const line_end[] = "\\)$";
-+      static char const word_beg[] = "\\(^\\|[^[:alnum:]_]\\)\\(";
-+      static char const word_end[] = "\\)\\([^[:alnum:]_]\\|$\\)";
-+      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      size_t i;
-+      strcpy (n, match_lines ? line_beg : word_beg);
-+      i = strlen (n);
-+      memcpy (n + i, pattern, size);
-+      i += size;
-+      strcpy (n + i, match_lines ? line_end : word_end);
-+      i += strlen (n + i);
-+      pattern = n;
-+      size = i;
-+    }
-+
-+  dfacomp (pattern, size, &dfa, 1);
-+  kwsmusts ();
-+}
-+
-+static void
-+Ecompile (char const *pattern, size_t size)
-+{
-+  const char *err;
-+  const char *sep;
-+  size_t total = size;
-+  char const *motif = pattern;
-+
-+  if (strcmp (matcher, "awk") == 0)
-+    {
-+      re_set_syntax (RE_SYNTAX_AWK);
-+      dfasyntax (RE_SYNTAX_AWK, match_icase, eolbyte);
-+    }
-+  else
-+    {
-+      re_set_syntax (RE_SYNTAX_POSIX_EGREP);
-+      dfasyntax (RE_SYNTAX_POSIX_EGREP, match_icase, eolbyte);
-+    }
-+
-+  /* For GNU regex compiler we have to pass the patterns separately to detect
-+     errors like "[\nallo\n]\n".  The patterns here are "[", "allo" and "]"
-+     GNU regex should have raise a syntax error.  The same for backref, where
-+     the backref should have been local to each pattern.  */
-+  do
-+    {
-+      size_t len;
-+      sep = memchr (motif, '\n', total);
-+      if (sep)
-+      {
-+        len = sep - motif;
-+        sep++;
-+        total -= (len + 1);
-+      }
-+      else
-+      {
-+        len = total;
-+        total = 0;
-+      }
-+
-+      patterns = realloc (patterns, (pcount + 1) * sizeof (*patterns));
-+      if (patterns == NULL)
-+      error (2, errno, _("memory exhausted"));
-+      patterns[pcount] = patterns0;
-+
-+      if ((err = re_compile_pattern (motif, len,
-+                                  &(patterns[pcount].regexbuf))) != 0)
-+      error (2, 0, err);
-+      pcount++;
-+
-+      motif = sep;
-+    } while (sep && total != 0);
-+
-+  /* In the match_words and match_lines cases, we use a different pattern
-+     for the DFA matcher that will quickly throw out cases that won't work.
-+     Then if DFA succeeds we do some hairy stuff using the regex matcher
-+     to decide whether the match should really count. */
-+  if (match_words || match_lines)
-+    {
-+      /* In the whole-word case, we use the pattern:
-+       (^|[^[:alnum:]_])(userpattern)([^[:alnum:]_]|$).
-+       In the whole-line case, we use the pattern:
-+       ^(userpattern)$.  */
-+
-+      static char const line_beg[] = "^(";
-+      static char const line_end[] = ")$";
-+      static char const word_beg[] = "(^|[^[:alnum:]_])(";
-+      static char const word_end[] = ")([^[:alnum:]_]|$)";
-+      char *n = malloc (sizeof word_beg - 1 + size + sizeof word_end);
-+      size_t i;
-+      strcpy (n, match_lines ? line_beg : word_beg);
-+      i = strlen(n);
-+      memcpy (n + i, pattern, size);
-+      i += size;
-+      strcpy (n + i, match_lines ? line_end : word_end);
-+      i += strlen (n + i);
-+      pattern = n;
-+      size = i;
-+    }
-+
-+  dfacomp (pattern, size, &dfa, 1);
-+  kwsmusts ();
-+}
-+
-+static size_t
-+EGexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+  register char const *buflim, *beg, *end;
-+  char eol = eolbyte;
-+  int backref, start, len;
-+  struct kwsmatch kwsm;
-+  size_t i;
-+#ifdef MBS_SUPPORT
-+  char *mb_properties = NULL;
-+#endif /* MBS_SUPPORT */
-+
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && kwset)
-+    mb_properties = check_multibyte_string(buf, size);
-+#endif /* MBS_SUPPORT */
-+
-+  buflim = buf + size;
-+
-+  for (beg = end = buf; end < buflim; beg = end)
-+    {
-+      if (!exact)
-+      {
-+        if (kwset)
-+          {
-+            /* Find a possible match using the KWset matcher. */
-+            size_t offset = kwsexec (kwset, beg, buflim - beg, &kwsm);
-+            if (offset == (size_t) -1)
-+              goto failure;
-+            beg += offset;
-+            /* Narrow down to the line containing the candidate, and
-+               run it through DFA. */
-+            end = memchr(beg, eol, buflim - beg);
-+            end++;
-+#ifdef MBS_SUPPORT
-+            if (MB_CUR_MAX > 1 && mb_properties[beg - buf] == 0)
-+              continue;
-+#endif
-+            while (beg > buf && beg[-1] != eol)
-+              --beg;
-+            if (kwsm.index < kwset_exact_matches)
-+              goto success_in_beg_and_end;
-+            if (dfaexec (&dfa, beg, end - beg, &backref) == (size_t) -1)
-+              continue;
-+          }
-+        else
-+          {
-+            /* No good fixed strings; start with DFA. */
-+            size_t offset = dfaexec (&dfa, beg, buflim - beg, &backref);
-+            if (offset == (size_t) -1)
-+              break;
-+            /* Narrow down to the line we've found. */
-+            beg += offset;
-+            end = memchr (beg, eol, buflim - beg);
-+            end++;
-+            while (beg > buf && beg[-1] != eol)
-+              --beg;
-+          }
-+        /* Successful, no backreferences encountered! */
-+        if (!backref)
-+          goto success_in_beg_and_end;
-+      }
-+      else
-+      end = beg + size;
-+
-+      /* If we've made it to this point, this means DFA has seen
-+       a probable match, and we need to run it through Regex. */
-+      for (i = 0; i < pcount; i++)
-+      {
-+        patterns[i].regexbuf.not_eol = 0;
-+        if (0 <= (start = re_search (&(patterns[i].regexbuf), beg,
-+                                     end - beg - 1, 0,
-+                                     end - beg - 1, &(patterns[i].regs))))
-+          {
-+            len = patterns[i].regs.end[0] - start;
-+            if (exact && !match_words)
-+              goto success_in_start_and_len;
-+            if ((!match_lines && !match_words)
-+                || (match_lines && len == end - beg - 1))
-+              goto success_in_beg_and_end;
-+            /* If -w, check if the match aligns with word boundaries.
-+               We do this iteratively because:
-+               (a) the line may contain more than one occurence of the
-+               pattern, and
-+               (b) Several alternatives in the pattern might be valid at a
-+               given point, and we may need to consider a shorter one to
-+               find a word boundary.  */
-+            if (match_words)
-+              while (start >= 0)
-+                {
-+                  if ((start == 0 || !WCHAR ((unsigned char) beg[start - 1]))
-+                      && (len == end - beg - 1
-+                          || !WCHAR ((unsigned char) beg[start + len])))
-+                    goto success_in_beg_and_end;
-+                  if (len > 0)
-+                    {
-+                      /* Try a shorter length anchored at the same place. */
-+                      --len;
-+                      patterns[i].regexbuf.not_eol = 1;
-+                      len = re_match (&(patterns[i].regexbuf), beg,
-+                                      start + len, start,
-+                                      &(patterns[i].regs));
-+                    }
-+                  if (len <= 0)
-+                    {
-+                      /* Try looking further on. */
-+                      if (start == end - beg - 1)
-+                        break;
-+                      ++start;
-+                      patterns[i].regexbuf.not_eol = 0;
-+                      start = re_search (&(patterns[i].regexbuf), beg,
-+                                         end - beg - 1,
-+                                         start, end - beg - 1 - start,
-+                                         &(patterns[i].regs));
-+                      len = patterns[i].regs.end[0] - start;
-+                    }
-+                }
-+          }
-+      } /* for Regex patterns.  */
-+    } /* for (beg = end ..) */
-+
-+ failure:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && mb_properties)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return (size_t) -1;
-+
-+ success_in_beg_and_end:
-+  len = end - beg;
-+  start = beg - buf;
-+  /* FALLTHROUGH */
-+
-+ success_in_start_and_len:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1 && mb_properties)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  *match_size = len;
-+  return start;
-+}
-+
-+static void
-+Fcompile (char const *pattern, size_t size)
-+{
-+  char const *beg, *lim, *err;
-+
-+  kwsinit ();
-+  beg = pattern;
-+  do
-+    {
-+      for (lim = beg; lim < pattern + size && *lim != '\n'; ++lim)
-+      ;
-+      if ((err = kwsincr (kwset, beg, lim - beg)) != 0)
-+      error (2, 0, err);
-+      if (lim < pattern + size)
-+      ++lim;
-+      beg = lim;
-+    }
-+  while (beg < pattern + size);
-+
-+  if ((err = kwsprep (kwset)) != 0)
-+    error (2, 0, err);
-+}
-+
-+static size_t
-+Fexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+  register char const *beg, *try, *end;
-+  register size_t len;
-+  char eol = eolbyte;
-+  struct kwsmatch kwsmatch;
-+#ifdef MBS_SUPPORT
-+  char *mb_properties;
-+  if (MB_CUR_MAX > 1)
-+    mb_properties = check_multibyte_string (buf, size);
-+#endif /* MBS_SUPPORT */
-+
-+  for (beg = buf; beg <= buf + size; ++beg)
-+    {
-+      size_t offset = kwsexec (kwset, beg, buf + size - beg, &kwsmatch);
-+      if (offset == (size_t) -1)
-+      goto failure;
-+#ifdef MBS_SUPPORT
-+      if (MB_CUR_MAX > 1 && mb_properties[offset+beg-buf] == 0)
-+      continue; /* It is a part of multibyte character.  */
-+#endif /* MBS_SUPPORT */
-+      beg += offset;
-+      len = kwsmatch.size[0];
-+      if (exact && !match_words)
-+      goto success_in_beg_and_len;
-+      if (match_lines)
-+      {
-+        if (beg > buf && beg[-1] != eol)
-+          continue;
-+        if (beg + len < buf + size && beg[len] != eol)
-+          continue;
-+        goto success;
-+      }
-+      else if (match_words)
-+      for (try = beg; len; )
-+        {
-+          if (try > buf && WCHAR((unsigned char) try[-1]))
-+            break;
-+          if (try + len < buf + size && WCHAR((unsigned char) try[len]))
-+            {
-+              offset = kwsexec (kwset, beg, --len, &kwsmatch);
-+              if (offset == (size_t) -1)
-+                {
-+#ifdef MBS_SUPPORT
-+                  if (MB_CUR_MAX > 1)
-+                    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+                  return offset;
-+                }
-+              try = beg + offset;
-+              len = kwsmatch.size[0];
-+            }
-+          else
-+            goto success;
-+        }
-+      else
-+      goto success;
-+    }
-+
-+ failure:
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return -1;
-+
-+ success:
-+  end = memchr (beg + len, eol, (buf + size) - (beg + len));
-+  end++;
-+  while (buf < beg && beg[-1] != eol)
-+    --beg;
-+  len = end - beg;
-+  /* FALLTHROUGH */
-+
-+ success_in_beg_and_len:
-+  *match_size = len;
-+#ifdef MBS_SUPPORT
-+  if (MB_CUR_MAX > 1)
-+    free (mb_properties);
-+#endif /* MBS_SUPPORT */
-+  return beg - buf;
-+}
-+
-+#if HAVE_LIBPCRE
-+/* Compiled internal form of a Perl regular expression.  */
-+static pcre *cre;
-+
-+/* Additional information about the pattern.  */
-+static pcre_extra *extra;
-+#endif
-+
-+static void
-+Pcompile (char const *pattern, size_t size)
-+{
-+#if !HAVE_LIBPCRE
-+  error (2, 0, _("The -P option is not supported"));
-+#else
-+  int e;
-+  char const *ep;
-+  char *re = xmalloc (4 * size + 7);
-+  int flags = PCRE_MULTILINE | (match_icase ? PCRE_CASELESS : 0);
-+  char const *patlim = pattern + size;
-+  char *n = re;
-+  char const *p;
-+  char const *pnul;
-+
-+  /* FIXME: Remove this restriction.  */
-+  if (eolbyte != '\n')
-+    error (2, 0, _("The -P and -z options cannot be combined"));
-+
-+  *n = '\0';
-+  if (match_lines)
-+    strcpy (n, "^(");
-+  if (match_words)
-+    strcpy (n, "\\b(");
-+  n += strlen (n);
-+
-+  /* The PCRE interface doesn't allow NUL bytes in the pattern, so
-+     replace each NUL byte in the pattern with the four characters
-+     "\000", removing a preceding backslash if there are an odd
-+     number of backslashes before the NUL.
-+
-+     FIXME: This method does not work with some multibyte character
-+     encodings, notably Shift-JIS, where a multibyte character can end
-+     in a backslash byte.  */
-+  for (p = pattern; (pnul = memchr (p, '\0', patlim - p)); p = pnul + 1)
-+    {
-+      memcpy (n, p, pnul - p);
-+      n += pnul - p;
-+      for (p = pnul; pattern < p && p[-1] == '\\'; p--)
-+      continue;
-+      n -= (pnul - p) & 1;
-+      strcpy (n, "\\000");
-+      n += 4;
-+    }
-+
-+  memcpy (n, p, patlim - p);
-+  n += patlim - p;
-+  *n = '\0';
-+  if (match_words)
-+    strcpy (n, ")\\b");
-+  if (match_lines)
-+    strcpy (n, ")$");
-+
-+  cre = pcre_compile (re, flags, &ep, &e, pcre_maketables ());
-+  if (!cre)
-+    error (2, 0, ep);
-+
-+  extra = pcre_study (cre, 0, &ep);
-+  if (ep)
-+    error (2, 0, ep);
-+
-+  free (re);
-+#endif
-+}
-+
-+static size_t
-+Pexecute (char const *buf, size_t size, size_t *match_size, int exact)
-+{
-+#if !HAVE_LIBPCRE
-+  abort ();
-+  return -1;
-+#else
-+  /* This array must have at least two elements; everything after that
-+     is just for performance improvement in pcre_exec.  */
-+  int sub[300];
-+
-+  int e = pcre_exec (cre, extra, buf, size, 0, 0,
-+                   sub, sizeof sub / sizeof *sub);
-+
-+  if (e <= 0)
-+    {
-+      switch (e)
-+      {
-+      case PCRE_ERROR_NOMATCH:
-+        return -1;
-+
-+      case PCRE_ERROR_NOMEMORY:
-+        error (2, 0, _("Memory exhausted"));
-+
-+      default:
-+        abort ();
-+      }
-+    }
-+  else
-+    {
-+      /* Narrow down to the line we've found.  */
-+      char const *beg = buf + sub[0];
-+      char const *end = buf + sub[1];
-+      char const *buflim = buf + size;
-+      char eol = eolbyte;
-+      if (!exact)
-+      {
-+        end = memchr (end, eol, buflim - end);
-+        end++;
-+        while (buf < beg && beg[-1] != eol)
-+          --beg;
-+      }
-+
-+      *match_size = end - beg;
-+      return beg - buf;
-+    }
-+#endif
-+}
-+
-+struct matcher const matchers[] = {
-+  { "default", Gcompile, EGexecute },
-+  { "grep", Gcompile, EGexecute },
-+  { "egrep", Ecompile, EGexecute },
-+  { "awk", Ecompile, EGexecute },
-+  { "fgrep", Fcompile, Fexecute },
-+  { "perl", Pcompile, Pexecute },
-+  { "", 0, 0 },
-+};
-diff -urN grep-2.5.1a.orig/tests/fmbtest.sh grep-2.5.1a/tests/fmbtest.sh
---- grep-2.5.1a.orig/tests/fmbtest.sh  1970-01-01 05:00:00.000000000 +0500
-+++ grep-2.5.1a/tests/fmbtest.sh       2005-10-23 09:51:12.000000000 +0600
-@@ -0,0 +1,111 @@
-+#!/bin/sh
-+
-+: ${srcdir=.}
-+
-+# If cs_CZ.UTF-8 locale doesn't work, skip this test silently
-+LC_ALL=cs_CZ.UTF-8 locale -k LC_CTYPE 2>/dev/null | ${GREP} -q charmap.*UTF-8 \
-+  || exit 77
-+
-+failures=0
-+
-+cat > csinput <<EOF
-+01 Žluťoučká číše
-+ČíŠE 02
-+03 Z číší Čiší cosi
-+04 Čí
-+Še 05
-+06 ČČČČČČČíšČÍŠčíš
-+07 ČČČ ČČČČíšČÍŠčíšEEEE
-+čAs 08
-+09Čapka
-+10ČaSy se měnÍ
-+ČÍšE11
-+Čas12
-+𝇕ČÍšE𝇓13
-+ŽČÍšE𝇓14
-+𝇕ČÍšEŽ15
-+ŽČÍšEŽ16
-+ČÍšE𝇓17
-+ČÍšEŽ18
-+19𝇕ČÍše
-+20ŽČÍše
-+EOF
-+cat > cspatfile <<EOF
-+ČÍšE
-+Čas
-+EOF
-+
-+for mode in F G E; do
-+
-+test1="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode} -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test1" != "11 12 13 14 15 16 17 18"; then
-+  echo "Test #1 ${mode} failed: $test1"
-+  failures=1
-+fi
-+
-+test2="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test2" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #2 ${mode} failed: $test2"
-+  failures=1
-+fi
-+
-+test3="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'ČÍšE' -e 'Čas' csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test3" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #3 ${mode} failed: $test3"
-+  failures=1
-+fi
-+
-+test4="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}iw -f cspatfile csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test4" != "01 02 08 13 17 19"; then
-+  echo "Test #4 ${mode} failed: $test4"
-+  failures=1
-+fi
-+
-+done
-+
-+# Test that -F --color=always prefers longer matches.
-+test5="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -Fi -e 'čiš' -e 'čiší'`"
-+if echo "$test5" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; then
-+  :
-+else
-+  echo "Test #5 F failed: $test5"
-+  failures=1
-+fi
-+
-+for mode in G E; do
-+
-+# Test that -{G,E} --color=always prefers earlier pattern matches.
-+test6="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'čiš' -e 'čiší'`"
-+if echo "$test6" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČiš.*\[.*m\(.\[K\)\?Í\.\.\.'; then
-+  :
-+else
-+  echo "Test #6 ${mode} failed: $test6"
-+  failures=1
-+fi
-+
-+# Test that -{G,E} --color=always prefers earlier pattern matches.
-+test7="`echo 'Cosi tu ČišÍ...' \
-+      | LC_ALL=cs_CZ.UTF-8 ${GREP} --color=always -${mode}i -e 'čiší' -e 'čiš'`"
-+if echo "$test7" | LC_ALL=C ${GREP} -q 'Cosi tu .*\[.*mČišÍ.*\[.*m\(.\[K\)\?\.\.\.'; then
-+  :
-+else
-+  echo "Test #7 ${mode} failed: $test7"
-+  failures=1
-+fi
-+
-+test8="$(echo `LC_ALL=cs_CZ.UTF-8 ${GREP} -${mode}i -e 'Č.šE' -e 'Č[a-f]s' csinput \
-+             | LC_ALL=C sed 's/^.*\([0-9][0-9]\).*$/\1/'`)"
-+if test "$test8" != "01 02 07 08 10 11 12 13 14 15 16 17 18 19 20"; then
-+  echo "Test #8 ${mode} failed: $test8"
-+  failures=1
-+fi
-+
-+done
-+
-+exit $failures
-diff -urN grep-2.5.1a.orig/tests/Makefile.am grep-2.5.1a/tests/Makefile.am
---- grep-2.5.1a.orig/tests/Makefile.am 2001-03-07 09:11:27.000000000 +0500
-+++ grep-2.5.1a/tests/Makefile.am      2005-10-23 09:51:12.000000000 +0600
-@@ -3,7 +3,8 @@
- AWK=@AWK@
- TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \
--        status.sh empty.sh options.sh backref.sh file.sh
-+        status.sh empty.sh options.sh backref.sh file.sh \
-+        fmbtest.sh
- EXTRA_DIST = $(TESTS) \
-              khadafy.lines khadafy.regexp \
-              spencer1.awk spencer1.tests \
-diff -urN grep-2.5.1a.orig/tests/Makefile.in grep-2.5.1a/tests/Makefile.in
---- grep-2.5.1a.orig/tests/Makefile.in 2002-03-26 21:09:36.000000000 +0500
-+++ grep-2.5.1a/tests/Makefile.in      2005-10-23 09:51:13.000000000 +0600
-@@ -97,7 +97,8 @@
- AWK = @AWK@
- TESTS = warning.sh khadafy.sh spencer1.sh bre.sh ere.sh \
--        status.sh empty.sh options.sh backref.sh file.sh
-+        status.sh empty.sh options.sh backref.sh file.sh \
-+      fmbtest.sh
- EXTRA_DIST = $(TESTS) \
-              khadafy.lines khadafy.regexp \
diff --git a/src/patches/grub-0.90-append.patch b/src/patches/grub-0.90-append.patch
deleted file mode 100644 (file)
index 88f79d0..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
---- grub-0.90/stage2/stage2.c.append   Thu Dec 20 08:20:48 2001
-+++ grub-0.90/stage2/stage2.c  Thu Dec 20 17:01:20 2001
-@@ -500,7 +500,8 @@
-         if (config_entries)
-           printf ("\
-       Press enter to boot the selected OS, \'e\' to edit the\n\
--      commands before booting, or \'c\' for a command-line.");
-+      commands before booting, \'a\' to modify the kernel arguments\n\
-+      before booting, or \'c\' for a command-line.");
-         else
-           printf ("\
-       Press \'b\' to boot, \'e\' to edit the selected command in the\n\
-@@ -787,6 +788,98 @@
-                 enter_cmdline (heap, 0);
-                 goto restart;
-               }
-+            if (config_entries && c == 'a')
-+              {
-+                int new_num_entries = 0, i = 0, j;
-+                int needs_padding, amount;
-+                char *new_heap;
-+                char * entries;
-+                char * entry_copy;
-+                char * append_line;
-+                char * start;
-+
-+                entry_copy = new_heap = heap;
-+                cur_entry = get_entry (config_entries, first_entry + entryno,
-+                                       1);
-+                
-+                do
-+                  {
-+                    while ((*(new_heap++) = cur_entry[i++]) != 0);
-+                    new_num_entries++;
-+                  }
-+                while (config_entries && cur_entry[i]);
-+
-+                /* this only needs to be done if config_entries is non-NULL,
-+                   but it doesn't hurt to do it always */
-+                *(new_heap++) = 0;
-+
-+                new_heap = heap + NEW_HEAPSIZE + 1;
-+
-+                entries = entry_copy;
-+                while (*entries) 
-+                  {
-+                    if ((strstr(entries, "kernel") == entries) &&
-+                        isspace(entries[6])) 
-+                        break;
-+
-+                    while (*entries) entries++;
-+                    entries++;
-+                  }
-+
-+                if (!*entries)
-+                    goto restart;
-+
-+                start = entries + 6;
-+
-+                /* skip the white space */
-+                while (*start && isspace(*start)) start++;
-+                /* skip the kernel name */
-+                while (*start && !isspace(*start)) start++;
-+
-+                /* skip the white space */
-+                needs_padding = (!*start || !isspace(*start));
-+                while (*start && isspace(*start)) start++;
-+
-+                append_line = new_heap;
-+                grub_strcpy(append_line, start);
-+
-+                cls();
-+                print_cmdline_message (CMDLINE_EDIT_MODE);
-+
-+                if (get_cmdline(PACKAGE " append> ", 
-+                                  append_line, NEW_HEAPSIZE + 1, 
-+                                  0, 1))
-+                    goto restart;
-+
-+                /* have new args; append_line points to the
-+                   new args and start points to the old
-+                   args */
-+
-+                i = grub_strlen(start);
-+                j = grub_strlen(append_line);
-+
-+                if (i > (j + needs_padding))
-+                    amount = i;
-+                else
-+                    amount = j + needs_padding;
-+
-+                /* align rest of commands properly */
-+                memmove (start + j + needs_padding, start + i,
-+                     ((int) append_line) - ((int) start) - (amount));
-+
-+                if (needs_padding)
-+                    *start = ' ';
-+
-+                /* copy command to correct area */
-+                memmove (start + needs_padding, append_line, j);
-+
-+                /* set up this entry to boot */
-+                config_entries = NULL;
-+                cur_entry = entry_copy;
-+                heap = new_heap;
-+
-+                break;
-+              }
- #ifdef GRUB_UTIL
-             if (c == 'q')
-               {
diff --git a/src/patches/grub-0.90-symlinkmenulst.patch b/src/patches/grub-0.90-symlinkmenulst.patch
deleted file mode 100644 (file)
index 553d15a..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-Only in grub: ChangeLog~
-diff -ur grub-0.90/util/grub-install.in grub/util/grub-install.in
---- grub-0.90/util/grub-install.in     Wed Sep  5 15:50:06 2001
-+++ grub/util/grub-install.in  Wed Sep  5 15:50:24 2001
-@@ -320,6 +320,10 @@
-     exit 1
- fi
-+if ! test -e ${grubdir}/grub.conf ; then
-+    test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
-+fi
-+
- # Create a safe temporary file.
- test -x /bin/mktemp && log_file=`/bin/mktemp /tmp/grub-install.log.XXXXXX`
-Only in grub/util: grub-install.in.orig
diff --git a/src/patches/grub-0.91-splashimagehelp.patch b/src/patches/grub-0.91-splashimagehelp.patch
deleted file mode 100644 (file)
index cc78073..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-diff -ur grub-0.91/docs/grub.texi grub/docs/grub.texi
---- grub-0.91/docs/grub.texi   Mon Jan 21 22:57:46 2002
-+++ grub/docs/grub.texi        Mon Jan 21 22:57:51 2002
-@@ -1891,6 +1891,7 @@
- * rarp::                        Initialize a network device via RARP
- * serial::                      Set up a serial device
- * setkey::                      Configure the key map
-+* splashimage::                 Use a splash image
- * terminal::                    Choose a terminal
- * tftpserver::                  Specify a TFTP server
- * unhide::                      Unhide a partition
-@@ -2260,6 +2261,16 @@
- @end deffn
-+@node splashimage
-+@subsection splashimage
-+
-+@deffn Command splashimage file
-+Select an image to use as the background image.  This should be
-+specified using normal GRUB device naming syntax.  The format of the
-+file is a gzipped xpm which is 640x480 with a 14 color palette.
-+@end deffn
-+
-+
- @node terminal
- @subsection terminal
diff --git a/src/patches/grub-0.93-configfile.patch b/src/patches/grub-0.93-configfile.patch
deleted file mode 100644 (file)
index 9cb1182..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
---- grub-0.93/stage2/asm.S.config      2002-12-02 18:18:56.000000000 -0500
-+++ grub-0.93/stage2/asm.S     2002-12-28 22:01:24.000000000 -0500
-@@ -97,7 +97,7 @@
-       .string VERSION
- VARIABLE(config_file)
- #ifndef STAGE1_5
--      .string "/boot/grub/menu.lst"
-+      .string "/boot/grub/grub.conf"
- #else   /* STAGE1_5 */
-       .long   0xffffffff
-       .string "/boot/grub/stage2"
---- grub-0.93/stage2/builtins.c.config 2002-12-03 23:41:57.000000000 -0500
-+++ grub-0.93/stage2/builtins.c        2002-12-28 22:01:24.000000000 -0500
-@@ -3838,7 +3838,7 @@
-   /* The prefix was determined.  */
-   grub_sprintf (stage2, "%s%s", prefix, "/stage2");
--  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
-+  grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
-   *real_config_filename = 0;
-   /* Check if stage2 exists.  */
---- grub-0.93/grub/asmstub.c.config    2002-12-02 18:20:45.000000000 -0500
-+++ grub-0.93/grub/asmstub.c   2002-12-28 22:01:24.000000000 -0500
-@@ -71,7 +71,7 @@
- unsigned long boot_drive = 0;
- int saved_entryno = 0;
- char version_string[] = VERSION;
--char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
-+char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
- unsigned long linux_text_len = 0;
- char *linux_data_tmp_addr = 0;
- char *linux_data_real_addr = 0;
---- grub-0.93/docs/grub.8.config       2002-12-07 22:17:59.000000000 -0500
-+++ grub-0.93/docs/grub.8      2002-12-28 22:01:24.000000000 -0500
-@@ -15,7 +15,7 @@
- specify stage2 boot_drive [default=0x0]
- .TP
- \fB\-\-config\-file\fR=\fIFILE\fR
--specify stage2 config_file [default=/boot/grub/menu.lst]
-+specify stage2 config_file [default=/boot/grub/grub.conf]
- .TP
- \fB\-\-device\-map\fR=\fIFILE\fR
- use the device map file FILE
---- grub-0.93/docs/grub.texi.config    2002-12-02 17:35:28.000000000 -0500
-+++ grub-0.93/docs/grub.texi   2002-12-28 22:01:24.000000000 -0500
-@@ -989,7 +989,7 @@
- keys) that will do everything to boot an OS.
- To enable the menu, you need a configuration file,
--@file{menu.lst} under the boot directory. We'll analyze an example
-+@file{grub.conf} under the boot directory. We'll analyze an example
- file.
- The file first contains some general settings, the menu interface
-@@ -1596,8 +1596,8 @@
- An absolute file name resembles a Unix absolute file name, using
- @samp{/} for the directory separator (not @samp{\} as in DOS). One
--example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
--@file{/boot/grub/menu.lst} in the first partition of the first hard
-+example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
-+@file{/boot/grub/grub.conf} in the first partition of the first hard
- disk. If you omit the device name in an absolute file name, GRUB uses
- GRUB's @dfn{root device} implicitly. So if you set the root device to,
- say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
-@@ -3249,7 +3249,7 @@
- @item --config-file=@var{file}
- Read the configuration file @var{file} instead of
--@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
-+@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
- syntax. See @ref{Filesystem}, for more information.
- @item --boot-drive=@var{drive}
diff --git a/src/patches/grub-0.93-endedit.patch b/src/patches/grub-0.93-endedit.patch
deleted file mode 100644 (file)
index eb0463c..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-Index: stage2/cmdline.c
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/cmdline.c,v
-retrieving revision 1.27
-diff -u -r1.27 cmdline.c
---- stage2/cmdline.c   3 Dec 2002 00:02:53 -0000       1.27
-+++ stage2/cmdline.c   6 Jan 2003 05:33:33 -0000
-@@ -48,12 +48,17 @@
- /* Print a helpful message for the command-line interface.  */
- void
--print_cmdline_message (int forever)
-+print_cmdline_message (int type)
- {
-   printf (" [ Minimal BASH-like line editing is supported.  For the first word, TAB\n"
-         "   lists possible command completions.  Anywhere else TAB lists the possible\n"
--        "   completions of a device/filename.%s ]\n",
--        (forever ? "" : "  ESC at any time exits."));
-+        "   completions of a device/filename.");
-+  if (type == CMDLINE_NORMAL_MODE)
-+    printf("  ESC at any time exits.");
-+  if (type == CMDLINE_EDIT_MODE)
-+    printf("  ESC at any time cancels.  ENTER \n"
-+           "   at any time accepts your changes.");
-+  printf("]\n");
- }
- /* Find the builtin whose command name is COMMAND and return the
-@@ -128,7 +133,7 @@
-   print_network_configuration ();
-   grub_putchar ('\n');
- #endif
--  print_cmdline_message (forever);
-+  print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
-   
-   while (1)
-     {
-Index: stage2/shared.h
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/shared.h,v
-retrieving revision 1.90
-diff -u -r1.90 shared.h
---- stage2/shared.h    3 Dec 2002 00:02:53 -0000       1.90
-+++ stage2/shared.h    6 Jan 2003 05:33:33 -0000
-@@ -843,9 +843,15 @@
- void init_config (void);
- char *skip_to (int after_equal, char *cmdline);
- struct builtin *find_command (char *command);
--void print_cmdline_message (int forever);
- void enter_cmdline (char *heap, int forever);
- int run_script (char *script, char *heap);
-+
-+/* the flags for the cmdline message */
-+#define CMDLINE_FOREVER_MODE 0x0
-+#define CMDLINE_NORMAL_MODE 0x1
-+#define CMDLINE_EDIT_MODE 0x2
-+
-+void print_cmdline_message (int type);
- #endif
- /* C library replacement functions with identical semantics. */
-Index: stage2/stage2.c
-===================================================================
-RCS file: /cvsroot/grub/grub/stage2/stage2.c,v
-retrieving revision 1.42
-diff -u -r1.42 stage2.c
---- stage2/stage2.c    4 Dec 2002 00:55:45 -0000       1.42
-+++ stage2/stage2.c    6 Jan 2003 05:33:33 -0000
-@@ -655,7 +655,7 @@
-                 else
-                   {
-                     cls ();
--                    print_cmdline_message (0);
-+                    print_cmdline_message (CMDLINE_EDIT_MODE);
-                     new_heap = heap + NEW_HEAPSIZE + 1;
diff --git a/src/patches/grub-0.93-graphics-bootterm.patch b/src/patches/grub-0.93-graphics-bootterm.patch
deleted file mode 100644 (file)
index 1e2be9a..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- grub-0.93/stage2/builtins.c.bootterm       2002-12-29 02:01:50.000000000 -0500
-+++ grub-0.93/stage2/builtins.c        2002-12-29 02:01:07.000000000 -0500
-@@ -233,12 +233,22 @@
- static int
- boot_func (char *arg, int flags)
- {
-+  struct term_entry *prev_term = current_term;
-   /* Clear the int15 handler if we can boot the kernel successfully.
-      This assumes that the boot code never fails only if KERNEL_TYPE is
-      not KERNEL_TYPE_NONE. Is this assumption is bad?  */
-   if (kernel_type != KERNEL_TYPE_NONE)
-     unset_int15_handler ();
-+  /* if our terminal needed initialization, we should shut it down
-+   * before booting the kernel, but we want to save what it was so
-+   * we can come back if needed */
-+  if (current_term->shutdown) 
-+    {
-+      (*current_term->shutdown)();
-+      current_term = term_table; /* assumption: console is first */
-+    }
-+
- #ifdef SUPPORT_NETBOOT
-   /* Shut down the networking.  */
-   cleanup_net ();
-@@ -302,6 +312,13 @@
-       return 1;
-     }
-+  /* if we get back here, we should go back to what our term was before */
-+  current_term = prev_term;
-+  if (current_term->startup)
-+      /* if our terminal fails to initialize, fall back to console since
-+       * it should always work */
-+      if ((*current_term->startup)() == 0)
-+          current_term = term_table; /* we know that console is first */
-   return 0;
- }
diff --git a/src/patches/grub-0.93-special-device-names.patch b/src/patches/grub-0.93-special-device-names.patch
deleted file mode 100644 (file)
index 894f3e8..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- grub-0.93/lib/device.c.raid        2002-05-20 05:53:46.000000000 -0400
-+++ grub-0.93/lib/device.c     2002-12-28 23:24:10.000000000 -0500
-@@ -689,7 +689,14 @@
-       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
-       strcpy (dev + strlen(dev) - 5, "/part");
-     }
--  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
-+
-+  sprintf (dev + strlen(dev), "%s%d", 
-+         /* Compaq smart and others */
-+         (strncmp(dev, "/dev/ida/", 9) == 0 ||
-+          strncmp(dev, "/dev/ataraid/", 13) == 0 ||
-+          strncmp(dev, "/dev/cciss/", 11) == 0 ||
-+          strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
-+         ((partition >> 16) & 0xFF) + 1);
-   
-   /* Open the partition.  */
-   fd = open (dev, O_RDWR);
diff --git a/src/patches/grub-0.94-i2o.patch b/src/patches/grub-0.94-i2o.patch
deleted file mode 100644 (file)
index 2af846c..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-Only in grub-0.94/docs: grub.info
-Only in grub-0.94/docs: multiboot.info
-diff -ur grub-0.94/lib/device.c grub-0.94.new/lib/device.c
---- grub-0.94/lib/device.c     2004-05-07 04:50:36.375238696 +0200
-+++ grub-0.94.new/lib/device.c 2004-05-07 04:48:57.611253104 +0200
-@@ -419,6 +419,12 @@
- {
-   sprintf (name, "/dev/rd/c%dd%d", controller, drive);
- }
-+
-+static void
-+get_i2o_disk_name (char *name, int unit)
-+{
-+  sprintf (name, "/dev/i2o/hd%c", unit + 'a');
-+}
- #endif
- /* Check if DEVICE can be read. If an error occurs, return zero,
-@@ -789,6 +795,26 @@
-         }
-       }
-   }
-+
-+  /* I2O disks.  */
-+  for (i = 0; i < 8; i++)
-+    {
-+      char name[16];
-+      
-+      get_i2o_disk_name (name, i);
-+      if (check_device (name))
-+      {
-+        (*map)[num_hd + 0x80] = strdup (name);
-+        assert ((*map)[num_hd + 0x80]);
-+        
-+        /* If the device map file is opened, write the map.  */
-+        if (fp)
-+          fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+        
-+        num_hd++;
-+      }
-+    }
-+  
- #endif /* __linux__ */
-   
-   /* OK, close the device map file if opened.  */
diff --git a/src/patches/grub-0.94-installcopyonly.patch b/src/patches/grub-0.94-installcopyonly.patch
deleted file mode 100644 (file)
index a2e38fb..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
---- grub-0.94/util/grub-install.in.copyonly    2004-02-02 16:33:29.172127985 -0500
-+++ grub-0.94/util/grub-install.in     2004-02-02 16:34:26.027454320 -0500
-@@ -40,6 +40,7 @@
- force_lba=
- recheck=no
- debug=no
-+justcopy=no
- # look for secure tempfile creation wrappers on this platform
- if test -x /bin/tempfile; then
-@@ -221,6 +222,17 @@
-     echo "$tmp_fname"
- }
-+copy_images() {
-+    # Copy the GRUB images to the GRUB directory.
-+    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+      rm -f $file || exit 1
-+    done
-+    for file in \
-+      ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
-+      cp -f $file ${grubdir} || exit 1
-+    done
-+}
-+
- # Check the arguments.
- for option in "$@"; do
-     case "$option" in
-@@ -240,6 +252,8 @@
-       force_lba="--force-lba" ;;
-     --recheck)
-       recheck=yes ;;
-+    --just-copy)
-+        justcopy=yes ;;
-     # This is an undocumented feature...
-     --debug)
-       debug=yes ;;
-@@ -258,12 +272,6 @@
-     esac
- done
--if test "x$install_device" = x; then
--    echo "install_device not specified." 1>&2
--    usage
--    exit 1
--fi
--
- # If the debugging feature is enabled, print commands.
- if test $debug = yes; then
-     set -x
-@@ -286,6 +294,18 @@
- grubdir=${bootdir}/grub
- device_map=${grubdir}/device.map
-+# if they just want the images copied, copy the images and then exit
-+if test $justcopy = yes; then
-+    copy_images
-+    exit 0
-+fi
-+
-+if test "x$install_device" = x; then
-+    echo "install_device not specified." 1>&2
-+    usage
-+    exit 1
-+fi
-+
- # Check if GRUB is installed.
- # This is necessary, because the user can specify "grub --read-only".
- set $grub_shell dummy
-@@ -317,14 +337,7 @@
- test -d "$bootdir" || mkdir "$bootdir" || exit 1
- test -d "$grubdir" || mkdir "$grubdir" || exit 1
--# Copy the GRUB images to the GRUB directory.
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    rm -f $file || exit 1
--done
--for file in \
--    ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
--    cp -f $file ${grubdir} || exit 1
--done
-+copy_images
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
diff --git a/src/patches/grub-0.95-graphics.patch b/src/patches/grub-0.95-graphics.patch
deleted file mode 100644 (file)
index 0c62b77..0000000
+++ /dev/null
@@ -1,1283 +0,0 @@
---- grub-0.95/stage2/asm.S.graphics    2004-06-18 17:35:51.932054040 -0400
-+++ grub-0.95/stage2/asm.S     2004-06-18 17:35:52.473971656 -0400
-@@ -2215,6 +2215,156 @@
-       pop     %ebx
-       pop     %ebp
-       ret
-+
-+/* graphics mode functions */
-+#ifdef SUPPORT_GRAPHICS
-+VARIABLE(cursorX)
-+.word 0
-+VARIABLE(cursorY)
-+.word 0
-+VARIABLE(cursorCount)
-+.word 0
-+VARIABLE(cursorBuf)
-+.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-+
-+      
-+/*
-+ * int set_videomode(mode)
-+ * BIOS call "INT 10H Function 0h" to set video mode
-+ *    Call with       %ah = 0x0
-+ *                    %al = video mode
-+ *      Returns old videomode.
-+ */
-+ENTRY(set_videomode)
-+      push    %ebp
-+      push    %ebx
-+      push    %ecx
-+
-+      movb    0x10(%esp), %cl
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      xorw    %bx, %bx
-+      movb    $0xf, %ah
-+      int     $0x10                   /* Get Current Video mode */
-+      movb    %al, %ch
-+      xorb    %ah, %ah
-+      movb    %cl, %al
-+        int   $0x10                   /* Set Video mode */
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32
-+
-+      xorb    %ah, %ah
-+      movb    %ch, %al
-+
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %ebp
-+      ret
-+
-+
-+/*
-+ * unsigned char * graphics_get_font()
-+ * BIOS call "INT 10H Function 11h" to set font
-+ *      Call with       %ah = 0x11
-+ */
-+ENTRY(graphics_get_font)
-+      push    %ebp
-+      push    %ebx
-+      push    %ecx
-+      push    %edx
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      movw    $0x1130, %ax
-+      movb    $6, %bh         /* font 8x16 */
-+      int     $0x10
-+      movw    %bp, %dx
-+      movw    %es, %cx
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32
-+
-+      xorl    %eax, %eax
-+      movw    %cx, %ax
-+      shll    $4, %eax
-+      movw    %dx, %ax
-+
-+      pop     %edx
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %ebp
-+      ret
-+      
-+
-+      
-+/*
-+ * graphics_set_palette(index, red, green, blue)
-+ * BIOS call "INT 10H Function 10h" to set individual dac register
-+ *    Call with       %ah = 0x10
-+ *                    %bx = register number
-+ *                    %ch = new value for green (0-63)
-+ *                    %cl = new value for blue (0-63)
-+ *                    %dh = new value for red (0-63)
-+ */
-+
-+ENTRY(graphics_set_palette)
-+      push    %ebp
-+      push    %eax
-+      push    %ebx
-+      push    %ecx
-+      push    %edx
-+
-+      movw    $0x3c8, %bx             /* address write mode register */
-+
-+      /* wait vertical retrace */
-+
-+      movw    $0x3da, %dx
-+l1b:  inb     %dx, %al        /* wait vertical active display */
-+      test    $8, %al
-+      jnz     l1b
-+
-+l2b:  inb     %dx, %al        /* wait vertical retrace */
-+      test    $8, %al
-+      jnz     l2b
-+
-+      mov     %bx, %dx
-+      movb    0x18(%esp), %al         /* index */
-+      outb    %al, %dx
-+      inc     %dx
-+
-+      movb    0x1c(%esp), %al         /* red */
-+      outb    %al, %dx
-+
-+      movb    0x20(%esp), %al         /* green */
-+      outb    %al, %dx
-+
-+      movb    0x24(%esp), %al         /* blue */
-+      outb    %al, %dx
-+
-+      movw    0x18(%esp), %bx
-+
-+      call    EXT_C(prot_to_real)
-+      .code16
-+
-+      movb    %bl, %bh
-+      movw    $0x1000, %ax
-+      int     $0x10
-+
-+      DATA32  call    EXT_C(real_to_prot)
-+      .code32 
-+
-+      pop     %edx
-+      pop     %ecx
-+      pop     %ebx
-+      pop     %eax
-+      pop     %ebp
-+      ret
-+
-+#endif /* SUPPORT_GRAPHICS */
-               
- /*
-  * getrtsecs()
---- grub-0.95/stage2/stage2.c.graphics 2004-06-18 17:35:52.314995824 -0400
-+++ grub-0.95/stage2/stage2.c  2004-06-18 17:35:52.494968464 -0400
-@@ -233,6 +233,7 @@
- {
-   int c, time1, time2 = -1, first_entry = 0;
-   char *cur_entry = 0;
-+  struct term_entry *prev_term = NULL;
-   /*
-    *  Main loop for menu UI.
-@@ -807,6 +808,15 @@
-   
-   cls ();
-   setcursor (1);
-+  /* if our terminal needed initialization, we should shut it down
-+   * before booting the kernel, but we want to save what it was so
-+   * we can come back if needed */
-+  prev_term = current_term;
-+  if (current_term->shutdown) 
-+    {
-+      (*current_term->shutdown)();
-+      current_term = term_table; /* assumption: console is first */
-+    }
-   
-   while (1)
-     {
-@@ -838,6 +848,13 @@
-       break;
-     }
-+  /* if we get back here, we should go back to what our term was before */
-+  current_term = prev_term;
-+  if (current_term->startup)
-+      /* if our terminal fails to initialize, fall back to console since
-+       * it should always work */
-+      if ((*current_term->startup)() == 0)
-+          current_term = term_table; /* we know that console is first */
-   show_menu = 1;
-   goto restart;
- }
-@@ -1082,6 +1099,10 @@
-         while (is_preset);
-       }
-+      /* go ahead and make sure the terminal is setup */
-+      if (current_term->startup)
-+        (*current_term->startup)();
-+
-       if (! num_entries)
-       {
-         /* If no acceptable config file, goto command-line, starting
---- grub-0.95/stage2/builtins.c.graphics       2004-06-18 17:35:52.370987312 -0400
-+++ grub-0.95/stage2/builtins.c        2004-06-18 17:35:52.482970288 -0400
-@@ -858,6 +858,138 @@
- };
- #endif /* SUPPORT_NETBOOT */
-+static int terminal_func (char *arg, int flags);
-+
-+#ifdef SUPPORT_GRAPHICS
-+\f
-+static int splashimage_func(char *arg, int flags) {
-+    char splashimage[64];
-+    int i;
-+    
-+    /* filename can only be 64 characters due to our buffer size */
-+    if (strlen(arg) > 63)
-+      return 1;
-+    if (flags == BUILTIN_CMDLINE) {
-+      if (!grub_open(arg))
-+          return 1;
-+      grub_close();
-+    }
-+
-+    strcpy(splashimage, arg);
-+
-+    /* get rid of TERM_NEED_INIT from the graphics terminal. */
-+    for (i = 0; term_table[i].name; i++) {
-+      if (grub_strcmp (term_table[i].name, "graphics") == 0) {
-+          term_table[i].flags &= ~TERM_NEED_INIT;
-+          break;
-+      }
-+    }
-+    
-+    graphics_set_splash(splashimage);
-+
-+    if (flags == BUILTIN_CMDLINE && graphics_inited) {
-+      graphics_end();
-+      graphics_init();
-+      graphics_cls();
-+    }
-+
-+    /* FIXME: should we be explicitly switching the terminal as a 
-+     * side effect here? */
-+    terminal_func("graphics", flags);
-+
-+    return 0;
-+}
-+
-+static struct builtin builtin_splashimage =
-+{
-+  "splashimage",
-+  splashimage_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "splashimage FILE",
-+  "Load FILE as the background image when in graphics mode."
-+};
-+
-+\f
-+/* foreground */
-+static int
-+foreground_func(char *arg, int flags)
-+{
-+    if (grub_strlen(arg) == 6) {
-+      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
-+      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
-+      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
-+
-+      foreground = (r << 16) | (g << 8) | b;
-+      if (graphics_inited)
-+          graphics_set_palette(15, r, g, b);
-+
-+      return (0);
-+    }
-+
-+    return (1);
-+}
-+
-+static struct builtin builtin_foreground =
-+{
-+  "foreground",
-+  foreground_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "foreground RRGGBB",
-+  "Sets the foreground color when in graphics mode."
-+  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
-+};
-+
-+\f
-+/* background */
-+static int
-+background_func(char *arg, int flags)
-+{
-+    if (grub_strlen(arg) == 6) {
-+      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
-+      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
-+      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
-+
-+      background = (r << 16) | (g << 8) | b;
-+      if (graphics_inited)
-+          graphics_set_palette(0, r, g, b);
-+      return (0);
-+    }
-+
-+    return (1);
-+}
-+
-+static struct builtin builtin_background =
-+{
-+  "background",
-+  background_func,
-+  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
-+  "background RRGGBB",
-+  "Sets the background color when in graphics mode."
-+  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
-+};
-+
-+#endif /* SUPPORT_GRAPHICS */
-+
-+\f
-+/* clear */
-+static int 
-+clear_func() 
-+{
-+  if (current_term->cls)
-+    current_term->cls();
-+
-+  return 0;
-+}
-+
-+static struct builtin builtin_clear =
-+{
-+  "clear",
-+  clear_func,
-+  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
-+  "clear",
-+  "Clear the screen"
-+};
-+
\f
- /* displayapm */
- static int
-@@ -4090,7 +4222,7 @@
- };
\f
--#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
-+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
- /* terminal */
- static int
- terminal_func (char *arg, int flags)
-@@ -4249,17 +4381,21 @@
-  end:
-   current_term = term_table + default_term;
-   current_term->flags = term_flags;
--  
-+
-   if (lines)
-     max_lines = lines;
-   else
--    /* 24 would be a good default value.  */
--    max_lines = 24;
--  
-+    max_lines = current_term->max_lines;
-+
-   /* If the interface is currently the command-line,
-      restart it to repaint the screen.  */
--  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
-+  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
-+    if (prev_term->shutdown)
-+      prev_term->shutdown();
-+    if (current_term->startup)
-+      current_term->startup();
-     grub_longjmp (restart_cmdline_env, 0);
-+  }
-   
-   return 0;
- }
-@@ -4269,7 +4405,7 @@
-   "terminal",
-   terminal_func,
-   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
--  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
-+  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
-   "Select a terminal. When multiple terminals are specified, wait until"
-   " you push any key to continue. If both console and serial are specified,"
-   " the terminal to which you input a key first will be selected. If no"
-@@ -4281,7 +4417,7 @@
-   " seconds. The option --lines specifies the maximum number of lines."
-   " The option --silent is used to suppress messages."
- };
--#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
-+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
\f
- #ifdef SUPPORT_SERIAL
-@@ -4809,6 +4945,9 @@
- /* The table of builtin commands. Sorted in dictionary order.  */
- struct builtin *builtin_table[] =
- {
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_background,
-+#endif
-   &builtin_blocklist,
-   &builtin_boot,
- #ifdef SUPPORT_NETBOOT
-@@ -4816,6 +4955,7 @@
- #endif /* SUPPORT_NETBOOT */
-   &builtin_cat,
-   &builtin_chainloader,
-+  &builtin_clear,
-   &builtin_cmp,
-   &builtin_color,
-   &builtin_configfile,
-@@ -4835,6 +4975,9 @@
-   &builtin_embed,
-   &builtin_fallback,
-   &builtin_find,
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_foreground,
-+#endif
-   &builtin_fstest,
-   &builtin_geometry,
-   &builtin_halt,
-@@ -4878,9 +5021,12 @@
- #endif /* SUPPORT_SERIAL */
-   &builtin_setkey,
-   &builtin_setup,
--#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
-+#ifdef SUPPORT_GRAPHICS
-+  &builtin_splashimage,
-+#endif /* SUPPORT_GRAPHICS */
-+#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
-   &builtin_terminal,
--#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
-+#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
- #ifdef SUPPORT_SERIAL
-   &builtin_terminfo,
- #endif /* SUPPORT_SERIAL */
---- /dev/null  2004-02-23 16:02:56.000000000 -0500
-+++ grub-0.95/stage2/graphics.c        2004-06-18 17:35:52.488969376 -0400
-@@ -0,0 +1,552 @@
-+/* graphics.c - graphics mode support for GRUB */
-+/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
-+ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
-+ */
-+/*
-+ *  GRUB  --  GRand Unified Bootloader
-+ *  Copyright (C) 2001,2002  Red Hat, Inc.
-+ *  Portions copyright (C) 2000  Conectiva, Inc.
-+ *
-+ *  This program is free software; you can redistribute it and/or modify
-+ *  it under the terms of the GNU General Public License as published by
-+ *  the Free Software Foundation; either version 2 of the License, or
-+ *  (at your option) any later version.
-+ *
-+ *  This program is distributed in the hope that it will be useful,
-+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *  GNU General Public License for more details.
-+ *
-+ *  You should have received a copy of the GNU General Public License
-+ *  along with this program; if not, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+
-+
-+#ifdef SUPPORT_GRAPHICS
-+
-+#include <term.h>
-+#include <shared.h>
-+#include <graphics.h>
-+
-+int saved_videomode;
-+unsigned char *font8x16;
-+
-+int graphics_inited = 0;
-+static char splashimage[64];
-+
-+#define VSHADOW VSHADOW1
-+unsigned char VSHADOW1[38400];
-+unsigned char VSHADOW2[38400];
-+unsigned char VSHADOW4[38400];
-+unsigned char VSHADOW8[38400];
-+
-+/* constants to define the viewable area */
-+const int x0 = 0;
-+const int x1 = 80;
-+const int y0 = 0;
-+const int y1 = 30;
-+
-+/* text buffer has to be kept around so that we can write things as we
-+ * scroll and the like */
-+unsigned short text[80 * 30];
-+
-+/* why do these have to be kept here? */
-+int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
-+
-+/* current position */
-+static int fontx = 0;
-+static int fonty = 0;
-+
-+/* global state so that we don't try to recursively scroll or cursor */
-+static int no_scroll = 0;
-+
-+/* color state */
-+static int graphics_standard_color = A_NORMAL;
-+static int graphics_normal_color = A_NORMAL;
-+static int graphics_highlight_color = A_REVERSE;
-+static int graphics_current_color = A_NORMAL;
-+static color_state graphics_color_state = COLOR_STATE_STANDARD;
-+
-+
-+/* graphics local functions */
-+static void graphics_setxy(int col, int row);
-+static void graphics_scroll();
-+
-+/* FIXME: where do these really belong? */
-+static inline void outb(unsigned short port, unsigned char val)
-+{
-+    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
-+}
-+
-+static void MapMask(int value) {
-+    outb(0x3c4, 2);
-+    outb(0x3c5, value);
-+}
-+
-+/* bit mask register */
-+static void BitMask(int value) {
-+    outb(0x3ce, 8);
-+    outb(0x3cf, value);
-+}
-+
-+
-+
-+/* Set the splash image */
-+void graphics_set_splash(char *splashfile) {
-+    grub_strcpy(splashimage, splashfile);
-+}
-+
-+/* Get the current splash image */
-+char *graphics_get_splash(void) {
-+    return splashimage;
-+}
-+
-+/* Initialize a vga16 graphics display with the palette based off of
-+ * the image in splashimage.  If the image doesn't exist, leave graphics
-+ * mode.  */
-+int graphics_init()
-+{
-+    if (!graphics_inited) {
-+        saved_videomode = set_videomode(0x12);
-+    }
-+
-+    if (!read_image(splashimage)) {
-+        set_videomode(saved_videomode);
-+        grub_printf("failed to read image\n");
-+        return 0;
-+    }
-+
-+    font8x16 = (unsigned char*)graphics_get_font();
-+
-+    graphics_inited = 1;
-+
-+    /* make sure that the highlight color is set correctly */
-+    graphics_highlight_color = ((graphics_normal_color >> 4) | 
-+                              ((graphics_normal_color & 0xf) << 4));
-+
-+    return 1;
-+}
-+
-+/* Leave graphics mode */
-+void graphics_end(void)
-+{
-+    if (graphics_inited) {
-+        set_videomode(saved_videomode);
-+        graphics_inited = 0;
-+    }
-+}
-+
-+/* Print ch on the screen.  Handle any needed scrolling or the like */
-+void graphics_putchar(int ch) {
-+    ch &= 0xff;
-+
-+    graphics_cursor(0);
-+
-+    if (ch == '\n') {
-+        if (fonty + 1 < y1)
-+            graphics_setxy(fontx, fonty + 1);
-+        else
-+            graphics_scroll();
-+        graphics_cursor(1);
-+        return;
-+    } else if (ch == '\r') {
-+        graphics_setxy(x0, fonty);
-+        graphics_cursor(1);
-+        return;
-+    }
-+
-+    graphics_cursor(0);
-+
-+    text[fonty * 80 + fontx] = ch;
-+    text[fonty * 80 + fontx] &= 0x00ff;
-+    if (graphics_current_color & 0xf0)
-+        text[fonty * 80 + fontx] |= 0x100;
-+
-+    graphics_cursor(0);
-+
-+    if ((fontx + 1) >= x1) {
-+        graphics_setxy(x0, fonty);
-+        if (fonty + 1 < y1)
-+            graphics_setxy(x0, fonty + 1);
-+        else
-+            graphics_scroll();
-+    } else {
-+        graphics_setxy(fontx + 1, fonty);
-+    }
-+
-+    graphics_cursor(1);
-+}
-+
-+/* get the current location of the cursor */
-+int graphics_getxy(void) {
-+    return (fontx << 8) | fonty;
-+}
-+
-+void graphics_gotoxy(int x, int y) {
-+    graphics_cursor(0);
-+
-+    graphics_setxy(x, y);
-+
-+    graphics_cursor(1);
-+}
-+
-+void graphics_cls(void) {
-+    int i;
-+    unsigned char *mem, *s1, *s2, *s4, *s8;
-+
-+    graphics_cursor(0);
-+    graphics_gotoxy(x0, y0);
-+
-+    mem = (unsigned char*)VIDEOMEM;
-+    s1 = (unsigned char*)VSHADOW1;
-+    s2 = (unsigned char*)VSHADOW2;
-+    s4 = (unsigned char*)VSHADOW4;
-+    s8 = (unsigned char*)VSHADOW8;
-+
-+    for (i = 0; i < 80 * 30; i++)
-+        text[i] = ' ';
-+    graphics_cursor(1);
-+
-+    BitMask(0xff);
-+
-+    /* plano 1 */
-+    MapMask(1);
-+    grub_memcpy(mem, s1, 38400);
-+
-+    /* plano 2 */
-+    MapMask(2);
-+    grub_memcpy(mem, s2, 38400);
-+
-+    /* plano 3 */
-+    MapMask(4);
-+    grub_memcpy(mem, s4, 38400);
-+
-+    /* plano 4 */
-+    MapMask(8);
-+    grub_memcpy(mem, s8, 38400);
-+
-+    MapMask(15);
-+ 
-+}
-+
-+void graphics_setcolorstate (color_state state) {
-+    switch (state) {
-+    case COLOR_STATE_STANDARD:
-+        graphics_current_color = graphics_standard_color;
-+        break;
-+    case COLOR_STATE_NORMAL:
-+        graphics_current_color = graphics_normal_color;
-+        break;
-+    case COLOR_STATE_HIGHLIGHT:
-+        graphics_current_color = graphics_highlight_color;
-+        break;
-+    default:
-+        graphics_current_color = graphics_standard_color;
-+        break;
-+    }
-+
-+    graphics_color_state = state;
-+}
-+
-+void graphics_setcolor (int normal_color, int highlight_color) {
-+    graphics_normal_color = normal_color;
-+    graphics_highlight_color = highlight_color;
-+
-+    graphics_setcolorstate (graphics_color_state);
-+}
-+
-+void graphics_setcursor (int on) {
-+    /* FIXME: we don't have a cursor in graphics */
-+    return;
-+}
-+
-+/* Read in the splashscreen image and set the palette up appropriately.
-+ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
-+ * 640x480. */
-+int read_image(char *s)
-+{
-+    char buf[32], pal[16];
-+    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
-+    unsigned i, len, idx, colors, x, y, width, height;
-+
-+    if (!grub_open(s))
-+        return 0;
-+
-+    /* read header */
-+    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
-+        grub_close();
-+        return 0;
-+    }
-+    
-+    /* parse info */
-+    while (grub_read(&c, 1)) {
-+        if (c == '"')
-+            break;
-+    }
-+
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    i = 0;
-+    width = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            width = width * 10 + c - '0';
-+        else
-+            break;
-+    }
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    height = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            height = height * 10 + c - '0';
-+        else
-+            break;
-+    }
-+    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
-+        ;
-+
-+    colors = c - '0';
-+    while (grub_read(&c, 1)) {
-+        if (c >= '0' && c <= '9')
-+            colors = colors * 10 + c - '0';
-+        else
-+            break;
-+    }
-+
-+    base = 0;
-+    while (grub_read(&c, 1) && c != '"')
-+        ;
-+
-+    /* palette */
-+    for (i = 0, idx = 1; i < colors; i++) {
-+        len = 0;
-+
-+        while (grub_read(&c, 1) && c != '"')
-+            ;
-+        grub_read(&c, 1);       /* char */
-+        base = c;
-+        grub_read(buf, 4);      /* \t c # */
-+
-+        while (grub_read(&c, 1) && c != '"') {
-+            if (len < sizeof(buf))
-+                buf[len++] = c;
-+        }
-+
-+        if (len == 6 && idx < 15) {
-+            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
-+            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
-+            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
-+
-+            pal[idx] = base;
-+            graphics_set_palette(idx, r, g, b);
-+            ++idx;
-+        }
-+    }
-+
-+    x = y = len = 0;
-+
-+    s1 = (unsigned char*)VSHADOW1;
-+    s2 = (unsigned char*)VSHADOW2;
-+    s4 = (unsigned char*)VSHADOW4;
-+    s8 = (unsigned char*)VSHADOW8;
-+
-+    for (i = 0; i < 38400; i++)
-+        s1[i] = s2[i] = s4[i] = s8[i] = 0;
-+
-+    /* parse xpm data */
-+    while (y < height) {
-+        while (1) {
-+            if (!grub_read(&c, 1)) {
-+                grub_close();
-+                return 0;
-+            }
-+            if (c == '"')
-+                break;
-+        }
-+
-+        while (grub_read(&c, 1) && c != '"') {
-+            for (i = 1; i < 15; i++)
-+                if (pal[i] == c) {
-+                    c = i;
-+                    break;
-+                }
-+
-+            mask = 0x80 >> (x & 7);
-+            if (c & 1)
-+                s1[len + (x >> 3)] |= mask;
-+            if (c & 2)
-+                s2[len + (x >> 3)] |= mask;
-+            if (c & 4)
-+                s4[len + (x >> 3)] |= mask;
-+            if (c & 8)
-+                s8[len + (x >> 3)] |= mask;
-+
-+            if (++x >= 640) {
-+                x = 0;
-+
-+                if (y < 480)
-+                    len += 80;
-+                ++y;
-+            }
-+        }
-+    }
-+
-+    grub_close();
-+
-+    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
-+                background & 63);
-+    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
-+                foreground & 63);
-+    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
-+                         border & 63);
-+
-+    return 1;
-+}
-+
-+
-+/* Convert a character which is a hex digit to the appropriate integer */
-+int hex(int v)
-+{
-+    if (v >= 'A' && v <= 'F')
-+        return (v - 'A' + 10);
-+    if (v >= 'a' && v <= 'f')
-+        return (v - 'a' + 10);
-+    return (v - '0');
-+}
-+
-+
-+/* move the graphics cursor location to col, row */
-+static void graphics_setxy(int col, int row) {
-+    if (col >= x0 && col < x1) {
-+        fontx = col;
-+        cursorX = col << 3;
-+    }
-+    if (row >= y0 && row < y1) {
-+        fonty = row;
-+        cursorY = row << 4;
-+    }
-+}
-+
-+/* scroll the screen */
-+static void graphics_scroll() {
-+    int i, j;
-+
-+    /* we don't want to scroll recursively... that would be bad */
-+    if (no_scroll)
-+        return;
-+    no_scroll = 1;
-+
-+    /* move everything up a line */
-+    for (j = y0 + 1; j < y1; j++) {
-+        graphics_gotoxy(x0, j - 1);
-+        for (i = x0; i < x1; i++) {
-+            graphics_putchar(text[j * 80 + i]);
-+        }
-+    }
-+
-+    /* last line should be blank */
-+    graphics_gotoxy(x0, y1 - 1);
-+    for (i = x0; i < x1; i++)
-+        graphics_putchar(' ');
-+    graphics_setxy(x0, y1 - 1);
-+
-+    no_scroll = 0;
-+}
-+
-+
-+void graphics_cursor(int set) {
-+    unsigned char *pat, *mem, *ptr, chr[16 << 2];
-+    int i, ch, invert, offset;
-+
-+    if (set && no_scroll)
-+        return;
-+
-+    offset = cursorY * 80 + fontx;
-+    ch = text[fonty * 80 + fontx] & 0xff;
-+    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
-+    pat = font8x16 + (ch << 4);
-+
-+    mem = (unsigned char*)VIDEOMEM + offset;
-+
-+    if (!set) {
-+        for (i = 0; i < 16; i++) {
-+            unsigned char mask = pat[i];
-+
-+            if (!invert) {
-+                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
-+                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
-+                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
-+                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
-+
-+                /* FIXME: if (shade) */
-+                if (1) {
-+                    if (ch == DISP_VERT || ch == DISP_LL ||
-+                        ch == DISP_UR || ch == DISP_LR) {
-+                        unsigned char pmask = ~(pat[i] >> 1);
-+
-+                        chr[i     ] &= pmask;
-+                        chr[16 + i] &= pmask;
-+                        chr[32 + i] &= pmask;
-+                        chr[48 + i] &= pmask;
-+                    }
-+                    if (i > 0 && ch != DISP_VERT) {
-+                        unsigned char pmask = ~(pat[i - 1] >> 1);
-+
-+                        chr[i     ] &= pmask;
-+                        chr[16 + i] &= pmask;
-+                        chr[32 + i] &= pmask;
-+                        chr[48 + i] &= pmask;
-+                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
-+                            pmask = ~pat[i - 1];
-+
-+                            chr[i     ] &= pmask;
-+                            chr[16 + i] &= pmask;
-+                            chr[32 + i] &= pmask;
-+                            chr[48 + i] &= pmask;
-+                        }
-+                    }
-+                }
-+                chr[i     ] |= mask;
-+                chr[16 + i] |= mask;
-+                chr[32 + i] |= mask;
-+                chr[48 + i] |= mask;
-+
-+                offset += 80;
-+            }
-+            else {
-+                chr[i     ] = mask;
-+                chr[16 + i] = mask;
-+                chr[32 + i] = mask;
-+                chr[48 + i] = mask;
-+            }
-+        }
-+    }
-+    else {
-+        MapMask(15);
-+        ptr = mem;
-+        for (i = 0; i < 16; i++, ptr += 80) {
-+            cursorBuf[i] = pat[i];
-+            *ptr = ~pat[i];
-+        }
-+        return;
-+    }
-+
-+    offset = 0;
-+    for (i = 1; i < 16; i <<= 1, offset += 16) {
-+        int j;
-+
-+        MapMask(i);
-+        ptr = mem;
-+        for (j = 0; j < 16; j++, ptr += 80)
-+            *ptr = chr[j + offset];
-+    }
-+
-+    MapMask(15);
-+}
-+
-+#endif /* SUPPORT_GRAPHICS */
---- grub-0.95/stage2/Makefile.am.graphics      2004-06-13 13:57:27.000000000 -0400
-+++ grub-0.95/stage2/Makefile.am       2004-06-18 17:36:58.289966104 -0400
-@@ -7,7 +7,7 @@
-         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
-       imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
-       nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
--      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
-+      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h
- EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
- # For <stage1.h>.
-@@ -19,7 +19,7 @@
-       disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
-       fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
-       fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
--      terminfo.c tparm.c
-+      terminfo.c tparm.c graphics.c
- libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
-       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-@@ -80,8 +80,14 @@
- HERCULES_FLAGS =
- endif
-+if GRAPHICS_SUPPORT
-+GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
-+else
-+GRAPHICS_FLAGS =
-+endif
-+
- STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
--      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
-+      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
- STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
- STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
-@@ -91,7 +97,8 @@
-       cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
-       fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
-       fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
--      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
-+      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c \
-+      graphics.c
- pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
- pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
---- grub-0.95/stage2/term.h.graphics   2003-07-09 07:45:53.000000000 -0400
-+++ grub-0.95/stage2/term.h    2004-06-18 17:35:52.496968160 -0400
-@@ -60,6 +60,8 @@
-   const char *name;
-   /* The feature flags defined above.  */
-   unsigned long flags;
-+  /* Default for maximum number of lines if not specified */
-+  unsigned short max_lines;
-   /* Put a character.  */
-   void (*putchar) (int c);
-   /* Check if any input character is available.  */
-@@ -79,6 +81,11 @@
-   void (*setcolor) (int normal_color, int highlight_color);
-   /* Turn on/off the cursor.  */
-   int (*setcursor) (int on);
-+
-+  /* function to start a terminal */
-+  int (*startup) (void);
-+  /* function to use to shutdown a terminal */
-+  void (*shutdown) (void);
- };
- /* This lists up available terminals.  */
-@@ -124,4 +131,23 @@
- int hercules_setcursor (int on);
- #endif
-+#ifdef SUPPORT_GRAPHICS
-+extern int foreground, background, border, graphics_inited;
-+
-+void graphics_set_splash(char *splashfile);
-+int set_videomode (int mode);
-+void graphics_putchar (int c);
-+int graphics_getxy(void);
-+void graphics_gotoxy(int x, int y);
-+void graphics_cls(void);
-+void graphics_setcolorstate (color_state state);
-+void graphics_setcolor (int normal_color, int highlight_color);
-+void graphics_setcursor (int on);
-+int graphics_init(void);
-+void graphics_end(void);
-+
-+int hex(int v);
-+void graphics_set_palette(int idx, int red, int green, int blue);
-+#endif /* SUPPORT_GRAPHICS */
-+
- #endif /* ! GRUB_TERM_HEADER */
---- /dev/null  2004-02-23 16:02:56.000000000 -0500
-+++ grub-0.95/stage2/graphics.h        2004-06-18 17:35:52.490969072 -0400
-@@ -0,0 +1,42 @@
-+/* graphics.h - graphics console interface */
-+/*
-+ *  GRUB  --  GRand Unified Bootloader
-+ *  Copyright (C) 2002  Free Software Foundation, Inc.
-+ *
-+ *  This program is free software; you can redistribute it and/or modify
-+ *  it under the terms of the GNU General Public License as published by
-+ *  the Free Software Foundation; either version 2 of the License, or
-+ *  (at your option) any later version.
-+ *
-+ *  This program is distributed in the hope that it will be useful,
-+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ *  GNU General Public License for more details.
-+ *
-+ *  You should have received a copy of the GNU General Public License
-+ *  along with this program; if not, write to the Free Software
-+ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#ifndef GRAPHICS_H
-+#define GRAPHICS_H
-+
-+/* magic constant */
-+#define VIDEOMEM 0xA0000
-+
-+/* function prototypes */
-+char *graphics_get_splash(void);
-+
-+int read_image(char *s);
-+void graphics_cursor(int set);
-+
-+/* function prototypes for asm functions */
-+void * graphics_get_font();
-+void graphics_set_palette(int idx, int red, int green, int blue);
-+void set_int1c_handler();
-+void unset_int1c_handler();
-+
-+extern short cursorX, cursorY;
-+extern char cursorBuf[16];
-+
-+#endif /* GRAPHICS_H */
---- grub-0.95/stage2/shared.h.graphics 2004-06-18 17:35:52.372987008 -0400
-+++ grub-0.95/stage2/shared.h  2004-06-18 17:35:52.492968768 -0400
-@@ -873,6 +873,7 @@
- int grub_tolower (int c);
- int grub_isspace (int c);
- int grub_strncat (char *s1, const char *s2, int n);
-+void grub_memcpy(void *dest, const void *src, int len);
- void *grub_memmove (void *to, const void *from, int len);
- void *grub_memset (void *start, int c, int len);
- int grub_strncat (char *s1, const char *s2, int n);
---- grub-0.95/stage2/char_io.c.graphics        2004-05-23 12:45:43.000000000 -0400
-+++ grub-0.95/stage2/char_io.c 2004-06-18 17:35:52.485969832 -0400
-@@ -35,6 +35,7 @@
-     {
-       "console",
-       0,
-+      24,
-       console_putchar,
-       console_checkkey,
-       console_getkey,
-@@ -43,13 +44,16 @@
-       console_cls,
-       console_setcolorstate,
-       console_setcolor,
--      console_setcursor
-+      console_setcursor,
-+      0, 
-+      0
-     },
- #ifdef SUPPORT_SERIAL
-     {
-       "serial",
-       /* A serial device must be initialized.  */
-       TERM_NEED_INIT,
-+      24,
-       serial_putchar,
-       serial_checkkey,
-       serial_getkey,
-@@ -58,6 +62,8 @@
-       serial_cls,
-       serial_setcolorstate,
-       0,
-+      0,
-+      0, 
-       0
-     },
- #endif /* SUPPORT_SERIAL */
-@@ -65,6 +71,7 @@
-     {
-       "hercules",
-       0,
-+      24,
-       hercules_putchar,
-       console_checkkey,
-       console_getkey,
-@@ -73,9 +80,28 @@
-       hercules_cls,
-       hercules_setcolorstate,
-       hercules_setcolor,
--      hercules_setcursor
-+      hercules_setcursor,
-+      0,
-+      0
-     },      
- #endif /* SUPPORT_HERCULES */
-+#ifdef SUPPORT_GRAPHICS
-+    { "graphics",
-+      TERM_NEED_INIT, /* flags */
-+      30, /* number of lines */
-+      graphics_putchar, /* putchar */
-+      console_checkkey, /* checkkey */
-+      console_getkey, /* getkey */
-+      graphics_getxy, /* getxy */
-+      graphics_gotoxy, /* gotoxy */
-+      graphics_cls, /* cls */
-+      graphics_setcolorstate, /* setcolorstate */
-+      graphics_setcolor, /* setcolor */
-+      graphics_setcursor, /* nocursor */
-+      graphics_init, /* initialize */
-+      graphics_end /* shutdown */
-+    },
-+#endif /* SUPPORT_GRAPHICS */
-     /* This must be the last entry.  */
-     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
-   };
-@@ -1046,13 +1072,15 @@
-                the following grub_printf call will print newlines.  */
-             count_lines = -1;
-+            grub_printf("\n");
-             if (current_term->setcolorstate)
-               current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
-             
--            grub_printf ("\n[Hit return to continue]");
-+            grub_printf ("[Hit return to continue]");
-             if (current_term->setcolorstate)
-               current_term->setcolorstate (COLOR_STATE_NORMAL);
-+              
-             
-             do
-               {
-@@ -1090,7 +1118,7 @@
- cls (void)
- {
-   /* If the terminal is dumb, there is no way to clean the terminal.  */
--  if (current_term->flags & TERM_DUMB)
-+  if (current_term->flags & TERM_DUMB) 
-     grub_putchar ('\n');
-   else
-     current_term->cls ();
-@@ -1214,6 +1242,16 @@
-   return ! errnum;
- }
-+void
-+grub_memcpy(void *dest, const void *src, int len)
-+{
-+  int i;
-+  register char *d = (char*)dest, *s = (char*)src;
-+
-+  for (i = 0; i < len; i++)
-+    d[i] = s[i];
-+}
-+
- void *
- grub_memmove (void *to, const void *from, int len)
- {
---- grub-0.95/configure.ac.graphics    2004-06-18 17:35:52.211011632 -0400
-+++ grub-0.95/configure.ac     2004-06-18 17:35:52.498967856 -0400
-@@ -595,6 +595,11 @@
-   [  --enable-diskless       enable diskless support])
- AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
-+dnl Graphical splashscreen support
-+AC_ARG_ENABLE(graphics,
-+  [  --disable-graphics      disable graphics terminal support])
-+AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
-+
- dnl Hercules terminal
- AC_ARG_ENABLE(hercules,
-   [  --disable-hercules      disable hercules terminal support])
diff --git a/src/patches/grub-0.95-hiddenmenu-tweak.patch b/src/patches/grub-0.95-hiddenmenu-tweak.patch
deleted file mode 100644 (file)
index 56fb083..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
---- grub-0.95/stage2/stage2.c.hidden   2004-09-30 16:39:38.028893664 -0400
-+++ grub-0.95/stage2/stage2.c  2004-09-30 16:42:07.981097464 -0400
-@@ -235,6 +235,8 @@
-   char *cur_entry = 0;
-   struct term_entry *prev_term = NULL;
-+  cls();
-+
-   /*
-    *  Main loop for menu UI.
-    */
-@@ -262,14 +264,16 @@
-       /* Get current time.  */
-       while ((time1 = getrtsecs ()) == 0xFF)
-       ;
-+      grub_printf("\rPress any key to enter the menu\n\n\n");
-       while (1)
-       {
-         /* Check if ESC is pressed.  */
--        if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
-+        if (checkkey () != -1)
-           {
-             grub_timeout = -1;
-             show_menu = 1;
-+            getkey ();
-             break;
-           }
-@@ -288,7 +292,8 @@
-             grub_timeout--;
-             
-             /* Print a message.  */
--            grub_printf ("\rPress `ESC' to enter the menu... %d   ",
-+            grub_printf ("\rBooting %s in %d seconds...",
-+                         get_entry(menu_entries, first_entry + entryno, 0),
-                          grub_timeout);
-           }
-       }
diff --git a/src/patches/grub-0.95-md-mbr.patch b/src/patches/grub-0.95-md-mbr.patch
deleted file mode 100644 (file)
index 1aaa3e9..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- grub-0.95/util/grub-install.in.md-mbr      2005-02-20 17:56:48.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2005-02-20 17:57:12.000000000 -0500
-@@ -444,7 +444,7 @@
- /dev/*)
-     install_device=`resolve_symlink "$install_device"`
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive`
-+      install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'`
-       if [ "x$install_drive" = "x" ]; then
-           exit 1
-       fi
diff --git a/src/patches/grub-0.95-md-rework.patch b/src/patches/grub-0.95-md-rework.patch
deleted file mode 100644 (file)
index cff1977..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
---- grub-0.95/util/grub-install.in.md2 2005-01-03 14:49:18.133866107 -0500
-+++ grub-0.95/util/grub-install.in     2005-01-03 16:35:44.923732271 -0500
-@@ -35,6 +35,7 @@
- rootdir=
- grub_prefix=/boot/grub
-+install_drives=
- install_device=
- no_floppy=
- force_lba=
-@@ -272,6 +273,30 @@
-     done
- }
-+
-+dump_boot_block () {
-+    sync
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+dump ${root_drive}${tmp} ${img_file}
-+quit
-+EOF
-+}
-+
-+
-+install_boot_block () {
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
-+
-+    # Now perform the installation.
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
-+root $1
-+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2
-+quit
-+EOF
-+}
-+
-+
- # Check the arguments.
- for option in "$@"; do
-     case "$option" in
-@@ -416,28 +441,32 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
--    # If we are running md on a Linux box, just use the first physical device
--    # at this point.
-     install_device=`resolve_symlink "$install_device"`
--    install_device=`find_real_devs $install_device | awk '{print $1}'`
--
--    install_drive=`convert "$install_device"`
--    # I don't know why, but some shells wouldn't die if exit is
--    # called in a function.
--    if test "x$install_drive" = x; then
-+    for install_drive in `find_real_devs $install_device` ; do
-+      install_drive=`convert $install_drive`
-+      if [ "x$install_drive" = "x" ]; then
-+          exit 1
-+      fi
-+      install_drives="${install_drives} ${install_drive}"
-+    done
-+    unset install_drive
-+      
-+    if test "x$install_drives" = x ; then
-       exit 1
-     fi ;;
- \([hf]d[0-9]*\))
--    install_drive="$install_device" ;;
-+    install_drives="$install_device" ;;
- [hf]d[0-9]*)
-     # The GRUB format with no parenthesis.
--    install_drive="($install_device)" ;;
-+    install_drives="($install_device)" ;;
- *)
-     echo "Format of install_device not recognized." 1>&2
-     usage
-     exit 1 ;;
- esac
-+unset install_device
-+
- # Get the root drive.
- root_device=`find_device ${rootdir}`
- bootdir_device=`find_device ${bootdir}`
-@@ -465,41 +494,39 @@
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
--for real_device in `find_real_devs $root_device`; do
--    # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$real_device"`
--    if [ "x$root_drive" = x ]; then
--      exit 1
--    fi
-+# There's not a real root device, so just pick the first
-+if is_raid1_device $root_device ; then
-+    root_device=`find_real_devs $root_device | awk '{print $1}'`
-+fi
--    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--      count=5
--      tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
--      while test $count -gt 0; do
--          sync
--          $grub_shell --batch $no_floppy --device-map=$device_map \
--              <<EOF >$log_file
--dump ${root_drive}${tmp} ${img_file}
--quit
--EOF
--          if grep "Error [0-9]*: " $log_file >/dev/null; then
--              :
--          elif cmp $file $img_file >/dev/null; then
--              break
--          fi
--          sleep 1
--          count=`expr $count - 1`    
--      done
--      if test $count -eq 0; then
--          echo "The file $file not read correctly." 1>&2
--          exit 1
--      fi
--    done
-+# Convert the root deviceto a GRUB drive.
-+root_drive=`convert "$root_device"`
-+if [ "x$root_drive" = x ]; then
-+    exit 1
-+fi
--    rm -f $img_file
--    rm -f $log_file
-+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+    count=5
-+    tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
-+    while test $count -gt 0; do
-+        dump_boot_block $root_drive $img_file
-+        if grep "Error [0-9]*: " $log_file >/dev/null; then
-+      :
-+        elif cmp $file $img_file >/dev/null; then
-+      break
-+        fi
-+        sleep 1
-+        count=`expr $count - 1`    
-+    done
-+    if test $count -eq 0; then
-+        echo "The file $file not read correctly." 1>&2
-+        exit 1
-+    fi
- done
-+rm -f $img_file
-+rm -f $log_file
-+
- if ! test -e ${grubdir}/grub.conf ; then
-     test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
- fi
-@@ -507,24 +534,13 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
--for real_device in `find_real_devs $root_device`; do
-+for install_drive in $install_drives; do 
-     # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$real_device"`
-+    root_drive=`convert "$root_device"`
-     if [ "x$root_drive" = x ]; then
-       exit 1
-     fi
--
--    # Before all invocations of the grub shell, call sync to make sure
--    # the raw device is in sync with any bufferring in filesystems.
--    sync
--
--    # Now perform the installation.
--    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
--root $root_drive
--setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive
--quit
--EOF
--
-+    install_boot_block $root_drive $install_drive
- done
- if grep "Error [0-9]*: " $log_file >/dev/null ; then
diff --git a/src/patches/grub-0.95-md.patch b/src/patches/grub-0.95-md.patch
deleted file mode 100644 (file)
index 9e4ff89..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
---- grub-0.95/util/grub-install.in.support_md  2004-12-17 17:50:45.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2004-12-19 19:19:20.509409160 -0500
-@@ -207,6 +207,43 @@
-       echo "$tmp_fname"
- }
-+# Usage: is_raid1_device devicename
-+# Returns 0 if devicename is a raid1 md device, 1 if it is not.
-+is_raid1_device () {
-+    case "$host_os" in
-+    linux*)
-+      level=`mdadm --query --detail $1 2>/dev/null | \
-+              awk '/Raid Level :/ {print $4}'` 
-+      if [ "$level" = "raid1" ]; then
-+          return 0
-+      fi
-+    ;;
-+    esac
-+    return 1
-+}
-+
-+# Usage: find_real_devs device
-+# Returns space separated list of devices for linux if device is 
-+# a raid1 device. In all other cases, the provided value is returned.
-+find_real_devs () {
-+    source_device=$1
-+    case "$host_os" in
-+    linux*)
-+      if is_raid1_device $source_device ; then
-+          list=""
-+          for device in `mdadm --query --detail "${source_device}" | \
-+                  awk '/\/dev\/[^(md)]/ {print $7}'` ; do
-+              list="$list $device"
-+          done
-+          echo $list
-+          return 0
-+      fi
-+    ;;
-+    esac
-+    echo $source_device
-+    return 0
-+}
-+
- # Usage: find_device file
- # Find block device on which the file resides.
- find_device () {
-@@ -219,7 +256,7 @@
-       exit 1
-     fi
--      tmp_fname=`resolve_symlink $tmp_fname`
-+    tmp_fname=`resolve_symlink $tmp_fname`
-     echo "$tmp_fname"
- }
-@@ -379,7 +416,11 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
-+    # If we are running md on a Linux box, just use the first physical device
-+    # at this point.
-     install_device=`resolve_symlink "$install_device"`
-+    install_device=`find_real_devs $install_device | awk '{print $1}'`
-+
-     install_drive=`convert "$install_device"`
-     # I don't know why, but some shells wouldn't die if exit is
-     # called in a function.
-@@ -408,14 +449,7 @@
-     grub_prefix="/grub"
- fi
--# Convert the root device to a GRUB drive.
--root_drive=`convert "$root_device"`
--if test "x$root_drive" = x; then
--    exit 1
--fi
--
--# Check if the root directory exists in the same device as the grub
--# directory.
-+# Check if the root directory exists in the same device as the grub directory.
- grubdir_device=`find_device ${grubdir}`
- if test "x$grubdir_device" != "x$root_device"; then
-@@ -431,30 +465,40 @@
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    count=5
--    tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
--    while test $count -gt 0; do
--      $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+for real_device in `find_real_devs $root_device`; do
-+    # Convert the root deviceto a GRUB drive.
-+    root_drive=`convert "$real_device"`
-+    if [ "x$root_drive" = x ]; then
-+      exit 1
-+    fi
-+
-+    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+      count=5
-+      tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
-+      while test $count -gt 0; do
-+          sync
-+          $grub_shell --batch $no_floppy --device-map=$device_map \
-+              <<EOF >$log_file
- dump ${root_drive}${tmp} ${img_file}
- quit
- EOF
--      if grep "Error [0-9]*: " $log_file >/dev/null; then
--          :
--      elif cmp $file $img_file >/dev/null; then
--          break
-+          if grep "Error [0-9]*: " $log_file >/dev/null; then
-+              :
-+          elif cmp $file $img_file >/dev/null; then
-+              break
-+          fi
-+          sleep 1
-+          count=`expr $count - 1`    
-+      done
-+      if test $count -eq 0; then
-+          echo "The file $file not read correctly." 1>&2
-+          exit 1
-       fi
--      sleep 1
--      count=`expr $count - 1`    
-     done
--    if test $count -eq 0; then
--      echo "The file $file not read correctly." 1>&2
--      exit 1
--    fi
--done
--rm -f $img_file
--rm -f $log_file
-+    rm -f $img_file
-+    rm -f $log_file
-+done
- if ! test -e ${grubdir}/grub.conf ; then
-     test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
-@@ -463,21 +507,33 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
--# Before all invocations of the grub shell, call sync to make sure
--# the raw device is in sync with any bufferring in filesystems.
--sync
-+for real_device in `find_real_devs $root_device`; do
-+    # Convert the root deviceto a GRUB drive.
-+    root_drive=`convert "$real_device"`
-+    if [ "x$root_drive" = x ]; then
-+      exit 1
-+    fi
-+
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
--# Now perform the installation.
--$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
-+    # Now perform the installation.
-+    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
- root $root_drive
--setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
-+setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $root_drive
- quit
- EOF
--if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
-+done
-+
-+if grep "Error [0-9]*: " $log_file >/dev/null ; then
-     cat $log_file 1>&2
-     exit 1
- fi
-+if test $debug = yes; then
-+    cat $log_file 1>&2
-+fi
- rm -f $log_file
diff --git a/src/patches/grub-0.95-moreraid.patch b/src/patches/grub-0.95-moreraid.patch
deleted file mode 100644 (file)
index 39db234..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
---- grub-0.95/lib/device.c.moreraid    2004-11-30 17:09:36.736099360 -0500
-+++ grub-0.95/lib/device.c     2004-11-30 17:12:17.319686944 -0500
-@@ -544,6 +544,17 @@
- }
- static void
-+get_cciss_disk_name (char * name, int controller, int drive)
-+{
-+  sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
-+}
-+
-+static void
-+get_cpqarray_disk_name (char * name, int controller, int drive)
-+{
-+  sprintf (name, "/dev/ida/c%dd%d", controller, drive);
-+}
-+static void
- get_ataraid_disk_name (char *name, int unit)
- {
-   sprintf (name, "/dev/ataraid/d%c", unit + '0');
-@@ -920,7 +931,7 @@
-     
-     for (controller = 0; controller < 8; controller++)
-       {
--      for (drive = 0; drive < 15; drive++)
-+      for (drive = 0; drive < 32; drive++)
-         {
-           char name[24];
-           
-@@ -940,6 +951,70 @@
-       }
-   }
- #endif /* __linux__ */
-+
-+#ifdef __linux__
-+  /* This is for cciss - we have
-+     /dev/cciss/c<controller>d<logical drive>p<partition>.
-+     
-+     cciss driver currently supports up to 8 controllers, 16 logical
-+     drives, and 7 partitions.  */
-+  {
-+    int controller, drive;
-+    
-+    for (controller = 0; controller < 8; controller++)
-+      {
-+      for (drive = 0; drive < 16; drive++)
-+        {
-+          char name[24];
-+          
-+          get_cciss_disk_name (name, controller, drive);
-+          if (check_device (name))
-+            {
-+              (*map)[num_hd + 0x80] = strdup (name);
-+              assert ((*map)[num_hd + 0x80]);
-+              
-+              /* If the device map file is opened, write the map.  */
-+              if (fp)
-+                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+              
-+              num_hd++;
-+            }
-+        }
-+      }
-+  }
-+#endif /* __linux__ */
-+
-+#ifdef __linux__
-+  /* This is for cpqarray - we have
-+     /dev/ida/c<controller>d<logical drive>p<partition>.
-+     
-+     cpqarray driver currently supports up to 8 controllers, 16 logical
-+     drives, and 15 partitions.  */
-+  {
-+    int controller, drive;
-+    
-+    for (controller = 0; controller < 8; controller++)
-+      {
-+      for (drive = 0; drive < 15; drive++)
-+        {
-+          char name[24];
-+          
-+          get_cpqarray_disk_name (name, controller, drive);
-+          if (check_device (name))
-+            {
-+              (*map)[num_hd + 0x80] = strdup (name);
-+              assert ((*map)[num_hd + 0x80]);
-+              
-+              /* If the device map file is opened, write the map.  */
-+              if (fp)
-+                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
-+              
-+              num_hd++;
-+            }
-+        }
-+      }
-+  }
-+#endif /* __linux__ */
-   
-   /* OK, close the device map file if opened.  */
-   if (fp)
diff --git a/src/patches/grub-0.95-nonmbr.patch b/src/patches/grub-0.95-nonmbr.patch
deleted file mode 100644 (file)
index 35bd5f3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- grub-0.95/util/grub-install.in.nonmbr      2005-03-16 10:02:50.000000000 -0500
-+++ grub-0.95/util/grub-install.in     2005-03-16 10:02:13.000000000 -0500
-@@ -444,7 +444,10 @@
- /dev/*)
-     install_device=`resolve_symlink "$install_device"`
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive | sed 's/,[0-9]*)/)/'`
-+      install_drive=`convert $install_drive`
-+      if is_raid1_device $install_device; then
-+              install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
-+      fi
-       if [ "x$install_drive" = "x" ]; then
-           exit 1
-       fi
diff --git a/src/patches/grub-0.95-odirect.patch b/src/patches/grub-0.95-odirect.patch
deleted file mode 100644 (file)
index 12dd9d9..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
---- grub-0.95/grub/asmstub.c.odirect   2004-11-30 16:58:06.577019488 -0500
-+++ grub-0.95/grub/asmstub.c   2004-11-30 16:59:56.057375944 -0500
-@@ -53,6 +53,9 @@
- # ifndef BLKFLSBUF
- #  define BLKFLSBUF   _IO (0x12,97)   /* flush buffer cache */
- # endif /* ! BLKFLSBUF */
-+# ifndef O_DIRECT
-+#   define O_DIRECT 040000
-+# endif /* ! O_DIRECT */
- #endif /* __linux__ */
- /* We want to prevent any circularararity in our stubs, as well as
-@@ -764,7 +767,7 @@
-     {
-       /* The unpartitioned device name: /dev/XdX */
-       char *devname = device_map[drive];
--      char buf[512];
-+      char * buf, * buf_unaligned;
-       if (! devname)
-       return -1;
-@@ -775,13 +778,13 @@
-       /* Open read/write, or read-only if that failed. */
-       if (! read_only)
--      disks[drive].flags = open (devname, O_RDWR);
-+      disks[drive].flags = open (devname, O_RDWR | O_DIRECT);
-       if (disks[drive].flags == -1)
-       {
-         if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
-           {
--            disks[drive].flags = open (devname, O_RDONLY);
-+            disks[drive].flags = open (devname, O_RDONLY | O_DIRECT);
-             if (disks[drive].flags == -1)
-               {
-                 assign_device_name (drive, 0);
-@@ -795,6 +798,10 @@
-           }
-       }
-+      buf_unaligned = malloc((512 * sizeof(char)) + 4095);
-+      buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                      (~(4096-1)));
-+
-       /* Attempt to read the first sector.  */
-       if (read (disks[drive].flags, buf, 512) != 512)
-       {
-@@ -806,6 +813,7 @@
-       if (disks[drive].flags != -1)
-       get_drive_geometry (&disks[drive], device_map, drive);
-+      free(buf_unaligned);
-     }
-   if (disks[drive].flags == -1)
-@@ -827,24 +835,34 @@
- nread (int fd, char *buf, size_t len)
- {
-   int size = len;
-+  char * buf_unaligned, * buff, * obuff;
-+  int ret;
-+
-+  buf_unaligned = malloc((len * sizeof(char)) + 4095);
-+  obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                           (~(4096-1)));
-+
-   while (len)
-     {
--      int ret = read (fd, buf, len);
-+      ret = read (fd, buff, len);
-       if (ret <= 0)
-       {
-         if (errno == EINTR)
-           continue;
-         else
--          return ret;
-+            break;
-       }
-       len -= ret;
--      buf += ret;
-+      buff += ret;
-     }
--  return size;
-+  if (!len) ret = size;
-+
-+  buf = memcpy(buf, obuff, size);
-+  return ret;
- }
- /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
-@@ -853,10 +871,18 @@
- nwrite (int fd, char *buf, size_t len)
- {
-   int size = len;
-+  char * buf_unaligned, * buff;
-+
-+  buf_unaligned = malloc((len * sizeof(char)) + 4095);
-+  buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                   (~(4096-1)));
-   while (len)
-     {
--      int ret = write (fd, buf, len);
-+      int ret;
-+
-+      memcpy(buff, buf, len);
-+      ret = write (fd, buff, len);
-       if (ret <= 0)
-       {
diff --git a/src/patches/grub-0.95-recheck-bad.patch b/src/patches/grub-0.95-recheck-bad.patch
deleted file mode 100644 (file)
index b55c6ae..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
---- grub-0.95/docs/grub.texi.recheck-bad       2005-07-25 17:55:57.000000000 -0400
-+++ grub-0.95/docs/grub.texi   2005-07-25 17:58:00.000000000 -0400
-@@ -3417,8 +3417,9 @@
- @item --recheck
- Recheck the device map, even if @file{/boot/grub/device.map} already
--exists. You should use this option whenever you add/remove a disk
--into/from your computer.
-+exists.
-+
-+This option is unreliable and its use is strongly discouraged.
- @end table
---- grub-0.95/util/grub-install.in.recheck-bad 2005-07-25 17:58:19.000000000 -0400
-+++ grub-0.95/util/grub-install.in     2005-07-25 18:05:14.000000000 -0400
-@@ -68,6 +68,8 @@
-   --force-lba             force GRUB to use LBA mode even for a buggy
-                           BIOS
-   --recheck               probe a device map even if it already exists
-+                          This flag is unreliable and its use is
-+                          strongly discouraged.
- INSTALL_DEVICE can be a GRUB device name or a system device filename.
-@@ -328,7 +330,7 @@
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
--    rm -f $device_map
-+    mv $device_map ${device_map}.backup
- fi
- # Create the device map file if it is not present.
-@@ -357,7 +359,22 @@
- tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
-     | sort | uniq -d | sed -n 1p`
- if test -n "$tmp"; then
--    echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
-+    echo "The drive $tmp is defined multiple times in the new device map." 1>&2
-+    if test $recheck = yes; then
-+        echo "Reverting to backed up copy." 1>&2
-+        mv ${device_map}.backup $device_map
-+    fi
-+    exit 1
-+fi
-+
-+# Make sure device.map has at least one hd device
-+grep -q "^(hd[0-9]\+)" $device_map
-+if [ "x$?" != "x0" ]; then
-+    echo "No suitable drive was found in the generated device map." 1>&2
-+    if test $recheck = yes; then
-+        echo "Reverting to backed up copy." 1>&2
-+        mv ${device_map}.backup $device_map
-+    fi
-     exit 1
- fi
---- grub-0.95/docs/grub-install.8.recheck-bad  2004-06-13 13:44:59.000000000 -0400
-+++ grub-0.95/docs/grub-install.8      2005-07-25 18:15:02.000000000 -0400
-@@ -30,6 +30,8 @@
- .TP
- \fB\-\-recheck\fR
- probe a device map even if it already exists
-+
-+This option is unreliable and its use is strongly discouraged.
- .PP
- INSTALL_DEVICE can be a GRUB device name or a system device filename.
- .SH "REPORTING BUGS"
---- grub-0.95/docs/grub.info.recheck-bad       2004-05-11 08:22:54.000000000 -0400
-+++ grub-0.95/docs/grub.info   2005-07-25 18:16:09.000000000 -0400
-@@ -3373,9 +3373,9 @@
- `--recheck'
-      Recheck the device map, even if `/boot/grub/device.map' already
--     exists. You should use this option whenever you add/remove a disk
--     into/from your computer.
-+     exists.
-+     This option is unreliable and its use is strongly discouraged.
\1f
- File: grub.info,  Node: Invoking grub-md5-crypt,  Next: Invoking grub-terminfo,  Prev: Invoking grub-install,  Up: Top
diff --git a/src/patches/grub-0.95-splash-error-term.patch b/src/patches/grub-0.95-splash-error-term.patch
deleted file mode 100644 (file)
index 71b036a..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
---- grub-0.95/stage2/graphics.c.old    2005-01-11 09:34:17.125451981 -0500
-+++ grub-0.95/stage2/graphics.c        2005-01-11 09:34:03.743949015 -0500
-@@ -108,12 +108,8 @@
-  * mode.  */
- int graphics_init()
- {
--    if (!graphics_inited) {
--        saved_videomode = set_videomode(0x12);
--    }
--
-     if (!read_image(splashimage)) {
--        set_videomode(saved_videomode);
-+      current_term = term_table;
-         grub_printf("failed to read image\n");
-         return 0;
-     }
-@@ -303,6 +299,8 @@
-     if (!xpm_open(s))
-         return 0;
-+    saved_videomode = set_videomode(0x12);
-+
-     /* parse info */
-     while (grub_read(&c, 1)) {
-         if (c == '"')
diff --git a/src/patches/grub-0.95-staticcurses.patch b/src/patches/grub-0.95-staticcurses.patch
deleted file mode 100644 (file)
index ff87dd3..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- grub-0.95/configure.ac.static      2004-06-13 13:38:17.000000000 -0400
-+++ grub-0.95/configure.ac     2004-06-18 17:35:23.513374336 -0400
-@@ -207,9 +207,9 @@
- # Unless the user specify --without-curses, check for curses.
- if test "x$with_curses" != "xno"; then
--  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
-+  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -Wl,-Bdynamic"
-   AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
--    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
-+    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic"
-        AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
- fi
diff --git a/src/patches/grub-0.95-xpmjunk.patch b/src/patches/grub-0.95-xpmjunk.patch
deleted file mode 100644 (file)
index de02897..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
---- grub-0.95/stage2/graphics.c.xpmjunk        2005-01-04 17:01:35.492804523 -0500
-+++ grub-0.95/stage2/graphics.c        2005-01-04 17:02:52.722495885 -0500
-@@ -262,6 +262,35 @@
-     return;
- }
-+/* Open the file, and search for a valid XPM header.  Return 1 if one is found,
-+ * leaving the current position as the start of the next line.  Else,
-+ * return 0.
-+ */
-+int xpm_open(const char *s) {
-+    char buf, prev, target[]="/* XPM */\n";
-+    int pos=0;
-+
-+    if (!grub_open(s))
-+        return 0;
-+
-+    prev='\n';
-+    buf=0;
-+    do {
-+        if (grub_read(&buf, 1) != 1) {
-+            grub_close();
-+            return 0;
-+        }
-+        if ((pos == 0 && prev == '\n') || pos > 0) {
-+            if (buf == target[pos])
-+                pos++;
-+            else
-+                pos=0;
-+        }
-+        prev=buf;
-+    } while (target[pos]);
-+    return 1;
-+}
-+
- /* Read in the splashscreen image and set the palette up appropriately.
-  * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
-  * 640x480. */
-@@ -271,15 +300,9 @@
-     unsigned char c, base, mask, *s1, *s2, *s4, *s8;
-     unsigned i, len, idx, colors, x, y, width, height;
--    if (!grub_open(s))
-+    if (!xpm_open(s))
-         return 0;
--    /* read header */
--    if (!grub_read((char*)&buf, 10) || grub_memcmp(buf, "/* XPM */\n", 10)) {
--        grub_close();
--        return 0;
--    }
--    
-     /* parse info */
-     while (grub_read(&c, 1)) {
-         if (c == '"')
diff --git a/src/patches/grub-0.97-bz429187-cciss.patch b/src/patches/grub-0.97-bz429187-cciss.patch
deleted file mode 100644 (file)
index 32f18bc..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-diff -up grub-0.97/util/grub-install.in.cciss grub-0.97/util/grub-install.in
---- grub-0.97/util/grub-install.in.cciss       2008-02-04 14:30:31.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2008-02-07 18:34:14.000000000 -0500
-@@ -100,25 +100,56 @@ convert () {
-     # Break the device name into the disk part and the partition part.
-     case "$host_os" in
-     linux*)
-+      # formats that need to be handled (disk name -> partition name):
-+      # floppies: /dev/fd0
-+      # normal sd/hd devices: /dev/hda -> /dev/hda3
-+      # md: /dev/md0 -> /dev/md0p0
-+      # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc
-+      #             -> /dev/ide/host0/bus0/target0/lun0/part1
-+      # cciss: /dev/cciss/c0d0 -> /dev/cciss/c0d0p1
-+      # mpath devs: /dev/mapper/mpath0 -> /dev/mapper/mpath0p1
-+      #             /dev/mapper/lalala -> /dev/mapper/lalalap1
-+      # dmraid devs: /dev/mapper/via_abcdef -> /dev/mapper/via_abcdefp1
-+      #    /dev/mapper/isw_Volume0_abcdef -> /dev/mapper/isw_Volume0_abcdefp1
-+      #  the known list (to me) is (X means we should handle it):
-+      #       X asr_[unfettered crap]
-+      #         hpt[0-9]+x_[0-9]+-[0-9]+
-+      #       X hpt[0-9]+x_[0-9]+
-+      #         hpt[0-9]+x_SPARE
-+      #         isw_[a-z]+_[a-z]+[0-9]+
-+      #       X isw_[a-z]+
-+      #         jm_[0-9]+-[0-9]+
-+      #       X jm_[0-9]+
-+      #         lsi_[0-9]+-[0-9]+
-+      #       X lsi_[0-9]+
-+      #         nvidia_[a-z]+-[0-9]+
-+      #       X nvidia_[a-z]+
-+      #         pdc_[a-z]+-[0-9]+
-+      #       X pdc_[a-z]+
-+      #         sil_[0-9]+-[0-9]+
-+      #       X sil_[0-9]+
-+      #         via_[a-z]+-[0-9]+
-+      #       X via_[a-z]+
-+      #
-+      # more? 
-       tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
--              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
-               sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
--                                -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
--                                -e 's%\(fd[0-9]*\)$%\1%' \
--                                -e 's%/part[0-9]*$%/disc%' \
--                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
--        -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
--        -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-+                        -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \
-+                        -e 's%\(fd[0-9]*\)$%\1%' \
-+                        -e 's%/part[0-9]*$%/disc%' \
-+  -e 's%\(/mapper/[[:alnum:]_-]\+\)\+p[[:digit:]]\+$%\1%'\
-+  -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
--              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
-               sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
--                                -e 's%.*d[0-9]*p%%' \
--                                -e 's%.*/fd[0-9]*$%%' \
--                                -e 's%.*/floppy/[0-9]*$%%' \
--                                -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
--                                -e 's%.*c[0-7]d[0-9]*p%%' \
--        -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
--        -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-+                        -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \
-+                        -e 's%.*/c[0-9]\+d[0-9]\+$%%' \
-+                        -e 's%.*/fd[0-9]\+$%%' \
-+                        -e 's%.*/floppy/[0-9]*$%%' \
-+                        -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
-+  -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
-+  -e 's%.*/mapper/[[:alnum:]]\+\(_[[:alpha:]]\+[[:digit:]]*\)\+p\([[:digit:]]\+\)$%\2%' |
-               grep -v '.*/mapper/.*'`
-       ;;
-     gnu*)
diff --git a/src/patches/grub-0.97-cmdline-size.patch b/src/patches/grub-0.97-cmdline-size.patch
deleted file mode 100644 (file)
index e93aa98..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git a/stage2/boot.c b/stage2/boot.c
-index bf442e1..a6872e0 100644
---- a/stage2/boot.c
-+++ b/stage2/boot.c
-@@ -241,6 +241,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
-           }
-         if (lh->version >= 0x0202)
-+          /* version 0x0202 and higher can handle 4096 */
-           lh->cmd_line_ptr = linux_data_real_addr + LINUX_CL_OFFSET;
-         else
-           {
-@@ -403,8 +404,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
-         {
-           char *src = skip_to (0, arg);
-           char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
--      
--          while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
-+            unsigned long cl_end_offset = lh->version < 0x0202 ? 
-+                LINUX_CL_END_OFFSET : LINUX_CL_END_OFFSET_202;
-+
-+          while (dest < linux_data_tmp_addr + cl_end_offset && *src)
-             *(dest++) = *(src++);
-       
-           /* Old Linux kernels have problems determining the amount of
-diff --git a/stage2/shared.h b/stage2/shared.h
-index d05644b..c052480 100644
---- a/stage2/shared.h
-+++ b/stage2/shared.h
-@@ -160,10 +160,13 @@ extern void *grub_scratch_mem;
- #define LINUX_VID_MODE_ASK            0xFFFD
- #define LINUX_CL_OFFSET                       0x9000
--#define LINUX_CL_END_OFFSET           0x90FF
--#define LINUX_SETUP_MOVE_SIZE         0x9100
- #define LINUX_CL_MAGIC                        0xA33F
-+#define LINUX_CL_END_OFFSET           0x90FF
-+#define LINUX_CL_END_OFFSET_202               0x9FFF /* version 0x0202 or higher */
-+#define LINUX_SETUP_MOVE_SIZE         0xA000 /* where am I putting it? */
-+
-+
- /*
-  *  General disk stuff
-  */
diff --git a/src/patches/grub-0.97-datadir.patch b/src/patches/grub-0.97-datadir.patch
deleted file mode 100644 (file)
index eaa89f0..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
---- grub-0.97/stage1/Makefile.am.datadir       2005-12-14 11:07:01.000000000 -0500
-+++ grub-0.97/stage1/Makefile.am       2005-12-14 11:07:21.000000000 -0500
-@@ -1,7 +1,7 @@
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
--nodist_pkglib_DATA = stage1
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+nodist_pkgdata_DATA = stage1
--CLEANFILES = $(nodist_pkglib_DATA)
-+CLEANFILES = $(nodist_pkgdata_DATA)
- # We can't use builtins or standard includes.
- AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
---- grub-0.97/stage1/Makefile.in.datadir       2005-05-07 22:42:36.000000000 -0400
-+++ grub-0.97/stage1/Makefile.in       2005-12-14 11:08:13.000000000 -0500
-@@ -1,8 +1,8 @@
--# Makefile.in generated by automake 1.9.4 from Makefile.am.
-+# Makefile.in generated by automake 1.9.6 from Makefile.am.
- # @configure_input@
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
--# 2003, 2004  Free Software Foundation, Inc.
-+# 2003, 2004, 2005  Free Software Foundation, Inc.
- # This Makefile.in is free software; the Free Software Foundation
- # gives unlimited permission to copy and/or distribute it,
- # with or without modifications, as long as this notice is preserved.
-@@ -15,8 +15,6 @@
- @SET_MAKE@
--SOURCES = $(stage1_exec_SOURCES)
--
- srcdir = @srcdir@
- top_srcdir = @top_srcdir@
- VPATH = @srcdir@
-@@ -67,13 +65,13 @@
-     *) f=$$p;; \
-   esac;
- am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
--am__installdirs = "$(DESTDIR)$(pkglibdir)"
--nodist_pkglibDATA_INSTALL = $(INSTALL_DATA)
--DATA = $(nodist_pkglib_DATA)
-+am__installdirs = "$(DESTDIR)$(pkgdatadir)"
-+nodist_pkgdataDATA_INSTALL = $(INSTALL_DATA)
-+DATA = $(nodist_pkgdata_DATA)
- ETAGS = etags
- CTAGS = ctags
- DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
- ACLOCAL = @ACLOCAL@
- AMDEP_FALSE = @AMDEP_FALSE@
- AMDEP_TRUE = @AMDEP_TRUE@
-@@ -102,6 +100,8 @@
- EGREP = @EGREP@
- EXEEXT = @EXEEXT@
- FSYS_CFLAGS = @FSYS_CFLAGS@
-+GRAPHICS_SUPPORT_FALSE = @GRAPHICS_SUPPORT_FALSE@
-+GRAPHICS_SUPPORT_TRUE = @GRAPHICS_SUPPORT_TRUE@
- GRUB_CFLAGS = @GRUB_CFLAGS@
- GRUB_LIBS = @GRUB_LIBS@
- HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
-@@ -172,6 +172,7 @@
- infodir = @infodir@
- install_sh = @install_sh@
- libdir = @libdir@
-+datadir = @datadir@
- libexecdir = @libexecdir@
- localstatedir = @localstatedir@
- mandir = @mandir@
-@@ -183,8 +184,8 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
--nodist_pkglib_DATA = stage1
--CLEANFILES = $(nodist_pkglib_DATA)
-+nodist_pkgdata_DATA = stage1
-+CLEANFILES = $(nodist_pkgdata_DATA)
- # We can't use builtins or standard includes.
- AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
-@@ -242,22 +243,22 @@
- .S.obj:
-       $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
- uninstall-info-am:
--install-nodist_pkglibDATA: $(nodist_pkglib_DATA)
-+install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA)
-       @$(NORMAL_INSTALL)
--      test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
--      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
-+      test -z "$(pkgdatadir)" || $(mkdir_p) "$(DESTDIR)$(pkgdatadir)"
-+      @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         f=$(am__strip_dir) \
--        echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
--        $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
-+        echo " $(nodist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-+        $(nodist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
-       done
--uninstall-nodist_pkglibDATA:
-+uninstall-nodist_pkgdataDATA:
-       @$(NORMAL_UNINSTALL)
--      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
-+      @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \
-         f=$(am__strip_dir) \
--        echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
--        rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
-+        echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-+        rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
-       done
- ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
-@@ -339,7 +340,7 @@
- check: check-am
- all-am: Makefile $(PROGRAMS) $(DATA)
- installdirs:
--      for dir in "$(DESTDIR)$(pkglibdir)"; do \
-+      for dir in "$(DESTDIR)$(pkgdatadir)"; do \
-         test -z "$$dir" || $(mkdir_p) "$$dir"; \
-       done
- install: install-am
-@@ -388,7 +389,7 @@
- install-data-am:
--install-exec-am: install-nodist_pkglibDATA
-+install-exec-am: install-nodist_pkgdataDATA
- install-info: install-info-am
-@@ -412,19 +413,19 @@
- ps-am:
--uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA
-+uninstall-am: uninstall-info-am uninstall-nodist_pkgdataDATA
- .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
-       clean-noinstPROGRAMS ctags distclean distclean-compile \
-       distclean-generic distclean-tags distdir dvi dvi-am html \
-       html-am info info-am install install-am install-data \
-       install-data-am install-exec install-exec-am install-info \
--      install-info-am install-man install-nodist_pkglibDATA \
-+      install-info-am install-man install-nodist_pkgdataDATA \
-       install-strip installcheck installcheck-am installdirs \
-       maintainer-clean maintainer-clean-generic mostlyclean \
-       mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
-       tags uninstall uninstall-am uninstall-info-am \
--      uninstall-nodist_pkglibDATA
-+      uninstall-nodist_pkgdataDATA
- .exec:
-       $(OBJCOPY) -O binary $< $@
---- grub-0.97/util/grub-install.in.datadir     2005-12-14 11:00:21.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-14 11:00:21.000000000 -0500
-@@ -21,13 +21,13 @@
- prefix=@prefix@
- exec_prefix=@exec_prefix@
- sbindir=@sbindir@
--libdir=@libdir@
-+datadir=@datadir@
- PACKAGE=@PACKAGE@
- VERSION=@VERSION@
- host_cpu=@host_cpu@
- host_os=@host_os@
- host_vendor=@host_vendor@
--pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
-+pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
- mdadm=${sbindir}/mdadm
-@@ -388,17 +388,17 @@
-     exit 1
- fi
--if test -f "$pkglibdir/stage1"; then
-+if test -f "$pkgdatadir/stage1"; then
-     :
- else
--    echo "${pkglibdir}/stage1: Not found." 1>&2
-+    echo "${pkgdatadir}/stage1: Not found." 1>&2
-     exit 1
- fi
--if test -f "$pkglibdir/stage2"; then
-+if test -f "$pkgdatadir/stage2"; then
-     :
- else
--    echo "${pkglibdir}/stage2: Not found." 1>&2
-+    echo "${pkgdatadir}/stage2: Not found." 1>&2
-     exit 1
- fi
---- grub-0.97/stage2/Makefile.am.datadir       2005-12-14 11:03:54.000000000 -0500
-+++ grub-0.97/stage2/Makefile.am       2005-12-14 11:05:04.000000000 -0500
-@@ -27,12 +27,12 @@
-       -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
- # Stage 2 and Stage 1.5's.
--pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-+pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
- EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
- if DISKLESS_SUPPORT
--pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
-       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
-       nbgrub pxegrub
-@@ -43,7 +43,7 @@
-       reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
-       xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
- else
--pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-+pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
-       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
-       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
- noinst_DATA = pre_stage2 start start_eltorito
-@@ -112,7 +112,7 @@
- BUILT_SOURCES = stage2_size.h
- endif
--CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
-+CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
- stage2_size.h: pre_stage2
-       -rm -f stage2_size.h
diff --git a/src/patches/grub-0.97-disk_geometry-1.patch b/src/patches/grub-0.97-disk_geometry-1.patch
deleted file mode 100644 (file)
index e09686d..0000000
+++ /dev/null
@@ -1,892 +0,0 @@
-Submitted By: Jim Gifford <jim@linuxfromscratch.org>
-Date: 05-28-2006
-Initial Package Version: 0.97
-Upstream Status: Unknown
-Origin: Fedora and Mandriva
-Description: This patch fixes issues with disk geometry not being 
-            detected properly. Part of this patch also fixes
-            gcc 4 compile errors, which are a part of the issue.
-
-diff -Naur grub-0.97.orig/configure grub-0.97/configure
---- grub-0.97.orig/configure   2005-05-07 19:48:12.000000000 -0700
-+++ grub-0.97/configure        2006-05-28 20:29:36.025466751 -0700
-@@ -3485,9 +3485,9 @@
- echo "$as_me:$LINENO: result: $size_flag" >&5
- echo "${ECHO_T}$size_flag" >&6
-     if test "x$size_flag" = xyes; then
--      STAGE2_CFLAGS="-Os"
-+      STAGE2_CFLAGS="-Os -fno-strict-aliasing"
-     else
--      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
-+      STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops"
-     fi
-     # OpenBSD has a GCC extension for protecting applications from
-     # stack smashing attacks, but GRUB doesn't want this feature.
-diff -Naur grub-0.97.orig/configure.ac grub-0.97/configure.ac
---- grub-0.97.orig/configure.ac        2005-05-07 19:36:03.000000000 -0700
-+++ grub-0.97/configure.ac     2006-05-28 20:28:41.538819726 -0700
-@@ -93,9 +93,9 @@
-       CFLAGS=$saved_CFLAGS
-     ])
-     if test "x$size_flag" = xyes; then
--      STAGE2_CFLAGS="-Os"
-+      STAGE2_CFLAGS="-Os -fno-strict-aliasing"
-     else
--      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
-+      STAGE2_CFLAGS="-O2 -fno-strict-aliasing -fno-strength-reduce -fno-unroll-loops"
-     fi
-     # OpenBSD has a GCC extension for protecting applications from
-     # stack smashing attacks, but GRUB doesn't want this feature.
-diff -Naur grub-0.97.orig/lib/device.c grub-0.97/lib/device.c
---- grub-0.97.orig/lib/device.c        2005-03-27 15:14:25.000000000 -0800
-+++ grub-0.97/lib/device.c     2006-05-28 20:34:03.546804777 -0700
-@@ -131,6 +131,152 @@
- #include <shared.h>
- #include <device.h>
-+#if defined(__linux__)
-+/* The 2.6 kernel has removed all of the geometry handling for IDE drives
-+ * that did fixups for LBA, etc.  This means that the geometry we get
-+ * with the ioctl has a good chance of being wrong.  So, we get to 
-+ * also know about partition tables and try to read what the geometry
-+ * is there. *grumble*   Very closely based on code from cfdisk
-+ */
-+static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
-+    struct hd_geometry hdg;
-+    
-+    if (ioctl (fd, HDIO_GETGEO, &hdg))
-+        return;
-+
-+    *cyl = hdg.cylinders;
-+    *heads = hdg.heads;
-+    *sectors = hdg.sectors;
-+}
-+
-+struct partition {
-+        unsigned char boot_ind;         /* 0x80 - active */
-+        unsigned char head;             /* starting head */
-+        unsigned char sector;           /* starting sector */
-+        unsigned char cyl;              /* starting cylinder */
-+        unsigned char sys_ind;          /* What partition type */
-+        unsigned char end_head;         /* end head */
-+        unsigned char end_sector;       /* end sector */
-+        unsigned char end_cyl;          /* end cylinder */
-+        unsigned char start4[4];        /* starting sector counting from 0 */
-+        unsigned char size4[4];         /* nr of sectors in partition */
-+};
-+
-+#define ALIGNMENT 2
-+typedef union {
-+    struct {
-+      unsigned char align[ALIGNMENT];
-+      unsigned char b[SECTOR_SIZE];
-+    } c;
-+    struct {
-+      unsigned char align[ALIGNMENT];
-+      unsigned char buffer[0x1BE];
-+      struct partition part[4];
-+      unsigned char magicflag[2];
-+    } p;
-+} partition_table;
-+
-+#define PART_TABLE_FLAG0 0x55
-+#define PART_TABLE_FLAG1 0xAA
-+
-+static void
-+get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, 
-+                             int *sectors) {
-+    struct partition *p;
-+    int i,h,s,hh,ss;
-+    int first = 1;
-+    int bad = 0;
-+
-+    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
-+      bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
-+          /* Matthew Wilcox: slightly friendlier version of
-+             fatal(_("Bad signature on partition table"), 3);
-+          */
-+            fprintf(stderr, "Unknown partition table signature\n");
-+          return;
-+    }
-+
-+    hh = ss = 0;
-+    for (i=0; i<4; i++) {
-+      p = &(bufp->p.part[i]);
-+      if (p->sys_ind != 0) {
-+          h = p->end_head + 1;
-+          s = (p->end_sector & 077);
-+          if (first) {
-+              hh = h;
-+              ss = s;
-+              first = 0;
-+          } else if (hh != h || ss != s)
-+              bad = 1;
-+      }
-+    }
-+
-+    if (!first && !bad) {
-+      *heads = hh;
-+      *sectors = ss;
-+    }
-+}
-+
-+static long long my_lseek (unsigned int fd, long long offset, 
-+                           unsigned int origin)
-+{
-+#if defined(__linux__) && (!defined(__GLIBC__) || \
-+        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
-+  /* Maybe libc doesn't have large file support.  */
-+  loff_t offset, result;
-+  static int _llseek (uint filedes, ulong hi, ulong lo,
-+                      loff_t *res, uint wh);
-+  _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
-+             loff_t *, res, uint, wh);
-+  
-+  if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
-+    return (long long) -1;
-+  return result;
-+#else
-+  return lseek(fd, offset, SEEK_SET);
-+#endif
-+}
-+
-+static void get_linux_geometry (int fd, struct geometry *geom) {
-+    long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
-+    long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
-+    partition_table bufp;
-+    char *buff, *buf_unaligned;
-+
-+    buf_unaligned = malloc(sizeof(partition_table) + 4095);
-+    buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
-+                     (~(4096-1)));
-+
-+    get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
-+
-+    if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
-+        fprintf(stderr, "Unable to seek");
-+    }
-+
-+    if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
-+        memcpy(bufp.c.b, buff, SECTOR_SIZE);
-+        get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
-+    } else {
-+        fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
-+    }
-+
-+    if (pt_head && pt_sectors) {
-+        int cyl_size;
-+
-+        geom->heads = pt_head;
-+        geom->sectors = pt_sectors;
-+        cyl_size = pt_head * pt_sectors;
-+        geom->cylinders = geom->total_sectors/cyl_size;
-+    } else {
-+        geom->heads = kern_head;
-+        geom->sectors = kern_sectors;
-+        geom->cylinders = kern_cyl;
-+    }
-+
-+    return;
-+}
-+#endif
-+
- /* Get the geometry of a drive DRIVE.  */
- void
- get_drive_geometry (struct geometry *geom, char **map, int drive)
-@@ -151,21 +297,16 @@
- #if defined(__linux__)
-   /* Linux */
-   {
--    struct hd_geometry hdg;
-     unsigned long nr;
--    
--    if (ioctl (fd, HDIO_GETGEO, &hdg))
--      goto fail;
-     if (ioctl (fd, BLKGETSIZE, &nr))
-       goto fail;
-     
-     /* Got the geometry, so save it. */
--    geom->cylinders = hdg.cylinders;
--    geom->heads = hdg.heads;
--    geom->sectors = hdg.sectors;
-     geom->total_sectors = nr;
--    
-+    get_linux_geometry(fd, geom);
-+    if (!geom->heads && !geom->cylinders && !geom->sectors)
-+        goto fail;
-     goto success;
-   }
-@@ -844,6 +985,7 @@
- {
-   char dev[PATH_MAX]; /* XXX */
-   int fd;
-+  off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
-   
-   if ((partition & 0x00FF00) != 0x00FF00)
-     {
-@@ -870,35 +1012,13 @@
-       errnum = ERR_NO_PART;
-       return 0;
-     }
--  
--#if defined(__linux__) && (!defined(__GLIBC__) || \
--        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
--  /* Maybe libc doesn't have large file support.  */
--  {
--    loff_t offset, result;
--    static int _llseek (uint filedes, ulong hi, ulong lo,
--                        loff_t *res, uint wh);
--    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
--               loff_t *, res, uint, wh);
--    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
--    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
--      {
--      errnum = ERR_DEV_VALUES;
--      return 0;
--      }
--  }
--#else
--  {
--    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
--    if (lseek (fd, offset, SEEK_SET) != offset)
--      {
--      errnum = ERR_DEV_VALUES;
--      return 0;
--      }
--  }
--#endif
-+  if (my_lseek(fd, offset, SEEK_SET) != offset)
-+    {
-+      errnum = ERR_DEV_VALUES;
-+      return 0;
-+    }
-   
-   if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
-     {
-diff -Naur grub-0.97.orig/stage2/Makefile.am grub-0.97/stage2/Makefile.am
---- grub-0.97.orig/stage2/Makefile.am  2005-02-02 12:37:35.000000000 -0800
-+++ grub-0.97/stage2/Makefile.am       2006-05-28 20:28:41.590818435 -0700
-@@ -24,7 +24,8 @@
-       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
-       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
-       -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
--      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
-+      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1 \
-+      -fno-strict-aliasing
- # Stage 2 and Stage 1.5's.
- pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
-diff -Naur grub-0.97.orig/stage2/boot.c grub-0.97/stage2/boot.c
---- grub-0.97.orig/stage2/boot.c       2004-03-30 03:44:08.000000000 -0800
-+++ grub-0.97/stage2/boot.c    2006-05-28 20:33:30.123638792 -0700
-@@ -55,7 +55,7 @@
-   pu;
-   /* presuming that MULTIBOOT_SEARCH is large enough to encompass an
-      executable header */
--  unsigned char buffer[MULTIBOOT_SEARCH];
-+  char buffer[MULTIBOOT_SEARCH];
-   /* sets the header pointer to point to the beginning of the
-      buffer by default */
-@@ -98,7 +98,7 @@
-   /* ELF loading supported if multiboot, FreeBSD and NetBSD.  */
-   if ((type == KERNEL_TYPE_MULTIBOOT
-        || pu.elf->e_ident[EI_OSABI] == ELFOSABI_FREEBSD
--       || grub_strcmp (pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
-+       || grub_strcmp ((char *) pu.elf->e_ident + EI_BRAND, "FreeBSD") == 0
-        || suggested_type == KERNEL_TYPE_NETBSD)
-       && len > sizeof (Elf32_Ehdr)
-       && BOOTABLE_I386_ELF ((*((Elf32_Ehdr *) buffer))))
-@@ -824,8 +824,12 @@
-     moveto = (mbi.mem_upper + 0x400) << 10;
-   
-   moveto = (moveto - len) & 0xfffff000;
-+#if 0
-   max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
-             ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
-+#else
-+  max_addr = LINUX_INITRD_MAX_ADDRESS;
-+#endif
-   if (moveto + len >= max_addr)
-     moveto = (max_addr - len) & 0xfffff000;
-   
-diff -Naur grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c
---- grub-0.97.orig/stage2/disk_io.c    2004-05-23 09:35:24.000000000 -0700
-+++ grub-0.97/stage2/disk_io.c 2006-05-28 20:28:41.582818634 -0700
-@@ -127,12 +127,19 @@
- int filepos;
- int filemax;
--static inline unsigned long
--log2 (unsigned long word)
-+#define log2(n) ffz(~(n))
-+
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long
-+ffz (unsigned long word)
- {
--  asm volatile ("bsfl %1,%0"
--              : "=r" (word)
--              : "r" (word));
-+  __asm__ ("bsfl %1,%0"
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/freebsd.h grub-0.97/stage2/freebsd.h
---- grub-0.97.orig/stage2/freebsd.h    2003-07-09 04:45:52.000000000 -0700
-+++ grub-0.97/stage2/freebsd.h 2006-05-28 20:28:41.582818634 -0700
-@@ -78,7 +78,7 @@
- struct bootinfo
-   {
-     unsigned int bi_version;
--    unsigned char *bi_kernelname;
-+    char *bi_kernelname;
-     struct nfs_diskless *bi_nfs_diskless;
-     /* End of fields that are always present. */
- #define bi_endcommon            bi_n_bios_used
-diff -Naur grub-0.97.orig/stage2/fsys_fat.c grub-0.97/stage2/fsys_fat.c
---- grub-0.97.orig/stage2/fsys_fat.c   2005-03-15 08:52:00.000000000 -0800
-+++ grub-0.97/stage2/fsys_fat.c        2006-05-28 20:28:41.582818634 -0700
-@@ -54,12 +54,19 @@
- #define FAT_CACHE_SIZE 2048
-+#define log2(n) ffz(~(n))
-+
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
- static __inline__ unsigned long
--log2 (unsigned long word)
-+ffz (unsigned long word)
- {
-   __asm__ ("bsfl %1,%0"
--         : "=r" (word)
--         : "r" (word));
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/fsys_iso9660.c grub-0.97/stage2/fsys_iso9660.c
---- grub-0.97.orig/stage2/fsys_iso9660.c       2004-05-11 05:11:19.000000000 -0700
-+++ grub-0.97/stage2/fsys_iso9660.c    2006-05-28 20:28:41.582818634 -0700
-@@ -55,13 +55,19 @@
- #define RRCONT_BUF      ((unsigned char *)(FSYS_BUF + 6144))
- #define NAME_BUF        ((unsigned char *)(FSYS_BUF + 8192))
-+#define log2(n) ffz(~(n))
--static inline unsigned long
--log2 (unsigned long word)
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
-+static __inline__ unsigned long
-+ffz (unsigned long word)
- {
--  asm volatile ("bsfl %1,%0"
--              :          "=r" (word)
--              :          "r" (word));
-+  __asm__ ("bsfl %1,%0"
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-@@ -120,7 +126,7 @@
-       break;
-       /* check ISO_VD_PRIMARY and ISO_STANDARD_ID */
-       if (PRIMDESC->type.l == ISO_VD_PRIMARY
--        && !memcmp(PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id)))
-+        && !memcmp((char *) PRIMDESC->id, ISO_STANDARD_ID, sizeof(PRIMDESC->id)))
-       {
-         ISO_SUPER->vol_sector = sector;
-         INODE->file_start = 0;
-@@ -175,7 +181,7 @@
-         for (; idr->length.l > 0;
-              idr = (struct iso_directory_record *)((char *)idr + idr->length.l) )
-           {
--            const char *name = idr->name;
-+            const u_int8_t *name = idr->name;
-             unsigned int name_len = idr->name_len.l;
-             file_type = (idr->flags.l & 2) ? ISO_DIRECTORY : ISO_REGULAR;
-@@ -198,7 +204,7 @@
-             rr_len = (idr->length.l - idr->name_len.l
-                       - sizeof(struct iso_directory_record)
-                       + sizeof(idr->name));
--            rr_ptr.ptr = ((unsigned char *)idr + idr->name_len.l
-+            rr_ptr.ptr = ((char *)idr + idr->name_len.l
-                           + sizeof(struct iso_directory_record)
-                           - sizeof(idr->name));
-             if (rr_ptr.i & 1)
-@@ -331,9 +337,9 @@
-                         memcpy(NAME_BUF, name, name_len);
-                         name = NAME_BUF;
-                       }
--                    rr_ptr.ptr = RRCONT_BUF + ce_ptr->u.ce.offset.l;
-+                    rr_ptr.ptr = (char *) RRCONT_BUF + ce_ptr->u.ce.offset.l;
-                     rr_len = ce_ptr->u.ce.size.l;
--                    if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, RRCONT_BUF))
-+                    if (!iso9660_devread(ce_ptr->u.ce.extent.l, 0, ISO_SECTOR_SIZE, (char *) RRCONT_BUF))
-                       {
-                         errnum = 0;   /* this is not fatal. */
-                         break;
-@@ -344,7 +350,7 @@
-             filemax = MAXINT;
-             if (name_len >= pathlen
--                && !memcmp(name, dirname, pathlen))
-+                && !memcmp((char *) name, dirname, pathlen))
-               {
-                 if (dirname[pathlen] == '/' || !print_possibilities)
-                   {
-@@ -381,7 +387,7 @@
-                       print_possibilities = -print_possibilities;
-                     memcpy(NAME_BUF, name, name_len);
-                     NAME_BUF[name_len] = '\0';
--                    print_a_completion (NAME_BUF);
-+                    print_a_completion ((char *) NAME_BUF);
- #endif
-                   }
-               }
-diff -Naur grub-0.97.orig/stage2/fsys_reiserfs.c grub-0.97/stage2/fsys_reiserfs.c
---- grub-0.97.orig/stage2/fsys_reiserfs.c      2004-02-18 14:09:10.000000000 -0800
-+++ grub-0.97/stage2/fsys_reiserfs.c   2006-05-28 20:28:41.586818535 -0700
-@@ -365,13 +365,19 @@
- #define JOURNAL_START    ((__u32 *) (INFO + 1))
- #define JOURNAL_END      ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
-+#define log2(n) ffz(~(n))
-+/* include/asm-i386/bitops.h */
-+/*
-+ * ffz = Find First Zero in word. Undefined if no zero exists,
-+ * so code should check against ~0UL first..
-+ */
- static __inline__ unsigned long
--log2 (unsigned long word)
-+ffz (unsigned long word)
- {
-   __asm__ ("bsfl %1,%0"
--         : "=r" (word)
--         : "r" (word));
-+:        "=r" (word)
-+:        "r" (~word));
-   return word;
- }
-diff -Naur grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c
---- grub-0.97.orig/stage2/fsys_vstafs.c        2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/fsys_vstafs.c     2006-05-28 20:28:41.586818535 -0700
-@@ -186,35 +186,35 @@
- int 
- vstafs_read (char *addr, int len)
- {
--  struct alloc *a;
-+  struct alloc *b;
-   int size, ret = 0, offset, curr_len = 0;
--  int curr_ext;
-+  int curr_exten;
-   char extent;
-   int ext_size;
-   char *curr_pos;
-   
-   get_file_info (f_sector);
-   size = FILE_INFO->len-VSTAFS_START_DATA;
--  a = FILE_INFO->blocks;
-+  b = FILE_INFO->blocks;
-   
-   if (filepos > 0)
-     {
--      if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA)
-+      if (filepos < b[0].a_len * 512 - VSTAFS_START_DATA)
-       {
-         offset = filepos + VSTAFS_START_DATA;
-         extent = 0;
--        curr_len = a[0].a_len * 512 - offset - filepos; 
-+        curr_len = b[0].a_len * 512 - offset - filepos; 
-       }
-       else
-       {
--        ext_size = a[0].a_len * 512 - VSTAFS_START_DATA;
-+        ext_size = b[0].a_len * 512 - VSTAFS_START_DATA;
-         offset = filepos - ext_size;
-         extent = 1;
-         do
-           {
-             curr_len -= ext_size;
-             offset -= ext_size;
--            ext_size = a[extent+1].a_len * 512;
-+            ext_size = b[extent+1].a_len * 512;
-           }
-         while (extent < FILE_INFO->extents && offset>ext_size);
-       }
-@@ -223,16 +223,16 @@
-     {
-       offset = VSTAFS_START_DATA;
-       extent = 0;
--      curr_len = a[0].a_len * 512 - offset;
-+      curr_len = b[0].a_len * 512 - offset;
-     }
-   
-   curr_pos = addr;
-   if (curr_len > len)
-     curr_len = len;
-   
--  for (curr_ext=extent;
--       curr_ext < FILE_INFO->extents; 
--       curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++)
-+  for (curr_exten = extent;
-+       curr_exten < FILE_INFO->extents; 
-+       curr_len = b[curr_exten].a_len * 512, curr_pos += curr_len, curr_exten++)
-     {
-       ret += curr_len;
-       size -= curr_len;
-@@ -242,7 +242,7 @@
-         curr_len += size;
-       }
-       
--      devread (a[curr_ext].a_start,offset, curr_len, curr_pos);
-+      devread (b[curr_exten].a_start, offset, curr_len, curr_pos);
-       offset = 0;
-     }
-   
-diff -Naur grub-0.97.orig/stage2/fsys_xfs.c grub-0.97/stage2/fsys_xfs.c
---- grub-0.97.orig/stage2/fsys_xfs.c   2005-05-07 19:15:55.000000000 -0700
-+++ grub-0.97/stage2/fsys_xfs.c        2006-05-28 20:28:41.586818535 -0700
-@@ -97,7 +97,7 @@
-       return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
- }
--static inline __const__ xfs_uint16_t
-+static inline __attribute__((const)) xfs_uint16_t
- le16 (xfs_uint16_t x)
- {
-       __asm__("xchgb %b0,%h0" \
-@@ -106,7 +106,7 @@
-               return x;
- }
--static inline __const__ xfs_uint32_t
-+static inline __attribute__((const)) xfs_uint32_t
- le32 (xfs_uint32_t x)
- {
- #if 0
-@@ -122,7 +122,7 @@
-       return x;
- }
--static inline __const__ xfs_uint64_t
-+static inline __attribute__((const)) xfs_uint64_t
- le64 (xfs_uint64_t x)
- {
-       xfs_uint32_t h = x >> 32;
-@@ -368,7 +368,7 @@
-               default:
-                       namelen = sfe->namelen;
-                       *ino = sf_ino ((char *)sfe, namelen);
--                      name = sfe->name;
-+                      name = (char *) sfe->name;
-                       sfe = (xfs_dir2_sf_entry_t *)
-                                 ((char *)sfe + namelen + 11 - xfs.i8param);
-               }
-diff -Naur grub-0.97.orig/stage2/gunzip.c grub-0.97/stage2/gunzip.c
---- grub-0.97.orig/stage2/gunzip.c     2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/gunzip.c  2006-05-28 20:28:41.586818535 -0700
-@@ -277,7 +277,7 @@
-    *  is a compressed file, and simply mark it as such.
-    */
-   if (no_decompression
--      || grub_read (buf, 10) != 10
-+      || grub_read ((char *) buf, 10) != 10
-       || ((*((unsigned short *) buf) != GZIP_HDR_LE)
-         && (*((unsigned short *) buf) != OLD_GZIP_HDR_LE)))
-     {
-@@ -293,7 +293,7 @@
-   if (buf[2] != DEFLATED
-       || (buf[3] & UNSUPP_FLAGS)
-       || ((buf[3] & EXTRA_FIELD)
--        && (grub_read (buf, 2) != 2
-+        && (grub_read ((char *) buf, 2) != 2
-             || bad_field (*((unsigned short *) buf))))
-       || ((buf[3] & ORIG_NAME) && bad_field (-1))
-       || ((buf[3] & COMMENT) && bad_field (-1)))
-@@ -308,7 +308,7 @@
-   
-   filepos = filemax - 8;
-   
--  if (grub_read (buf, 8) != 8)
-+  if (grub_read ((char *) buf, 8) != 8)
-     {
-       if (! errnum)
-       errnum = ERR_BAD_GZIP_HEADER;
-@@ -485,8 +485,8 @@
- #define INBUFSIZ  0x2000
--static uch inbuf[INBUFSIZ];
--static int bufloc;
-+static unsigned char inbuf[INBUFSIZ];
-+static int  bufloc;
- static int
- get_byte (void)
-@@ -494,7 +494,7 @@
-   if (filepos == gzip_data_offset || bufloc == INBUFSIZ)
-     {
-       bufloc = 0;
--      grub_read (inbuf, INBUFSIZ);
-+      grub_read ((char *) inbuf, INBUFSIZ);
-     }
-   return inbuf[bufloc++];
-@@ -925,7 +925,7 @@
-   unsigned m;                 /* mask for bit lengths table */
-   unsigned n;                 /* number of lengths to get */
-   unsigned nb;                        /* number of bit length codes */
--  unsigned nl;                        /* number of literal/length codes */
-+  unsigned nc;                        /* number of literal/length codes */
-   unsigned nd;                        /* number of distance codes */
-   unsigned ll[286 + 30];      /* literal/length and distance code lengths */
-   register ulg b;             /* bit buffer */
-@@ -937,7 +937,7 @@
-   /* read in table lengths */
-   NEEDBITS (5);
--  nl = 257 + ((unsigned) b & 0x1f);   /* number of literal/length codes */
-+  nc = 257 + ((unsigned) b & 0x1f);   /* number of literal/length codes */
-   DUMPBITS (5);
-   NEEDBITS (5);
-   nd = 1 + ((unsigned) b & 0x1f);     /* number of distance codes */
-@@ -945,7 +945,7 @@
-   NEEDBITS (4);
-   nb = 4 + ((unsigned) b & 0xf);      /* number of bit length codes */
-   DUMPBITS (4);
--  if (nl > 286 || nd > 30)
-+  if (nc > 286 || nd > 30)
-     {
-       errnum = ERR_BAD_GZIP_DATA;
-       return;
-@@ -970,7 +970,7 @@
-     }
-   /* read in literal and distance code lengths */
--  n = nl + nd;
-+  n = nc + nd;
-   m = mask_bits[bl];
-   i = l = 0;
-   while ((unsigned) i < n)
-@@ -1034,7 +1034,7 @@
-   /* build the decoding tables for literal/length and distance codes */
-   bl = lbits;
--  if ((i = huft_build (ll, nl, 257, cplens, cplext, &tl, &bl)) != 0)
-+  if ((i = huft_build (ll, nc, 257, cplens, cplext, &tl, &bl)) != 0)
-     {
- #if 0
-       if (i == 1)
-@@ -1045,7 +1045,7 @@
-       return;
-     }
-   bd = dbits;
--  if ((i = huft_build (ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0)
-+  if ((i = huft_build (ll + nc, nd, 0, cpdist, cpdext, &td, &bd)) != 0)
-     {
- #if 0
-       if (i == 1)
-diff -Naur grub-0.97.orig/stage2/md5.c grub-0.97/stage2/md5.c
---- grub-0.97.orig/stage2/md5.c        2003-07-09 04:45:53.000000000 -0700
-+++ grub-0.97/stage2/md5.c     2006-05-28 20:28:41.590818435 -0700
-@@ -166,7 +166,7 @@
-   inputlen -= 64 - buflen;
-   while (inputlen >= 64)
-     {
--      md5_transform (input);
-+      md5_transform ((unsigned char *) input);
-       input += 64;
-       inputlen -= 64;
-     }
-@@ -211,7 +211,7 @@
-   char *p; 
-   int saltlen;
-   int i, n;
--  unsigned char alt_result[16];
-+  char alt_result[16];
-   unsigned char *digest;
-   if (check)
-diff -Naur grub-0.97.orig/stage2/start_eltorito.S grub-0.97/stage2/start_eltorito.S
---- grub-0.97.orig/stage2/start_eltorito.S     2004-03-27 08:14:20.000000000 -0800
-+++ grub-0.97/stage2/start_eltorito.S  2006-05-28 20:31:17.770936712 -0700
-@@ -40,9 +40,9 @@
- #define ABS(x)                        (x-_start+BOOTSEC_LOCATION)
- #ifdef STAGE1_5
--# define STAGE_ADDR           0x2000
-+# define STAGE_ADDR           0x2200
- #else
--# define STAGE_ADDR           0x8000
-+# define STAGE_ADDR           0x8200
- #endif /* STAGE1_5 */
-       /* Print message string */
-@@ -71,12 +71,14 @@
-       . = _start + 8                      /* Pad to file offset 8 */
-               /* This table gets filled in by mkisofs using the
--                 -boot-info-table option */
--bi_pvd:               .long 0xDEADBEEF            /* LBA of primary volume descript */
--bi_file:      .long 0xDEADBEEF            /* LBA of boot file */
--bi_length:    .long 0xDEADBEEF            /* Length of boot file */
--bi_csum:      .long 0xDEADBEEF            /* Checksum of boot file */
--bi_reserved:  .space (10*4)               /* Reserved */
-+                 -boot-info-table option If not, the values in this
-+                 table are default values that we can use to get us
-+                 what we need, at least under a certain set of assumptions. */
-+bi_pvd:       .long 16                /* LBA of primary volume descript */
-+bi_file:      .long 0                 /* LBA of boot file */
-+bi_length:    .long 0xDEADBEEF        /* Length of boot file */
-+bi_csum:      .long 0xDEADBEEF        /* Checksum of boot file */
-+bi_reserved:  .space (10*4)           /* Reserved */
- real_start:
-       xor     %ax, %ax
-@@ -92,10 +94,28 @@
-       /* save drive reference first thing! */
-       mov     %dl, ABS(BootDrive)
--      /* print a notification message on the screen */
--      MSG(notification_string)
-+      /* check if machine support IBM/MS int 13h extensions */
-+      mov     $0x41, %ah
-+      mov     $0x55AA, %bx
-+      int     $0x13
-+      jnc     load_image
-+
-+      /* bios doesn't support int 13h extensions, print error messages */
-+      MSG(int13_error_string1)
-+      MSG(notification_done)
-+      MSG(int13_error_string2)
-+      MSG(notification_done)
-+      MSG(int13_error_string3)
-+      MSG(notification_done)
-+      /* even when bios says that it doesn't support int 13h
-+           extensions, do not stop here and try to load image anyway,
-+           because some bioses says that there isn't support for
-+           extended functions but have the needed extended read function
-+           (int 13h, function AH=42h) */
- load_image:
-+      /* print a notification message on the screen */
-+      MSG(notification_string)
-       /* Set up boot file sector, size, load address */
-       mov     ABS(bi_length), %eax
-       add     $(ISO_SECTOR_SIZE-1), %eax
-@@ -105,6 +125,8 @@
-       mov     %bx, %es
-       xor     %bx, %bx
-       mov     ABS(bi_file), %eax
-+      inc     %eax                /* do not reload the first sector (this code) */
-+      dec     %bp                 /* this way we have more room for code in stage1 */
-       call    getlinsec
-       mov     %ds, %ax
-       mov     %ax, %es
-@@ -115,7 +137,7 @@
-       mov     $ABS(firstlist - BOOTSEC_LISTSIZE), %si
-       mov     (%si), %ebp
-       mov     ABS(BootDrive), %dl         /* this makes sure %dl is our "boot" drive */
--      ljmp    $0, $(STAGE_ADDR+SECTOR_SIZE)  /* jump to main() in asm.S */
-+      ljmp    $0, $(STAGE_ADDR)           /* jump to main() in asm.S */
- /* go here when you need to stop the machine hard after an error condition */
- stop: jmp     stop
-@@ -171,11 +193,11 @@
-  */
- xint13:
-       movb    $6, ABS(RetryCount)
--      pushal
- .try:
-+      pushal
-       int     $0x13
-       jc      1f
--      add     $(8*4), %sp                 /* Clean up stack */
-+      popal                               /* Clean up stack */
-       ret
- 1:
-       mov     %ah, %dl                    /* Save error code */
-@@ -276,6 +298,10 @@
- read_error_string:    .string "Read error 0x"
-+int13_error_string1:  .string "Support for IBM/MS INT 13h extensions not found"
-+int13_error_string2:  .string "GRUB cannot be loaded if int 13h/function AH=42h isn't present"
-+int13_error_string3:  .string "Trying to load stage 2 anyway..."
-+
- /*
-  * EBIOS disk address packet
-  */
-@@ -306,7 +332,8 @@
-       .word 0
-       .word 0
--      . = _start + SECTOR_SIZE - BOOTSEC_LISTSIZE
-+      /* size of the code we can place between main body and fixed top location */
-+      . = _start + 1536 - BOOTSEC_LISTSIZE
-       /* fill the first data listing with the default */
- blocklist_default_start:/* this is the sector start parameter, in logical
-@@ -321,6 +348,12 @@
- #endif
- blocklist_default_seg:        /* this is the segment of the starting address
-                          to load the data into */
--      .word (STAGE_ADDR + SECTOR_SIZE) >> 4
-+      .word (STAGE_ADDR) >> 4
- firstlist:    /* this label has to be after the list data!!! */
-+
-+      /* this is a workaround to allow more code to be added in stage1,
-+         it allows more code to be added for this stage, but for this
-+         we can't reload the first sector. So we have to align the code
-+         to ISO_SECTOR_SIZE. */
-+      . = _start + ISO_SECTOR_SIZE
-diff -Naur grub-0.97.orig/util/grub-install.in grub-0.97/util/grub-install.in
---- grub-0.97.orig/util/grub-install.in        2004-07-24 11:57:31.000000000 -0700
-+++ grub-0.97/util/grub-install.in     2006-05-28 20:30:31.484088268 -0700
-@@ -336,6 +336,10 @@
-     # Create a safe temporary file.
-     test -n "$mklog" && log_file=`$mklog`
-+    # Before all invocations of the grub shell, call sync to make sure
-+    # the raw device is in sync with any bufferring in filesystems.
-+    sync
-+ 
-     $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
- quit
- EOF
-@@ -450,6 +454,10 @@
- # Create a safe temporary file.
- test -n "$mklog" && log_file=`$mklog`
-+# Before all invocations of the grub shell, call sync to make sure
-+# the raw device is in sync with any bufferring in filesystems.
-+sync
-+
- # Now perform the installation.
- $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
- root $root_drive
diff --git a/src/patches/grub-0.97-dmraid-partition-names.patch b/src/patches/grub-0.97-dmraid-partition-names.patch
deleted file mode 100644 (file)
index 9390b29..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- grub-0.97/lib/device.c.dmraid-partition-names      2006-02-13 18:53:59.000000000 -0500
-+++ grub-0.97/lib/device.c     2006-02-13 18:56:04.000000000 -0500
-@@ -1106,6 +1106,7 @@
-          /* Compaq smart and others */
-          (strncmp(dev, "/dev/ida/", 9) == 0 ||
-           strncmp(dev, "/dev/ataraid/", 13) == 0 ||
-+          strncmp(dev, "/dev/mapper/", 12) == 0 || 
-           strncmp(dev, "/dev/cciss/", 11) == 0 ||
-           strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
-          ((partition >> 16) & 0xFF) + 1);
diff --git a/src/patches/grub-0.97-dmraid-recheck-bad.patch b/src/patches/grub-0.97-dmraid-recheck-bad.patch
deleted file mode 100644 (file)
index 49b33ae..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- grub-0.97/util/grub-install.in.dmraid-recheck-bad  2006-01-13 17:04:26.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-01-13 17:05:00.000000000 -0500
-@@ -415,6 +415,14 @@
- grubdir=${bootdir}/grub
- device_map=${grubdir}/device.map
-+if [ "$recheck" == "yes" ]; then
-+    if grep 'mapper' ${device_map} >/dev/null; then
-+      echo 'grub-install does not support reprobing of device.map when' 1>&2
-+      echo 'using a device-mapper based boot device.' 1>&2
-+      exit 1
-+    fi
-+fi
-+
- # if they just want the images copied, copy the images and then exit
- if test $justcopy = yes; then
-     copy_images
diff --git a/src/patches/grub-0.97-dmraid.patch b/src/patches/grub-0.97-dmraid.patch
deleted file mode 100644 (file)
index 5aad8c4..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
---- grub-0.97/util/grub-install.in.dmraid      2006-01-13 16:40:24.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-01-13 16:40:37.000000000 -0500
-@@ -101,17 +101,24 @@
-     # Break the device name into the disk part and the partition part.
-     case "$host_os" in
-     linux*)
--      tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-+      tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
-+              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-                                 -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
-                                 -e 's%\(fd[0-9]*\)$%\1%' \
-                                 -e 's%/part[0-9]*$%/disc%' \
--                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
--      tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-+                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
-+        -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-+      tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-+              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-+              sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-                                 -e 's%.*d[0-9]*p%%' \
-                                 -e 's%.*/fd[0-9]*$%%' \
-                                 -e 's%.*/floppy/[0-9]*$%%' \
-                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
--                                -e 's%.*c[0-7]d[0-9]*p%%'`
-+                                -e 's%.*c[0-7]d[0-9]*p%%' \
-+        -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-+              grep -v '.*/mapper/.*'`
-       ;;
-     gnu*)
-       tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
-@@ -253,6 +260,43 @@
-     return 0
- }
-+# Usage: stat_device file
-+# Find major:minor of a device node.
-+stat_device() {
-+    majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
-+    if test -z "$majmin"; then
-+      echo "Could not find device for $1" 2>&1
-+      exit 1
-+    fi
-+
-+    echo "$majmin"
-+}
-+
-+# Usage: find_mapper_device file
-+# Find a file in /dev/mapper with the same major:minor as the specified node.
-+find_mapper_device() {
-+    if [ -b "$1" ]; then
-+      dev="$1"
-+    else
-+      mntpnt=`echo "$1" | sed 's,/,\\\\/,g'`
-+      dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
-+    fi
-+    if test -z "$dev"; then
-+      echo "Could not find device for $1" 2>&1
-+      exit 1
-+    fi
-+      
-+    majmin=`stat_device $dev`
-+    for x in /dev/mapper/* ; do
-+      devmajmin=`stat_device "$x"`
-+      if [ "$majmin" == "$devmajmin" ]; then
-+          echo "$x"
-+          return 0
-+      fi
-+    done
-+    return 1
-+}
-+
- # Usage: find_device file
- # Find block device on which the file resides.
- find_device () {
-@@ -265,9 +309,14 @@
-       exit 1
-     fi
--    tmp_fname=`resolve_symlink $tmp_fname`
-+    ret_fname=`resolve_symlink $tmp_fname`
-+    tmp_fname=`find_mapper_device $ret_fname`
-+    if test -n "$tmp_fname"; then
-+      ret_fname="$tmp_fname"
-+    fi
--    echo "$tmp_fname"
-+    echo "$ret_fname"
-+    return 0
- }
- copy_images() {
diff --git a/src/patches/grub-0.97-install.in.patch b/src/patches/grub-0.97-install.in.patch
deleted file mode 100644 (file)
index a9f2aef..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
---- grub-0.97/util/grub-install.in.install     2005-12-12 18:15:45.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-12 18:18:11.000000000 -0500
-@@ -324,6 +324,15 @@
- test -d "$bootdir" || mkdir "$bootdir" || exit 1
- test -d "$grubdir" || mkdir "$grubdir" || exit 1
-+# Copy the GRUB images to the GRUB directory.
-+for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
-+    rm -f $file || exit 1
-+done
-+for file in \
-+    ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
-+    cp -f $file ${grubdir} || exit 1
-+done
-+
- # If --recheck is specified, remove the device map, if present.
- if test $recheck = yes; then
-     rm -f $device_map
-@@ -406,15 +415,6 @@
-     exit 1
- fi
--# Copy the GRUB images to the GRUB directory.
--for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
--    rm -f $file || exit 1
--done
--for file in \
--    ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
--    cp -f $file ${grubdir} || exit 1
--done
--
- # Make a default file.
- ${grub_set_default} --root-directory=${rootdir} default
diff --git a/src/patches/grub-0.97-mactel-kbd.patch b/src/patches/grub-0.97-mactel-kbd.patch
deleted file mode 100644 (file)
index f1de19f..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
---- grub-0.97/stage2/asm.S.mactel-kbd  2006-06-12 17:00:10.000000000 -0400
-+++ grub-0.97/stage2/asm.S     2006-06-12 17:03:38.000000000 -0400
-@@ -1651,7 +1651,30 @@
-       jnz     3f
-       ret
--3:    /* use keyboard controller */
-+3:    /*
-+      * try to switch gateA20 using PORT92, the "Fast A20 and Init"
-+      * register
-+      */
-+      mov     $0x92, %dx
-+      inb     %dx, %al
-+      /* skip the port92 code if it's unimplemented (read returns 0xff) */
-+      cmpb    $0xff, %al
-+      jz      6f
-+
-+      /* set or clear bit1, the ALT_A20_GATE bit */
-+      movb    4(%esp), %ah
-+      testb   %ah, %ah
-+      jz      4f
-+      orb     $2, %al
-+      jmp     5f
-+4:    and     $0xfd, %al
-+
-+      /* clear the INIT_NOW bit; don't accidently reset the machine */
-+5:    and     $0xfe, %al
-+      outb    %al, %dx
-+
-+
-+6:    /* use keyboard controller */
-       pushl   %eax
-       call    gloop1
-@@ -1661,9 +1684,12 @@
- gloopint1:
-       inb     $K_STATUS
-+      cmpb    $0xff, %al
-+      jz      gloopint1_done
-       andb    $K_IBUF_FUL, %al
-       jnz     gloopint1
-+gloopint1_done:
-       movb    $KB_OUTPUT_MASK, %al
-       cmpb    $0, 0x8(%esp)
-       jz      gdoit
-@@ -1684,6 +1710,8 @@
- gloop1:
-       inb     $K_STATUS
-+      cmpb    $0xff, %al
-+      jz      gloop2ret
-       andb    $K_IBUF_FUL, %al
-       jnz     gloop1
-@@ -1994,8 +2022,25 @@
-       call    EXT_C(prot_to_real)
-       .code16
-+.again:
-+      mov     $0x11, %ah              /* poll kbd */
-       int     $0x16
-+      jz      .again
-+#if 0
-+/* XXX handle serial here? -- pj */
-+      jnz     .kbd
-+#endif
-+.kbd:
-+      mov     $0x10, %ah
-+      int     $0x16
-+      cmp     $0xe0, %al
-+      jnz     .not_ext
-+      xor     %al, %al
-+.not_ext:
-+      and     %al, %al
-+      jz      .func_key
-+.func_key:
-       movw    %ax, %dx                /* real_to_prot uses %eax */
-       call    translate_keycode
-       call    remap_ascii_char
-@@ -2003,7 +2048,7 @@
-       DATA32  call    EXT_C(real_to_prot)
-       .code32
--      movw    %dx, %ax
-+      mov     %dx, %ax
-       pop     %ebp
-       ret
-@@ -2029,7 +2074,7 @@
-       call    EXT_C(prot_to_real)     /* enter real mode */
-       .code16
--      movb    $0x1, %ah
-+      movb    $0x11, %ah
-       int     $0x16
-       DATA32  jz      notpending
diff --git a/src/patches/grub-0.97-mdadm-path.patch b/src/patches/grub-0.97-mdadm-path.patch
deleted file mode 100644 (file)
index fff301c..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- grub-0.97/util/grub-install.in.mdadm-path  2005-12-12 18:42:23.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2005-12-12 18:44:15.000000000 -0500
-@@ -30,5 +30,6 @@
- pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
-+mdadm=${sbindir}/mdadm
- log_file=/tmp/grub-install.log.$$
- img_file=/tmp/grub-install.img.$$
-@@ -217,7 +218,7 @@
- is_raid1_device () {
-     case "$host_os" in
-     linux*)
--      level=`mdadm --query --detail $1 2>/dev/null | \
-+      level=`$mdadm --query --detail $1 2>/dev/null | \
-               awk '/Raid Level :/ {print $4}'` 
-       if [ "$level" = "raid1" ]; then
-           return 0
-@@ -236,7 +237,7 @@
-     linux*)
-       if is_raid1_device $source_device ; then
-           list=""
--          for device in `mdadm --query --detail "${source_device}" | \
-+          for device in `$mdadm --query --detail "${source_device}" | \
-                   awk '/\/dev\/[^(md)]/ {print $7}'` ; do
-               list="$list $device"
-           done
diff --git a/src/patches/grub-0.97-mpath.patch b/src/patches/grub-0.97-mpath.patch
deleted file mode 100644 (file)
index 4b7edf3..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
---- grub-0.97/util/grub-install.in.mpath       2006-08-02 17:21:53.000000000 -0400
-+++ grub-0.97/util/grub-install.in     2006-08-02 17:23:23.000000000 -0400
-@@ -107,6 +107,7 @@
-                                 -e 's%\(fd[0-9]*\)$%\1%' \
-                                 -e 's%/part[0-9]*$%/disc%' \
-                                 -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
-+        -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
-         -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
-@@ -116,6 +117,7 @@
-                                 -e 's%.*/floppy/[0-9]*$%%' \
-                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
-                                 -e 's%.*c[0-7]d[0-9]*p%%' \
-+        -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
-         -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
-               grep -v '.*/mapper/.*'`
-       ;;
diff --git a/src/patches/grub-0.97-nx-multiinstall.patch b/src/patches/grub-0.97-nx-multiinstall.patch
deleted file mode 100644 (file)
index f0e4ec0..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-2006-03-09  Alexandre Oliva  <oliva@gnu.org>
-
-       * lib/builtins.c (install_blocklist_helper): Move static
-       last_lenght...
-       (install_func_context): ... here.
-       (install_func): Reset it.
-
-Index: grub-0.97/stage2/builtins.c
-===================================================================
---- grub-0.97.orig/stage2/builtins.c   2006-03-09 10:26:41.000000000 -0300
-+++ grub-0.97/stage2/builtins.c        2006-03-09 11:36:18.000000000 -0300
-@@ -1926,11 +1926,13 @@ static struct {
-       int saved_sector;
-       int installaddr;
-       int installlist;
-+      int last_length;
-       char *stage2_first_buffer;
- } install_func_context = {
-       .saved_sector = 0,
-       .installaddr = 0,
-       .installlist = 0,
-+      .last_length = SECTOR_SIZE,
-       .stage2_first_buffer = NULL,
- };
-@@ -1960,19 +1962,19 @@ install_blocklist_helper (int sector, in
-   int *installlist = &install_func_context.installlist;
-   char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-   /* Was the last sector full? */
--  static int last_length = SECTOR_SIZE;
-+  int *last_length = &install_func_context.last_length;
-   if (debug)
-     printf("[%d]", sector);
--  if (offset != 0 || last_length != SECTOR_SIZE)
-+  if (offset != 0 || *last_length != SECTOR_SIZE)
-     {
-       /* We found a non-sector-aligned data block. */
-       errnum = ERR_UNALIGNED;
-       return;
-     }
--  last_length = length;
-+  *last_length = length;
-   if (*((unsigned long *) (*installlist - 4))
-       + *((unsigned short *) *installlist) != sector
-@@ -2027,7 +2029,11 @@ install_func (char *arg, int flags)
-   int is_open = 0;
-   /* If LBA is forced?  */
-   int is_force_lba = 0;
-+  int *last_length = &install_func_context.last_length;
-   
-+  /* Reset state.  */
-+  *last_length = SECTOR_SIZE;
-+
-   *stage2_first_buffer = old_sect + SECTOR_SIZE;
- #ifdef GRUB_UTIL
-   /* If the Stage 2 is in a partition mounted by an OS, this will store
diff --git a/src/patches/grub-0.97-nxstack.patch b/src/patches/grub-0.97-nxstack.patch
deleted file mode 100644 (file)
index 92742cd..0000000
+++ /dev/null
@@ -1,615 +0,0 @@
---- grub-0.97/stage2/shared.h.nxstack  2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/stage2/shared.h  2005-12-12 18:31:42.000000000 -0500
-@@ -36,8 +36,8 @@
- /* Maybe redirect memory requests through grub_scratch_mem. */
- #ifdef GRUB_UTIL
--extern char *grub_scratch_mem;
--# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
-+extern void *grub_scratch_mem;
-+# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
- # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
- #else
- # define RAW_ADDR(x) (x)
---- grub-0.97/stage2/builtins.c.nxstack        2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2005-12-12 18:41:47.000000000 -0500
-@@ -131,62 +131,97 @@
- }
\f
-+/* blocklist_read_helper nee disk_read_blocklist_func was a nested
-+ * function, to which pointers were taken and exposed globally.  Even
-+ * in the GNU-C nested functions extension, they have local linkage,
-+ * and aren't guaranteed to be accessable *at all* outside of their 
-+ * containing scope.
-+ *
-+ * Above and beyond all of that, the variables within blocklist_func_context
-+ * are originally local variables, with local (not even static) linkage,
-+ * from within blocklist_func.  These were each referenced by
-+ * disk_read_blocklist_func, which is only called from other functions
-+ * through a globally scoped pointer.
-+ * 
-+ * The documentation in GCC actually uses the words "all hell will break
-+ * loose" to describe this scenario.
-+ *
-+ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
-+ * about it (possibly because of the scoping madness?)
-+ */
-+   
-+static struct {
-+      int start_sector;
-+      int num_sectors;
-+      int num_entries;
-+      int last_length;
-+} blocklist_func_context = {
-+      .start_sector = 0,
-+      .num_sectors = 0,
-+      .num_entries = 0,
-+      .last_length = 0
-+};
-+
-+/* Collect contiguous blocks into one entry as many as possible,
-+   and print the blocklist notation on the screen.  */
-+static void
-+blocklist_read_helper (int sector, int offset, int length)
-+{
-+  int *start_sector = &blocklist_func_context.start_sector;
-+  int *num_sectors = &blocklist_func_context.num_sectors;
-+  int *num_entries = &blocklist_func_context.num_entries;
-+  int *last_length = &blocklist_func_context.last_length;
-+
-+  if (*num_sectors > 0)
-+  {
-+    if (*start_sector + *num_sectors == sector
-+      && offset == 0 && *last_length == SECTOR_SIZE)
-+    {
-+      *num_sectors++;
-+      *last_length = length;
-+      return;
-+    }
-+    else
-+    {
-+      if (*last_length == SECTOR_SIZE)
-+        grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+          *start_sector - part_start, *num_sectors);
-+      else if (*num_sectors > 1)
-+        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
-+          *start_sector - part_start, *num_sectors-1,
-+          *start_sector + *num_sectors-1 - part_start, 
-+          *last_length);
-+      else
-+        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
-+          *start_sector - part_start, *last_length);
-+      *num_entries++;
-+      *num_sectors = 0;
-+    }
-+  }
-+
-+  if (offset > 0)
-+  {
-+    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
-+          sector-part_start, offset, offset+length);
-+    *num_entries++;
-+  }
-+  else
-+  {
-+    *start_sector = sector;
-+    *num_sectors = 1;
-+    *last_length = length;
-+  }
-+}
-+
- /* blocklist */
- static int
- blocklist_func (char *arg, int flags)
- {
-   char *dummy = (char *) RAW_ADDR (0x100000);
--  int start_sector;
--  int num_sectors = 0;
--  int num_entries = 0;
--  int last_length = 0;
--  auto void disk_read_blocklist_func (int sector, int offset, int length);
--  
--  /* Collect contiguous blocks into one entry as many as possible,
--     and print the blocklist notation on the screen.  */
--  auto void disk_read_blocklist_func (int sector, int offset, int length)
--    {
--      if (num_sectors > 0)
--      {
--        if (start_sector + num_sectors == sector
--            && offset == 0 && last_length == SECTOR_SIZE)
--          {
--            num_sectors++;
--            last_length = length;
--            return;
--          }
--        else
--          {
--            if (last_length == SECTOR_SIZE)
--              grub_printf ("%s%d+%d", num_entries ? "," : "",
--                           start_sector - part_start, num_sectors);
--            else if (num_sectors > 1)
--              grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
--                           start_sector - part_start, num_sectors-1,
--                           start_sector + num_sectors-1 - part_start, 
--                           last_length);
--            else
--              grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
--                           start_sector - part_start, last_length);
--            num_entries++;
--            num_sectors = 0;
--          }
--      }
--
--      if (offset > 0)
--      {
--        grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
--                    sector-part_start, offset, offset+length);
--        num_entries++;
--      }
--      else
--      {
--        start_sector = sector;
--        num_sectors = 1;
--        last_length = length;
--      }
--    }
-+  int *start_sector = &blocklist_func_context.start_sector;
-+  int *num_sectors = &blocklist_func_context.num_sectors;
-+  int *num_entries = &blocklist_func_context.num_entries;
-   /* Open the file.  */
-   if (! grub_open (arg))
-@@ -206,15 +241,15 @@
-   grub_printf (")");
-   /* Read in the whole file to DUMMY.  */
--  disk_read_hook = disk_read_blocklist_func;
-+  disk_read_hook = blocklist_read_helper;
-   if (! grub_read (dummy, -1))
-     goto fail;
-   /* The last entry may not be printed yet.  Don't check if it is a
-    * full sector, since it doesn't matter if we read too much. */
--  if (num_sectors > 0)
--    grub_printf ("%s%d+%d", num_entries ? "," : "",
--               start_sector - part_start, num_sectors);
-+  if (*num_sectors > 0)
-+    grub_printf ("%s%d+%d", *num_entries ? "," : "",
-+               *start_sector - part_start, *num_sectors);
-   grub_printf ("\n");
-   
-@@ -1889,6 +1924,77 @@
\f
- /* install */
-+static struct {
-+      int saved_sector;
-+      int installaddr;
-+      int installlist;
-+      char *stage2_first_buffer;
-+} install_func_context = {
-+      .saved_sector = 0,
-+      .installaddr = 0,
-+      .installlist = 0,
-+      .stage2_first_buffer = NULL,
-+};
-+
-+/* Save the first sector of Stage2 in STAGE2_SECT.  */
-+/* Formerly disk_read_savesect_func with local scope inside install_func */
-+static void
-+install_savesect_helper(int sector, int offset, int length)
-+{
-+  if (debug)
-+    printf ("[%d]", sector);
-+
-+  /* ReiserFS has files which sometimes contain data not aligned
-+     on sector boundaries.  Returning an error is better than
-+     silently failing. */
-+  if (offset != 0 || length != SECTOR_SIZE)
-+    errnum = ERR_UNALIGNED;
-+
-+  install_func_context.saved_sector = sector;
-+}
-+
-+/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */
-+/* Formerly disk_read_blocklist_func with local scope inside install_func */
-+static void
-+install_blocklist_helper (int sector, int offset, int length)
-+{
-+  int *installaddr = &install_func_context.installaddr;
-+  int *installlist = &install_func_context.installlist;
-+  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+  /* Was the last sector full? */
-+  static int last_length = SECTOR_SIZE;
-+
-+  if (debug)
-+    printf("[%d]", sector);
-+
-+  if (offset != 0 || last_length != SECTOR_SIZE)
-+    {
-+      /* We found a non-sector-aligned data block. */
-+      errnum = ERR_UNALIGNED;
-+      return;
-+    }
-+
-+  last_length = length;
-+
-+  if (*((unsigned long *) (*installlist - 4))
-+      + *((unsigned short *) *installlist) != sector
-+      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
-+    {
-+      *installlist -= 8;
-+
-+      if (*((unsigned long *) (*installlist - 8)))
-+        errnum = ERR_WONT_FIT;
-+      else
-+        {
-+          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
-+          *((unsigned long *) (*installlist - 4)) = sector;
-+        }
-+    }
-+
-+  *((unsigned short *) *installlist) += 1;
-+  *installaddr += 512;
-+}
-+
- static int
- install_func (char *arg, int flags)
- {
-@@ -1896,8 +2002,12 @@
-   char *stage1_buffer = (char *) RAW_ADDR (0x100000);
-   char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
-   char *old_sect = stage2_buffer + SECTOR_SIZE;
--  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
--  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
-+  /* stage2_first_buffer used to be defined as:
-+   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */
-+  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
-+  /* and stage2_second_buffer was:
-+   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
-+  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
-   /* XXX: Probably SECTOR_SIZE is reasonable.  */
-   char *config_filename = stage2_second_buffer + SECTOR_SIZE;
-   char *dummy = config_filename + SECTOR_SIZE;
-@@ -1906,10 +2016,11 @@
-   int src_drive, src_partition, src_part_start;
-   int i;
-   struct geometry dest_geom, src_geom;
--  int saved_sector;
-+  int *saved_sector = &install_func_context.saved_sector;
-   int stage2_first_sector, stage2_second_sector;
-   char *ptr;
--  int installaddr, installlist;
-+  int *installaddr = &install_func_context.installaddr;
-+  int *installlist = &install_func_context.installlist;
-   /* Point to the location of the name of a configuration file in Stage 2.  */
-   char *config_file_location;
-   /* If FILE is a Stage 1.5?  */
-@@ -1918,68 +2029,14 @@
-   int is_open = 0;
-   /* If LBA is forced?  */
-   int is_force_lba = 0;
--  /* Was the last sector full? */
--  int last_length = SECTOR_SIZE;
-   
-+  *stage2_first_buffer = old_sect + SECTOR_SIZE;
- #ifdef GRUB_UTIL
-   /* If the Stage 2 is in a partition mounted by an OS, this will store
-      the filename under the OS.  */
-   char *stage2_os_file = 0;
- #endif /* GRUB_UTIL */
-   
--  auto void disk_read_savesect_func (int sector, int offset, int length);
--  auto void disk_read_blocklist_func (int sector, int offset, int length);
--  
--  /* Save the first sector of Stage2 in STAGE2_SECT.  */
--  auto void disk_read_savesect_func (int sector, int offset, int length)
--    {
--      if (debug)
--      printf ("[%d]", sector);
--
--      /* ReiserFS has files which sometimes contain data not aligned
--         on sector boundaries.  Returning an error is better than
--         silently failing. */
--      if (offset != 0 || length != SECTOR_SIZE)
--      errnum = ERR_UNALIGNED;
--
--      saved_sector = sector;
--    }
--
--  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
--     INSTALLSECT.  */
--  auto void disk_read_blocklist_func (int sector, int offset, int length)
--    {
--      if (debug)
--      printf("[%d]", sector);
--
--      if (offset != 0 || last_length != SECTOR_SIZE)
--      {
--        /* We found a non-sector-aligned data block. */
--        errnum = ERR_UNALIGNED;
--        return;
--      }
--
--      last_length = length;
--
--      if (*((unsigned long *) (installlist - 4))
--        + *((unsigned short *) installlist) != sector
--        || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
--      {
--        installlist -= 8;
--
--        if (*((unsigned long *) (installlist - 8)))
--          errnum = ERR_WONT_FIT;
--        else
--          {
--            *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
--            *((unsigned long *) (installlist - 4)) = sector;
--          }
--      }
--
--      *((unsigned short *) installlist) += 1;
--      installaddr += 512;
--    }
--
-   /* First, check the GNU-style long option.  */
-   while (1)
-     {
-@@ -2011,10 +2068,10 @@
-   addr = skip_to (0, file);
-   /* Get the installation address.  */
--  if (! safe_parse_maxint (&addr, &installaddr))
-+  if (! safe_parse_maxint (&addr, installaddr))
-     {
-       /* ADDR is not specified.  */
--      installaddr = 0;
-+      *installaddr = 0;
-       ptr = addr;
-       errnum = 0;
-     }
-@@ -2110,17 +2167,17 @@
-       = 0x9090;
-   
-   /* Read the first sector of Stage 2.  */
--  disk_read_hook = disk_read_savesect_func;
--  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-+  disk_read_hook = install_savesect_helper;
-+  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-     goto fail;
--  stage2_first_sector = saved_sector;
-+  stage2_first_sector = *saved_sector;
-   
-   /* Read the second sector of Stage 2.  */
-   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-     goto fail;
--  stage2_second_sector = saved_sector;
-+  stage2_second_sector = *saved_sector;
-   
-   /* Check for the version of Stage 2.  */
-   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
-@@ -2136,27 +2193,27 @@
-   /* If INSTALLADDR is not specified explicitly in the command-line,
-      determine it by the Stage 2 id.  */
--  if (! installaddr)
-+  if (! *installaddr)
-     {
-       if (! is_stage1_5)
-       /* Stage 2.  */
--      installaddr = 0x8000;
-+      *installaddr = 0x8000;
-       else
-       /* Stage 1.5.  */
--      installaddr = 0x2000;
-+      *installaddr = 0x2000;
-     }
-   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
-     = stage2_first_sector;
-   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
--    = installaddr;
-+    = *installaddr;
-   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
--    = installaddr >> 4;
-+    = *installaddr >> 4;
--  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
-+  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
-   while (*((unsigned long *) i))
-     {
--      if (i < (int) stage2_first_buffer
-+      if (i < (int) *stage2_first_buffer
-         || (*((int *) (i - 4)) & 0x80000000)
-         || *((unsigned short *) i) >= 0xA00
-         || *((short *) (i + 2)) == 0)
-@@ -2170,13 +2227,13 @@
-       i -= 8;
-     }
--  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
--  installaddr += SECTOR_SIZE;
-+  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
-+  *installaddr += SECTOR_SIZE;
-   
-   /* Read the whole of Stage2 except for the first sector.  */
-   grub_seek (SECTOR_SIZE);
--  disk_read_hook = disk_read_blocklist_func;
-+  disk_read_hook = install_blocklist_helper;
-   if (! grub_read (dummy, -1))
-     goto fail;
-   
-@@ -2259,7 +2316,7 @@
-         /* Skip the first sector.  */
-         grub_seek (SECTOR_SIZE);
-         
--        disk_read_hook = disk_read_savesect_func;
-+        disk_read_hook = install_savesect_helper;
-         if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
-           goto fail;
-         
-@@ -2329,7 +2386,7 @@
-         else
- #endif /* GRUB_UTIL */
-           {
--            if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
-+            if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
-               goto fail;
-           }
-       }
-@@ -2351,7 +2408,7 @@
-         goto fail;
-       }
--      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-       {
-         fclose (fp);
-         errnum = ERR_WRITE;
-@@ -2378,7 +2435,7 @@
-       goto fail;
-       if (! devwrite (stage2_first_sector - src_part_start, 1,
--                    stage2_first_buffer))
-+                    *stage2_first_buffer))
-       goto fail;
-       if (! devwrite (stage2_second_sector - src_part_start, 1,
---- grub-0.97/grub/asmstub.c.nxstack   2005-12-12 18:31:41.000000000 -0500
-+++ grub-0.97/grub/asmstub.c   2005-12-12 18:31:42.000000000 -0500
-@@ -42,6 +42,7 @@
- #include <sys/time.h>
- #include <termios.h>
- #include <signal.h>
-+#include <sys/mman.h>
- #ifdef __linux__
- # include <sys/ioctl.h>               /* ioctl */
-@@ -82,7 +83,7 @@
- struct apm_info apm_bios_info;
- /* Emulation requirements. */
--char *grub_scratch_mem = 0;
-+void *grub_scratch_mem = 0;
- struct geometry *disks = 0;
-@@ -106,14 +107,62 @@
- static unsigned int serial_speed;
- #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
-+/* This allocates page-aligned storage of the specified size, which must be
-+ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
-+ */
-+#ifdef __linux__
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
-+
-+#ifdef MAP_32BIT
-+  mmap_flags |= MAP_32BIT;
-+#endif
-+  /* Mark the simulated stack executable, as GCC uses stack trampolines
-+   * to implement nested functions. */
-+  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
-+}
-+#else /* !defined(__linux__) */
-+static void *
-+grub_mmap_alloc(size_t len)
-+{
-+  int fd = 0, offset = 0, ret = 0;
-+  void *pa = MAP_FAILED; 
-+  char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
-+  errno_t e;
-+
-+  fd = mkstemp(template);
-+  if (fd < 0)
-+    return pa;
-+
-+  unlink(template);
-+
-+  ret = ftruncate(fd, len);
-+  if (ret < 0)
-+    return pa;
-+
-+  /* Mark the simulated stack executable, as GCC uses stack trampolines
-+   * to implement nested functions. */
-+  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
-+                  MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
-+
-+  e = errno;
-+  close(fd);
-+  errno = e;
-+  return pa;
-+}
-+#endif /* defined(__linux__) */
-+
- /* The main entry point into this mess. */
- int
- grub_stage2 (void)
- {
-   /* These need to be static, because they survive our stack transitions. */
-   static int status = 0;
--  static char *realstack;
--  char *scratch, *simstack;
-+  static void *realstack;
-+  void *simstack_alloc_base, *simstack;
-+  size_t simstack_size, page_size;
-   int i;
-   auto void doit (void);
-@@ -145,9 +194,35 @@
-     }
-   assert (grub_scratch_mem == 0);
--  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
--  assert (scratch);
--  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
-+
-+  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
-+   * make sure the memory is aligned to a multiple of the system's
-+   * page size */
-+  page_size = sysconf (_SC_PAGESIZE);
-+  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
-+  if (simstack_size % page_size)
-+    {
-+      /* If we're not on a page_size boundary, round up to the next one */
-+      simstack_size &= ~(page_size-1);
-+      simstack_size += page_size;
-+    }
-+
-+  /* Add one for a PROT_NONE boundary page at each end. */
-+  simstack_size += 2 * page_size;
-+
-+  simstack_alloc_base = grub_mmap_alloc(simstack_size);
-+  assert (simstack_alloc_base != MAP_FAILED);
-+
-+  /* mark pages above and below our simstack area as innaccessable.
-+   * If the implementation we're using doesn't support that, then the
-+   * new protection modes are undefined.  It's safe to just ignore
-+   * them, though.  It'd be nice if we knew that we'd get a SEGV for
-+   * touching the area, but that's all.  it'd be nice to have. */
-+  mprotect (simstack_alloc_base, page_size, PROT_NONE);
-+  mprotect ((void *)((unsigned long)simstack_alloc_base +
-+                        simstack_size - page_size),  page_size, PROT_NONE);
-+
-+  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
-   /* FIXME: simulate the memory holes using mprot, if available. */
-@@ -220,7 +295,7 @@
-   device_map = 0;
-   free (disks);
-   disks = 0;
--  free (scratch);
-+  munmap(simstack_alloc_base, simstack_size);
-   grub_scratch_mem = 0;
-   if (serial_device)
diff --git a/src/patches/grub-0.97-once.patch b/src/patches/grub-0.97-once.patch
deleted file mode 100644 (file)
index 6fb9a8d..0000000
+++ /dev/null
@@ -1,513 +0,0 @@
---- grub-0.97/stage2/builtins.c.bootonce       2005-12-12 18:23:12.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2005-12-12 18:29:20.000000000 -0500
-@@ -3217,146 +3217,175 @@
- };
\f
--/* savedefault */
-+
-+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
-+/* Write specified default entry number into stage2 file. */
- static int
--savedefault_func (char *arg, int flags)
-+savedefault_helper(int new_default)
- {
--#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
--  unsigned long tmp_drive = saved_drive;
--  unsigned long tmp_partition = saved_partition;
--  char *default_file = (char *) DEFAULT_FILE_BUF;
--  char buf[10];
--  char sect[SECTOR_SIZE];
--  int entryno;
--  int sector_count = 0;
--  int saved_sectors[2];
--  int saved_offsets[2];
--  int saved_lengths[2];
--
--  /* Save sector information about at most two sectors.  */
--  auto void disk_read_savesect_func (int sector, int offset, int length);
--  void disk_read_savesect_func (int sector, int offset, int length)
--    {
--      if (sector_count < 2)
--      {
--        saved_sectors[sector_count] = sector;
--        saved_offsets[sector_count] = offset;
--        saved_lengths[sector_count] = length;
--      }
--      sector_count++;
--    }
--  
--  /* This command is only useful when you boot an entry from the menu
--     interface.  */
--  if (! (flags & BUILTIN_SCRIPT))
-+  char buffer[512];
-+  int *entryno_ptr;
-+
-+  /* Get the geometry of the boot drive (i.e. the disk which contains
-+     this stage2).  */
-+  if (get_diskinfo (boot_drive, &buf_geom))
-     {
--      errnum = ERR_UNRECOGNIZED;
-+      errnum = ERR_NO_DISK;
-       return 1;
-     }
--  /* Determine a saved entry number.  */
--  if (*arg)
-+  /* Load the second sector of this stage2.  */
-+  if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer))
-     {
--      if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
--      {
--        int i;
--        int index = 0;
--        
--        for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
--          {
--            if (fallback_entries[i] < 0)
--              break;
--            if (fallback_entries[i] == current_entryno)
--              {
--                index = i + 1;
--                break;
--              }
--          }
--        
--        if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
--          {
--            /* This is the last.  */
--            errnum = ERR_BAD_ARGUMENT;
--            return 1;
--          }
-+      return 1;
-+    }
--        entryno = fallback_entries[index];
--      }
--      else if (! safe_parse_maxint (&arg, &entryno))
--      return 1;
-+  /* Sanity check.  */
-+  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
-+      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
-+    {
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-     }
--  else
--    entryno = current_entryno;
-+  
-+  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
--  /* Open the default file.  */
--  saved_drive = boot_drive;
--  saved_partition = install_partition;
--  if (grub_open (default_file))
-+  /* Check if the saved entry number differs from current entry number.  */
-+  if (*entryno_ptr != new_default)
-     {
--      int len;
-+      /* Overwrite the saved entry number.  */
-+      *entryno_ptr = new_default;
-       
--      disk_read_hook = disk_read_savesect_func;
--      len = grub_read (buf, sizeof (buf));
--      disk_read_hook = 0;
--      grub_close ();
-+      /* Save the image in the disk.  */
-+      if (! rawwrite (boot_drive, install_second_sector, buffer))
-+      return 1;
-       
--      if (len != sizeof (buf))
--      {
--        /* This is too small. Do not modify the file manually, please!  */
--        errnum = ERR_READ;
--        goto fail;
--      }
-+      /* Clear the cache.  */
-+      buf_track = -1;
-+    }
--      if (sector_count > 2)
--      {
--        /* Is this possible?! Too fragmented!  */
--        errnum = ERR_FSYS_CORRUPT;
--        goto fail;
--      }
--      
--      /* Set up a string to be written.  */
--      grub_memset (buf, '\n', sizeof (buf));
--      grub_sprintf (buf, "%d", entryno);
--      
--      if (saved_lengths[0] < sizeof (buf))
--      {
--        /* The file is anchored to another file and the first few bytes
--           are spanned in two sectors. Uggh...  */
--        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
--        if (! rawwrite (current_drive, saved_sectors[0], sect))
--          goto fail;
-+  return 0;
-+}
-+#endif
--        if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[1],
--                      buf + saved_lengths[0],
--                      sizeof (buf) - saved_lengths[0]);
--        if (! rawwrite (current_drive, saved_sectors[1], sect))
--          goto fail;
--      }
-+#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
-+/*
-+ * Full implementation of new `savedefault' for GRUB shell.
-+ * XXX This needs fixing for stage2 files which aren't accessible
-+ *     through a mounted filesystem.
-+ */
-+static int
-+savedefault_shell(char *arg, int flags)
-+{
-+  char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
-+  FILE *fp;
-+  char buffer[512];
-+  int *entryno_ptr;
-+  int new_default = 0;
-+  int old_default = 0;
-+
-+  while (1)
-+    {
-+      if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
-+        {
-+          stage2_os_file = arg + sizeof ("--stage2=") - 1;
-+          arg = skip_to (0, arg);
-+          nul_terminate (stage2_os_file);
-+        }
-+      else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
-+        {
-+          char *p = arg + sizeof ("--default=") - 1;
-+          if (! safe_parse_maxint (&p, &new_default))
-+            return 1;
-+          arg = skip_to (0, arg);
-+        }
-+      else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
-+        {
-+          new_default <<= 8;
-+          new_default |= STAGE2_ONCEONLY_ENTRY;
-+          arg = skip_to (0, arg);
-+        }
-       else
--      {
--        /* This is a simple case. It fits into a single sector.  */
--        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
--                       sect))
--          goto fail;
--        grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
--        if (! rawwrite (current_drive, saved_sectors[0], sect))
--          goto fail;
--      }
-+        break;
-+    }
--      /* Clear the cache.  */
--      buf_track = -1;
-+  if (! (fp = fopen(stage2_os_file, "r+")))
-+    {
-+      errnum = ERR_FILE_NOT_FOUND;
-+      return 1;
-+    }
-+  
-+  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
-+    {
-+      fclose (fp);
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+    {
-+      fclose (fp);
-+      errnum = ERR_READ;
-+      return 1;
-     }
-- fail:
--  saved_drive = tmp_drive;
--  saved_partition = tmp_partition;
--  return errnum;
-+  /* Sanity check.  */
-+  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
-+      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
-+    {
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
-+  if (new_default & STAGE2_ONCEONLY_ENTRY)
-+    {
-+      old_default=*entryno_ptr;
-+      *entryno_ptr = new_default + (old_default & 0xFF);
-+    }
-+  else
-+    {
-+      *entryno_ptr = new_default;
-+    }
-+
-+  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
-+    {
-+      fclose (fp);
-+      errnum = ERR_BAD_VERSION;
-+      return 1;
-+    }
-+  
-+  if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
-+    {
-+      fclose (fp);
-+      errnum = ERR_WRITE;
-+      return 1;
-+    }
-+  
-+  (void)fflush (fp);
-+  fclose (fp);
-+  return 0;
-+}
-+#endif
-+
-+/* savedefault */
-+static int
-+savedefault_func (char *arg, int flags)
-+{
-+#if !defined(SUPPORT_DISKLESS)
-+#if !defined(GRUB_UTIL)
-+  /* This command is only useful when you boot an entry from the menu
-+     interface.  */
-+  if (! (flags & BUILTIN_SCRIPT))
-+    {
-+      errnum = ERR_UNRECOGNIZED;
-+      return 1;
-+    }
-+
-+  return savedefault_helper(current_entryno);
-+#else /* defined(GRUB_UTIL) */
-+  return savedefault_shell(arg, flags);
-+#endif
- #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
-   errnum = ERR_UNRECOGNIZED;
-   return 1;
-@@ -3368,10 +3397,14 @@
-   "savedefault",
-   savedefault_func,
-   BUILTIN_CMDLINE,
--  "savedefault [NUM | `fallback']",
--  "Save the current entry as the default boot entry if no argument is"
--  " specified. If a number is specified, this number is saved. If"
--  " `fallback' is used, next fallback entry is saved."
-+#ifdef GRUB_UTIL
-+  "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
-+  "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
-+  " is specified, the default is reset after the next reboot."
-+#else
-+  "savedefault",
-+  "Save the current entry as the default boot entry."
-+#endif
- };
\f
-@@ -4598,6 +4631,15 @@
- static int
- timeout_func (char *arg, int flags)
- {
-+  /* One-shot default shenanigans -- don't piss around with the menu! */
-+  if (grub_timeout != -1)
-+    return 0;
-+  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
-+    {
-+      grub_timeout = 0;
-+      return 0;
-+    }
-+
-   if (! safe_parse_maxint (&arg, &grub_timeout))
-     return 1;
---- grub-0.97/stage2/shared.h.bootonce 2005-12-12 18:23:13.000000000 -0500
-+++ grub-0.97/stage2/shared.h  2005-12-12 18:23:13.000000000 -0500
-@@ -200,6 +200,8 @@
- #define STAGE2_FORCE_LBA      0x11
- #define STAGE2_VER_STR_OFFS   0x12
-+#define STAGE2_ONCEONLY_ENTRY   0x10000
-+
- /* Stage 2 identifiers */
- #define STAGE2_ID_STAGE2              0
- #define STAGE2_ID_FFS_STAGE1_5                1
---- grub-0.97/stage2/builtins.c.bootonce       2006-03-13 16:55:11.000000000 -0500
-+++ grub-0.97/stage2/builtins.c        2006-03-13 16:56:01.000000000 -0500
-@@ -761,11 +761,25 @@
- };
\f
-+#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
-+static int savedefault_helper(int);
-+#endif
- /* default */
- static int
- default_func (char *arg, int flags)
- {
- #ifndef SUPPORT_DISKLESS
-+#ifndef GRUB_UTIL
-+  /* Has a forced once-only default been specified? */
-+  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
-+    {
-+      int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
-+      grub_timeout = 0;
-+      default_entry = old_defaults >> 8;
-+      savedefault_helper(old_defaults & 0xff);
-+      return 0;
-+    }
-+#endif
-   if (grub_strcmp (arg, "saved") == 0)
-     {
-       default_entry = saved_entryno;
---- grub-0.97/stage2/stage2.c.bootonce 2006-03-13 17:27:40.000000000 -0500
-+++ grub-0.97/stage2/stage2.c  2006-03-13 17:29:11.000000000 -0500
-@@ -960,38 +960,8 @@
-       if (use_config_file)
- #endif /* GRUB_UTIL */
-       {
--        char *default_file = (char *) DEFAULT_FILE_BUF;
-         int i;
--        
--        /* Get a saved default entry if possible.  */
--        saved_entryno = 0;
--        *default_file = 0;
--        grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
--        for (i = grub_strlen(default_file); i >= 0; i--)
--          if (default_file[i] == '/')
--            {
--              i++;
--              break;
--            }
--        default_file[i] = 0;
--        grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
--        if (grub_open (default_file))
--          {
--            char buf[10]; /* This is good enough.  */
--            char *p = buf;
--            int len;
--            
--            len = grub_read (buf, sizeof (buf));
--            if (len > 0)
--              {
--                buf[sizeof (buf) - 1] = 0;
--                safe_parse_maxint (&p, &saved_entryno);
--              }
--            grub_close ();
--          }
--        errnum = ERR_NONE;
--        
-         do
-           {
-             /* STATE 0:  Before any title command.
---- grub-0.97/util/grub-install.in.bootonce    2006-03-13 17:39:35.000000000 -0500
-+++ grub-0.97/util/grub-install.in     2006-03-13 17:39:50.000000000 -0500
-@@ -30,7 +30,6 @@
- pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
- grub_shell=${sbindir}/grub
--grub_set_default=${sbindir}/grub-set-default
- log_file=/tmp/grub-install.log.$$
- img_file=/tmp/grub-install.img.$$
- rootdir=
-@@ -432,9 +431,6 @@
-     exit 1
- fi
--# Make a default file.
--${grub_set_default} --root-directory=${rootdir} default
--
- # Make sure that GRUB reads the same images as the host OS.
- test -n "$mkimg" && img_file=`$mkimg`
- test -n "$mklog" && log_file=`$mklog`
---- grub-0.97/configure.bootonce       2006-03-13 17:49:05.000000000 -0500
-+++ grub-0.97/configure        2006-03-13 17:49:16.000000000 -0500
-@@ -6135,7 +6135,7 @@
--                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default"
-+                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo"
- cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
-@@ -6754,7 +6754,6 @@
-   "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;;
-   "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;;
-   "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;;
--  "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;;
-   "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-   "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
---- grub-0.97/configure.ac.bootonce    2006-03-13 17:47:24.000000000 -0500
-+++ grub-0.97/configure.ac     2006-03-13 17:47:37.000000000 -0500
-@@ -666,5 +666,5 @@
-                docs/Makefile lib/Makefile util/Makefile \
-                grub/Makefile netboot/Makefile util/grub-image \
-                util/grub-install util/grub-md5-crypt \
--               util/grub-terminfo util/grub-set-default])
-+               util/grub-terminfo])
- AC_OUTPUT
---- grub-0.97/util/Makefile.am.bootonce        2006-03-13 17:48:39.000000000 -0500
-+++ grub-0.97/util/Makefile.am 2006-03-13 17:48:45.000000000 -0500
-@@ -1,6 +1,5 @@
- bin_PROGRAMS = mbchk
--sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
--      grub-set-default
-+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo
- noinst_SCRIPTS = grub-image mkbimage
- EXTRA_DIST = mkbimage
---- grub-0.97/util/Makefile.in.bootonce        2006-03-13 17:47:56.000000000 -0500
-+++ grub-0.97/util/Makefile.in 2006-03-13 17:48:34.000000000 -0500
-@@ -43,8 +43,7 @@
- subdir = util
- DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
-       $(srcdir)/grub-image.in $(srcdir)/grub-install.in \
--      $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \
--      $(srcdir)/grub-terminfo.in
-+      $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-terminfo.in
- ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
- am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
-       $(top_srcdir)/configure.ac
-@@ -52,8 +51,7 @@
-       $(ACLOCAL_M4)
- mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
- CONFIG_HEADER = $(top_builddir)/config.h
--CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \
--      grub-terminfo grub-set-default
-+CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt grub-terminfo 
- am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
- binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
- PROGRAMS = $(bin_PROGRAMS)
-@@ -183,8 +181,7 @@
- sharedstatedir = @sharedstatedir@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
--sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
--      grub-set-default
-+sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo
- noinst_SCRIPTS = grub-image mkbimage
- EXTRA_DIST = mkbimage
-@@ -234,8 +231,6 @@
-       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
- grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in
-       cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
--grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in
--      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
- install-binPROGRAMS: $(bin_PROGRAMS)
-       @$(NORMAL_INSTALL)
-       test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
diff --git a/src/patches/grub-0.97-prototypes.patch b/src/patches/grub-0.97-prototypes.patch
deleted file mode 100644 (file)
index 21d65d5..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- grub-0.97/acinclude.m4.prototypes  2005-12-12 19:07:24.000000000 -0500
-+++ grub-0.97/acinclude.m4     2005-12-12 19:07:56.000000000 -0500
-@@ -44,6 +44,8 @@
- [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses])
- AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
- [cat > conftest.c <<\EOF
-+void cmain(void);
-+
- void
- cmain (void)
- {
diff --git a/src/patches/grub-0.97-stderr.patch b/src/patches/grub-0.97-stderr.patch
deleted file mode 100644 (file)
index 71d20ad..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
---- grub-0.97/util/grub-install.in.stderr      2006-07-07 10:56:37.000000000 -0400
-+++ grub-0.97/util/grub-install.in     2006-07-07 11:01:35.000000000 -0400
-@@ -207,7 +207,7 @@
-       while test -L $tmp_fname; do
-               tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
-               if test -z "$tmp_new_fname"; then
--                      echo "Unrecognized ls output" 2>&1
-+                      echo "Unrecognized ls output" 1>&2
-                       exit 1
-               fi
-@@ -264,7 +264,7 @@
- stat_device() {
-     majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
-     if test -z "$majmin"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
-@@ -281,7 +281,7 @@
-       dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
-     fi
-     if test -z "$dev"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
-       
-@@ -304,11 +304,11 @@
-     tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^         ]*\).*%\1%p'`
-     if test -z "$tmp_fname"; then
--      echo "Could not find device for $1" 2>&1
-+      echo "Could not find device for $1" 1>&2
-       exit 1
-     fi
--    ret_fname=`resolve_symlink $tmp_fname`
-+    ret_fname=`resolve_symlink $tmp_fname` || exit 1
-     tmp_fname=`find_mapper_device $ret_fname`
-     if test -n "$tmp_fname"; then
-       ret_fname="$tmp_fname"
-@@ -325,7 +325,7 @@
-     done
-     for file in \
-       ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
--      cp -f $file ${grubdir} || exit 1
-+      cp -f $file ${grubdir} 1>&2 || exit 1
-     done
- }
-@@ -520,9 +520,9 @@
- # Check for INSTALL_DEVICE.
- case "$install_device" in
- /dev/*)
--    install_device=`resolve_symlink "$install_device"`
-+    install_device=`resolve_symlink "$install_device"` || exit 1
-     for install_drive in `find_real_devs $install_device` ; do
--      install_drive=`convert $install_drive`
-+      install_drive=`convert $install_drive` || exit 1
-       if is_raid1_device $install_device; then
-               install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
-       fi
-@@ -550,8 +550,8 @@
- unset install_device
- # Get the root drive.
--root_device=`find_device ${rootdir}`
--bootdir_device=`find_device ${bootdir}`
-+root_device=`find_device ${rootdir}` || exit 1
-+bootdir_device=`find_device ${bootdir}` || exit 1
- # Check if the boot directory is in the same device as the root directory.
- if test "x$root_device" != "x$bootdir_device"; then
-@@ -561,7 +561,7 @@
- fi
- # Check if the root directory exists in the same device as the grub directory.
--grubdir_device=`find_device ${grubdir}`
-+grubdir_device=`find_device ${grubdir}` || exit 1
- if test "x$grubdir_device" != "x$root_device"; then
-     # For now, cannot deal with this situation.
-@@ -582,7 +582,7 @@
- fi
- # Convert the root deviceto a GRUB drive.
--root_drive=`convert "$root_device"`
-+root_drive=`convert "$root_device"` || exit 1
- if [ "x$root_drive" = x ]; then
-     exit 1
- fi
-@@ -618,7 +618,7 @@
- for install_drive in $install_drives; do 
-     # Convert the root deviceto a GRUB drive.
--    root_drive=`convert "$root_device"`
-+    root_drive=`convert "$root_device"` || exit 1
-     if [ "x$root_drive" = x ]; then
-       exit 1
-     fi
diff --git a/src/patches/grub-0.97_grub-install_virtio.patch b/src/patches/grub-0.97_grub-install_virtio.patch
deleted file mode 100644 (file)
index 86afba9..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
---- grub-0.97/util/grub-install.in     2010-06-24 08:47:23.000000000 +0200
-+++ grub-0.97/util/grub-install.in     2010-06-24 09:20:42.000000000 +0200
-@@ -102,7 +102,7 @@
-     linux*)
-       # formats that need to be handled (disk name -> partition name):
-       # floppies: /dev/fd0
--      # normal sd/hd devices: /dev/hda -> /dev/hda3
-+      # normal sd/hd/vd devices: /dev/hda -> /dev/hda3
-       # md: /dev/md0 -> /dev/md0p0
-       # ide raid devs: /dev/ide/host0/bus0/target0/lun0/disc
-       #             -> /dev/ide/host0/bus0/target0/lun0/part1
-@@ -134,7 +134,7 @@
-       # more? 
-       tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
--              sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
-+              sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
-                         -e 's%\(/c[0-9]\+d[0-9]\+\).*$%\1%' \
-                         -e 's%\(fd[0-9]*\)$%\1%' \
-                         -e 's%/part[0-9]*$%/disc%' \
-@@ -142,7 +142,7 @@
-   -e 's%\(/mapper/[[:alnum:]]\+\(_[[:alnum:]]\+\)\+\)\p[[:digit:]]\+$%\1%'`
-       tmp_part=`echo "$1" | grep -v '/mapper/control$' |
-               grep -v '/mapper/[[:alnum:]_]\+-[[:digit:]]\+$' | uniq |
--              sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
-+              sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
-                         -e 's%.*/c[0-9]\+d[0-9]\+p\([[:digit:]]\+\)%\1%' \
-                         -e 's%.*/c[0-9]\+d[0-9]\+$%%' \
-                         -e 's%.*/fd[0-9]\+$%%' \
-@@ -509,6 +509,10 @@
- if test -f "$device_map"; then
-     :
- else
-+
-+  tmp_disk=`echo "$install_device" | grep "/dev/vd"`
-+  if test "x$tmp_disk" = x; then
-+    
-     # Create a safe temporary file.
-     test -n "$mklog" && log_file=`$mklog`
-@@ -525,6 +529,11 @@
-     fi
-     rm -f $log_file
-+
-+  else
-+    echo "Create fake device.map for virtio device $1" 1>&2
-+    echo "(hd0)    $install_device" > $device_map
-+  fi
- fi
- # Make sure that there is no duplicated entry.
diff --git a/src/patches/grub-fedora-18.patch b/src/patches/grub-fedora-18.patch
new file mode 100644 (file)
index 0000000..e87c180
--- /dev/null
@@ -0,0 +1,48870 @@
+From: Peter Jones <pjones@redhat.com>" 
+Date: Wed Apr 18 12:53:49 EDT 2012
+Subject: [PATCH] Changes from grub-0.97 to master
+
+This patch is a bundle of the changes between grub-0.97 and master.
+It can be reginerated from the git repository at:
+
+git://github.com/vathpela/grub-fedora.git
+
+Using the command:
+
+git diff grub-0.97 master
+
+ .gitignore                     |   10 
+ ChangeLog                      |   48 
+ Makefile.am                    |    7 
+ Makefile.in                    |  605 ---
+ acinclude.m4                   |    4 
+ aclocal.m4                     | 1061 -----
+ config.h.in                    |  106 
+ configure                      | 7639 -----------------------------------------
+ configure.in                   |  113 
+ docs/.gitignore                |    3 
+ docs/Makefile.am               |    9 
+ docs/Makefile.in               |  770 ----
+ docs/grub-crypt.8              |   39 
+ docs/grub-install.8            |    2 
+ docs/grub.8                    |    2 
+ docs/grub.info                 |  370 +
+ docs/grub.texi                 |   79 
+ docs/stamp-vti                 |    4 
+ docs/version.texi              |    4 
+ efi/.gitignore                 |    7 
+ efi/Makefile.am                |   76 
+ efi/byteswap.h                 |   37 
+ efi/dhcp.h                     |  133 
+ efi/efichainloader.c           |  265 +
+ efi/eficon.c                   |  306 +
+ efi/eficore.c                  |  241 +
+ efi/efidisk.c                  |  801 ++++
+ efi/efidp.c                    |  999 +++++
+ efi/efigraph.c                 | 1501 ++++++++
+ efi/efimain.c                  |  129 
+ efi/efimisc.c                  |  665 +++
+ efi/efimm.c                    |  539 ++
+ efi/efiserial.c                |  265 +
+ efi/efitftp.c                  |  228 +
+ efi/efiuga.c                   |  982 +++++
+ efi/font_8x16.c                | 4638 ++++++++++++++++++++++++
+ efi/graphics.c                 |  666 +++
+ efi/graphics.h                 |   81 
+ efi/grub/.gitignore            |    1 
+ efi/grub/efi/api.h             | 1716 +++++++++
+ efi/grub/efi/console_control.h |   59 
+ efi/grub/efi/efi.h             |   85 
+ efi/grub/efi/eficall.h         |  162 
+ efi/grub/efi/misc.h            |   60 
+ efi/grub/efi/time.h            |   31 
+ efi/grub/i386/linux.h          |  226 +
+ efi/grub/i386/types.h          |   32 
+ efi/grub/misc.h                |   71 
+ efi/grub/symbol.h              |   34 
+ efi/grub/types.h               |  158 
+ efi/grub/x86_64/linux.h        |  234 +
+ efi/grub/x86_64/types.h        |   32 
+ efi/ia32/callwrap.S            |    1 
+ efi/ia32/callwrap.c            |  131 
+ efi/ia32/loader/bin_to_h.c     |   29 
+ efi/ia32/loader/linux.c        |  648 +++
+ efi/ia32/loader/switch.S       |  118 
+ efi/ia32/loader/switch.h       |   19 
+ efi/ia32/reloc.c               |   79 
+ efi/ia32/setjmp.S              |   86 
+ efi/pxe.c                      |  460 ++
+ efi/pxe.h                      |  237 +
+ efi/ugadebug.h                 |  201 +
+ efi/x86_64/callwrap.S          |  274 +
+ efi/x86_64/crt0-efi.S          |   63 
+ efi/x86_64/elf_efi.lds         |   58 
+ efi/x86_64/loader/Makefile     |   20 
+ efi/x86_64/loader/bin_to_h.c   |   29 
+ efi/x86_64/loader/linux.c      |  760 ++++
+ efi/x86_64/loader/switch.S     |   92 
+ efi/x86_64/loader/switch.h     |   25 
+ efi/x86_64/reloc.c             |   79 
+ efi/x86_64/setjmp.S            |   56 
+ efi/xpm.c                      |  231 +
+ efi/xpm.h                      |   36 
+ grub.spec                      |  438 ++
+ grub/.gitignore                |    2 
+ grub/Makefile.am               |    2 
+ grub/Makefile.in               |  445 --
+ grub/asmstub.c                 |  194 -
+ grub/efitftp.c                 |   34 
+ grub/main.c                    |    2 
+ lib/.gitignore                 |    2 
+ lib/Makefile.in                |  416 --
+ lib/device.c                   |  360 +
+ makediff                       |   21 
+ netboot/.gitignore             |    2 
+ netboot/Makefile.in            | 1091 -----
+ netboot/etherboot.h            |   34 
+ netboot/main.c                 |    6 
+ netboot/misc.c                 |   58 
+ netboot/osdep.h                |   24 
+ stage1/.gitignore              |    2 
+ stage1/Makefile.am             |   15 
+ stage1/Makefile.in             |  433 --
+ stage1/stage1.S                |    4 
+ stage2/.gitignore              |    5 
+ stage2/Makefile.am             |   77 
+ stage2/Makefile.in             | 3250 -----------------
+ stage2/asm.S                   |  284 +
+ stage2/boot.c                  |  114 
+ stage2/builtins.c              | 1368 +++++--
+ stage2/char_io.c               |  609 ++-
+ stage2/cmdline.c               |   19 
+ stage2/common.c                |   16 
+ stage2/disk_io.c               |  213 -
+ stage2/efistubs.c              |    7 
+ stage2/efistubs.h              |    8 
+ stage2/fat.h                   |    2 
+ stage2/filesys.h               |   28 
+ stage2/fsys_ext2fs.c           |  394 +-
+ stage2/fsys_fat.c              |   41 
+ stage2/fsys_iso9660.c          |    8 
+ stage2/fsys_jfs.c              |   12 
+ stage2/fsys_minix.c            |   10 
+ stage2/fsys_reiserfs.c         |   44 
+ stage2/fsys_uefi.c             |  265 +
+ stage2/fsys_vstafs.c           |   28 
+ stage2/fsys_xfs.c              |   22 
+ stage2/gpt.h                   |   69 
+ stage2/graphics.c              |  573 +++
+ stage2/graphics.h              |   42 
+ stage2/gunzip.c                |   15 
+ stage2/iso9660.h               |    4 
+ stage2/mb_info.h               |    4 
+ stage2/pc_slice.h              |   51 
+ stage2/serial.c                |    4 
+ stage2/sha256crypt.c           |  723 +++
+ stage2/sha512crypt.c           |  795 ++++
+ stage2/shared.h                |  126 
+ stage2/smp-imps.h              |    1 
+ stage2/stage1_5.c              |    3 
+ stage2/stage2.c                |  203 -
+ stage2/start.S                 |   13 
+ stage2/term.h                  |   35 
+ stage2/tparm.c                 |   14 
+ test                           |    1 
+ util/.gitignore                |    7 
+ util/Makefile.am               |   11 
+ util/Makefile.in               |  478 --
+ util/grub-crypt.in             |   80 
+ util/grub-install.in           |  334 +
+ 142 files changed, 26410 insertions(+), 17652 deletions(-)
+
+diff --git a/.gitignore b/.gitignore
+new file mode 100644
+index 0000000..3d7295a
+--- /dev/null
++++ b/.gitignore
+@@ -0,0 +1,10 @@
++Makefile.in
++Makefile
++configure
++aclocal.m4
++autom4te.cache
++config.h
++config.h.in
++config.log
++config.status
++stamp-h1
+diff --git a/ChangeLog b/ChangeLog
+index 0f93033..9602fb9 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -772,6 +772,18 @@
+       DATA_LEN is less than or equal to MULTIBOOT_SEARCH.
+       Reported by Neelkanth Natu <neelnatu@yahoo.com>.
++2003-03-12  Leonid Lisovskiy  <lly@pisem.net>
++
++      * lib/device.c (get_drive_geometry): grub utility didn't work
++      due to uninitialized 'sector_size' struct geometry member.
++      * stage1/stage1.h (GRUB_NO_DRIVE): Constant moved from
++      stage2/shared.h and its value rolled back to 0xFF for backward
++      compatibility with original grub.
++      * stage1/stage1.S (boot_drive): Use GRUB_NO_DRIVE instead of
++      constant.
++      * stage2/bios.c (get_diskinfo): Workaround for BIOS'es that
++      has CD-ROM drive number = last harddisk + 1.
++
+ 2003-03-10  Yoshinori K. Okuji  <okuji@enbug.org>
+       From Andrew Walrond <andrew@walrond.org>:
+@@ -816,6 +828,42 @@
+       thus corrupts the stack.  This is why we specify the exactly 
+       necessary size of 0x42 bytes.
++2003-01-28  Leonid Lisovskiy  <lly@pisem.net>
++
++      ISO9660 support is added.
++
++      * stage2/fsys_iso9660.c: New file - a lot of code stolen from
++      GRUB/98 0.5.
++      * stage2/iso9660.h: Likewise.
++      * stage2/start_torito.S: New file - El Torito boot sector.
++      * stage2/Makefile.am (noinst_HEADERS): iso9660.h added.
++      (libgrub_a_SOURCES): fsys_iso9660.c added.
++      (pkgdata_DATA): iso9660_stage1_5 added.
++      (noinst_PROGRAMS): iso9660_stage1_5.exec added.
++      * configure.in (--disable-iso9660): New option.
++      * stage2/builtins.c (setup_func): Add item for ISO9660 into
++      STAGE1_5_MAP.
++      * stage2/disk_io.c (rawread): Ability to read devices with
++      sector size other than 512 added.
++      (fsys_table): Added entry for ISO9660.
++      (check_and_print_mount): Don't print error when probing
++      partition.
++      (real_open_partition): Cleanup globals after probing.
++      * stage2/filesys.h [FSYS_ISO9660]: Add entries for ISO9660
++      functions.
++      (NUM_FSYS): Added FSYS_ISO9660_NUM.
++      * stage2/shared.h (STAGE2_ID_ISO9660_STAGE1_5): New macro.
++      (GRUB_NO_DRIVE): New constant.
++      (struct geometry): New member 'sector_size'.
++      * stage2/bios.c (get_diskinfo): Request 1.xx version of
++      int13 extensions only since higher version request can
++      destroy El Torito emulation on some BIOS'es.
++      (get_cdinfo): New function - get El Torito emulation parameters.
++      * stage2/asm.S (biosdisk_int13_extensions): pass AX, instead
++      of AH for universality, save EBX,ECX,EDX registers content to
++      avoid data corruption in caller functions.
++      (get_diskinfo_int13_extensions): Removed.
++
+ 2003-01-25  Yoshinori K. Okuji  <okuji@enbug.org>
+       From Steven Dick <ssd.gnu@mmae.ucf.edu>:
+diff --git a/Makefile.am b/Makefile.am
+index 63a9a4f..9bde872 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,4 +1,9 @@
+ # Do not change this order if you don't know what you are doing.
+ AUTOMAKE_OPTIONS = 1.7 gnu
+-SUBDIRS = netboot stage2 stage1 lib grub util docs
++SUBDIRS = netboot stage2 stage1 lib util docs
++if PLATFORM_EFI
++SUBDIRS += efi
++else
++SUBDIRS += grub
++endif
+ EXTRA_DIST = BUGS MAINTENANCE
+diff --git a/Makefile.in b/Makefile.in
+deleted file mode 100644
+index 6652366..0000000
+--- a/Makefile.in
++++ /dev/null
+@@ -1,605 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = .
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+-      $(top_srcdir)/configure AUTHORS COPYING ChangeLog INSTALL NEWS \
+-      THANKS TODO compile config.guess config.sub depcomp install-sh \
+-      missing mkinstalldirs
+-subdir = .
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+- configure.lineno configure.status.lineno
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = config.h
+-CONFIG_CLEAN_FILES =
+-SOURCES =
+-DIST_SOURCES =
+-RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+-      html-recursive info-recursive install-data-recursive \
+-      install-exec-recursive install-info-recursive \
+-      install-recursive installcheck-recursive installdirs-recursive \
+-      pdf-recursive ps-recursive uninstall-info-recursive \
+-      uninstall-recursive
+-ETAGS = etags
+-CTAGS = ctags
+-DIST_SUBDIRS = $(SUBDIRS)
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-distdir = $(PACKAGE)-$(VERSION)
+-top_distdir = $(distdir)
+-am__remove_distdir = \
+-  { test ! -d $(distdir) \
+-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+-         && rm -fr $(distdir); }; }
+-DIST_ARCHIVES = $(distdir).tar.gz
+-GZIP_ENV = --best
+-distuninstallcheck_listfiles = find . -type f -print
+-distcleancheck_listfiles = find . -type f -print
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-
+-# Do not change this order if you don't know what you are doing.
+-AUTOMAKE_OPTIONS = 1.7 gnu
+-SUBDIRS = netboot stage2 stage1 lib grub util docs
+-EXTRA_DIST = BUGS MAINTENANCE
+-all: config.h
+-      $(MAKE) $(AM_MAKEFLAGS) all-recursive
+-
+-.SUFFIXES:
+-am--refresh:
+-      @:
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+-            cd $(srcdir) && $(AUTOMAKE) --gnu  \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          echo ' $(SHELL) ./config.status'; \
+-          $(SHELL) ./config.status;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      $(SHELL) ./config.status --recheck
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(srcdir) && $(AUTOCONF)
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+-
+-config.h: stamp-h1
+-      @if test ! -f $@; then \
+-        rm -f stamp-h1; \
+-        $(MAKE) stamp-h1; \
+-      else :; fi
+-
+-stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+-      @rm -f stamp-h1
+-      cd $(top_builddir) && $(SHELL) ./config.status config.h
+-$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
+-      cd $(top_srcdir) && $(AUTOHEADER)
+-      rm -f stamp-h1
+-      touch $@
+-
+-distclean-hdr:
+-      -rm -f config.h stamp-h1
+-uninstall-info-am:
+-
+-# This directory's subdirectories are mostly independent; you can cd
+-# into them and run `make' without going through this Makefile.
+-# To change the values of `make' variables: instead of editing Makefiles,
+-# (1) if the variable is set in `config.status', edit `config.status'
+-#     (which will cause the Makefiles to be regenerated when you run `make');
+-# (2) otherwise, pass the desired values on the `make' command line.
+-$(RECURSIVE_TARGETS):
+-      @set fnord $$MAKEFLAGS; amf=$$2; \
+-      dot_seen=no; \
+-      target=`echo $@ | sed s/-recursive//`; \
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        echo "Making $$target in $$subdir"; \
+-        if test "$$subdir" = "."; then \
+-          dot_seen=yes; \
+-          local_target="$$target-am"; \
+-        else \
+-          local_target="$$target"; \
+-        fi; \
+-        (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-         || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+-      done; \
+-      if test "$$dot_seen" = "no"; then \
+-        $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+-      fi; test -z "$$fail"
+-
+-mostlyclean-recursive clean-recursive distclean-recursive \
+-maintainer-clean-recursive:
+-      @set fnord $$MAKEFLAGS; amf=$$2; \
+-      dot_seen=no; \
+-      case "$@" in \
+-        distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+-        *) list='$(SUBDIRS)' ;; \
+-      esac; \
+-      rev=''; for subdir in $$list; do \
+-        if test "$$subdir" = "."; then :; else \
+-          rev="$$subdir $$rev"; \
+-        fi; \
+-      done; \
+-      rev="$$rev ."; \
+-      target=`echo $@ | sed s/-recursive//`; \
+-      for subdir in $$rev; do \
+-        echo "Making $$target in $$subdir"; \
+-        if test "$$subdir" = "."; then \
+-          local_target="$$target-am"; \
+-        else \
+-          local_target="$$target"; \
+-        fi; \
+-        (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+-         || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+-      done && test -z "$$fail"
+-tags-recursive:
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+-      done
+-ctags-recursive:
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+-      done
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+-        include_option=--etags-include; \
+-        empty_fix=.; \
+-      else \
+-        include_option=--include; \
+-        empty_fix=; \
+-      fi; \
+-      list='$(SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test ! -f $$subdir/TAGS || \
+-            tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+-        fi; \
+-      done; \
+-      list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      $(am__remove_distdir)
+-      mkdir $(distdir)
+-      $(mkdir_p) $(distdir)/util
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+-        if test "$$subdir" = .; then :; else \
+-          test -d "$(distdir)/$$subdir" \
+-          || $(mkdir_p) "$(distdir)/$$subdir" \
+-          || exit 1; \
+-          distdir=`$(am__cd) $(distdir) && pwd`; \
+-          top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
+-          (cd $$subdir && \
+-            $(MAKE) $(AM_MAKEFLAGS) \
+-              top_distdir="$$top_distdir" \
+-              distdir="$$distdir/$$subdir" \
+-              distdir) \
+-            || exit 1; \
+-        fi; \
+-      done
+-      -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+-        ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+-        ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+-      || chmod -R a+r $(distdir)
+-dist-gzip: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-dist-bzip2: distdir
+-      tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+-      $(am__remove_distdir)
+-
+-dist-tarZ: distdir
+-      tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+-      $(am__remove_distdir)
+-
+-dist-shar: distdir
+-      shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+-      $(am__remove_distdir)
+-
+-dist-zip: distdir
+-      -rm -f $(distdir).zip
+-      zip -rq $(distdir).zip $(distdir)
+-      $(am__remove_distdir)
+-
+-dist dist-all: distdir
+-      tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+-      $(am__remove_distdir)
+-
+-# This target untars the dist file and tries a VPATH configuration.  Then
+-# it guarantees that the distribution is self-contained by making another
+-# tarfile.
+-distcheck: dist
+-      case '$(DIST_ARCHIVES)' in \
+-      *.tar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+-      *.tar.bz2*) \
+-        bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+-      *.tar.Z*) \
+-        uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+-      *.shar.gz*) \
+-        GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+-      *.zip*) \
+-        unzip $(distdir).zip ;;\
+-      esac
+-      chmod -R a-w $(distdir); chmod a+w $(distdir)
+-      mkdir $(distdir)/_build
+-      mkdir $(distdir)/_inst
+-      chmod a-w $(distdir)
+-      dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+-        && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+-        && cd $(distdir)/_build \
+-        && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+-          $(DISTCHECK_CONFIGURE_FLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) \
+-        && $(MAKE) $(AM_MAKEFLAGS) dvi \
+-        && $(MAKE) $(AM_MAKEFLAGS) check \
+-        && $(MAKE) $(AM_MAKEFLAGS) install \
+-        && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+-        && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+-        && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+-              distuninstallcheck \
+-        && chmod -R a-w "$$dc_install_base" \
+-        && ({ \
+-             (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+-             && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+-                  distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+-            } || { rm -rf "$$dc_destdir"; exit 1; }) \
+-        && rm -rf "$$dc_destdir" \
+-        && $(MAKE) $(AM_MAKEFLAGS) dist \
+-        && rm -rf $(DIST_ARCHIVES) \
+-        && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+-      $(am__remove_distdir)
+-      @(echo "$(distdir) archives ready for distribution: "; \
+-        list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+-        sed -e '1{h;s/./=/g;p;x;}' -e '$${p;x;}'
+-distuninstallcheck:
+-      @cd $(distuninstallcheck_dir) \
+-      && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+-         || { echo "ERROR: files left after uninstall:" ; \
+-              if test -n "$(DESTDIR)"; then \
+-                echo "  (check DESTDIR support)"; \
+-              fi ; \
+-              $(distuninstallcheck_listfiles) ; \
+-              exit 1; } >&2
+-distcleancheck: distclean
+-      @if test '$(srcdir)' = . ; then \
+-        echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+-        exit 1 ; \
+-      fi
+-      @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+-        || { echo "ERROR: files left in build directory after distclean:" ; \
+-             $(distcleancheck_listfiles) ; \
+-             exit 1; } >&2
+-check-am: all-am
+-check: check-recursive
+-all-am: Makefile config.h
+-installdirs: installdirs-recursive
+-installdirs-am:
+-install: install-recursive
+-install-exec: install-exec-recursive
+-install-data: install-data-recursive
+-uninstall: uninstall-recursive
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-recursive
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-recursive
+-
+-clean-am: clean-generic mostlyclean-am
+-
+-distclean: distclean-recursive
+-      -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-generic distclean-hdr distclean-tags
+-
+-dvi: dvi-recursive
+-
+-dvi-am:
+-
+-html: html-recursive
+-
+-info: info-recursive
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am:
+-
+-install-info: install-info-recursive
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-recursive
+-      -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+-      -rm -rf $(top_srcdir)/autom4te.cache
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-recursive
+-
+-mostlyclean-am: mostlyclean-generic
+-
+-pdf: pdf-recursive
+-
+-pdf-am:
+-
+-ps: ps-recursive
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am
+-
+-uninstall-info: uninstall-info-recursive
+-
+-.PHONY: $(RECURSIVE_TARGETS) CTAGS GTAGS all all-am am--refresh check \
+-      check-am clean clean-generic clean-recursive ctags \
+-      ctags-recursive dist dist-all dist-bzip2 dist-gzip dist-shar \
+-      dist-tarZ dist-zip distcheck distclean distclean-generic \
+-      distclean-hdr distclean-recursive distclean-tags \
+-      distcleancheck distdir distuninstallcheck dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-strip installcheck \
+-      installcheck-am installdirs installdirs-am maintainer-clean \
+-      maintainer-clean-generic maintainer-clean-recursive \
+-      mostlyclean mostlyclean-generic mostlyclean-recursive pdf \
+-      pdf-am ps ps-am tags tags-recursive uninstall uninstall-am \
+-      uninstall-info-am
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/acinclude.m4 b/acinclude.m4
+index 368839c..1cf1d67 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -44,6 +44,8 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE],
+ [AC_MSG_CHECKING([whether ${OBJCOPY} works for absolute addresses])
+ AC_CACHE_VAL(grub_cv_prog_objcopy_absolute,
+ [cat > conftest.c <<\EOF
++void cmain(void);
++
+ void
+ cmain (void)
+ {
+@@ -57,7 +59,7 @@ else
+ fi
+ grub_cv_prog_objcopy_absolute=yes
+ for link_addr in 2000 8000 7C00; do
+-  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec]); then :
++  if AC_TRY_COMMAND([${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr -Wl,--build-id=none conftest.o -o conftest.exec]); then :
+   else
+     AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr])
+   fi
+diff --git a/aclocal.m4 b/aclocal.m4
+deleted file mode 100644
+index aa691f6..0000000
+--- a/aclocal.m4
++++ /dev/null
+@@ -1,1061 +0,0 @@
+-# generated automatically by aclocal 1.9.4 -*- Autoconf -*-
+-
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
+-# This file is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-#                                                        -*- Autoconf -*-
+-# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
+-# Generated from amversion.in; do not edit by hand.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-
+-# AM_AUTOMAKE_VERSION(VERSION)
+-# ----------------------------
+-# Automake X.Y traces this macro to ensure aclocal.m4 has been
+-# generated from the m4 files accompanying Automake X.Y.
+-AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
+-
+-# AM_SET_CURRENT_AUTOMAKE_VERSION
+-# -------------------------------
+-# Call AM_AUTOMAKE_VERSION so it can be traced.
+-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+-AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+-       [AM_AUTOMAKE_VERSION([1.9.4])])
+-
+-# AM_AUX_DIR_EXPAND
+-
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+-# $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
+-# `$srcdir', `$srcdir/..', or `$srcdir/../..'.
+-#
+-# Of course, Automake must honor this variable whenever it calls a
+-# tool from the auxiliary directory.  The problem is that $srcdir (and
+-# therefore $ac_aux_dir as well) can be either absolute or relative,
+-# depending on how configure is run.  This is pretty annoying, since
+-# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+-# source directory, any form will work fine, but in subdirectories a
+-# relative path needs to be adjusted first.
+-#
+-# $ac_aux_dir/missing
+-#    fails when called from a subdirectory if $ac_aux_dir is relative
+-# $top_srcdir/$ac_aux_dir/missing
+-#    fails if $ac_aux_dir is absolute,
+-#    fails when called from a subdirectory in a VPATH build with
+-#          a relative $ac_aux_dir
+-#
+-# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+-# are both prefixed by $srcdir.  In an in-source build this is usually
+-# harmless because $srcdir is `.', but things will broke when you
+-# start a VPATH build or use an absolute $srcdir.
+-#
+-# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+-# iff we strip the leading $srcdir from $ac_aux_dir.  That would be:
+-#   am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+-# and then we would define $MISSING as
+-#   MISSING="\${SHELL} $am_aux_dir/missing"
+-# This will work as long as MISSING is not called from configure, because
+-# unfortunately $(top_srcdir) has no meaning in configure.
+-# However there are other variables, like CC, which are often used in
+-# configure, and could therefore not use this "fixed" $ac_aux_dir.
+-#
+-# Another solution, used here, is to always expand $ac_aux_dir to an
+-# absolute PATH.  The drawback is that using absolute paths prevent a
+-# configured tree to be moved without reconfiguration.
+-
+-AC_DEFUN([AM_AUX_DIR_EXPAND],
+-[dnl Rely on autoconf to set up CDPATH properly.
+-AC_PREREQ([2.50])dnl
+-# expand $ac_aux_dir to an absolute path
+-am_aux_dir=`cd $ac_aux_dir && pwd`
+-])
+-
+-# AM_CONDITIONAL                                              -*- Autoconf -*-
+-
+-# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 6
+-
+-# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+-# -------------------------------------
+-# Define a conditional.
+-AC_DEFUN([AM_CONDITIONAL],
+-[AC_PREREQ(2.52)dnl
+- ifelse([$1], [TRUE],  [AC_FATAL([$0: invalid condition: $1])],
+-      [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+-AC_SUBST([$1_TRUE])
+-AC_SUBST([$1_FALSE])
+-if $2; then
+-  $1_TRUE=
+-  $1_FALSE='#'
+-else
+-  $1_TRUE='#'
+-  $1_FALSE=
+-fi
+-AC_CONFIG_COMMANDS_PRE(
+-[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+-  AC_MSG_ERROR([[conditional "$1" was never defined.
+-Usually this means the macro was only invoked conditionally.]])
+-fi])])
+-
+-# serial 7                                            -*- Autoconf -*-
+-
+-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-
+-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
+-# written in clear, in which case automake, when reading aclocal.m4,
+-# will think it sees a *use*, and therefore will trigger all it's
+-# C support machinery.  Also note that it means that autoscan, seeing
+-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+-
+-
+-
+-# _AM_DEPENDENCIES(NAME)
+-# ----------------------
+-# See how the compiler implements dependency checking.
+-# NAME is "CC", "CXX", "GCJ", or "OBJC".
+-# We try a few techniques and use that to set a single cache variable.
+-#
+-# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+-# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+-# dependency, and given that the user is not expected to run this macro,
+-# just rely on AC_PROG_CC.
+-AC_DEFUN([_AM_DEPENDENCIES],
+-[AC_REQUIRE([AM_SET_DEPDIR])dnl
+-AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+-AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+-AC_REQUIRE([AM_DEP_TRACK])dnl
+-
+-ifelse([$1], CC,   [depcc="$CC"   am_compiler_list=],
+-       [$1], CXX,  [depcc="$CXX"  am_compiler_list=],
+-       [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+-       [$1], GCJ,  [depcc="$GCJ"  am_compiler_list='gcc3 gcc'],
+-                   [depcc="$$1"   am_compiler_list=])
+-
+-AC_CACHE_CHECK([dependency style of $depcc],
+-               [am_cv_$1_dependencies_compiler_type],
+-[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+-  # We make a subdir and do the tests there.  Otherwise we can end up
+-  # making bogus files that we don't know about and never remove.  For
+-  # instance it was reported that on HP-UX the gcc test will end up
+-  # making a dummy file named `D' -- because `-MD' means `put the output
+-  # in D'.
+-  mkdir conftest.dir
+-  # Copy depcomp to subdir because otherwise we won't find it if we're
+-  # using a relative directory.
+-  cp "$am_depcomp" conftest.dir
+-  cd conftest.dir
+-  # We will build objects and dependencies in a subdirectory because
+-  # it helps to detect inapplicable dependency modes.  For instance
+-  # both Tru64's cc and ICC support -MD to output dependencies as a
+-  # side effect of compilation, but ICC will put the dependencies in
+-  # the current directory while Tru64 will put them in the object
+-  # directory.
+-  mkdir sub
+-
+-  am_cv_$1_dependencies_compiler_type=none
+-  if test "$am_compiler_list" = ""; then
+-     am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+-  fi
+-  for depmode in $am_compiler_list; do
+-    # Setup a source with many dependencies, because some compilers
+-    # like to wrap large dependency lists on column 80 (with \), and
+-    # we should not choose a depcomp mode which is confused by this.
+-    #
+-    # We need to recreate these files for each test, as the compiler may
+-    # overwrite some of them when testing with obscure command lines.
+-    # This happens at least with the AIX C compiler.
+-    : > sub/conftest.c
+-    for i in 1 2 3 4 5 6; do
+-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+-      # Solaris 8's {/usr,}/bin/sh.
+-      touch sub/conftst$i.h
+-    done
+-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+-
+-    case $depmode in
+-    nosideeffect)
+-      # after this tag, mechanisms are not by side-effect, so they'll
+-      # only be used when explicitly requested
+-      if test "x$enable_dependency_tracking" = xyes; then
+-      continue
+-      else
+-      break
+-      fi
+-      ;;
+-    none) break ;;
+-    esac
+-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+-    # mode.  It turns out that the SunPro C++ compiler does not properly
+-    # handle `-M -o', and we need to detect this.
+-    if depmode=$depmode \
+-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+-         >/dev/null 2>conftest.err &&
+-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+-      # icc doesn't choke on unknown options, it will just issue warnings
+-      # or remarks (even with -Werror).  So we grep stderr for any message
+-      # that says an option was ignored or not supported.
+-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+-      #   icc: Command line warning: ignoring option '-M'; no argument required
+-      # The diagnosis changed in icc 8.0:
+-      #   icc: Command line remark: option '-MP' not supported
+-      if (grep 'ignoring option' conftest.err ||
+-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+-        am_cv_$1_dependencies_compiler_type=$depmode
+-        break
+-      fi
+-    fi
+-  done
+-
+-  cd ..
+-  rm -rf conftest.dir
+-else
+-  am_cv_$1_dependencies_compiler_type=none
+-fi
+-])
+-AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+-AM_CONDITIONAL([am__fastdep$1], [
+-  test "x$enable_dependency_tracking" != xno \
+-  && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+-])
+-
+-
+-# AM_SET_DEPDIR
+-# -------------
+-# Choose a directory name for dependency files.
+-# This macro is AC_REQUIREd in _AM_DEPENDENCIES
+-AC_DEFUN([AM_SET_DEPDIR],
+-[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+-AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+-])
+-
+-
+-# AM_DEP_TRACK
+-# ------------
+-AC_DEFUN([AM_DEP_TRACK],
+-[AC_ARG_ENABLE(dependency-tracking,
+-[  --disable-dependency-tracking  speeds up one-time build
+-  --enable-dependency-tracking   do not reject slow dependency extractors])
+-if test "x$enable_dependency_tracking" != xno; then
+-  am_depcomp="$ac_aux_dir/depcomp"
+-  AMDEPBACKSLASH='\'
+-fi
+-AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+-AC_SUBST([AMDEPBACKSLASH])
+-])
+-
+-# Generate code to set up dependency tracking.   -*- Autoconf -*-
+-
+-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+-#   Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-#serial 2
+-
+-# _AM_OUTPUT_DEPENDENCY_COMMANDS
+-# ------------------------------
+-AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+-[for mf in $CONFIG_FILES; do
+-  # Strip MF so we end up with the name of the file.
+-  mf=`echo "$mf" | sed -e 's/:.*$//'`
+-  # Check whether this is an Automake generated Makefile or not.
+-  # We used to match only the files named `Makefile.in', but
+-  # some people rename them; so instead we look at the file content.
+-  # Grep'ing the first line is not enough: some people post-process
+-  # each Makefile.in and add a new line on top of each file to say so.
+-  # So let's grep whole file.
+-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+-    dirpart=`AS_DIRNAME("$mf")`
+-  else
+-    continue
+-  fi
+-  # Extract the definition of DEPDIR, am__include, and am__quote
+-  # from the Makefile without running `make'.
+-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+-  test -z "$DEPDIR" && continue
+-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+-  test -z "am__include" && continue
+-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+-  # When using ansi2knr, U may be empty or an underscore; expand it
+-  U=`sed -n 's/^U = //p' < "$mf"`
+-  # Find all dependency output files, they are included files with
+-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+-  # simplest approach to changing $(DEPDIR) to its actual value in the
+-  # expansion.
+-  for file in `sed -n "
+-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+-    # Make sure the directory exists.
+-    test -f "$dirpart/$file" && continue
+-    fdir=`AS_DIRNAME(["$file"])`
+-    AS_MKDIR_P([$dirpart/$fdir])
+-    # echo "creating $dirpart/$file"
+-    echo '# dummy' > "$dirpart/$file"
+-  done
+-done
+-])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+-
+-
+-# AM_OUTPUT_DEPENDENCY_COMMANDS
+-# -----------------------------
+-# This macro should only be invoked once -- use via AC_REQUIRE.
+-#
+-# This code is only required when automatic dependency tracking
+-# is enabled.  FIXME.  This creates each `.P' file that we will
+-# need in order to bootstrap the dependency handling code.
+-AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+-[AC_CONFIG_COMMANDS([depfiles],
+-     [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+-     [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
+-])
+-
+-# Do all the work for Automake.                            -*- Autoconf -*-
+-
+-# This macro actually does too much some checks are only needed if
+-# your package does certain things.  But this isn't really a big deal.
+-
+-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 11
+-
+-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+-# AM_INIT_AUTOMAKE([OPTIONS])
+-# -----------------------------------------------
+-# The call with PACKAGE and VERSION arguments is the old style
+-# call (pre autoconf-2.50), which is being phased out.  PACKAGE
+-# and VERSION should now be passed to AC_INIT and removed from
+-# the call to AM_INIT_AUTOMAKE.
+-# We support both call styles for the transition.  After
+-# the next Automake release, Autoconf can make the AC_INIT
+-# arguments mandatory, and then we can depend on a new Autoconf
+-# release and drop the old call support.
+-AC_DEFUN([AM_INIT_AUTOMAKE],
+-[AC_PREREQ([2.58])dnl
+-dnl Autoconf wants to disallow AM_ names.  We explicitly allow
+-dnl the ones we care about.
+-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+-AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+-AC_REQUIRE([AC_PROG_INSTALL])dnl
+-# test to see if srcdir already configured
+-if test "`cd $srcdir && pwd`" != "`pwd`" &&
+-   test -f $srcdir/config.status; then
+-  AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+-fi
+-
+-# test whether we have cygpath
+-if test -z "$CYGPATH_W"; then
+-  if (cygpath --version) >/dev/null 2>/dev/null; then
+-    CYGPATH_W='cygpath -w'
+-  else
+-    CYGPATH_W=echo
+-  fi
+-fi
+-AC_SUBST([CYGPATH_W])
+-
+-# Define the identity of the package.
+-dnl Distinguish between old-style and new-style calls.
+-m4_ifval([$2],
+-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+- AC_SUBST([PACKAGE], [$1])dnl
+- AC_SUBST([VERSION], [$2])],
+-[_AM_SET_OPTIONS([$1])dnl
+- AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+- AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+-
+-_AM_IF_OPTION([no-define],,
+-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
+- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+-
+-# Some tools Automake needs.
+-AC_REQUIRE([AM_SANITY_CHECK])dnl
+-AC_REQUIRE([AC_ARG_PROGRAM])dnl
+-AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
+-AM_MISSING_PROG(AUTOCONF, autoconf)
+-AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
+-AM_MISSING_PROG(AUTOHEADER, autoheader)
+-AM_MISSING_PROG(MAKEINFO, makeinfo)
+-AM_PROG_INSTALL_SH
+-AM_PROG_INSTALL_STRIP
+-AC_REQUIRE([AM_PROG_MKDIR_P])dnl
+-# We need awk for the "check" target.  The system "awk" is bad on
+-# some platforms.
+-AC_REQUIRE([AC_PROG_AWK])dnl
+-AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+-AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+-_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+-                           [_AM_PROG_TAR([v7])])])
+-_AM_IF_OPTION([no-dependencies],,
+-[AC_PROVIDE_IFELSE([AC_PROG_CC],
+-                  [_AM_DEPENDENCIES(CC)],
+-                  [define([AC_PROG_CC],
+-                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+-AC_PROVIDE_IFELSE([AC_PROG_CXX],
+-                  [_AM_DEPENDENCIES(CXX)],
+-                  [define([AC_PROG_CXX],
+-                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+-])
+-])
+-
+-
+-# When config.status generates a header, we must update the stamp-h file.
+-# This file resides in the same directory as the config header
+-# that is generated.  The stamp files are numbered to have different names.
+-
+-# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+-# loop where config.status creates the headers, so we can generate
+-# our stamp files there.
+-AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+-[# Compute $1's index in $config_headers.
+-_am_stamp_count=1
+-for _am_header in $config_headers :; do
+-  case $_am_header in
+-    $1 | $1:* )
+-      break ;;
+-    * )
+-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+-  esac
+-done
+-echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
+-
+-# AM_PROG_INSTALL_SH
+-# ------------------
+-# Define $install_sh.
+-
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-AC_DEFUN([AM_PROG_INSTALL_SH],
+-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+-AC_SUBST(install_sh)])
+-
+-#                                                          -*- Autoconf -*-
+-# Copyright (C) 2003  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 1
+-
+-# Check whether the underlying file-system supports filenames
+-# with a leading dot.  For instance MS-DOS doesn't.
+-AC_DEFUN([AM_SET_LEADING_DOT],
+-[rm -rf .tst 2>/dev/null
+-mkdir .tst 2>/dev/null
+-if test -d .tst; then
+-  am__leading_dot=.
+-else
+-  am__leading_dot=_
+-fi
+-rmdir .tst 2>/dev/null
+-AC_SUBST([am__leading_dot])])
+-
+-# Add --enable-maintainer-mode option to configure.
+-# From Jim Meyering
+-
+-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
+-# Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 3
+-
+-AC_DEFUN([AM_MAINTAINER_MODE],
+-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
+-  dnl maintainer-mode is disabled by default
+-  AC_ARG_ENABLE(maintainer-mode,
+-[  --enable-maintainer-mode  enable make rules and dependencies not useful
+-                        (and sometimes confusing) to the casual installer],
+-      USE_MAINTAINER_MODE=$enableval,
+-      USE_MAINTAINER_MODE=no)
+-  AC_MSG_RESULT([$USE_MAINTAINER_MODE])
+-  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+-  MAINT=$MAINTAINER_MODE_TRUE
+-  AC_SUBST(MAINT)dnl
+-]
+-)
+-
+-AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
+-
+-# Check to see how 'make' treats includes.    -*- Autoconf -*-
+-
+-# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 2
+-
+-# AM_MAKE_INCLUDE()
+-# -----------------
+-# Check to see how make treats includes.
+-AC_DEFUN([AM_MAKE_INCLUDE],
+-[am_make=${MAKE-make}
+-cat > confinc << 'END'
+-am__doit:
+-      @echo done
+-.PHONY: am__doit
+-END
+-# If we don't find an include directive, just comment out the code.
+-AC_MSG_CHECKING([for style of include used by $am_make])
+-am__include="#"
+-am__quote=
+-_am_result=none
+-# First try GNU make style include.
+-echo "include confinc" > confmf
+-# We grep out `Entering directory' and `Leaving directory'
+-# messages which can occur if `w' ends up in MAKEFLAGS.
+-# In particular we don't look at `^make:' because GNU make might
+-# be invoked under some other name (usually "gmake"), in which
+-# case it prints its new name instead of `make'.
+-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+-   am__include=include
+-   am__quote=
+-   _am_result=GNU
+-fi
+-# Now try BSD make style include.
+-if test "$am__include" = "#"; then
+-   echo '.include "confinc"' > confmf
+-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+-      am__include=.include
+-      am__quote="\""
+-      _am_result=BSD
+-   fi
+-fi
+-AC_SUBST([am__include])
+-AC_SUBST([am__quote])
+-AC_MSG_RESULT([$_am_result])
+-rm -f confinc confmf
+-])
+-
+-#  -*- Autoconf -*-
+-
+-
+-# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 3
+-
+-# AM_MISSING_PROG(NAME, PROGRAM)
+-# ------------------------------
+-AC_DEFUN([AM_MISSING_PROG],
+-[AC_REQUIRE([AM_MISSING_HAS_RUN])
+-$1=${$1-"${am_missing_run}$2"}
+-AC_SUBST($1)])
+-
+-
+-# AM_MISSING_HAS_RUN
+-# ------------------
+-# Define MISSING if not defined so far and test if it supports --run.
+-# If it does, set am_missing_run to use it, otherwise, to nothing.
+-AC_DEFUN([AM_MISSING_HAS_RUN],
+-[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+-# Use eval to expand $SHELL
+-if eval "$MISSING --run true"; then
+-  am_missing_run="$MISSING --run "
+-else
+-  am_missing_run=
+-  AC_MSG_WARN([`missing' script is too old or missing])
+-fi
+-])
+-
+-# AM_PROG_MKDIR_P
+-# ---------------
+-# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
+-
+-# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
+-# created by `make install' are always world readable, even if the
+-# installer happens to have an overly restrictive umask (e.g. 077).
+-# This was a mistake.  There are at least two reasons why we must not
+-# use `-m 0755':
+-#   - it causes special bits like SGID to be ignored,
+-#   - it may be too restrictive (some setups expect 775 directories).
+-#
+-# Do not use -m 0755 and let people choose whatever they expect by
+-# setting umask.
+-#
+-# We cannot accept any implementation of `mkdir' that recognizes `-p'.
+-# Some implementations (such as Solaris 8's) are not thread-safe: if a
+-# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
+-# concurrently, both version can detect that a/ is missing, but only
+-# one can create it and the other will error out.  Consequently we
+-# restrict ourselves to GNU make (using the --version option ensures
+-# this.)
+-AC_DEFUN([AM_PROG_MKDIR_P],
+-[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+-  # We used to keeping the `.' as first argument, in order to
+-  # allow $(mkdir_p) to be used without argument.  As in
+-  #   $(mkdir_p) $(somedir)
+-  # where $(somedir) is conditionally defined.  However this is wrong
+-  # for two reasons:
+-  #  1. if the package is installed by a user who cannot write `.'
+-  #     make install will fail,
+-  #  2. the above comment should most certainly read
+-  #     $(mkdir_p) $(DESTDIR)$(somedir)
+-  #     so it does not work when $(somedir) is undefined and
+-  #     $(DESTDIR) is not.
+-  #  To support the latter case, we have to write
+-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+-  #  so the `.' trick is pointless.
+-  mkdir_p='mkdir -p --'
+-else
+-  # On NextStep and OpenStep, the `mkdir' command does not
+-  # recognize any option.  It will interpret all options as
+-  # directories to create, and then abort because `.' already
+-  # exists.
+-  for d in ./-p ./--version;
+-  do
+-    test -d $d && rmdir $d
+-  done
+-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+-  if test -f "$ac_aux_dir/mkinstalldirs"; then
+-    mkdir_p='$(mkinstalldirs)'
+-  else
+-    mkdir_p='$(install_sh) -d'
+-  fi
+-fi
+-AC_SUBST([mkdir_p])])
+-
+-# Helper functions for option handling.                    -*- Autoconf -*-
+-
+-# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 2
+-
+-# _AM_MANGLE_OPTION(NAME)
+-# -----------------------
+-AC_DEFUN([_AM_MANGLE_OPTION],
+-[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+-
+-# _AM_SET_OPTION(NAME)
+-# ------------------------------
+-# Set option NAME.  Presently that only means defining a flag for this option.
+-AC_DEFUN([_AM_SET_OPTION],
+-[m4_define(_AM_MANGLE_OPTION([$1]), 1)])
+-
+-# _AM_SET_OPTIONS(OPTIONS)
+-# ----------------------------------
+-# OPTIONS is a space-separated list of Automake options.
+-AC_DEFUN([_AM_SET_OPTIONS],
+-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+-
+-# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+-# -------------------------------------------
+-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+-AC_DEFUN([_AM_IF_OPTION],
+-[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+-
+-#
+-# Check to make sure that the build environment is sane.
+-#
+-
+-# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 3
+-
+-# AM_SANITY_CHECK
+-# ---------------
+-AC_DEFUN([AM_SANITY_CHECK],
+-[AC_MSG_CHECKING([whether build environment is sane])
+-# Just in case
+-sleep 1
+-echo timestamp > conftest.file
+-# Do `set' in a subshell so we don't clobber the current shell's
+-# arguments.  Must try -L first in case configure is actually a
+-# symlink; some systems play weird games with the mod time of symlinks
+-# (eg FreeBSD returns the mod time of the symlink's containing
+-# directory).
+-if (
+-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+-   if test "$[*]" = "X"; then
+-      # -L didn't work.
+-      set X `ls -t $srcdir/configure conftest.file`
+-   fi
+-   rm -f conftest.file
+-   if test "$[*]" != "X $srcdir/configure conftest.file" \
+-      && test "$[*]" != "X conftest.file $srcdir/configure"; then
+-
+-      # If neither matched, then we have a broken ls.  This can happen
+-      # if, for instance, CONFIG_SHELL is bash and it inherits a
+-      # broken ls alias from the environment.  This has actually
+-      # happened.  Such a system could not be considered "sane".
+-      AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment])
+-   fi
+-
+-   test "$[2]" = conftest.file
+-   )
+-then
+-   # Ok.
+-   :
+-else
+-   AC_MSG_ERROR([newly created file is older than distributed files!
+-Check your system clock])
+-fi
+-AC_MSG_RESULT(yes)])
+-
+-# AM_PROG_INSTALL_STRIP
+-
+-# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# One issue with vendor `install' (even GNU) is that you can't
+-# specify the program used to strip binaries.  This is especially
+-# annoying in cross-compiling environments, where the build's strip
+-# is unlikely to handle the host's binaries.
+-# Fortunately install-sh will honor a STRIPPROG variable, so we
+-# always use install-sh in `make install-strip', and initialize
+-# STRIPPROG with the value of the STRIP variable (set by the user).
+-AC_DEFUN([AM_PROG_INSTALL_STRIP],
+-[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+-# Installed binaries are usually stripped using `strip' when the user
+-# run `make install-strip'.  However `strip' might not be the right
+-# tool to use in cross-compilation environments, therefore Automake
+-# will honor the `STRIP' environment variable to overrule this program.
+-dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
+-if test "$cross_compiling" != no; then
+-  AC_CHECK_TOOL([STRIP], [strip], :)
+-fi
+-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+-AC_SUBST([INSTALL_STRIP_PROGRAM])])
+-
+-# Check how to create a tarball.                            -*- Autoconf -*-
+-
+-# Copyright (C) 2004  Free Software Foundation, Inc.
+-
+-# This program is free software; you can redistribute it and/or modify
+-# it under the terms of the GNU General Public License as published by
+-# the Free Software Foundation; either version 2, or (at your option)
+-# any later version.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY; without even the implied warranty of
+-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-# GNU General Public License for more details.
+-
+-# You should have received a copy of the GNU General Public License
+-# along with this program; if not, write to the Free Software
+-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+-# 02111-1307, USA.
+-
+-# serial 1
+-
+-
+-# _AM_PROG_TAR(FORMAT)
+-# --------------------
+-# Check how to create a tarball in format FORMAT.
+-# FORMAT should be one of `v7', `ustar', or `pax'.
+-#
+-# Substitute a variable $(am__tar) that is a command
+-# writing to stdout a FORMAT-tarball containing the directory
+-# $tardir.
+-#     tardir=directory && $(am__tar) > result.tar
+-#
+-# Substitute a variable $(am__untar) that extract such
+-# a tarball read from stdin.
+-#     $(am__untar) < result.tar
+-AC_DEFUN([_AM_PROG_TAR],
+-[# Always define AMTAR for backward compatibility.
+-AM_MISSING_PROG([AMTAR], [tar])
+-m4_if([$1], [v7],
+-     [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
+-     [m4_case([$1], [ustar],, [pax],,
+-              [m4_fatal([Unknown tar format])])
+-AC_MSG_CHECKING([how to create a $1 tar archive])
+-# Loop over all known methods to create a tar archive until one works.
+-_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+-_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+-# Do not fold the above two line into one, because Tru64 sh and
+-# Solaris sh will not grok spaces in the rhs of `-'.
+-for _am_tool in $_am_tools
+-do
+-  case $_am_tool in
+-  gnutar)
+-    for _am_tar in tar gnutar gtar;
+-    do
+-      AM_RUN_LOG([$_am_tar --version]) && break
+-    done
+-    am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+-    am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+-    am__untar="$_am_tar -xf -"
+-    ;;
+-  plaintar)
+-    # Must skip GNU tar: if it does not support --format= it doesn't create
+-    # ustar tarball either.
+-    (tar --version) >/dev/null 2>&1 && continue
+-    am__tar='tar chf - "$$tardir"'
+-    am__tar_='tar chf - "$tardir"'
+-    am__untar='tar xf -'
+-    ;;
+-  pax)
+-    am__tar='pax -L -x $1 -w "$$tardir"'
+-    am__tar_='pax -L -x $1 -w "$tardir"'
+-    am__untar='pax -r'
+-    ;;
+-  cpio)
+-    am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+-    am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+-    am__untar='cpio -i -H $1 -d'
+-    ;;
+-  none)
+-    am__tar=false
+-    am__tar_=false
+-    am__untar=false
+-    ;;
+-  esac
+-
+-  # If the value was cached, stop now.  We just wanted to have am__tar
+-  # and am__untar set.
+-  test -n "${am_cv_prog_tar_$1}" && break
+-
+-  # tar/untar a dummy directory, and stop if the command works
+-  rm -rf conftest.dir
+-  mkdir conftest.dir
+-  echo GrepMe > conftest.dir/file
+-  AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+-  rm -rf conftest.dir
+-  if test -s conftest.tar; then
+-    AM_RUN_LOG([$am__untar <conftest.tar])
+-    grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+-  fi
+-done
+-rm -rf conftest.dir
+-
+-AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+-AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+-AC_SUBST([am__tar])
+-AC_SUBST([am__untar])
+-]) # _AM_PROG_TAR
+-
+-m4_include([acinclude.m4])
+diff --git a/config.h.in b/config.h.in
+deleted file mode 100644
+index 68d7c8c..0000000
+--- a/config.h.in
++++ /dev/null
+@@ -1,106 +0,0 @@
+-/* config.h.in.  Generated from configure.ac by autoheader.  */
+-
+-/* Define if an absolute indirect call/jump must NOT be prefixed with `*' */
+-#undef ABSOLUTE_WITHOUT_ASTERISK
+-
+-/* Define it to \"addr32\" or \"addr32;\" to make GAS happy */
+-#undef ADDR32
+-
+-/* Define if you don't want to pass the mem= option to Linux */
+-#undef AUTO_LINUX_MEM_OPT
+-
+-/* Define it to \"data32\" or \"data32;\" to make GAS happy */
+-#undef DATA32
+-
+-/* Define if C symbols get an underscore after compilation */
+-#undef HAVE_ASM_USCORE
+-
+-/* Define to 1 if you have the <curses.h> header file. */
+-#undef HAVE_CURSES_H
+-
+-/* Define if edata is defined */
+-#undef HAVE_EDATA_SYMBOL
+-
+-/* Define if end is defined */
+-#undef HAVE_END_SYMBOL
+-
+-/* Define to 1 if you have the <inttypes.h> header file. */
+-#undef HAVE_INTTYPES_H
+-
+-/* Define if you have a curses library */
+-#undef HAVE_LIBCURSES
+-
+-/* Define to 1 if you have the <memory.h> header file. */
+-#undef HAVE_MEMORY_H
+-
+-/* Define to 1 if you have the <ncurses/curses.h> header file. */
+-#undef HAVE_NCURSES_CURSES_H
+-
+-/* Define to 1 if you have the <ncurses.h> header file. */
+-#undef HAVE_NCURSES_H
+-
+-/* Define if opendisk() in -lutil can be used */
+-#undef HAVE_OPENDISK
+-
+-/* Define if start is defined */
+-#undef HAVE_START_SYMBOL
+-
+-/* Define to 1 if you have the <stdint.h> header file. */
+-#undef HAVE_STDINT_H
+-
+-/* Define to 1 if you have the <stdlib.h> header file. */
+-#undef HAVE_STDLIB_H
+-
+-/* Define to 1 if you have the <strings.h> header file. */
+-#undef HAVE_STRINGS_H
+-
+-/* Define to 1 if you have the <string.h> header file. */
+-#undef HAVE_STRING_H
+-
+-/* Define to 1 if you have the <sys/stat.h> header file. */
+-#undef HAVE_SYS_STAT_H
+-
+-/* Define to 1 if you have the <sys/types.h> header file. */
+-#undef HAVE_SYS_TYPES_H
+-
+-/* Define to 1 if you have the <unistd.h> header file. */
+-#undef HAVE_UNISTD_H
+-
+-/* Define if _edata is defined */
+-#undef HAVE_USCORE_EDATA_SYMBOL
+-
+-/* Define if end is defined */
+-#undef HAVE_USCORE_END_SYMBOL
+-
+-/* Define if _start is defined */
+-#undef HAVE_USCORE_START_SYMBOL
+-
+-/* Define if __bss_start is defined */
+-#undef HAVE_USCORE_USCORE_BSS_START_SYMBOL
+-
+-/* Name of package */
+-#undef PACKAGE
+-
+-/* Define to the address where bug reports for this package should be sent. */
+-#undef PACKAGE_BUGREPORT
+-
+-/* Define to the full name of this package. */
+-#undef PACKAGE_NAME
+-
+-/* Define to the full name and version of this package. */
+-#undef PACKAGE_STRING
+-
+-/* Define to the one symbol short name of this package. */
+-#undef PACKAGE_TARNAME
+-
+-/* Define to the version of this package. */
+-#undef PACKAGE_VERSION
+-
+-/* Define if there is user specified preset menu string */
+-#undef PRESET_MENU_STRING
+-
+-/* Define to 1 if you have the ANSI C header files. */
+-#undef STDC_HEADERS
+-
+-/* Version number of package */
+-#undef VERSION
+diff --git a/configure b/configure
+deleted file mode 100755
+index 537ab89..0000000
+--- a/configure
++++ /dev/null
+@@ -1,7639 +0,0 @@
+-#! /bin/sh
+-# Guess values for system-dependent variables and create Makefiles.
+-# Generated by GNU Autoconf 2.59 for GRUB 0.97.
+-#
+-# Report bugs to <bug-grub@gnu.org>.
+-#
+-# Copyright (C) 2003 Free Software Foundation, Inc.
+-# This configure script is free software; the Free Software Foundation
+-# gives unlimited permission to copy, distribute and modify it.
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
+-do
+-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-       X"$0" : 'X\(//\)$' \| \
+-       X"$0" : 'X\(/\)$' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-        /^X\/\(\/\/\)$/{ s//\1/; q; }
+-        /^X\/\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-
+-
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
+-  else
+-    PATH_SEPARATOR=:
+-  fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-       case $as_dir in
+-       /*)
+-         if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-           $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-           $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-           CONFIG_SHELL=$as_dir/$as_base
+-           export CONFIG_SHELL
+-           exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-         fi;;
+-       esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='    ' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
+-  else
+-    as_ln_s='ln -s'
+-  fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  test -d ./-p && rmdir ./-p
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS="         $as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-
+-# Name of the host.
+-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
+-# so uname gets run too.
+-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+-
+-exec 6>&1
+-
+-#
+-# Initializations.
+-#
+-ac_default_prefix=/usr/local
+-ac_config_libobj_dir=.
+-cross_compiling=no
+-subdirs=
+-MFLAGS=
+-MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
+-
+-# Maximum number of lines to put in a shell here document.
+-# This variable seems obsolete.  It should probably be removed, and
+-# only ac_max_sed_lines should be used.
+-: ${ac_max_here_lines=38}
+-
+-# Identity of this package.
+-PACKAGE_NAME='GRUB'
+-PACKAGE_TARNAME='grub'
+-PACKAGE_VERSION='0.97'
+-PACKAGE_STRING='GRUB 0.97'
+-PACKAGE_BUGREPORT='bug-grub@gnu.org'
+-
+-ac_unique_file="stage2/stage2.c"
+-# Factoring default headers for most tests.
+-ac_includes_default="\
+-#include <stdio.h>
+-#if HAVE_SYS_TYPES_H
+-# include <sys/types.h>
+-#endif
+-#if HAVE_SYS_STAT_H
+-# include <sys/stat.h>
+-#endif
+-#if STDC_HEADERS
+-# include <stdlib.h>
+-# include <stddef.h>
+-#else
+-# if HAVE_STDLIB_H
+-#  include <stdlib.h>
+-# endif
+-#endif
+-#if HAVE_STRING_H
+-# if !STDC_HEADERS && HAVE_MEMORY_H
+-#  include <memory.h>
+-# endif
+-# include <string.h>
+-#endif
+-#if HAVE_STRINGS_H
+-# include <strings.h>
+-#endif
+-#if HAVE_INTTYPES_H
+-# include <inttypes.h>
+-#else
+-# if HAVE_STDINT_H
+-#  include <stdint.h>
+-# endif
+-#endif
+-#if HAVE_UNISTD_H
+-# include <unistd.h>
+-#endif"
+-
+-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar build build_cpu build_vendor build_os host host_cpu host_vendor host_os MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT PERL CC ac_ct_CC CFLAGS LDFLAGS CPPFLAGS EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CCAS RANLIB ac_ct_RANLIB STAGE1_CFLAGS STAGE2_CFLAGS GRUB_CFLAGS OBJCOPY ac_ct_OBJCOPY GRUB_LIBS CPP EGREP NETBOOT_SUPPORT_TRUE NETBOOT_SUPPORT_FALSE DISKLESS_SUPPORT_TRUE DISKLESS_SUPPORT_FALSE HERCULES_SUPPORT_TRUE HERCULES_SUPPORT_FALSE SERIAL_SUPPORT_TRUE SERIAL_SUPPORT_FALSE SERIAL_SPEED_SIMULATION_TRUE SERIAL_SPEED_SIMULATION_FALSE BUILD_EXAMPLE_KERNEL_TRUE BUILD_EXAMPLE_KERNEL_FALSE FSYS_CFLAGS NET_CFLAGS NET_EXTRAFLAGS NETBOOT_DRIVERS CCASFLAGS LIBOBJS LTLIBOBJS'
+-ac_subst_files=''
+-
+-# Initialize some variables set by options.
+-ac_init_help=
+-ac_init_version=false
+-# The variables have the same names as the options, with
+-# dashes changed to underlines.
+-cache_file=/dev/null
+-exec_prefix=NONE
+-no_create=
+-no_recursion=
+-prefix=NONE
+-program_prefix=NONE
+-program_suffix=NONE
+-program_transform_name=s,x,x,
+-silent=
+-site=
+-srcdir=
+-verbose=
+-x_includes=NONE
+-x_libraries=NONE
+-
+-# Installation directory options.
+-# These are left unexpanded so users can "make install exec_prefix=/foo"
+-# and all the variables that are supposed to be based on exec_prefix
+-# by default will actually change.
+-# Use braces instead of parens because sh, perl, etc. also accept them.
+-bindir='${exec_prefix}/bin'
+-sbindir='${exec_prefix}/sbin'
+-libexecdir='${exec_prefix}/libexec'
+-datadir='${prefix}/share'
+-sysconfdir='${prefix}/etc'
+-sharedstatedir='${prefix}/com'
+-localstatedir='${prefix}/var'
+-libdir='${exec_prefix}/lib'
+-includedir='${prefix}/include'
+-oldincludedir='/usr/include'
+-infodir='${prefix}/info'
+-mandir='${prefix}/man'
+-
+-ac_prev=
+-for ac_option
+-do
+-  # If the previous option needs an argument, assign it.
+-  if test -n "$ac_prev"; then
+-    eval "$ac_prev=\$ac_option"
+-    ac_prev=
+-    continue
+-  fi
+-
+-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+-
+-  # Accept the important Cygnus configure options, so we can diagnose typos.
+-
+-  case $ac_option in
+-
+-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+-    ac_prev=bindir ;;
+-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+-    bindir=$ac_optarg ;;
+-
+-  -build | --build | --buil | --bui | --bu)
+-    ac_prev=build_alias ;;
+-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+-    build_alias=$ac_optarg ;;
+-
+-  -cache-file | --cache-file | --cache-fil | --cache-fi \
+-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+-    ac_prev=cache_file ;;
+-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+-    cache_file=$ac_optarg ;;
+-
+-  --config-cache | -C)
+-    cache_file=config.cache ;;
+-
+-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+-    ac_prev=datadir ;;
+-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+-  | --da=*)
+-    datadir=$ac_optarg ;;
+-
+-  -disable-* | --disable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    eval "enable_$ac_feature=no" ;;
+-
+-  -enable-* | --enable-*)
+-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_feature=`echo $ac_feature | sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+-      *) ac_optarg=yes ;;
+-    esac
+-    eval "enable_$ac_feature='$ac_optarg'" ;;
+-
+-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+-  | --exec | --exe | --ex)
+-    ac_prev=exec_prefix ;;
+-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+-  | --exec=* | --exe=* | --ex=*)
+-    exec_prefix=$ac_optarg ;;
+-
+-  -gas | --gas | --ga | --g)
+-    # Obsolete; use --with-gas.
+-    with_gas=yes ;;
+-
+-  -help | --help | --hel | --he | -h)
+-    ac_init_help=long ;;
+-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+-    ac_init_help=recursive ;;
+-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+-    ac_init_help=short ;;
+-
+-  -host | --host | --hos | --ho)
+-    ac_prev=host_alias ;;
+-  -host=* | --host=* | --hos=* | --ho=*)
+-    host_alias=$ac_optarg ;;
+-
+-  -includedir | --includedir | --includedi | --included | --include \
+-  | --includ | --inclu | --incl | --inc)
+-    ac_prev=includedir ;;
+-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+-  | --includ=* | --inclu=* | --incl=* | --inc=*)
+-    includedir=$ac_optarg ;;
+-
+-  -infodir | --infodir | --infodi | --infod | --info | --inf)
+-    ac_prev=infodir ;;
+-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+-    infodir=$ac_optarg ;;
+-
+-  -libdir | --libdir | --libdi | --libd)
+-    ac_prev=libdir ;;
+-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+-    libdir=$ac_optarg ;;
+-
+-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+-  | --libexe | --libex | --libe)
+-    ac_prev=libexecdir ;;
+-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+-  | --libexe=* | --libex=* | --libe=*)
+-    libexecdir=$ac_optarg ;;
+-
+-  -localstatedir | --localstatedir | --localstatedi | --localstated \
+-  | --localstate | --localstat | --localsta | --localst \
+-  | --locals | --local | --loca | --loc | --lo)
+-    ac_prev=localstatedir ;;
+-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+-    localstatedir=$ac_optarg ;;
+-
+-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+-    ac_prev=mandir ;;
+-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+-    mandir=$ac_optarg ;;
+-
+-  -nfp | --nfp | --nf)
+-    # Obsolete; use --without-fp.
+-    with_fp=no ;;
+-
+-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+-  | --no-cr | --no-c | -n)
+-    no_create=yes ;;
+-
+-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+-    no_recursion=yes ;;
+-
+-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+-  | --oldin | --oldi | --old | --ol | --o)
+-    ac_prev=oldincludedir ;;
+-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+-    oldincludedir=$ac_optarg ;;
+-
+-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+-    ac_prev=prefix ;;
+-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+-    prefix=$ac_optarg ;;
+-
+-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+-  | --program-pre | --program-pr | --program-p)
+-    ac_prev=program_prefix ;;
+-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+-    program_prefix=$ac_optarg ;;
+-
+-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+-  | --program-suf | --program-su | --program-s)
+-    ac_prev=program_suffix ;;
+-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+-    program_suffix=$ac_optarg ;;
+-
+-  -program-transform-name | --program-transform-name \
+-  | --program-transform-nam | --program-transform-na \
+-  | --program-transform-n | --program-transform- \
+-  | --program-transform | --program-transfor \
+-  | --program-transfo | --program-transf \
+-  | --program-trans | --program-tran \
+-  | --progr-tra | --program-tr | --program-t)
+-    ac_prev=program_transform_name ;;
+-  -program-transform-name=* | --program-transform-name=* \
+-  | --program-transform-nam=* | --program-transform-na=* \
+-  | --program-transform-n=* | --program-transform-=* \
+-  | --program-transform=* | --program-transfor=* \
+-  | --program-transfo=* | --program-transf=* \
+-  | --program-trans=* | --program-tran=* \
+-  | --progr-tra=* | --program-tr=* | --program-t=*)
+-    program_transform_name=$ac_optarg ;;
+-
+-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-  | -silent | --silent | --silen | --sile | --sil)
+-    silent=yes ;;
+-
+-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+-    ac_prev=sbindir ;;
+-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+-  | --sbi=* | --sb=*)
+-    sbindir=$ac_optarg ;;
+-
+-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+-  | --sharedst | --shareds | --shared | --share | --shar \
+-  | --sha | --sh)
+-    ac_prev=sharedstatedir ;;
+-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+-  | --sha=* | --sh=*)
+-    sharedstatedir=$ac_optarg ;;
+-
+-  -site | --site | --sit)
+-    ac_prev=site ;;
+-  -site=* | --site=* | --sit=*)
+-    site=$ac_optarg ;;
+-
+-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+-    ac_prev=srcdir ;;
+-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+-    srcdir=$ac_optarg ;;
+-
+-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+-  | --syscon | --sysco | --sysc | --sys | --sy)
+-    ac_prev=sysconfdir ;;
+-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+-    sysconfdir=$ac_optarg ;;
+-
+-  -target | --target | --targe | --targ | --tar | --ta | --t)
+-    ac_prev=target_alias ;;
+-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+-    target_alias=$ac_optarg ;;
+-
+-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+-    verbose=yes ;;
+-
+-  -version | --version | --versio | --versi | --vers | -V)
+-    ac_init_version=: ;;
+-
+-  -with-* | --with-*)
+-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_package=`echo $ac_package| sed 's/-/_/g'`
+-    case $ac_option in
+-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
+-      *) ac_optarg=yes ;;
+-    esac
+-    eval "with_$ac_package='$ac_optarg'" ;;
+-
+-  -without-* | --without-*)
+-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_package=`echo $ac_package | sed 's/-/_/g'`
+-    eval "with_$ac_package=no" ;;
+-
+-  --x)
+-    # Obsolete; use --with-x.
+-    with_x=yes ;;
+-
+-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+-  | --x-incl | --x-inc | --x-in | --x-i)
+-    ac_prev=x_includes ;;
+-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+-    x_includes=$ac_optarg ;;
+-
+-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+-    ac_prev=x_libraries ;;
+-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+-    x_libraries=$ac_optarg ;;
+-
+-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+-Try \`$0 --help' for more information." >&2
+-   { (exit 1); exit 1; }; }
+-    ;;
+-
+-  *=*)
+-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+-    # Reject names that are not valid shell variable names.
+-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
+-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+-   { (exit 1); exit 1; }; }
+-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
+-    eval "$ac_envvar='$ac_optarg'"
+-    export $ac_envvar ;;
+-
+-  *)
+-    # FIXME: should be removed in autoconf 3.0.
+-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+-    ;;
+-
+-  esac
+-done
+-
+-if test -n "$ac_prev"; then
+-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+-  { echo "$as_me: error: missing argument to $ac_option" >&2
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# Be sure to have absolute paths.
+-for ac_var in exec_prefix prefix
+-do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# Be sure to have absolute paths.
+-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
+-            localstatedir libdir includedir oldincludedir infodir mandir
+-do
+-  eval ac_val=$`echo $ac_var`
+-  case $ac_val in
+-    [\\/$]* | ?:[\\/]* ) ;;
+-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# There might be people who depend on the old broken behavior: `$host'
+-# used to hold the argument of --host etc.
+-# FIXME: To remove some day.
+-build=$build_alias
+-host=$host_alias
+-target=$target_alias
+-
+-# FIXME: To remove some day.
+-if test "x$host_alias" != x; then
+-  if test "x$build_alias" = x; then
+-    cross_compiling=maybe
+-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+-    If a cross compiler is detected then cross compile mode will be used." >&2
+-  elif test "x$build_alias" != "x$host_alias"; then
+-    cross_compiling=yes
+-  fi
+-fi
+-
+-ac_tool_prefix=
+-test -n "$host_alias" && ac_tool_prefix=$host_alias-
+-
+-test "$silent" = yes && exec 6>/dev/null
+-
+-
+-# Find the source files, if location was not specified.
+-if test -z "$srcdir"; then
+-  ac_srcdir_defaulted=yes
+-  # Try the directory containing this script, then its parent.
+-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$0" : 'X\(//\)[^/]' \| \
+-       X"$0" : 'X\(//\)$' \| \
+-       X"$0" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$0" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-  srcdir=$ac_confdir
+-  if test ! -r $srcdir/$ac_unique_file; then
+-    srcdir=..
+-  fi
+-else
+-  ac_srcdir_defaulted=no
+-fi
+-if test ! -r $srcdir/$ac_unique_file; then
+-  if test "$ac_srcdir_defaulted" = yes; then
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+-   { (exit 1); exit 1; }; }
+-  else
+-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
+-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
+-   { (exit 1); exit 1; }; }
+-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
+-ac_env_build_alias_set=${build_alias+set}
+-ac_env_build_alias_value=$build_alias
+-ac_cv_env_build_alias_set=${build_alias+set}
+-ac_cv_env_build_alias_value=$build_alias
+-ac_env_host_alias_set=${host_alias+set}
+-ac_env_host_alias_value=$host_alias
+-ac_cv_env_host_alias_set=${host_alias+set}
+-ac_cv_env_host_alias_value=$host_alias
+-ac_env_target_alias_set=${target_alias+set}
+-ac_env_target_alias_value=$target_alias
+-ac_cv_env_target_alias_set=${target_alias+set}
+-ac_cv_env_target_alias_value=$target_alias
+-ac_env_CC_set=${CC+set}
+-ac_env_CC_value=$CC
+-ac_cv_env_CC_set=${CC+set}
+-ac_cv_env_CC_value=$CC
+-ac_env_CFLAGS_set=${CFLAGS+set}
+-ac_env_CFLAGS_value=$CFLAGS
+-ac_cv_env_CFLAGS_set=${CFLAGS+set}
+-ac_cv_env_CFLAGS_value=$CFLAGS
+-ac_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_env_LDFLAGS_value=$LDFLAGS
+-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
+-ac_cv_env_LDFLAGS_value=$LDFLAGS
+-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_env_CPPFLAGS_value=$CPPFLAGS
+-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
+-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
+-ac_env_CPP_set=${CPP+set}
+-ac_env_CPP_value=$CPP
+-ac_cv_env_CPP_set=${CPP+set}
+-ac_cv_env_CPP_value=$CPP
+-
+-#
+-# Report the --help message.
+-#
+-if test "$ac_init_help" = "long"; then
+-  # Omit some internal or obsolete options to make the list less imposing.
+-  # This message is too long to be a string in the A/UX 3.1 sh.
+-  cat <<_ACEOF
+-\`configure' configures GRUB 0.97 to adapt to many kinds of systems.
+-
+-Usage: $0 [OPTION]... [VAR=VALUE]...
+-
+-To assign environment variables (e.g., CC, CFLAGS...), specify them as
+-VAR=VALUE.  See below for descriptions of some of the useful variables.
+-
+-Defaults for the options are specified in brackets.
+-
+-Configuration:
+-  -h, --help              display this help and exit
+-      --help=short        display options specific to this package
+-      --help=recursive    display the short help of all the included packages
+-  -V, --version           display version information and exit
+-  -q, --quiet, --silent   do not print \`checking...' messages
+-      --cache-file=FILE   cache test results in FILE [disabled]
+-  -C, --config-cache      alias for \`--cache-file=config.cache'
+-  -n, --no-create         do not create output files
+-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+-
+-_ACEOF
+-
+-  cat <<_ACEOF
+-Installation directories:
+-  --prefix=PREFIX         install architecture-independent files in PREFIX
+-                        [$ac_default_prefix]
+-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+-                        [PREFIX]
+-
+-By default, \`make install' will install all the files in
+-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
+-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+-for instance \`--prefix=\$HOME'.
+-
+-For better control, use the options below.
+-
+-Fine tuning of the installation directories:
+-  --bindir=DIR           user executables [EPREFIX/bin]
+-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
+-  --libexecdir=DIR       program executables [EPREFIX/libexec]
+-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
+-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
+-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
+-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
+-  --libdir=DIR           object code libraries [EPREFIX/lib]
+-  --includedir=DIR       C header files [PREFIX/include]
+-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
+-  --infodir=DIR          info documentation [PREFIX/info]
+-  --mandir=DIR           man documentation [PREFIX/man]
+-_ACEOF
+-
+-  cat <<\_ACEOF
+-
+-Program names:
+-  --program-prefix=PREFIX            prepend PREFIX to installed program names
+-  --program-suffix=SUFFIX            append SUFFIX to installed program names
+-  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
+-
+-System types:
+-  --build=BUILD     configure for building on BUILD [guessed]
+-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
+-_ACEOF
+-fi
+-
+-if test -n "$ac_init_help"; then
+-  case $ac_init_help in
+-     short | recursive ) echo "Configuration of GRUB 0.97:";;
+-   esac
+-  cat <<\_ACEOF
+-
+-Optional Features:
+-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+-  --enable-maintainer-mode  enable make rules and dependencies not useful
+-                        (and sometimes confusing) to the casual installer
+-  --disable-dependency-tracking  speeds up one-time build
+-  --enable-dependency-tracking   do not reject slow dependency extractors
+-  --disable-ext2fs        disable ext2fs support in Stage 2
+-  --disable-fat           disable FAT support in Stage 2
+-  --disable-ffs           disable FFS support in Stage 2
+-  --disable-ufs2          disable UFS2 support in Stage 2
+-  --disable-minix         disable Minix fs support in Stage 2
+-  --disable-reiserfs      disable ReiserFS support in Stage 2
+-  --disable-vstafs        disable VSTa FS support in Stage 2
+-  --disable-jfs           disable IBM JFS support in Stage 2
+-  --disable-xfs           disable SGI XFS support in Stage 2
+-  --disable-iso9660       disable ISO9660 support in Stage 2
+-  --disable-gunzip        disable decompression in Stage 2
+-  --disable-md5-password  disable MD5 password support in Stage 2
+-  --disable-packet-retransmission
+-                          turn off packet retransmission
+-  --enable-pci-direct     access PCI directly instead of using BIOS
+-  --enable-3c509          enable 3Com509 driver
+-  --enable-3c529          enable 3Com529 driver
+-  --enable-3c595          enable 3Com595 driver
+-  --enable-3c90x          enable 3Com90x driver
+-  --enable-cs89x0         enable CS89x0 driver
+-  --enable-davicom        enable Davicom driver
+-  --enable-depca          enable DEPCA and EtherWORKS driver
+-  --enable-eepro          enable Etherexpress Pro/10 driver
+-  --enable-eepro100       enable Etherexpress Pro/100 driver
+-  --enable-epic100        enable SMC 83c170 EPIC/100 driver
+-  --enable-3c507          enable 3Com507 driver
+-  --enable-exos205        enable EXOS205 driver
+-  --enable-ni5210         enable Racal-Interlan NI5210 driver
+-  --enable-lance          enable Lance PCI PCNet/32 driver
+-  --enable-ne2100         enable Novell NE2100 driver
+-  --enable-ni6510         enable Racal-Interlan NI6510 driver
+-  --enable-natsemi        enable NatSemi DP8381x driver
+-  --enable-ni5010         enable Racal-Interlan NI5010 driver
+-  --enable-3c503          enable 3Com503 driver
+-  --enable-ne             enable NE1000/2000 ISA driver
+-  --enable-ns8390         enable NE2000 PCI driver
+-  --enable-wd             enable WD8003/8013, SMC8216/8416 driver
+-  --enable-otulip         enable old Tulip driver
+-  --enable-rtl8139        enable Realtek 8139 driver
+-  --enable-sis900         enable SIS 900 and SIS 7016 driver
+-  --enable-sk-g16         enable Schneider and Koch G16 driver
+-  --enable-smc9000        enable SMC9000 driver
+-  --enable-tiara          enable Tiara driver
+-  --enable-tulip          enable Tulip driver
+-  --enable-via-rhine      enable Rhine-I/II driver
+-  --enable-w89c840        enable Winbond W89c840, Compex RL100-ATX driver
+-  --enable-3c503-shmem    use 3c503 shared memory mode
+-  --enable-3c503-aui      use AUI by default on 3c503 cards
+-  --enable-compex-rl2000-fix
+-                          specify this if you have a Compex RL2000 PCI
+-  --enable-smc9000-scan=LIST
+-                          probe for SMC9000 I/O addresses using LIST
+-  --enable-ne-scan=LIST   probe for NE base address using LIST
+-  --enable-wd-default-mem=MEM
+-                          set the default memory location for WD/SMC
+-  --enable-cs-scan=LIST   probe for CS89x0 base address using LIST
+-  --enable-diskless       enable diskless support
+-  --disable-hercules      disable hercules terminal support
+-  --disable-serial        disable serial terminal support
+-  --enable-serial-speed-simulation
+-                          simulate the slowness of a serial device
+-  --enable-preset-menu=FILE
+-                          preset a menu file FILE in Stage 2
+-  --enable-example-kernel
+-                          build the example Multiboot kernel
+-  --disable-auto-linux-mem-opt
+-                          don't pass Linux mem= option automatically
+-
+-Optional Packages:
+-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+-  --with-binutils=DIR     search the directory DIR to find binutils
+-  --without-curses        do not use curses
+-
+-Some influential environment variables:
+-  CC          C compiler command
+-  CFLAGS      C compiler flags
+-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
+-              nonstandard directory <lib dir>
+-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
+-              headers in a nonstandard directory <include dir>
+-  CPP         C preprocessor
+-
+-Use these variables to override the choices made by `configure' or to help
+-it to find libraries and programs with nonstandard names/locations.
+-
+-Report bugs to <bug-grub@gnu.org>.
+-_ACEOF
+-fi
+-
+-if test "$ac_init_help" = "recursive"; then
+-  # If there are subdirs, report their specific --help.
+-  ac_popdir=`pwd`
+-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+-    test -d $ac_dir || continue
+-    ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-    cd $ac_dir
+-    # Check for guested configure; otherwise get Cygnus style configure.
+-    if test -f $ac_srcdir/configure.gnu; then
+-      echo
+-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
+-    elif test -f $ac_srcdir/configure; then
+-      echo
+-      $SHELL $ac_srcdir/configure  --help=recursive
+-    elif test -f $ac_srcdir/configure.ac ||
+-         test -f $ac_srcdir/configure.in; then
+-      echo
+-      $ac_configure --help
+-    else
+-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+-    fi
+-    cd $ac_popdir
+-  done
+-fi
+-
+-test -n "$ac_init_help" && exit 0
+-if $ac_init_version; then
+-  cat <<\_ACEOF
+-GRUB configure 0.97
+-generated by GNU Autoconf 2.59
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This configure script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it.
+-_ACEOF
+-  exit 0
+-fi
+-exec 5>config.log
+-cat >&5 <<_ACEOF
+-This file contains any messages produced by compilers while
+-running configure, to aid debugging if configure makes a mistake.
+-
+-It was created by GRUB $as_me 0.97, which was
+-generated by GNU Autoconf 2.59.  Invocation command line was
+-
+-  $ $0 $@
+-
+-_ACEOF
+-{
+-cat <<_ASUNAME
+-## --------- ##
+-## Platform. ##
+-## --------- ##
+-
+-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+-uname -m = `(uname -m) 2>/dev/null || echo unknown`
+-uname -r = `(uname -r) 2>/dev/null || echo unknown`
+-uname -s = `(uname -s) 2>/dev/null || echo unknown`
+-uname -v = `(uname -v) 2>/dev/null || echo unknown`
+-
+-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
+-
+-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
+-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
+-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
+-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
+-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
+-
+-_ASUNAME
+-
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  echo "PATH: $as_dir"
+-done
+-
+-} >&5
+-
+-cat >&5 <<_ACEOF
+-
+-
+-## ----------- ##
+-## Core tests. ##
+-## ----------- ##
+-
+-_ACEOF
+-
+-
+-# Keep a trace of the command line.
+-# Strip out --no-create and --no-recursion so they do not pile up.
+-# Strip out --silent because we don't want to record it for future runs.
+-# Also quote any args containing shell meta-characters.
+-# Make two passes to allow for proper duplicate-argument suppression.
+-ac_configure_args=
+-ac_configure_args0=
+-ac_configure_args1=
+-ac_sep=
+-ac_must_keep_next=false
+-for ac_pass in 1 2
+-do
+-  for ac_arg
+-  do
+-    case $ac_arg in
+-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-    | -silent | --silent | --silen | --sile | --sil)
+-      continue ;;
+-    *" "*|*"  "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    esac
+-    case $ac_pass in
+-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+-    2)
+-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+-      if test $ac_must_keep_next = true; then
+-      ac_must_keep_next=false # Got value, back to normal.
+-      else
+-      case $ac_arg in
+-        *=* | --config-cache | -C | -disable-* | --disable-* \
+-        | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+-        | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+-        | -with-* | --with-* | -without-* | --without-* | --x)
+-          case "$ac_configure_args0 " in
+-            "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+-          esac
+-          ;;
+-        -* ) ac_must_keep_next=true ;;
+-      esac
+-      fi
+-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
+-      # Get rid of the leading space.
+-      ac_sep=" "
+-      ;;
+-    esac
+-  done
+-done
+-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
+-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+-
+-# When interrupted or exit'd, cleanup temporary files, and complete
+-# config.log.  We remove comments because anyway the quotes in there
+-# would cause problems or look ugly.
+-# WARNING: Be sure not to use single quotes in there, as some shells,
+-# such as our DU 5.0 friend, will then `close' the trap.
+-trap 'exit_status=$?
+-  # Save into config.log some information that might help in debugging.
+-  {
+-    echo
+-
+-    cat <<\_ASBOX
+-## ---------------- ##
+-## Cache variables. ##
+-## ---------------- ##
+-_ASBOX
+-    echo
+-    # The following way of writing the cache mishandles newlines in values,
+-{
+-  (set) 2>&1 |
+-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      sed -n \
+-      "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
+-        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
+-      ;;
+-    *)
+-      sed -n \
+-      "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-}
+-    echo
+-
+-    cat <<\_ASBOX
+-## ----------------- ##
+-## Output variables. ##
+-## ----------------- ##
+-_ASBOX
+-    echo
+-    for ac_var in $ac_subst_vars
+-    do
+-      eval ac_val=$`echo $ac_var`
+-      echo "$ac_var='"'"'$ac_val'"'"'"
+-    done | sort
+-    echo
+-
+-    if test -n "$ac_subst_files"; then
+-      cat <<\_ASBOX
+-## ------------- ##
+-## Output files. ##
+-## ------------- ##
+-_ASBOX
+-      echo
+-      for ac_var in $ac_subst_files
+-      do
+-      eval ac_val=$`echo $ac_var`
+-      echo "$ac_var='"'"'$ac_val'"'"'"
+-      done | sort
+-      echo
+-    fi
+-
+-    if test -s confdefs.h; then
+-      cat <<\_ASBOX
+-## ----------- ##
+-## confdefs.h. ##
+-## ----------- ##
+-_ASBOX
+-      echo
+-      sed "/^$/d" confdefs.h | sort
+-      echo
+-    fi
+-    test "$ac_signal" != 0 &&
+-      echo "$as_me: caught signal $ac_signal"
+-    echo "$as_me: exit $exit_status"
+-  } >&5
+-  rm -f core *.core &&
+-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+-    exit $exit_status
+-     ' 0
+-for ac_signal in 1 2 13 15; do
+-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+-done
+-ac_signal=0
+-
+-# confdefs.h avoids OS command line length limits that DEFS can exceed.
+-rm -rf conftest* confdefs.h
+-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+-echo >confdefs.h
+-
+-# Predefined preprocessor variables.
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_NAME "$PACKAGE_NAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_VERSION "$PACKAGE_VERSION"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_STRING "$PACKAGE_STRING"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
+-_ACEOF
+-
+-
+-# Let the site file select an alternate cache file if it wants to.
+-# Prefer explicitly selected file to automatically selected ones.
+-if test -z "$CONFIG_SITE"; then
+-  if test "x$prefix" != xNONE; then
+-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+-  else
+-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+-  fi
+-fi
+-for ac_site_file in $CONFIG_SITE; do
+-  if test -r "$ac_site_file"; then
+-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+-echo "$as_me: loading site script $ac_site_file" >&6;}
+-    sed 's/^/| /' "$ac_site_file" >&5
+-    . "$ac_site_file"
+-  fi
+-done
+-
+-if test -r "$cache_file"; then
+-  # Some versions of bash will fail to source /dev/null (special
+-  # files actually), so we avoid doing that.
+-  if test -f "$cache_file"; then
+-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
+-echo "$as_me: loading cache $cache_file" >&6;}
+-    case $cache_file in
+-      [\\/]* | ?:[\\/]* ) . $cache_file;;
+-      *)                      . ./$cache_file;;
+-    esac
+-  fi
+-else
+-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
+-echo "$as_me: creating cache $cache_file" >&6;}
+-  >$cache_file
+-fi
+-
+-# Check that the precious variables saved in the cache have kept the same
+-# value.
+-ac_cache_corrupted=false
+-for ac_var in `(set) 2>&1 |
+-             sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
+-  eval ac_new_set=\$ac_env_${ac_var}_set
+-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
+-  eval ac_new_val="\$ac_env_${ac_var}_value"
+-  case $ac_old_set,$ac_new_set in
+-    set,)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,set)
+-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+-      ac_cache_corrupted=: ;;
+-    ,);;
+-    *)
+-      if test "x$ac_old_val" != "x$ac_new_val"; then
+-      { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+-      { echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
+-echo "$as_me:   former value:  $ac_old_val" >&2;}
+-      { echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
+-echo "$as_me:   current value: $ac_new_val" >&2;}
+-      ac_cache_corrupted=:
+-      fi;;
+-  esac
+-  # Pass precious variables to config.status.
+-  if test "$ac_new_set" = set; then
+-    case $ac_new_val in
+-    *" "*|*"  "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+-    *) ac_arg=$ac_var=$ac_new_val ;;
+-    esac
+-    case " $ac_configure_args " in
+-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
+-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+-    esac
+-  fi
+-done
+-if $ac_cache_corrupted; then
+-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-          ac_config_headers="$ac_config_headers config.h"
+-
+-am__api_version="1.9"
+-ac_aux_dir=
+-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
+-  if test -f $ac_dir/install-sh; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/install-sh -c"
+-    break
+-  elif test -f $ac_dir/install.sh; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/install.sh -c"
+-    break
+-  elif test -f $ac_dir/shtool; then
+-    ac_aux_dir=$ac_dir
+-    ac_install_sh="$ac_aux_dir/shtool install -c"
+-    break
+-  fi
+-done
+-if test -z "$ac_aux_dir"; then
+-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
+-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
+-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
+-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
+-
+-# Find a good install program.  We prefer a C program (faster),
+-# so one script is as good as another.  But avoid the broken or
+-# incompatible versions:
+-# SysV /etc/install, /usr/sbin/install
+-# SunOS /usr/etc/install
+-# IRIX /sbin/install
+-# AIX /bin/install
+-# AmigaOS /C/install, which installs bootblocks on floppy discs
+-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+-# OS/2's system install, which has a completely different semantic
+-# ./install, which can be erroneously created by make from ./install.sh.
+-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+-if test -z "$INSTALL"; then
+-if test "${ac_cv_path_install+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  # Account for people who put trailing slashes in PATH elements.
+-case $as_dir/ in
+-  ./ | .// | /cC/* | \
+-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+-  /usr/ucb/* ) ;;
+-  *)
+-    # OSF1 and SCO ODT 3.0 have their own names for install.
+-    # Don't use installbsd from OSF since it installs stuff as root
+-    # by default.
+-    for ac_prog in ginstall scoinst install; do
+-      for ac_exec_ext in '' $ac_executable_extensions; do
+-      if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+-        if test $ac_prog = install &&
+-          grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-          # AIX install.  It has an incompatible calling convention.
+-          :
+-        elif test $ac_prog = install &&
+-          grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+-          # program-specific install script used by HP pwplus--don't use.
+-          :
+-        else
+-          ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+-          break 3
+-        fi
+-      fi
+-      done
+-    done
+-    ;;
+-esac
+-done
+-
+-
+-fi
+-  if test "${ac_cv_path_install+set}" = set; then
+-    INSTALL=$ac_cv_path_install
+-  else
+-    # As a last resort, use the slow shell script.  We don't cache a
+-    # path for INSTALL within a source directory, because that will
+-    # break other packages using the cache if that directory is
+-    # removed, or if the path is relative.
+-    INSTALL=$ac_install_sh
+-  fi
+-fi
+-echo "$as_me:$LINENO: result: $INSTALL" >&5
+-echo "${ECHO_T}$INSTALL" >&6
+-
+-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+-# It thinks the first close brace ends the variable substitution.
+-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+-
+-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+-
+-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+-
+-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+-# Just in case
+-sleep 1
+-echo timestamp > conftest.file
+-# Do `set' in a subshell so we don't clobber the current shell's
+-# arguments.  Must try -L first in case configure is actually a
+-# symlink; some systems play weird games with the mod time of symlinks
+-# (eg FreeBSD returns the mod time of the symlink's containing
+-# directory).
+-if (
+-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+-   if test "$*" = "X"; then
+-      # -L didn't work.
+-      set X `ls -t $srcdir/configure conftest.file`
+-   fi
+-   rm -f conftest.file
+-   if test "$*" != "X $srcdir/configure conftest.file" \
+-      && test "$*" != "X conftest.file $srcdir/configure"; then
+-
+-      # If neither matched, then we have a broken ls.  This can happen
+-      # if, for instance, CONFIG_SHELL is bash and it inherits a
+-      # broken ls alias from the environment.  This has actually
+-      # happened.  Such a system could not be considered "sane".
+-      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment" >&5
+-echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+-alias in your environment" >&2;}
+-   { (exit 1); exit 1; }; }
+-   fi
+-
+-   test "$2" = conftest.file
+-   )
+-then
+-   # Ok.
+-   :
+-else
+-   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+-Check your system clock" >&5
+-echo "$as_me: error: newly created file is older than distributed files!
+-Check your system clock" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-test "$program_prefix" != NONE &&
+-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+-# Use a double $ so make ignores it.
+-test "$program_suffix" != NONE &&
+-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+-# Double any \ or $.  echo might interpret backslashes.
+-# By default was `s,x,x', remove it if useless.
+-cat <<\_ACEOF >conftest.sed
+-s/[\\$]/&&/g;s/;s,x,x,$//
+-_ACEOF
+-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
+-rm conftest.sed
+-
+-# expand $ac_aux_dir to an absolute path
+-am_aux_dir=`cd $ac_aux_dir && pwd`
+-
+-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+-# Use eval to expand $SHELL
+-if eval "$MISSING --run true"; then
+-  am_missing_run="$MISSING --run "
+-else
+-  am_missing_run=
+-  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+-fi
+-
+-if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
+-  # We used to keeping the `.' as first argument, in order to
+-  # allow $(mkdir_p) to be used without argument.  As in
+-  #   $(mkdir_p) $(somedir)
+-  # where $(somedir) is conditionally defined.  However this is wrong
+-  # for two reasons:
+-  #  1. if the package is installed by a user who cannot write `.'
+-  #     make install will fail,
+-  #  2. the above comment should most certainly read
+-  #     $(mkdir_p) $(DESTDIR)$(somedir)
+-  #     so it does not work when $(somedir) is undefined and
+-  #     $(DESTDIR) is not.
+-  #  To support the latter case, we have to write
+-  #     test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
+-  #  so the `.' trick is pointless.
+-  mkdir_p='mkdir -p --'
+-else
+-  # On NextStep and OpenStep, the `mkdir' command does not
+-  # recognize any option.  It will interpret all options as
+-  # directories to create, and then abort because `.' already
+-  # exists.
+-  for d in ./-p ./--version;
+-  do
+-    test -d $d && rmdir $d
+-  done
+-  # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
+-  if test -f "$ac_aux_dir/mkinstalldirs"; then
+-    mkdir_p='$(mkinstalldirs)'
+-  else
+-    mkdir_p='$(install_sh) -d'
+-  fi
+-fi
+-
+-for ac_prog in gawk mawk nawk awk
+-do
+-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_AWK+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$AWK"; then
+-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_AWK="$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-AWK=$ac_cv_prog_AWK
+-if test -n "$AWK"; then
+-  echo "$as_me:$LINENO: result: $AWK" >&5
+-echo "${ECHO_T}$AWK" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  test -n "$AWK" && break
+-done
+-
+-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
+-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
+-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.make <<\_ACEOF
+-all:
+-      @echo 'ac_maketemp="$(MAKE)"'
+-_ACEOF
+-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
+-if test -n "$ac_maketemp"; then
+-  eval ac_cv_prog_make_${ac_make}_set=yes
+-else
+-  eval ac_cv_prog_make_${ac_make}_set=no
+-fi
+-rm -f conftest.make
+-fi
+-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+-  echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-  SET_MAKE=
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-  SET_MAKE="MAKE=${MAKE-make}"
+-fi
+-
+-rm -rf .tst 2>/dev/null
+-mkdir .tst 2>/dev/null
+-if test -d .tst; then
+-  am__leading_dot=.
+-else
+-  am__leading_dot=_
+-fi
+-rmdir .tst 2>/dev/null
+-
+-# test to see if srcdir already configured
+-if test "`cd $srcdir && pwd`" != "`pwd`" &&
+-   test -f $srcdir/config.status; then
+-  { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# test whether we have cygpath
+-if test -z "$CYGPATH_W"; then
+-  if (cygpath --version) >/dev/null 2>/dev/null; then
+-    CYGPATH_W='cygpath -w'
+-  else
+-    CYGPATH_W=echo
+-  fi
+-fi
+-
+-
+-# Define the identity of the package.
+- PACKAGE='grub'
+- VERSION='0.97'
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PACKAGE "$PACKAGE"
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define VERSION "$VERSION"
+-_ACEOF
+-
+-# Some tools Automake needs.
+-
+-ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+-
+-
+-AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+-
+-
+-AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+-
+-
+-AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+-
+-
+-MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+-
+-install_sh=${install_sh-"$am_aux_dir/install-sh"}
+-
+-# Installed binaries are usually stripped using `strip' when the user
+-# run `make install-strip'.  However `strip' might not be the right
+-# tool to use in cross-compilation environments, therefore Automake
+-# will honor the `STRIP' environment variable to overrule this program.
+-if test "$cross_compiling" != no; then
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}strip; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_STRIP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$STRIP"; then
+-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-STRIP=$ac_cv_prog_STRIP
+-if test -n "$STRIP"; then
+-  echo "$as_me:$LINENO: result: $STRIP" >&5
+-echo "${ECHO_T}$STRIP" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_STRIP"; then
+-  ac_ct_STRIP=$STRIP
+-  # Extract the first word of "strip", so it can be a program name with args.
+-set dummy strip; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_STRIP"; then
+-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_STRIP="strip"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
+-fi
+-fi
+-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+-if test -n "$ac_ct_STRIP"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+-echo "${ECHO_T}$ac_ct_STRIP" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  STRIP=$ac_ct_STRIP
+-else
+-  STRIP="$ac_cv_prog_STRIP"
+-fi
+-
+-fi
+-INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
+-
+-# We need awk for the "check" target.  The system "awk" is bad on
+-# some platforms.
+-# Always define AMTAR for backward compatibility.
+-
+-AMTAR=${AMTAR-"${am_missing_run}tar"}
+-
+-am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
+-
+-
+-
+-
+-
+-
+-# Make sure we can run config.sub.
+-$ac_config_sub sun4 >/dev/null 2>&1 ||
+-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
+-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-echo "$as_me:$LINENO: checking build system type" >&5
+-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+-if test "${ac_cv_build+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_build_alias=$build_alias
+-test -z "$ac_cv_build_alias" &&
+-  ac_cv_build_alias=`$ac_config_guess`
+-test -z "$ac_cv_build_alias" &&
+-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+-   { (exit 1); exit 1; }; }
+-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+-echo "${ECHO_T}$ac_cv_build" >&6
+-build=$ac_cv_build
+-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-
+-echo "$as_me:$LINENO: checking host system type" >&5
+-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+-if test "${ac_cv_host+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_host_alias=$host_alias
+-test -z "$ac_cv_host_alias" &&
+-  ac_cv_host_alias=$ac_cv_build_alias
+-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
+-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
+-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+-echo "${ECHO_T}$ac_cv_host" >&6
+-host=$ac_cv_host
+-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+-
+-
+-
+-case "$host_cpu" in
+-i[3456]86) host_cpu=i386 ;;
+-x86_64) host_cpu=x86_64 ;;
+-*) { { echo "$as_me:$LINENO: error: unsupported CPU type" >&5
+-echo "$as_me: error: unsupported CPU type" >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-esac
+-
+-
+-
+-
+-#
+-# Options
+-#
+-
+-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
+-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+-if test "${enable_maintainer_mode+set}" = set; then
+-  enableval="$enable_maintainer_mode"
+-  USE_MAINTAINER_MODE=$enableval
+-else
+-  USE_MAINTAINER_MODE=no
+-fi;
+-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+-
+-
+-if test $USE_MAINTAINER_MODE = yes; then
+-  MAINTAINER_MODE_TRUE=
+-  MAINTAINER_MODE_FALSE='#'
+-else
+-  MAINTAINER_MODE_TRUE='#'
+-  MAINTAINER_MODE_FALSE=
+-fi
+-
+-  MAINT=$MAINTAINER_MODE_TRUE
+-
+-
+-if test "x$enable_maintainer_mode" = xyes; then
+-  # Extract the first word of "perl", so it can be a program name with args.
+-set dummy perl; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_PERL+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $PERL in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_PERL="$PERL" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_PERL="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  ;;
+-esac
+-fi
+-PERL=$ac_cv_path_PERL
+-
+-if test -n "$PERL"; then
+-  echo "$as_me:$LINENO: result: $PERL" >&5
+-echo "${ECHO_T}$PERL" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  if test -z "$PERL"; then
+-    { { echo "$as_me:$LINENO: error: perl not found" >&5
+-echo "$as_me: error: perl not found" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# This should be checked before AC_PROG_CC
+-if test "x$CFLAGS" = x; then
+-  default_CFLAGS=yes
+-fi
+-
+-if test "x$host_cpu" = xx86_64; then
+-  CFLAGS="-m32 $CFLAGS"
+-fi
+-
+-#
+-# Programs
+-#
+-
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "gcc", so it can be a program name with args.
+-set dummy gcc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="gcc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="${ac_tool_prefix}cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_CC"; then
+-  ac_ct_CC=$CC
+-  # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  CC=$ac_ct_CC
+-else
+-  CC="$ac_cv_prog_CC"
+-fi
+-
+-fi
+-if test -z "$CC"; then
+-  # Extract the first word of "cc", so it can be a program name with args.
+-set dummy cc; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-  ac_prog_rejected=no
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+-       ac_prog_rejected=yes
+-       continue
+-     fi
+-    ac_cv_prog_CC="cc"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-if test $ac_prog_rejected = yes; then
+-  # We found a bogon in the path, so make sure we never use it.
+-  set dummy $ac_cv_prog_CC
+-  shift
+-  if test $# != 0; then
+-    # We chose a different compiler from the bogus one.
+-    # However, it has the same basename, so the bogon will be chosen
+-    # first if we set CC to just the basename; use the full file name.
+-    shift
+-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
+-  fi
+-fi
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$CC"; then
+-  if test -n "$ac_tool_prefix"; then
+-  for ac_prog in cl
+-  do
+-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$CC"; then
+-  ac_cv_prog_CC="$CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-CC=$ac_cv_prog_CC
+-if test -n "$CC"; then
+-  echo "$as_me:$LINENO: result: $CC" >&5
+-echo "${ECHO_T}$CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-    test -n "$CC" && break
+-  done
+-fi
+-if test -z "$CC"; then
+-  ac_ct_CC=$CC
+-  for ac_prog in cl
+-do
+-  # Extract the first word of "$ac_prog", so it can be a program name with args.
+-set dummy $ac_prog; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_CC"; then
+-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_CC="$ac_prog"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_CC=$ac_cv_prog_ac_ct_CC
+-if test -n "$ac_ct_CC"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+-echo "${ECHO_T}$ac_ct_CC" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  test -n "$ac_ct_CC" && break
+-done
+-
+-  CC=$ac_ct_CC
+-fi
+-
+-fi
+-
+-
+-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: no acceptable C compiler found in \$PATH
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-# Provide some information about the compiler.
+-echo "$as_me:$LINENO:" \
+-     "checking for C compiler version" >&5
+-ac_compiler=`set X $ac_compile; echo $2`
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
+-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
+-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
+-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }
+-
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+-# Try to create an executable without -o first, disregard a.out.
+-# It will help us diagnose broken compilers, and finding out an intuition
+-# of exeext.
+-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
+-  (eval $ac_link_default) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # Find the output, starting from the most likely.  This scheme is
+-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
+-# resort.
+-
+-# Be careful to initialize this variable, since it used to be cached.
+-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
+-ac_cv_exeext=
+-# b.out is created by i960 compilers.
+-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+-do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+-      ;;
+-    conftest.$ac_ext )
+-      # This is the source file.
+-      ;;
+-    [ab].out )
+-      # We found the default executable, but exeext='' is most
+-      # certainly right.
+-      break;;
+-    *.* )
+-      ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-      # FIXME: I believe we export ac_cv_exeext for Libtool,
+-      # but it would be cool to find out if it's true.  Does anybody
+-      # maintain Libtool? --akim.
+-      export ac_cv_exeext
+-      break;;
+-    * )
+-      break;;
+-  esac
+-done
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C compiler cannot create executables
+-See \`config.log' for more details." >&2;}
+-   { (exit 77); exit 77; }; }
+-fi
+-
+-ac_exeext=$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_file" >&5
+-echo "${ECHO_T}$ac_file" >&6
+-
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
+-# If not cross compiling, check that we can run a simple program.
+-if test "$cross_compiling" != yes; then
+-  if { ac_try='./$ac_file'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-    cross_compiling=no
+-  else
+-    if test "$cross_compiling" = maybe; then
+-      cross_compiling=yes
+-    else
+-      { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot run C compiled programs.
+-If you meant to cross compile, use \`--host'.
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-    fi
+-  fi
+-fi
+-echo "$as_me:$LINENO: result: yes" >&5
+-echo "${ECHO_T}yes" >&6
+-
+-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+-ac_clean_files=$ac_clean_files_save
+-# Check the compiler produces executables we can run.  If not, either
+-# the compiler is broken, or we cross compile.
+-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
+-echo "$as_me:$LINENO: result: $cross_compiling" >&5
+-echo "${ECHO_T}$cross_compiling" >&6
+-
+-echo "$as_me:$LINENO: checking for suffix of executables" >&5
+-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
+-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
+-# work properly (i.e., refer to `conftest.exe'), while it won't with
+-# `rm'.
+-for ac_file in conftest.exe conftest conftest.*; do
+-  test -f "$ac_file" || continue
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+-        export ac_cv_exeext
+-        break;;
+-    * ) break;;
+-  esac
+-done
+-else
+-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest$ac_cv_exeext
+-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+-echo "${ECHO_T}$ac_cv_exeext" >&6
+-
+-rm -f conftest.$ac_ext
+-EXEEXT=$ac_cv_exeext
+-ac_exeext=$EXEEXT
+-echo "$as_me:$LINENO: checking for suffix of object files" >&5
+-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+-if test "${ac_cv_objext+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.o conftest.obj
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; then
+-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+-  case $ac_file in
+-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+-       break;;
+-  esac
+-done
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+-echo "${ECHO_T}$ac_cv_objext" >&6
+-OBJEXT=$ac_cv_objext
+-ac_objext=$OBJEXT
+-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-#ifndef __GNUC__
+-       choke me
+-#endif
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_compiler_gnu=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_compiler_gnu=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_cv_c_compiler_gnu=$ac_compiler_gnu
+-
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+-GCC=`test $ac_compiler_gnu = yes && echo yes`
+-ac_test_CFLAGS=${CFLAGS+set}
+-ac_save_CFLAGS=$CFLAGS
+-CFLAGS="-g"
+-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_g+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_prog_cc_g=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_prog_cc_g=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+-if test "$ac_test_CFLAGS" = set; then
+-  CFLAGS=$ac_save_CFLAGS
+-elif test $ac_cv_prog_cc_g = yes; then
+-  if test "$GCC" = yes; then
+-    CFLAGS="-g -O2"
+-  else
+-    CFLAGS="-g"
+-  fi
+-else
+-  if test "$GCC" = yes; then
+-    CFLAGS="-O2"
+-  else
+-    CFLAGS=
+-  fi
+-fi
+-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
+-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
+-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_cv_prog_cc_stdc=no
+-ac_save_CC=$CC
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdarg.h>
+-#include <stdio.h>
+-#include <sys/types.h>
+-#include <sys/stat.h>
+-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
+-struct buf { int x; };
+-FILE * (*rcsopen) (struct buf *, struct stat *, int);
+-static char *e (p, i)
+-     char **p;
+-     int i;
+-{
+-  return p[i];
+-}
+-static char *f (char * (*g) (char **, int), char **p, ...)
+-{
+-  char *s;
+-  va_list v;
+-  va_start (v,p);
+-  s = g (p, va_arg (v,int));
+-  va_end (v);
+-  return s;
+-}
+-
+-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
+-   function prototypes and stuff, but not '\xHH' hex character constants.
+-   These don't provoke an error unfortunately, instead are silently treated
+-   as 'x'.  The following induces an error, until -std1 is added to get
+-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
+-   array size at least.  It's necessary to write '\x00'==0 to get something
+-   that's true only with -std1.  */
+-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
+-
+-int test (int i, double x);
+-struct s1 {int (*f) (int a);};
+-struct s2 {int (*f) (double a);};
+-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
+-int argc;
+-char **argv;
+-int
+-main ()
+-{
+-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-# Don't try gcc -ansi; that turns off useful extensions and
+-# breaks some systems' header files.
+-# AIX                 -qlanglvl=ansi
+-# Ultrix and OSF/1    -std1
+-# HP-UX 10.20 and later       -Ae
+-# HP-UX older versions        -Aa -D_HPUX_SOURCE
+-# SVR4                        -Xc -D__EXTENSIONS__
+-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+-do
+-  CC="$ac_save_CC $ac_arg"
+-  rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_prog_cc_stdc=$ac_arg
+-break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext
+-done
+-rm -f conftest.$ac_ext conftest.$ac_objext
+-CC=$ac_save_CC
+-
+-fi
+-
+-case "x$ac_cv_prog_cc_stdc" in
+-  x|xno)
+-    echo "$as_me:$LINENO: result: none needed" >&5
+-echo "${ECHO_T}none needed" >&6 ;;
+-  *)
+-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
+-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
+-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+-esac
+-
+-# Some people use a C++ compiler to compile C.  Since we use `exit',
+-# in C++ we need to declare it.  In case someone uses the same compiler
+-# for both compiling C and C++ we need to have the C++ compiler decide
+-# the declaration of exit, since it's the most demanding environment.
+-cat >conftest.$ac_ext <<_ACEOF
+-#ifndef __cplusplus
+-  choke me
+-#endif
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  for ac_declaration in \
+-   '' \
+-   'extern "C" void std::exit (int) throw (); using std::exit;' \
+-   'extern "C" void std::exit (int); using std::exit;' \
+-   'extern "C" void exit (int) throw ();' \
+-   'extern "C" void exit (int);' \
+-   'void exit (int);'
+-do
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_declaration
+-#include <stdlib.h>
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_declaration
+-int
+-main ()
+-{
+-exit (42);
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  break
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-done
+-rm -f conftest*
+-if test -n "$ac_declaration"; then
+-  echo '#ifdef __cplusplus' >>confdefs.h
+-  echo $ac_declaration      >>confdefs.h
+-  echo '#endif'             >>confdefs.h
+-fi
+-
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-DEPDIR="${am__leading_dot}deps"
+-
+-          ac_config_commands="$ac_config_commands depfiles"
+-
+-
+-am_make=${MAKE-make}
+-cat > confinc << 'END'
+-am__doit:
+-      @echo done
+-.PHONY: am__doit
+-END
+-# If we don't find an include directive, just comment out the code.
+-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+-am__include="#"
+-am__quote=
+-_am_result=none
+-# First try GNU make style include.
+-echo "include confinc" > confmf
+-# We grep out `Entering directory' and `Leaving directory'
+-# messages which can occur if `w' ends up in MAKEFLAGS.
+-# In particular we don't look at `^make:' because GNU make might
+-# be invoked under some other name (usually "gmake"), in which
+-# case it prints its new name instead of `make'.
+-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
+-   am__include=include
+-   am__quote=
+-   _am_result=GNU
+-fi
+-# Now try BSD make style include.
+-if test "$am__include" = "#"; then
+-   echo '.include "confinc"' > confmf
+-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
+-      am__include=.include
+-      am__quote="\""
+-      _am_result=BSD
+-   fi
+-fi
+-
+-
+-echo "$as_me:$LINENO: result: $_am_result" >&5
+-echo "${ECHO_T}$_am_result" >&6
+-rm -f confinc confmf
+-
+-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+-if test "${enable_dependency_tracking+set}" = set; then
+-  enableval="$enable_dependency_tracking"
+-
+-fi;
+-if test "x$enable_dependency_tracking" != xno; then
+-  am_depcomp="$ac_aux_dir/depcomp"
+-  AMDEPBACKSLASH='\'
+-fi
+-
+-
+-if test "x$enable_dependency_tracking" != xno; then
+-  AMDEP_TRUE=
+-  AMDEP_FALSE='#'
+-else
+-  AMDEP_TRUE='#'
+-  AMDEP_FALSE=
+-fi
+-
+-
+-
+-
+-depcc="$CC"   am_compiler_list=
+-
+-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+-  # We make a subdir and do the tests there.  Otherwise we can end up
+-  # making bogus files that we don't know about and never remove.  For
+-  # instance it was reported that on HP-UX the gcc test will end up
+-  # making a dummy file named `D' -- because `-MD' means `put the output
+-  # in D'.
+-  mkdir conftest.dir
+-  # Copy depcomp to subdir because otherwise we won't find it if we're
+-  # using a relative directory.
+-  cp "$am_depcomp" conftest.dir
+-  cd conftest.dir
+-  # We will build objects and dependencies in a subdirectory because
+-  # it helps to detect inapplicable dependency modes.  For instance
+-  # both Tru64's cc and ICC support -MD to output dependencies as a
+-  # side effect of compilation, but ICC will put the dependencies in
+-  # the current directory while Tru64 will put them in the object
+-  # directory.
+-  mkdir sub
+-
+-  am_cv_CC_dependencies_compiler_type=none
+-  if test "$am_compiler_list" = ""; then
+-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+-  fi
+-  for depmode in $am_compiler_list; do
+-    # Setup a source with many dependencies, because some compilers
+-    # like to wrap large dependency lists on column 80 (with \), and
+-    # we should not choose a depcomp mode which is confused by this.
+-    #
+-    # We need to recreate these files for each test, as the compiler may
+-    # overwrite some of them when testing with obscure command lines.
+-    # This happens at least with the AIX C compiler.
+-    : > sub/conftest.c
+-    for i in 1 2 3 4 5 6; do
+-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+-      # Solaris 8's {/usr,}/bin/sh.
+-      touch sub/conftst$i.h
+-    done
+-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+-
+-    case $depmode in
+-    nosideeffect)
+-      # after this tag, mechanisms are not by side-effect, so they'll
+-      # only be used when explicitly requested
+-      if test "x$enable_dependency_tracking" = xyes; then
+-      continue
+-      else
+-      break
+-      fi
+-      ;;
+-    none) break ;;
+-    esac
+-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+-    # mode.  It turns out that the SunPro C++ compiler does not properly
+-    # handle `-M -o', and we need to detect this.
+-    if depmode=$depmode \
+-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+-         >/dev/null 2>conftest.err &&
+-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+-      # icc doesn't choke on unknown options, it will just issue warnings
+-      # or remarks (even with -Werror).  So we grep stderr for any message
+-      # that says an option was ignored or not supported.
+-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+-      #   icc: Command line warning: ignoring option '-M'; no argument required
+-      # The diagnosis changed in icc 8.0:
+-      #   icc: Command line remark: option '-MP' not supported
+-      if (grep 'ignoring option' conftest.err ||
+-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+-        am_cv_CC_dependencies_compiler_type=$depmode
+-        break
+-      fi
+-    fi
+-  done
+-
+-  cd ..
+-  rm -rf conftest.dir
+-else
+-  am_cv_CC_dependencies_compiler_type=none
+-fi
+-
+-fi
+-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+-
+-
+-
+-if
+-  test "x$enable_dependency_tracking" != xno \
+-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+-  am__fastdepCC_TRUE=
+-  am__fastdepCC_FALSE='#'
+-else
+-  am__fastdepCC_TRUE='#'
+-  am__fastdepCC_FALSE=
+-fi
+-
+-
+-# We need this for older versions of Autoconf.
+-
+-depcc="$CC"   am_compiler_list=
+-
+-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+-  # We make a subdir and do the tests there.  Otherwise we can end up
+-  # making bogus files that we don't know about and never remove.  For
+-  # instance it was reported that on HP-UX the gcc test will end up
+-  # making a dummy file named `D' -- because `-MD' means `put the output
+-  # in D'.
+-  mkdir conftest.dir
+-  # Copy depcomp to subdir because otherwise we won't find it if we're
+-  # using a relative directory.
+-  cp "$am_depcomp" conftest.dir
+-  cd conftest.dir
+-  # We will build objects and dependencies in a subdirectory because
+-  # it helps to detect inapplicable dependency modes.  For instance
+-  # both Tru64's cc and ICC support -MD to output dependencies as a
+-  # side effect of compilation, but ICC will put the dependencies in
+-  # the current directory while Tru64 will put them in the object
+-  # directory.
+-  mkdir sub
+-
+-  am_cv_CC_dependencies_compiler_type=none
+-  if test "$am_compiler_list" = ""; then
+-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+-  fi
+-  for depmode in $am_compiler_list; do
+-    # Setup a source with many dependencies, because some compilers
+-    # like to wrap large dependency lists on column 80 (with \), and
+-    # we should not choose a depcomp mode which is confused by this.
+-    #
+-    # We need to recreate these files for each test, as the compiler may
+-    # overwrite some of them when testing with obscure command lines.
+-    # This happens at least with the AIX C compiler.
+-    : > sub/conftest.c
+-    for i in 1 2 3 4 5 6; do
+-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+-      # Solaris 8's {/usr,}/bin/sh.
+-      touch sub/conftst$i.h
+-    done
+-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+-
+-    case $depmode in
+-    nosideeffect)
+-      # after this tag, mechanisms are not by side-effect, so they'll
+-      # only be used when explicitly requested
+-      if test "x$enable_dependency_tracking" = xyes; then
+-      continue
+-      else
+-      break
+-      fi
+-      ;;
+-    none) break ;;
+-    esac
+-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+-    # mode.  It turns out that the SunPro C++ compiler does not properly
+-    # handle `-M -o', and we need to detect this.
+-    if depmode=$depmode \
+-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+-         >/dev/null 2>conftest.err &&
+-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+-      # icc doesn't choke on unknown options, it will just issue warnings
+-      # or remarks (even with -Werror).  So we grep stderr for any message
+-      # that says an option was ignored or not supported.
+-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+-      #   icc: Command line warning: ignoring option '-M'; no argument required
+-      # The diagnosis changed in icc 8.0:
+-      #   icc: Command line remark: option '-MP' not supported
+-      if (grep 'ignoring option' conftest.err ||
+-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+-        am_cv_CC_dependencies_compiler_type=$depmode
+-        break
+-      fi
+-    fi
+-  done
+-
+-  cd ..
+-  rm -rf conftest.dir
+-else
+-  am_cv_CC_dependencies_compiler_type=none
+-fi
+-
+-fi
+-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+-CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+-
+-
+-
+-if
+-  test "x$enable_dependency_tracking" != xno \
+-  && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+-  am__fastdepCC_TRUE=
+-  am__fastdepCC_FALSE='#'
+-else
+-  am__fastdepCC_TRUE='#'
+-  am__fastdepCC_FALSE=
+-fi
+-
+-
+-
+-CCAS="$CC"
+-
+-
+-
+-# Check whether --with-binutils or --without-binutils was given.
+-if test "${with_binutils+set}" = set; then
+-  withval="$with_binutils"
+-
+-fi;
+-
+-if test "x$with_binutils" != x; then
+-  # Extract the first word of "ranlib", so it can be a program name with args.
+-set dummy ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $RANLIB in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-as_dummy=""$with_binutils:$PATH""
+-for as_dir in $as_dummy
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_path_RANLIB" && ac_cv_path_RANLIB=":"
+-  ;;
+-esac
+-fi
+-RANLIB=$ac_cv_path_RANLIB
+-
+-if test -n "$RANLIB"; then
+-  echo "$as_me:$LINENO: result: $RANLIB" >&5
+-echo "${ECHO_T}$RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-else
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$RANLIB"; then
+-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-RANLIB=$ac_cv_prog_RANLIB
+-if test -n "$RANLIB"; then
+-  echo "$as_me:$LINENO: result: $RANLIB" >&5
+-echo "${ECHO_T}$RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_RANLIB"; then
+-  ac_ct_RANLIB=$RANLIB
+-  # Extract the first word of "ranlib", so it can be a program name with args.
+-set dummy ranlib; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_RANLIB"; then
+-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_RANLIB="ranlib"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
+-fi
+-fi
+-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+-if test -n "$ac_ct_RANLIB"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+-echo "${ECHO_T}$ac_ct_RANLIB" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  RANLIB=$ac_ct_RANLIB
+-else
+-  RANLIB="$ac_cv_prog_RANLIB"
+-fi
+-
+-fi
+-
+-# optimization flags
+-if test "x$ac_cv_c_compiler_gnu" = xyes; then
+-  if test "x$default_CFLAGS" = xyes; then
+-    # Autoconf may set CFLAGS to -O2 and/or -g. So eliminate them.
+-    CFLAGS="`echo $CFLAGS | sed -e 's/-g//g' -e 's/-O[0-9]//g'` -g"
+-    # If the user specify the directory for binutils, add the option `-B'.
+-    if test "x$with_binutils" != x; then
+-      CFLAGS="-B$with_binutils/ $CFLAGS"
+-    fi
+-    STAGE1_CFLAGS="-O2"
+-    GRUB_CFLAGS="-O2"
+-
+-echo "$as_me:$LINENO: checking whether optimization for size works" >&5
+-echo $ECHO_N "checking whether optimization for size works... $ECHO_C" >&6
+-if test "${size_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-      saved_CFLAGS=$CFLAGS
+-      CFLAGS="-Os -g"
+-      cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  size_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-size_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-      CFLAGS=$saved_CFLAGS
+-
+-fi
+-echo "$as_me:$LINENO: result: $size_flag" >&5
+-echo "${ECHO_T}$size_flag" >&6
+-    if test "x$size_flag" = xyes; then
+-      STAGE2_CFLAGS="-Os"
+-    else
+-      STAGE2_CFLAGS="-O2 -fno-strength-reduce -fno-unroll-loops"
+-    fi
+-    # OpenBSD has a GCC extension for protecting applications from
+-    # stack smashing attacks, but GRUB doesn't want this feature.
+-    echo "$as_me:$LINENO: checking whether gcc has -fno-stack-protector" >&5
+-echo $ECHO_N "checking whether gcc has -fno-stack-protector... $ECHO_C" >&6
+-if test "${no_stack_protector_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-      saved_CFLAGS=$CFLAGS
+-      CFLAGS="-fno-stack-protector"
+-      cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  no_stack_protector_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-no_stack_protector_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-      CFLAGS=$saved_CFLAGS
+-
+-fi
+-echo "$as_me:$LINENO: result: $no_stack_protector_flag" >&5
+-echo "${ECHO_T}$no_stack_protector_flag" >&6
+-    if test "x$no_stack_protector_flag" = xyes; then
+-      STAGE2_CFLAGS="$STAGE2_CFLAGS -fno-stack-protector"
+-    fi
+-  fi
+-fi
+-
+-
+-
+-
+-
+-# Enforce coding standards.
+-CPPFLAGS="$CPPFLAGS -Wall -Wmissing-prototypes -Wunused -Wshadow"
+-CPPFLAGS="$CPPFLAGS -Wpointer-arith"
+-
+-echo "$as_me:$LINENO: checking whether -Wundef works" >&5
+-echo $ECHO_N "checking whether -Wundef works... $ECHO_C" >&6
+-if test "${undef_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-  saved_CPPFLAGS="$CPPFLAGS"
+-  CPPFLAGS="-Wundef"
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  undef_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-undef_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  CPPFLAGS="$saved_CPPFLAGS"
+-
+-fi
+-echo "$as_me:$LINENO: result: $undef_flag" >&5
+-echo "${ECHO_T}$undef_flag" >&6
+-
+-# The options `-falign-*' are supported by gcc 3.0 or later.
+-# Probably it is sufficient to only check for -falign-loops.
+-echo "$as_me:$LINENO: checking whether -falign-loops works" >&5
+-echo $ECHO_N "checking whether -falign-loops works... $ECHO_C" >&6
+-if test "${falign_loop_flag+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-
+-  saved_CPPFLAGS="$CPPFLAGS"
+-  CPPFLAGS="-falign-loops=1"
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  falign_loop_flag=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-falign_loop_flag=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-  CPPFLAGS="$saved_CPPFLAGS"
+-
+-fi
+-echo "$as_me:$LINENO: result: $falign_loop_flag" >&5
+-echo "${ECHO_T}$falign_loop_flag" >&6
+-
+-# Force no alignment to save space.
+-if test "x$falign_loop_flag" = xyes; then
+-  CPPFLAGS="$CPPFLAGS -falign-jumps=1 -falign-loops=1 -falign-functions=1"
+-else
+-  CPPFLAGS="$CPPFLAGS -malign-jumps=1 -malign-loops=1 -malign-functions=1"
+-fi
+-
+-if test "x$undef_flag" = xyes; then
+-  CPPFLAGS="$CPPFLAGS -Wundef"
+-fi
+-
+-if test "x$with_binutils" != x; then
+-  # Extract the first word of "objcopy", so it can be a program name with args.
+-set dummy objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_path_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  case $OBJCOPY in
+-  [\\/]* | ?:[\\/]*)
+-  ac_cv_path_OBJCOPY="$OBJCOPY" # Let the user override the test with a path.
+-  ;;
+-  *)
+-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-as_dummy=""$with_binutils:$PATH""
+-for as_dir in $as_dummy
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_path_OBJCOPY="$as_dir/$ac_word$ac_exec_ext"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-  ;;
+-esac
+-fi
+-OBJCOPY=$ac_cv_path_OBJCOPY
+-
+-if test -n "$OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $OBJCOPY" >&5
+-echo "${ECHO_T}$OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-else
+-  if test -n "$ac_tool_prefix"; then
+-  # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
+-set dummy ${ac_tool_prefix}objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$OBJCOPY"; then
+-  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-OBJCOPY=$ac_cv_prog_OBJCOPY
+-if test -n "$OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $OBJCOPY" >&5
+-echo "${ECHO_T}$OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-fi
+-if test -z "$ac_cv_prog_OBJCOPY"; then
+-  ac_ct_OBJCOPY=$OBJCOPY
+-  # Extract the first word of "objcopy", so it can be a program name with args.
+-set dummy objcopy; ac_word=$2
+-echo "$as_me:$LINENO: checking for $ac_word" >&5
+-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+-if test "${ac_cv_prog_ac_ct_OBJCOPY+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if test -n "$ac_ct_OBJCOPY"; then
+-  ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test.
+-else
+-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for ac_exec_ext in '' $ac_executable_extensions; do
+-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+-    ac_cv_prog_ac_ct_OBJCOPY="objcopy"
+-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+-    break 2
+-  fi
+-done
+-done
+-
+-fi
+-fi
+-ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY
+-if test -n "$ac_ct_OBJCOPY"; then
+-  echo "$as_me:$LINENO: result: $ac_ct_OBJCOPY" >&5
+-echo "${ECHO_T}$ac_ct_OBJCOPY" >&6
+-else
+-  echo "$as_me:$LINENO: result: no" >&5
+-echo "${ECHO_T}no" >&6
+-fi
+-
+-  OBJCOPY=$ac_ct_OBJCOPY
+-else
+-  OBJCOPY="$ac_cv_prog_OBJCOPY"
+-fi
+-
+-fi
+-
+-# Defined in acinclude.m4.
+-
+-echo "$as_me:$LINENO: checking if C symbols get an underscore after compilation" >&5
+-echo $ECHO_N "checking if C symbols get an underscore after compilation... $ECHO_C" >&6
+-if test "${grub_cv_asm_uscore+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.c <<\EOF
+-int
+-func (int *list)
+-{
+-  *list = 0;
+-  return *list;
+-}
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -S conftest.c'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.s; then
+-  true
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce assembly code" >&5
+-echo "$as_me: error: ${CC-cc} failed to produce assembly code" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-if grep _func conftest.s >/dev/null 2>&1; then
+-  grub_cv_asm_uscore=yes
+-else
+-  grub_cv_asm_uscore=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_uscore" = xyes; then
+-
+-cat >>confdefs.h <<_ACEOF
+-#define HAVE_ASM_USCORE $grub_cv_asm_uscore
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_uscore" >&5
+-echo "${ECHO_T}$grub_cv_asm_uscore" >&6
+-
+-echo "$as_me:$LINENO: checking whether ${OBJCOPY} works for absolute addresses" >&5
+-echo $ECHO_N "checking whether ${OBJCOPY} works for absolute addresses... $ECHO_C" >&6
+-if test "${grub_cv_prog_objcopy_absolute+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.c <<\EOF
+-void
+-cmain (void)
+-{
+-   *((int *) 0x1000) = 2;
+-}
+-EOF
+-
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && test -s conftest.o; then :
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} cannot compile C source code" >&5
+-echo "$as_me: error: ${CC-cc} cannot compile C source code" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-grub_cv_prog_objcopy_absolute=yes
+-for link_addr in 2000 8000 7C00; do
+-  if { ac_try='${CC-cc} ${CFLAGS} -nostdlib -Wl,-N -Wl,-Ttext -Wl,$link_addr conftest.o -o conftest.exec'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then :
+-  else
+-    { { echo "$as_me:$LINENO: error: ${CC-cc} cannot link at address $link_addr" >&5
+-echo "$as_me: error: ${CC-cc} cannot link at address $link_addr" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  if { ac_try='${OBJCOPY-objcopy} -O binary conftest.exec conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then :
+-  else
+-    { { echo "$as_me:$LINENO: error: ${OBJCOPY-objcopy} cannot create binary files" >&5
+-echo "$as_me: error: ${OBJCOPY-objcopy} cannot create binary files" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  if test ! -f conftest.old || { ac_try='cmp -s conftest.old conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-    mv -f conftest conftest.old
+-  else
+-    grub_cv_prog_objcopy_absolute=no
+-    break
+-  fi
+-done
+-rm -f conftest*
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_prog_objcopy_absolute" >&5
+-echo "${ECHO_T}$grub_cv_prog_objcopy_absolute" >&6
+-if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
+-  { { echo "$as_me:$LINENO: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&5
+-echo "$as_me: error: GRUB requires a working absolute objcopy; upgrade your binutils" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking whether addr32 must be in the same line as the instruction" >&5
+-echo $ECHO_N "checking whether addr32 must be in the same line as the instruction... $ECHO_C" >&6
+-if test "${grub_cv_asm_prefix_requirement+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s <<\EOF
+-      .code16
+-l1:   addr32  movb    %al, l1
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_prefix_requirement=yes
+-else
+-  grub_cv_asm_prefix_requirement=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+-  grub_tmp_addr32="addr32"
+-  grub_tmp_data32="data32"
+-else
+-  grub_tmp_addr32="addr32;"
+-  grub_tmp_data32="data32;"
+-fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define ADDR32 $grub_tmp_addr32
+-_ACEOF
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define DATA32 $grub_tmp_data32
+-_ACEOF
+-
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_prefix_requirement" >&5
+-echo "${ECHO_T}$grub_cv_asm_prefix_requirement" >&6
+-
+-
+-
+-echo "$as_me:$LINENO: checking for .code16 addr32 assembler support" >&5
+-echo $ECHO_N "checking for .code16 addr32 assembler support... $ECHO_C" >&6
+-if test "${grub_cv_asm_addr32+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s.in <<\EOF
+-      .code16
+-l1:   @ADDR32@        movb    %al, l1
+-EOF
+-
+-if test "x$grub_cv_asm_prefix_requirement" = xyes; then
+-  sed -e s/@ADDR32@/addr32/ < conftest.s.in > conftest.s
+-else
+-  sed -e s/@ADDR32@/addr32\;/ < conftest.s.in > conftest.s
+-fi
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_addr32=yes
+-else
+-  grub_cv_asm_addr32=no
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_addr32" >&5
+-echo "${ECHO_T}$grub_cv_asm_addr32" >&6
+-if test "x$grub_cv_asm_addr32" != xyes; then
+-  { { echo "$as_me:$LINENO: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&5
+-echo "$as_me: error: GRUB requires GAS .code16 addr32 support; upgrade your binutils" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking whether an absolute indirect call/jump must not be prefixed with an asterisk" >&5
+-echo $ECHO_N "checking whether an absolute indirect call/jump must not be prefixed with an asterisk... $ECHO_C" >&6
+-if test "${grub_cv_asm_absolute_without_asterisk+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat > conftest.s <<\EOF
+-      lcall   *(offset)
+-offset:
+-      .long   0
+-      .word   0
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} -c conftest.s'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest.o; then
+-  grub_cv_asm_absolute_without_asterisk=no
+-else
+-  grub_cv_asm_absolute_without_asterisk=yes
+-fi
+-
+-rm -f conftest*
+-fi
+-
+-
+-if test "x$grub_cv_asm_absolute_without_asterisk" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define ABSOLUTE_WITHOUT_ASTERISK 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_asm_absolute_without_asterisk" >&5
+-echo "${ECHO_T}$grub_cv_asm_absolute_without_asterisk" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if start is defined by the compiler" >&5
+-echo $ECHO_N "checking if start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_start_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _start is defined by the compiler" >&5
+-echo $ECHO_N "checking if _start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_start_symbol" >&6
+-
+-if test "x$grub_cv_check_start_symbol" != "xyes" \
+-      -a "x$grub_cv_check_uscore_start_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: Neither start nor _start is defined" >&5
+-echo "$as_me: error: Neither start nor _start is defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking if __bss_start is defined by the compiler" >&5
+-echo $ECHO_N "checking if __bss_start is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_uscore_bss_start_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl __bss_start")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_uscore_bss_start_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_uscore_bss_start_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_USCORE_BSS_START_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_uscore_bss_start_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_uscore_bss_start_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _edata is defined by the compiler" >&5
+-echo $ECHO_N "checking if _edata is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_edata_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _edata")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_edata_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_edata_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_edata_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_EDATA_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_edata_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_edata_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if edata is defined by the compiler" >&5
+-echo $ECHO_N "checking if edata is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_edata_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl edata")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_edata_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_edata_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_edata_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_EDATA_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_edata_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_edata_symbol" >&6
+-
+-if test "x$grub_cv_check_uscore_uscore_bss_start_symbol" != "xyes" \
+-      -a "x$grub_cv_check_uscore_edata_symbol" != "xyes" \
+-      -a "x$grub_cv_check_edata_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: None of __bss_start, _edata, edata defined" >&5
+-echo "$as_me: error: None of __bss_start, _edata, edata defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-echo "$as_me:$LINENO: checking if end is defined by the compiler" >&5
+-echo $ECHO_N "checking if end is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_end_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl end")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_end_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_end_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_end_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_END_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_end_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_end_symbol" >&6
+-
+-
+-echo "$as_me:$LINENO: checking if _end is defined by the compiler" >&5
+-echo $ECHO_N "checking if _end is defined by the compiler... $ECHO_C" >&6
+-if test "${grub_cv_check_uscore_end_symbol+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-int
+-main ()
+-{
+-asm ("incl _end")
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  grub_cv_check_uscore_end_symbol=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-grub_cv_check_uscore_end_symbol=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-fi
+-
+-
+-if test "x$grub_cv_check_uscore_end_symbol" = xyes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_USCORE_END_SYMBOL 1
+-_ACEOF
+-
+-fi
+-
+-echo "$as_me:$LINENO: result: $grub_cv_check_uscore_end_symbol" >&5
+-echo "${ECHO_T}$grub_cv_check_uscore_end_symbol" >&6
+-
+-if test "x$grub_cv_check_end_symbol" != "xyes" \
+-      -a "x$grub_cv_check_uscore_end_symbol" != "xyes"; then
+-  { { echo "$as_me:$LINENO: error: Neither end nor _end is defined" >&5
+-echo "$as_me: error: Neither end nor _end is defined" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-# Check for curses libraries.
+-
+-# Check whether --with-curses or --without-curses was given.
+-if test "${with_curses+set}" = set; then
+-  withval="$with_curses"
+-
+-fi;
+-
+-# Get the filename or the whole disk and open it.
+-# Known to work on NetBSD.
+-echo "$as_me:$LINENO: checking for opendisk in -lutil" >&5
+-echo $ECHO_N "checking for opendisk in -lutil... $ECHO_C" >&6
+-if test "${ac_cv_lib_util_opendisk+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lutil  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char opendisk ();
+-int
+-main ()
+-{
+-opendisk ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_util_opendisk=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_util_opendisk=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_util_opendisk" >&5
+-echo "${ECHO_T}$ac_cv_lib_util_opendisk" >&6
+-if test $ac_cv_lib_util_opendisk = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lutil"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_OPENDISK 1
+-_ACEOF
+-
+-fi
+-
+-
+-# Unless the user specify --without-curses, check for curses.
+-if test "x$with_curses" != "xno"; then
+-  echo "$as_me:$LINENO: checking for wgetch in -lncurses" >&5
+-echo $ECHO_N "checking for wgetch in -lncurses... $ECHO_C" >&6
+-if test "${ac_cv_lib_ncurses_wgetch+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lncurses  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char wgetch ();
+-int
+-main ()
+-{
+-wgetch ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_ncurses_wgetch=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_ncurses_wgetch=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_ncurses_wgetch" >&5
+-echo "${ECHO_T}$ac_cv_lib_ncurses_wgetch" >&6
+-if test $ac_cv_lib_ncurses_wgetch = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lncurses"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_LIBCURSES 1
+-_ACEOF
+-
+-else
+-  echo "$as_me:$LINENO: checking for wgetch in -lcurses" >&5
+-echo $ECHO_N "checking for wgetch in -lcurses... $ECHO_C" >&6
+-if test "${ac_cv_lib_curses_wgetch+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  ac_check_lib_save_LIBS=$LIBS
+-LIBS="-lcurses  $LIBS"
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-
+-/* Override any gcc2 internal prototype to avoid an error.  */
+-#ifdef __cplusplus
+-extern "C"
+-#endif
+-/* We use char because int might match the return type of a gcc2
+-   builtin and then its argument prototype would still apply.  */
+-char wgetch ();
+-int
+-main ()
+-{
+-wgetch ();
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_lib_curses_wgetch=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_lib_curses_wgetch=no
+-fi
+-rm -f conftest.err conftest.$ac_objext \
+-      conftest$ac_exeext conftest.$ac_ext
+-LIBS=$ac_check_lib_save_LIBS
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_lib_curses_wgetch" >&5
+-echo "${ECHO_T}$ac_cv_lib_curses_wgetch" >&6
+-if test $ac_cv_lib_curses_wgetch = yes; then
+-  GRUB_LIBS="$GRUB_LIBS -lcurses"
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define HAVE_LIBCURSES 1
+-_ACEOF
+-
+-fi
+-
+-fi
+-
+-fi
+-
+-
+-
+-# Check for headers.
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+-# On Suns, sometimes $CPP names a directory.
+-if test -n "$CPP" && test -d "$CPP"; then
+-  CPP=
+-fi
+-if test -z "$CPP"; then
+-  if test "${ac_cv_prog_CPP+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-      # Double quotes because CPP needs to be expanded
+-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+-    do
+-      ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-                   Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+-  break
+-fi
+-
+-    done
+-    ac_cv_prog_CPP=$CPP
+-
+-fi
+-  CPP=$ac_cv_prog_CPP
+-else
+-  ac_cv_prog_CPP=$CPP
+-fi
+-echo "$as_me:$LINENO: result: $CPP" >&5
+-echo "${ECHO_T}$CPP" >&6
+-ac_preproc_ok=false
+-for ac_c_preproc_warn_flag in '' yes
+-do
+-  # Use a header file that comes with gcc, so configuring glibc
+-  # with a fresh cross-compiler works.
+-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+-  # <limits.h> exists even on freestanding compilers.
+-  # On the NeXT, cc -E runs the code through the compiler's parser,
+-  # not just through cpp. "Syntax error" is here to catch this case.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#ifdef __STDC__
+-# include <limits.h>
+-#else
+-# include <assert.h>
+-#endif
+-                   Syntax error
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  :
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Broken: fails on valid input.
+-continue
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-  # OK, works on sane cases.  Now check whether non-existent headers
+-  # can be detected and how.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ac_nonexistent.h>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  # Broken: success on invalid input.
+-continue
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  # Passes both tests.
+-ac_preproc_ok=:
+-break
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-
+-done
+-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+-rm -f conftest.err conftest.$ac_ext
+-if $ac_preproc_ok; then
+-  :
+-else
+-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&5
+-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+-See \`config.log' for more details." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-ac_ext=c
+-ac_cpp='$CPP $CPPFLAGS'
+-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+-
+-
+-echo "$as_me:$LINENO: checking for egrep" >&5
+-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
+-if test "${ac_cv_prog_egrep+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
+-    then ac_cv_prog_egrep='grep -E'
+-    else ac_cv_prog_egrep='egrep'
+-    fi
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
+-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
+- EGREP=$ac_cv_prog_egrep
+-
+-
+-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+-if test "${ac_cv_header_stdc+set}" = set; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-#include <stdarg.h>
+-#include <string.h>
+-#include <float.h>
+-
+-int
+-main ()
+-{
+-
+-  ;
+-  return 0;
+-}
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_cv_header_stdc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_cv_header_stdc=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <string.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "memchr" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+-rm -f conftest*
+-
+-fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <stdlib.h>
+-
+-_ACEOF
+-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+-  $EGREP "free" >/dev/null 2>&1; then
+-  :
+-else
+-  ac_cv_header_stdc=no
+-fi
+-rm -f conftest*
+-
+-fi
+-
+-if test $ac_cv_header_stdc = yes; then
+-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+-  if test "$cross_compiling" = yes; then
+-  :
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <ctype.h>
+-#if ((' ' & 0x0FF) == 0x020)
+-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+-#else
+-# define ISLOWER(c) \
+-                 (('a' <= (c) && (c) <= 'i') \
+-                   || ('j' <= (c) && (c) <= 'r') \
+-                   || ('s' <= (c) && (c) <= 'z'))
+-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+-#endif
+-
+-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+-int
+-main ()
+-{
+-  int i;
+-  for (i = 0; i < 256; i++)
+-    if (XOR (islower (i), ISLOWER (i))
+-      || toupper (i) != TOUPPER (i))
+-      exit(2);
+-  exit (0);
+-}
+-_ACEOF
+-rm -f conftest$ac_exeext
+-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+-  (eval $ac_link) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  :
+-else
+-  echo "$as_me: program exited with status $ac_status" >&5
+-echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-( exit $ac_status )
+-ac_cv_header_stdc=no
+-fi
+-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+-fi
+-fi
+-fi
+-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+-if test $ac_cv_header_stdc = yes; then
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define STDC_HEADERS 1
+-_ACEOF
+-
+-fi
+-
+-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+-                inttypes.h stdint.h unistd.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  eval "$as_ac_Header=yes"
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-eval "$as_ac_Header=no"
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<_ACEOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+-
+-
+-
+-
+-
+-
+-for ac_header in string.h strings.h ncurses/curses.h ncurses.h curses.h
+-do
+-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-else
+-  # Is the header compilable?
+-echo "$as_me:$LINENO: checking $ac_header usability" >&5
+-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-$ac_includes_default
+-#include <$ac_header>
+-_ACEOF
+-rm -f conftest.$ac_objext
+-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+-  (eval $ac_compile) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } &&
+-       { ac_try='test -z "$ac_c_werror_flag"
+-                       || test ! -s conftest.err'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } &&
+-       { ac_try='test -s conftest.$ac_objext'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; }; then
+-  ac_header_compiler=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-ac_header_compiler=no
+-fi
+-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+-echo "${ECHO_T}$ac_header_compiler" >&6
+-
+-# Is the header present?
+-echo "$as_me:$LINENO: checking $ac_header presence" >&5
+-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+-cat >conftest.$ac_ext <<_ACEOF
+-/* confdefs.h.  */
+-_ACEOF
+-cat confdefs.h >>conftest.$ac_ext
+-cat >>conftest.$ac_ext <<_ACEOF
+-/* end confdefs.h.  */
+-#include <$ac_header>
+-_ACEOF
+-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+-  ac_status=$?
+-  grep -v '^ *+' conftest.er1 >conftest.err
+-  rm -f conftest.er1
+-  cat conftest.err >&5
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); } >/dev/null; then
+-  if test -s conftest.err; then
+-    ac_cpp_err=$ac_c_preproc_warn_flag
+-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+-  else
+-    ac_cpp_err=
+-  fi
+-else
+-  ac_cpp_err=yes
+-fi
+-if test -z "$ac_cpp_err"; then
+-  ac_header_preproc=yes
+-else
+-  echo "$as_me: failed program was:" >&5
+-sed 's/^/| /' conftest.$ac_ext >&5
+-
+-  ac_header_preproc=no
+-fi
+-rm -f conftest.err conftest.$ac_ext
+-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+-echo "${ECHO_T}$ac_header_preproc" >&6
+-
+-# So?  What about this header?
+-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+-  yes:no: )
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+-    ac_header_preproc=yes
+-    ;;
+-  no:yes:* )
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+-    (
+-      cat <<\_ASBOX
+-## ------------------------------- ##
+-## Report this to bug-grub@gnu.org ##
+-## ------------------------------- ##
+-_ASBOX
+-    ) |
+-      sed "s/^/$as_me: WARNING:     /" >&2
+-    ;;
+-esac
+-echo "$as_me:$LINENO: checking for $ac_header" >&5
+-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+-  echo $ECHO_N "(cached) $ECHO_C" >&6
+-else
+-  eval "$as_ac_Header=\$ac_header_preproc"
+-fi
+-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+-
+-fi
+-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+-  cat >>confdefs.h <<_ACEOF
+-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+-_ACEOF
+-
+-fi
+-
+-done
+-
+-
+-# Check for user options.
+-
+-# filesystems support.
+-# Check whether --enable-ext2fs or --disable-ext2fs was given.
+-if test "${enable_ext2fs+set}" = set; then
+-  enableval="$enable_ext2fs"
+-
+-fi;
+-
+-if test x"$enable_ext2fs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_EXT2FS=1"
+-fi
+-
+-# Check whether --enable-fat or --disable-fat was given.
+-if test "${enable_fat+set}" = set; then
+-  enableval="$enable_fat"
+-
+-fi;
+-
+-if test x"$enable_fat" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FAT=1"
+-fi
+-
+-# Check whether --enable-ffs or --disable-ffs was given.
+-if test "${enable_ffs+set}" = set; then
+-  enableval="$enable_ffs"
+-
+-fi;
+-
+-if test x"$enable_ffs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_FFS=1"
+-fi
+-
+-# Check whether --enable-ufs2 or --disable-ufs2 was given.
+-if test "${enable_ufs2+set}" = set; then
+-  enableval="$enable_ufs2"
+-
+-fi;
+-
+-if test x"$enable_ufs2" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_UFS2=1"
+-fi
+-
+-# Check whether --enable-minix or --disable-minix was given.
+-if test "${enable_minix+set}" = set; then
+-  enableval="$enable_minix"
+-
+-fi;
+-
+-if test x"$enable_minix" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_MINIX=1"
+-fi
+-
+-# Check whether --enable-reiserfs or --disable-reiserfs was given.
+-if test "${enable_reiserfs+set}" = set; then
+-  enableval="$enable_reiserfs"
+-
+-fi;
+-
+-if test x"$enable_reiserfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_REISERFS=1"
+-fi
+-
+-# Check whether --enable-vstafs or --disable-vstafs was given.
+-if test "${enable_vstafs+set}" = set; then
+-  enableval="$enable_vstafs"
+-
+-fi;
+-
+-if test x"$enable_vstafs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_VSTAFS=1"
+-fi
+-
+-# Check whether --enable-jfs or --disable-jfs was given.
+-if test "${enable_jfs+set}" = set; then
+-  enableval="$enable_jfs"
+-
+-fi;
+-
+-if test x"$enable_jfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_JFS=1"
+-fi
+-
+-# Check whether --enable-xfs or --disable-xfs was given.
+-if test "${enable_xfs+set}" = set; then
+-  enableval="$enable_xfs"
+-
+-fi;
+-
+-if test x"$enable_xfs" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_XFS=1"
+-fi
+-
+-# Check whether --enable-iso9660 or --disable-iso9660 was given.
+-if test "${enable_iso9660+set}" = set; then
+-  enableval="$enable_iso9660"
+-
+-fi;
+-
+-if test x"$enable_iso9660" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_ISO9660=1"
+-fi
+-
+-
+-# Check whether --enable-gunzip or --disable-gunzip was given.
+-if test "${enable_gunzip+set}" = set; then
+-  enableval="$enable_gunzip"
+-
+-fi;
+-
+-if test x"$enable_gunzip" = xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DNO_DECOMPRESSION=1"
+-fi
+-
+-# Check whether --enable-md5-password or --disable-md5-password was given.
+-if test "${enable_md5_password+set}" = set; then
+-  enableval="$enable_md5_password"
+-
+-fi;
+-if test "x$enable_md5_password" != xno; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DUSE_MD5_PASSWORDS=1"
+-fi
+-
+-# Check whether --enable-packet-retransmission or --disable-packet-retransmission was given.
+-if test "${enable_packet_retransmission+set}" = set; then
+-  enableval="$enable_packet_retransmission"
+-
+-fi;
+-if test "x$enable_packet_retransmission" != xno; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONGESTED=1"
+-fi
+-
+-# Check whether --enable-pci-direct or --disable-pci-direct was given.
+-if test "${enable_pci_direct+set}" = set; then
+-  enableval="$enable_pci_direct"
+-
+-fi;
+-if test "x$enable_pci_direct" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCONFIG_PCI_DIRECT=1"
+-fi
+-
+-# Check whether --enable-3c509 or --disable-3c509 was given.
+-if test "${enable_3c509+set}" = set; then
+-  enableval="$enable_3c509"
+-
+-fi;
+-if test "x$enable_3c509" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C509"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c509.o"
+-fi
+-
+-# Check whether --enable-3c529 or --disable-3c529 was given.
+-if test "${enable_3c529+set}" = set; then
+-  enableval="$enable_3c529"
+-
+-fi;
+-if test "x$enable_3c529" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C529=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c529.o"
+-fi
+-
+-# Check whether --enable-3c595 or --disable-3c595 was given.
+-if test "${enable_3c595+set}" = set; then
+-  enableval="$enable_3c595"
+-
+-fi;
+-if test "x$enable_3c595" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C595=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c595.o"
+-fi
+-
+-# Check whether --enable-3c90x or --disable-3c90x was given.
+-if test "${enable_3c90x+set}" = set; then
+-  enableval="$enable_3c90x"
+-
+-fi;
+-if test "x$enable_3c90x" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C90X=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c90x.o"
+-fi
+-
+-# Check whether --enable-cs89x0 or --disable-cs89x0 was given.
+-if test "${enable_cs89x0+set}" = set; then
+-  enableval="$enable_cs89x0"
+-
+-fi;
+-if test "x$enable_cs89x0" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_CS89X0=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS cs89x0.o"
+-fi
+-
+-# Check whether --enable-davicom or --disable-davicom was given.
+-if test "${enable_davicom+set}" = set; then
+-  enableval="$enable_davicom"
+-
+-fi;
+-if test "x$enable_davicom" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DAVICOM=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS davicom.o"
+-fi
+-
+-# Check whether --enable-depca or --disable-depca was given.
+-if test "${enable_depca+set}" = set; then
+-  enableval="$enable_depca"
+-
+-fi;
+-if test "x$enable_depca" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_DEPCA=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS depca.o"
+-fi
+-
+-# Check whether --enable-eepro or --disable-eepro was given.
+-if test "${enable_eepro+set}" = set; then
+-  enableval="$enable_eepro"
+-
+-fi;
+-if test "x$enable_eepro" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro.o"
+-fi
+-
+-# Check whether --enable-eepro100 or --disable-eepro100 was given.
+-if test "${enable_eepro100+set}" = set; then
+-  enableval="$enable_eepro100"
+-
+-fi;
+-if test "x$enable_eepro100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EEPRO100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS eepro100.o"
+-fi
+-
+-# Check whether --enable-epic100 or --disable-epic100 was given.
+-if test "${enable_epic100+set}" = set; then
+-  enableval="$enable_epic100"
+-
+-fi;
+-if test "x$enable_epic100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EPIC100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS epic100.o"
+-fi
+-
+-# Check whether --enable-3c507 or --disable-3c507 was given.
+-if test "${enable_3c507+set}" = set; then
+-  enableval="$enable_3c507"
+-
+-fi;
+-if test "x$enable_3c507" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C507=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c507.o"
+-fi
+-
+-# Check whether --enable-exos205 or --disable-exos205 was given.
+-if test "${enable_exos205+set}" = set; then
+-  enableval="$enable_exos205"
+-
+-fi;
+-if test "x$enable_exos205" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_EXOS205=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS exos205.o"
+-fi
+-
+-# Check whether --enable-ni5210 or --disable-ni5210 was given.
+-if test "${enable_ni5210+set}" = set; then
+-  enableval="$enable_ni5210"
+-
+-fi;
+-if test "x$enable_ni5210" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5210=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5210.o"
+-fi
+-
+-# Check whether --enable-lance or --disable-lance was given.
+-if test "${enable_lance+set}" = set; then
+-  enableval="$enable_lance"
+-
+-fi;
+-if test "x$enable_lance" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_LANCE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS lance.o"
+-fi
+-
+-# Check whether --enable-ne2100 or --disable-ne2100 was given.
+-if test "${enable_ne2100+set}" = set; then
+-  enableval="$enable_ne2100"
+-
+-fi;
+-if test "x$enable_ne2100" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE2100=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne2100.o"
+-fi
+-
+-# Check whether --enable-ni6510 or --disable-ni6510 was given.
+-if test "${enable_ni6510+set}" = set; then
+-  enableval="$enable_ni6510"
+-
+-fi;
+-if test "x$enable_ni6510" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI6510=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni6510.o"
+-fi
+-
+-# Check whether --enable-natsemi or --disable-natsemi was given.
+-if test "${enable_natsemi+set}" = set; then
+-  enableval="$enable_natsemi"
+-
+-fi;
+-if test "x$enable_natsemi" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NATSEMI=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS natsemi.o"
+-fi
+-
+-# Check whether --enable-ni5010 or --disable-ni5010 was given.
+-if test "${enable_ni5010+set}" = set; then
+-  enableval="$enable_ni5010"
+-
+-fi;
+-if test "x$enable_ni5010" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NI5010=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ni5010.o"
+-fi
+-
+-# Check whether --enable-3c503 or --disable-3c503 was given.
+-if test "${enable_3c503+set}" = set; then
+-  enableval="$enable_3c503"
+-
+-fi;
+-if test "x$enable_3c503" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_3C503=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS 3c503.o"
+-fi
+-
+-# Check whether --enable-ne or --disable-ne was given.
+-if test "${enable_ne+set}" = set; then
+-  enableval="$enable_ne"
+-
+-fi;
+-if test "x$enable_ne" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ne.o"
+-fi
+-
+-# Check whether --enable-ns8390 or --disable-ns8390 was given.
+-if test "${enable_ns8390+set}" = set; then
+-  enableval="$enable_ns8390"
+-
+-fi;
+-if test "x$enable_ns8390" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_NS8390=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS ns8390.o"
+-fi
+-
+-# Check whether --enable-wd or --disable-wd was given.
+-if test "${enable_wd+set}" = set; then
+-  enableval="$enable_wd"
+-
+-fi;
+-if test "x$enable_wd" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_WD=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS wd.o"
+-fi
+-
+-# Check whether --enable-otulip or --disable-otulip was given.
+-if test "${enable_otulip+set}" = set; then
+-  enableval="$enable_otulip"
+-
+-fi;
+-if test "x$enable_otulip" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_OTULIP=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS otulip.o"
+-fi
+-
+-# Check whether --enable-rtl8139 or --disable-rtl8139 was given.
+-if test "${enable_rtl8139+set}" = set; then
+-  enableval="$enable_rtl8139"
+-
+-fi;
+-if test "x$enable_rtl8139" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_RTL8139=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS rtl8139.o"
+-fi
+-
+-# Check whether --enable-sis900 or --disable-sis900 was given.
+-if test "${enable_sis900+set}" = set; then
+-  enableval="$enable_sis900"
+-
+-fi;
+-if test "x$enable_sis900" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SIS900=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS sis900.o"
+-fi
+-
+-# Check whether --enable-sk-g16 or --disable-sk-g16 was given.
+-if test "${enable_sk_g16+set}" = set; then
+-  enableval="$enable_sk_g16"
+-
+-fi;
+-if test "x$enable_sk_g16" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SK_G16=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS sk_g16.o"
+-fi
+-
+-# Check whether --enable-smc9000 or --disable-smc9000 was given.
+-if test "${enable_smc9000+set}" = set; then
+-  enableval="$enable_smc9000"
+-
+-fi;
+-if test "x$enable_smc9000" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_SMC9000=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS smc9000.o"
+-fi
+-
+-# Check whether --enable-tiara or --disable-tiara was given.
+-if test "${enable_tiara+set}" = set; then
+-  enableval="$enable_tiara"
+-
+-fi;
+-if test "x$enable_tiara" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TIARA=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS tiara.o"
+-fi
+-
+-# Check whether --enable-tulip or --disable-tulip was given.
+-if test "${enable_tulip+set}" = set; then
+-  enableval="$enable_tulip"
+-
+-fi;
+-if test "x$enable_tulip" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_TULIP=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS tulip.o"
+-fi
+-
+-# Check whether --enable-via-rhine or --disable-via-rhine was given.
+-if test "${enable_via_rhine+set}" = set; then
+-  enableval="$enable_via_rhine"
+-
+-fi;
+-if test "x$enable_via_rhine" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_VIA_RHINE=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS via_rhine.o"
+-fi
+-
+-# Check whether --enable-w89c840 or --disable-w89c840 was given.
+-if test "${enable_w89c840+set}" = set; then
+-  enableval="$enable_w89c840"
+-
+-fi;
+-if test "x$enable_w89c840" = xyes; then
+-  NET_CFLAGS="$NET_CFLAGS -DINCLUDE_W89C840=1"
+-  NETBOOT_DRIVERS="$NETBOOT_DRIVERS w89c840.o"
+-fi
+-
+-
+-
+-if test "x$NET_CFLAGS" != x; then
+-  NETBOOT_SUPPORT_TRUE=
+-  NETBOOT_SUPPORT_FALSE='#'
+-else
+-  NETBOOT_SUPPORT_TRUE='#'
+-  NETBOOT_SUPPORT_FALSE=
+-fi
+-
+-if test "x$NET_CFLAGS" != x; then
+-  FSYS_CFLAGS="$FSYS_CFLAGS -DFSYS_TFTP=1"
+-fi
+-
+-# Check whether --enable-3c503-shmem or --disable-3c503-shmem was given.
+-if test "${enable_3c503_shmem+set}" = set; then
+-  enableval="$enable_3c503_shmem"
+-
+-fi;
+-if test "x$enable_3c503_shmem" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_SHMEM=1"
+-fi
+-
+-# Check whether --enable-3c503-aui or --disable-3c503-aui was given.
+-if test "${enable_3c503_aui+set}" = set; then
+-  enableval="$enable_3c503_aui"
+-
+-fi;
+-if test "x$enable_3c503_aui" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DT503_AUI=1"
+-fi
+-
+-# Check whether --enable-compex-rl2000-fix or --disable-compex-rl2000-fix was given.
+-if test "${enable_compex_rl2000_fix+set}" = set; then
+-  enableval="$enable_compex_rl2000_fix"
+-
+-fi;
+-if test "x$enable_compex_rl2000_fix" = xyes; then
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCOMPEX_RL2000_FIX=1"
+-fi
+-
+-# Check whether --enable-smc9000-scan or --disable-smc9000-scan was given.
+-if test "${enable_smc9000_scan+set}" = set; then
+-  enableval="$enable_smc9000_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DSMC9000_SCAN=$enable_smc9000_scan"
+-fi;
+-
+-# Check whether --enable-ne-scan or --disable-ne-scan was given.
+-if test "${enable_ne_scan+set}" = set; then
+-  enableval="$enable_ne_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=$enable_ne_scan"
+-else
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DNE_SCAN=0x280,0x300,0x320,0x340"
+-fi;
+-
+-# Check whether --enable-wd-default-mem or --disable-wd-default-mem was given.
+-if test "${enable_wd_default_mem+set}" = set; then
+-  enableval="$enable_wd_default_mem"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=$enable_wd_default_mem"
+-else
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DWD_DEFAULT_MEM=0xCC000"
+-fi;
+-
+-# Check whether --enable-cs-scan or --disable-cs-scan was given.
+-if test "${enable_cs_scan+set}" = set; then
+-  enableval="$enable_cs_scan"
+-  NET_EXTRAFLAGS="$NET_EXTRAFLAGS -DCS_SCAN=$enable_cs_scan"
+-fi;
+-
+-# Check whether --enable-diskless or --disable-diskless was given.
+-if test "${enable_diskless+set}" = set; then
+-  enableval="$enable_diskless"
+-
+-fi;
+-
+-
+-if test "x$enable_diskless" = xyes; then
+-  DISKLESS_SUPPORT_TRUE=
+-  DISKLESS_SUPPORT_FALSE='#'
+-else
+-  DISKLESS_SUPPORT_TRUE='#'
+-  DISKLESS_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-hercules or --disable-hercules was given.
+-if test "${enable_hercules+set}" = set; then
+-  enableval="$enable_hercules"
+-
+-fi;
+-
+-
+-if test "x$enable_hercules" != xno; then
+-  HERCULES_SUPPORT_TRUE=
+-  HERCULES_SUPPORT_FALSE='#'
+-else
+-  HERCULES_SUPPORT_TRUE='#'
+-  HERCULES_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-serial or --disable-serial was given.
+-if test "${enable_serial+set}" = set; then
+-  enableval="$enable_serial"
+-
+-fi;
+-
+-
+-if test "x$enable_serial" != xno; then
+-  SERIAL_SUPPORT_TRUE=
+-  SERIAL_SUPPORT_FALSE='#'
+-else
+-  SERIAL_SUPPORT_TRUE='#'
+-  SERIAL_SUPPORT_FALSE=
+-fi
+-
+-
+-# Check whether --enable-serial-speed-simulation or --disable-serial-speed-simulation was given.
+-if test "${enable_serial_speed_simulation+set}" = set; then
+-  enableval="$enable_serial_speed_simulation"
+-
+-fi;
+-
+-
+-if test "x$enable_serial_speed_simulation" = xyes; then
+-  SERIAL_SPEED_SIMULATION_TRUE=
+-  SERIAL_SPEED_SIMULATION_FALSE='#'
+-else
+-  SERIAL_SPEED_SIMULATION_TRUE='#'
+-  SERIAL_SPEED_SIMULATION_FALSE=
+-fi
+-
+-
+-# Sanity check.
+-if test "x$enable_diskless" = xyes; then
+-  if test "x$NET_CFLAGS" = x; then
+-    { { echo "$as_me:$LINENO: error: You must enable at least one network driver" >&5
+-echo "$as_me: error: You must enable at least one network driver" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# Check whether --enable-preset-menu or --disable-preset-menu was given.
+-if test "${enable_preset_menu+set}" = set; then
+-  enableval="$enable_preset_menu"
+-
+-fi;
+-if test "x$enable_preset_menu" = x; then
+-  :
+-else
+-  if test -r $enable_preset_menu; then
+-
+-# Because early versions of GNU sed 3.x are too buggy, use a C program
+-# instead of shell commands. *sigh*
+-cat >conftest.c <<\EOF
+-#include <stdio.h>
+-
+-int
+-main (void)
+-{
+-  int c;
+-
+-  while ((c = getchar ()) != EOF)
+-    {
+-      switch (c)
+-        {
+-      case '\n':
+-        fputs ("\\n", stdout);
+-        break;
+-      case '\r':
+-        fputs ("\\r", stdout);
+-        break;
+-      case '\\':
+-        fputs ("\\\\", stdout);
+-        break;
+-      case '"':
+-        fputs ("\\\"", stdout);
+-        break;
+-      default:
+-        putchar (c);
+-      }
+-    }
+-
+-  return 0;
+-}
+-EOF
+-
+-if { ac_try='${CC-cc} ${CFLAGS} conftest.c -o conftest'
+-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+-  (eval $ac_try) 2>&5
+-  ac_status=$?
+-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+-  (exit $ac_status); }; } && test -s conftest; then
+-  grub_tmp_value=`./conftest < "$enable_preset_menu"`
+-else
+-  { { echo "$as_me:$LINENO: error: ${CC-cc} failed to produce an executable file" >&5
+-echo "$as_me: error: ${CC-cc} failed to produce an executable file" >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-
+-cat >>confdefs.h <<_ACEOF
+-#define PRESET_MENU_STRING "$grub_tmp_value"
+-_ACEOF
+-
+-rm -f conftest*
+-
+-  else
+-    { { echo "$as_me:$LINENO: error: Cannot read the preset menu file $enable_preset_menu" >&5
+-echo "$as_me: error: Cannot read the preset menu file $enable_preset_menu" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-fi
+-
+-# Check whether --enable-example-kernel or --disable-example-kernel was given.
+-if test "${enable_example_kernel+set}" = set; then
+-  enableval="$enable_example_kernel"
+-
+-fi;
+-
+-
+-if test "x$enable_example_kernel" = xyes; then
+-  BUILD_EXAMPLE_KERNEL_TRUE=
+-  BUILD_EXAMPLE_KERNEL_FALSE='#'
+-else
+-  BUILD_EXAMPLE_KERNEL_TRUE='#'
+-  BUILD_EXAMPLE_KERNEL_FALSE=
+-fi
+-
+-
+-# Check whether --enable-auto-linux-mem-opt or --disable-auto-linux-mem-opt was given.
+-if test "${enable_auto_linux_mem_opt+set}" = set; then
+-  enableval="$enable_auto_linux_mem_opt"
+-
+-fi;
+-if test "x$enable_auto_linux_mem_opt" = xno; then
+-  :
+-else
+-
+-cat >>confdefs.h <<\_ACEOF
+-#define AUTO_LINUX_MEM_OPT 1
+-_ACEOF
+-
+-fi
+-
+-
+-
+-
+-
+-
+-CCASFLAGS='$(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)'
+-
+-
+-
+-                                                                                                                                  ac_config_files="$ac_config_files Makefile stage1/Makefile stage2/Makefile docs/Makefile lib/Makefile util/Makefile grub/Makefile netboot/Makefile util/grub-image util/grub-install util/grub-md5-crypt util/grub-terminfo util/grub-set-default"
+-
+-cat >confcache <<\_ACEOF
+-# This file is a shell script that caches the results of configure
+-# tests run on this system so they can be shared between configure
+-# scripts and configure runs, see configure's option --config-cache.
+-# It is not useful on other systems.  If it contains results you don't
+-# want to keep, you may remove or edit it.
+-#
+-# config.status only pays attention to the cache file if you give it
+-# the --recheck option to rerun configure.
+-#
+-# `ac_cv_env_foo' variables (set or unset) will be overridden when
+-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+-# following values.
+-
+-_ACEOF
+-
+-# The following way of writing the cache mishandles newlines in values,
+-# but we know of no workaround that is simple, portable, and efficient.
+-# So, don't put newlines in cache variables' values.
+-# Ultrix sh set writes to stderr and can't be redirected directly,
+-# and sets the high bit in the cache file unless we assign to the vars.
+-{
+-  (set) 2>&1 |
+-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
+-    *ac_space=\ *)
+-      # `set' does not quote correctly, so add quotes (double-quote
+-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+-      sed -n \
+-      "s/'/'\\\\''/g;
+-        s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+-      ;;
+-    *)
+-      # `set' quotes correctly as required by POSIX, so do not add quotes.
+-      sed -n \
+-      "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+-      ;;
+-    esac;
+-} |
+-  sed '
+-     t clear
+-     : clear
+-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
+-     t end
+-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+-     : end' >>confcache
+-if diff $cache_file confcache >/dev/null 2>&1; then :; else
+-  if test -w $cache_file; then
+-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+-    cat confcache >$cache_file
+-  else
+-    echo "not updating unwritable cache $cache_file"
+-  fi
+-fi
+-rm -f confcache
+-
+-test "x$prefix" = xNONE && prefix=$ac_default_prefix
+-# Let make expand exec_prefix.
+-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+-
+-# VPATH may cause trouble with some makes, so we remove $(srcdir),
+-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+-# trailing colons and then remove the whole line if VPATH becomes empty
+-# (actually we leave an empty line to preserve line numbers).
+-if test "x$srcdir" = x.; then
+-  ac_vpsub='/^[        ]*VPATH[        ]*=/{
+-s/:*\$(srcdir):*/:/;
+-s/:*\${srcdir}:*/:/;
+-s/:*@srcdir@:*/:/;
+-s/^\([^=]*=[   ]*\):*/\1/;
+-s/:*$//;
+-s/^[^=]*=[     ]*$//;
+-}'
+-fi
+-
+-DEFS=-DHAVE_CONFIG_H
+-
+-ac_libobjs=
+-ac_ltlibobjs=
+-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+-  # 1. Remove the extension, and $U if already installed.
+-  ac_i=`echo "$ac_i" |
+-       sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
+-  # 2. Add them.
+-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
+-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+-done
+-LIBOBJS=$ac_libobjs
+-
+-LTLIBOBJS=$ac_ltlibobjs
+-
+-
+-if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"AMDEP\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${NETBOOT_SUPPORT_TRUE}" && test -z "${NETBOOT_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"NETBOOT_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"NETBOOT_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${DISKLESS_SUPPORT_TRUE}" && test -z "${DISKLESS_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"DISKLESS_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"DISKLESS_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${HERCULES_SUPPORT_TRUE}" && test -z "${HERCULES_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"HERCULES_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"HERCULES_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${SERIAL_SUPPORT_TRUE}" && test -z "${SERIAL_SUPPORT_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"SERIAL_SUPPORT\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${SERIAL_SPEED_SIMULATION_TRUE}" && test -z "${SERIAL_SPEED_SIMULATION_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"SERIAL_SPEED_SIMULATION\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-if test -z "${BUILD_EXAMPLE_KERNEL_TRUE}" && test -z "${BUILD_EXAMPLE_KERNEL_FALSE}"; then
+-  { { echo "$as_me:$LINENO: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&5
+-echo "$as_me: error: conditional \"BUILD_EXAMPLE_KERNEL\" was never defined.
+-Usually this means the macro was only invoked conditionally." >&2;}
+-   { (exit 1); exit 1; }; }
+-fi
+-
+-: ${CONFIG_STATUS=./config.status}
+-ac_clean_files_save=$ac_clean_files
+-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+-echo "$as_me: creating $CONFIG_STATUS" >&6;}
+-cat >$CONFIG_STATUS <<_ACEOF
+-#! $SHELL
+-# Generated by $as_me.
+-# Run this file to recreate the current configuration.
+-# Compiler output produced by configure, useful for debugging
+-# configure, is in config.log if it exists.
+-
+-debug=false
+-ac_cs_recheck=false
+-ac_cs_silent=false
+-SHELL=\${CONFIG_SHELL-$SHELL}
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-## --------------------- ##
+-## M4sh Initialization.  ##
+-## --------------------- ##
+-
+-# Be Bourne compatible
+-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+-  emulate sh
+-  NULLCMD=:
+-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+-  # is contrary to our usage.  Disable this feature.
+-  alias -g '${1+"$@"}'='"$@"'
+-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
+-  set -o posix
+-fi
+-DUALCASE=1; export DUALCASE # for MKS sh
+-
+-# Support unset when possible.
+-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+-  as_unset=unset
+-else
+-  as_unset=false
+-fi
+-
+-
+-# Work around bugs in pre-3.0 UWIN ksh.
+-$as_unset ENV MAIL MAILPATH
+-PS1='$ '
+-PS2='> '
+-PS4='+ '
+-
+-# NLS nuisances.
+-for as_var in \
+-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
+-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
+-  LC_TELEPHONE LC_TIME
+-do
+-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
+-    eval $as_var=C; export $as_var
+-  else
+-    $as_unset $as_var
+-  fi
+-done
+-
+-# Required to use basename.
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+-  as_basename=basename
+-else
+-  as_basename=false
+-fi
+-
+-
+-# Name of the executable.
+-as_me=`$as_basename "$0" ||
+-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+-       X"$0" : 'X\(//\)$' \| \
+-       X"$0" : 'X\(/\)$' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X/"$0" |
+-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
+-        /^X\/\(\/\/\)$/{ s//\1/; q; }
+-        /^X\/\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-
+-
+-# PATH needs CR, and LINENO needs CR and PATH.
+-# Avoid depending upon Character Ranges.
+-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+-as_cr_digits='0123456789'
+-as_cr_alnum=$as_cr_Letters$as_cr_digits
+-
+-# The user is always right.
+-if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
+-  echo  "exit 0"   >>conf$$.sh
+-  chmod +x conf$$.sh
+-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+-    PATH_SEPARATOR=';'
+-  else
+-    PATH_SEPARATOR=:
+-  fi
+-  rm -f conf$$.sh
+-fi
+-
+-
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
+-  # Find who we are.  Look in the path if we contain no path at all
+-  # relative or not.
+-  case $0 in
+-    *[\\/]* ) as_myself=$0 ;;
+-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in $PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+-done
+-
+-       ;;
+-  esac
+-  # We did not find ourselves, most probably we were run as `sh COMMAND'
+-  # in which case we are not to be found in the path.
+-  if test "x$as_myself" = x; then
+-    as_myself=$0
+-  fi
+-  if test ! -f "$as_myself"; then
+-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
+-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
+-   { (exit 1); exit 1; }; }
+-  fi
+-  case $CONFIG_SHELL in
+-  '')
+-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+-do
+-  IFS=$as_save_IFS
+-  test -z "$as_dir" && as_dir=.
+-  for as_base in sh bash ksh sh5; do
+-       case $as_dir in
+-       /*)
+-         if ("$as_dir/$as_base" -c '
+-  as_lineno_1=$LINENO
+-  as_lineno_2=$LINENO
+-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
+-  test "x$as_lineno_1" != "x$as_lineno_2" &&
+-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
+-           $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
+-           $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
+-           CONFIG_SHELL=$as_dir/$as_base
+-           export CONFIG_SHELL
+-           exec "$CONFIG_SHELL" "$0" ${1+"$@"}
+-         fi;;
+-       esac
+-       done
+-done
+-;;
+-  esac
+-
+-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
+-  # uniformly replaced by the line number.  The first 'sed' inserts a
+-  # line-number line before each line; the second 'sed' does the real
+-  # work.  The second script uses 'N' to pair each line-number line
+-  # with the numbered line, and appends trailing '-' during
+-  # substitution so that $LINENO is not a special case at line end.
+-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
+-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
+-  sed '=' <$as_myself |
+-    sed '
+-      N
+-      s,$,-,
+-      : loop
+-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+-      t loop
+-      s,-$,,
+-      s,^['$as_cr_digits']*\n,,
+-    ' >$as_me.lineno &&
+-  chmod +x $as_me.lineno ||
+-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
+-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+-   { (exit 1); exit 1; }; }
+-
+-  # Don't try to exec as it changes $[0], causing all sort of problems
+-  # (the dirname of $[0] is not the place where we might find the
+-  # original and so on.  Autoconf is especially sensible to this).
+-  . ./$as_me.lineno
+-  # Exit status is that of the last command.
+-  exit
+-}
+-
+-
+-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
+-  *c*,-n*) ECHO_N= ECHO_C='
+-' ECHO_T='    ' ;;
+-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
+-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+-esac
+-
+-if expr a : '\(a\)' >/dev/null 2>&1; then
+-  as_expr=expr
+-else
+-  as_expr=false
+-fi
+-
+-rm -f conf$$ conf$$.exe conf$$.file
+-echo >conf$$.file
+-if ln -s conf$$.file conf$$ 2>/dev/null; then
+-  # We could just check for DJGPP; but this test a) works b) is more generic
+-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
+-  if test -f conf$$.exe; then
+-    # Don't use ln at all; we don't have any links
+-    as_ln_s='cp -p'
+-  else
+-    as_ln_s='ln -s'
+-  fi
+-elif ln conf$$.file conf$$ 2>/dev/null; then
+-  as_ln_s=ln
+-else
+-  as_ln_s='cp -p'
+-fi
+-rm -f conf$$ conf$$.exe conf$$.file
+-
+-if mkdir -p . 2>/dev/null; then
+-  as_mkdir_p=:
+-else
+-  test -d ./-p && rmdir ./-p
+-  as_mkdir_p=false
+-fi
+-
+-as_executable_p="test -f"
+-
+-# Sed expression to map a string onto a valid CPP name.
+-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+-
+-# Sed expression to map a string onto a valid variable name.
+-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+-
+-
+-# IFS
+-# We need space, tab and new line, in precisely that order.
+-as_nl='
+-'
+-IFS="         $as_nl"
+-
+-# CDPATH.
+-$as_unset CDPATH
+-
+-exec 6>&1
+-
+-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+-# report actual input values of CONFIG_FILES etc. instead of their
+-# values after options handling.  Logging --version etc. is OK.
+-exec 5>>config.log
+-{
+-  echo
+-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+-## Running $as_me. ##
+-_ASBOX
+-} >&5
+-cat >&5 <<_CSEOF
+-
+-This file was extended by GRUB $as_me 0.97, which was
+-generated by GNU Autoconf 2.59.  Invocation command line was
+-
+-  CONFIG_FILES    = $CONFIG_FILES
+-  CONFIG_HEADERS  = $CONFIG_HEADERS
+-  CONFIG_LINKS    = $CONFIG_LINKS
+-  CONFIG_COMMANDS = $CONFIG_COMMANDS
+-  $ $0 $@
+-
+-_CSEOF
+-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
+-echo >&5
+-_ACEOF
+-
+-# Files that config.status was made for.
+-if test -n "$ac_config_files"; then
+-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_headers"; then
+-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_links"; then
+-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
+-fi
+-
+-if test -n "$ac_config_commands"; then
+-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
+-fi
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-ac_cs_usage="\
+-\`$as_me' instantiates files from templates according to the
+-current configuration.
+-
+-Usage: $0 [OPTIONS] [FILE]...
+-
+-  -h, --help       print this help, then exit
+-  -V, --version    print version number, then exit
+-  -q, --quiet      do not print progress messages
+-  -d, --debug      don't remove temporary files
+-      --recheck    update $as_me by reconfiguring in the same conditions
+-  --file=FILE[:TEMPLATE]
+-                 instantiate the configuration file FILE
+-  --header=FILE[:TEMPLATE]
+-                 instantiate the configuration header FILE
+-
+-Configuration files:
+-$config_files
+-
+-Configuration headers:
+-$config_headers
+-
+-Configuration commands:
+-$config_commands
+-
+-Report bugs to <bug-autoconf@gnu.org>."
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-ac_cs_version="\\
+-GRUB config.status 0.97
+-configured by $0, generated by GNU Autoconf 2.59,
+-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+-
+-Copyright (C) 2003 Free Software Foundation, Inc.
+-This config.status script is free software; the Free Software Foundation
+-gives unlimited permission to copy, distribute and modify it."
+-srcdir=$srcdir
+-INSTALL="$INSTALL"
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-# If no file are specified by the user, then we need to provide default
+-# value.  By we need to know if files were specified by the user.
+-ac_need_defaults=:
+-while test $# != 0
+-do
+-  case $1 in
+-  --*=*)
+-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
+-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+-    ac_shift=:
+-    ;;
+-  -*)
+-    ac_option=$1
+-    ac_optarg=$2
+-    ac_shift=shift
+-    ;;
+-  *) # This is not an option, so the user has probably given explicit
+-     # arguments.
+-     ac_option=$1
+-     ac_need_defaults=false;;
+-  esac
+-
+-  case $ac_option in
+-  # Handling of the options.
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+-    ac_cs_recheck=: ;;
+-  --version | --vers* | -V )
+-    echo "$ac_cs_version"; exit 0 ;;
+-  --he | --h)
+-    # Conflict between --help and --header
+-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: ambiguous option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; };;
+-  --help | --hel | -h )
+-    echo "$ac_cs_usage"; exit 0 ;;
+-  --debug | --d* | -d )
+-    debug=: ;;
+-  --file | --fil | --fi | --f )
+-    $ac_shift
+-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+-    ac_need_defaults=false;;
+-  --header | --heade | --head | --hea )
+-    $ac_shift
+-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+-    ac_need_defaults=false;;
+-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
+-    ac_cs_silent=: ;;
+-
+-  # This is an error.
+-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&5
+-echo "$as_me: error: unrecognized option: $1
+-Try \`$0 --help' for more information." >&2;}
+-   { (exit 1); exit 1; }; } ;;
+-
+-  *) ac_config_targets="$ac_config_targets $1" ;;
+-
+-  esac
+-  shift
+-done
+-
+-ac_configure_extra_args=
+-
+-if $ac_cs_silent; then
+-  exec 6>/dev/null
+-  ac_configure_extra_args="$ac_configure_extra_args --silent"
+-fi
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-if \$ac_cs_recheck; then
+-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+-fi
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-#
+-# INIT-COMMANDS section.
+-#
+-
+-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
+-
+-_ACEOF
+-
+-
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_config_target in $ac_config_targets
+-do
+-  case "$ac_config_target" in
+-  # Handling of arguments.
+-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+-  "stage1/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage1/Makefile" ;;
+-  "stage2/Makefile" ) CONFIG_FILES="$CONFIG_FILES stage2/Makefile" ;;
+-  "docs/Makefile" ) CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;;
+-  "lib/Makefile" ) CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;;
+-  "util/Makefile" ) CONFIG_FILES="$CONFIG_FILES util/Makefile" ;;
+-  "grub/Makefile" ) CONFIG_FILES="$CONFIG_FILES grub/Makefile" ;;
+-  "netboot/Makefile" ) CONFIG_FILES="$CONFIG_FILES netboot/Makefile" ;;
+-  "util/grub-image" ) CONFIG_FILES="$CONFIG_FILES util/grub-image" ;;
+-  "util/grub-install" ) CONFIG_FILES="$CONFIG_FILES util/grub-install" ;;
+-  "util/grub-md5-crypt" ) CONFIG_FILES="$CONFIG_FILES util/grub-md5-crypt" ;;
+-  "util/grub-terminfo" ) CONFIG_FILES="$CONFIG_FILES util/grub-terminfo" ;;
+-  "util/grub-set-default" ) CONFIG_FILES="$CONFIG_FILES util/grub-set-default" ;;
+-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+-   { (exit 1); exit 1; }; };;
+-  esac
+-done
+-
+-# If the user did not use the arguments to specify the items to instantiate,
+-# then the envvar interface is used.  Set only those that are not.
+-# We use the long form for the default assignment because of an extremely
+-# bizarre bug on SunOS 4.1.3.
+-if $ac_need_defaults; then
+-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
+-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
+-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
+-fi
+-
+-# Have a temporary directory for convenience.  Make it in the build tree
+-# simply because there is no reason to put it here, and in addition,
+-# creating and moving files from /tmp can sometimes cause problems.
+-# Create a temporary directory, and hook for its removal unless debugging.
+-$debug ||
+-{
+-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+-}
+-
+-# Create a (secure) tmp directory for tmp files.
+-
+-{
+-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+-  test -n "$tmp" && test -d "$tmp"
+-}  ||
+-{
+-  tmp=./confstat$$-$RANDOM
+-  (umask 077 && mkdir $tmp)
+-} ||
+-{
+-   echo "$me: cannot create a temporary directory in ." >&2
+-   { (exit 1); exit 1; }
+-}
+-
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<_ACEOF
+-
+-#
+-# CONFIG_FILES section.
+-#
+-
+-# No need to generate the scripts if there are no CONFIG_FILES.
+-# This happens for instance when ./config.status config.h
+-if test -n "\$CONFIG_FILES"; then
+-  # Protect against being on the right side of a sed subst in config.status.
+-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
+-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
+-s,@SHELL@,$SHELL,;t t
+-s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
+-s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
+-s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
+-s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
+-s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
+-s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
+-s,@exec_prefix@,$exec_prefix,;t t
+-s,@prefix@,$prefix,;t t
+-s,@program_transform_name@,$program_transform_name,;t t
+-s,@bindir@,$bindir,;t t
+-s,@sbindir@,$sbindir,;t t
+-s,@libexecdir@,$libexecdir,;t t
+-s,@datadir@,$datadir,;t t
+-s,@sysconfdir@,$sysconfdir,;t t
+-s,@sharedstatedir@,$sharedstatedir,;t t
+-s,@localstatedir@,$localstatedir,;t t
+-s,@libdir@,$libdir,;t t
+-s,@includedir@,$includedir,;t t
+-s,@oldincludedir@,$oldincludedir,;t t
+-s,@infodir@,$infodir,;t t
+-s,@mandir@,$mandir,;t t
+-s,@build_alias@,$build_alias,;t t
+-s,@host_alias@,$host_alias,;t t
+-s,@target_alias@,$target_alias,;t t
+-s,@DEFS@,$DEFS,;t t
+-s,@ECHO_C@,$ECHO_C,;t t
+-s,@ECHO_N@,$ECHO_N,;t t
+-s,@ECHO_T@,$ECHO_T,;t t
+-s,@LIBS@,$LIBS,;t t
+-s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
+-s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
+-s,@INSTALL_DATA@,$INSTALL_DATA,;t t
+-s,@CYGPATH_W@,$CYGPATH_W,;t t
+-s,@PACKAGE@,$PACKAGE,;t t
+-s,@VERSION@,$VERSION,;t t
+-s,@ACLOCAL@,$ACLOCAL,;t t
+-s,@AUTOCONF@,$AUTOCONF,;t t
+-s,@AUTOMAKE@,$AUTOMAKE,;t t
+-s,@AUTOHEADER@,$AUTOHEADER,;t t
+-s,@MAKEINFO@,$MAKEINFO,;t t
+-s,@install_sh@,$install_sh,;t t
+-s,@STRIP@,$STRIP,;t t
+-s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t
+-s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
+-s,@mkdir_p@,$mkdir_p,;t t
+-s,@AWK@,$AWK,;t t
+-s,@SET_MAKE@,$SET_MAKE,;t t
+-s,@am__leading_dot@,$am__leading_dot,;t t
+-s,@AMTAR@,$AMTAR,;t t
+-s,@am__tar@,$am__tar,;t t
+-s,@am__untar@,$am__untar,;t t
+-s,@build@,$build,;t t
+-s,@build_cpu@,$build_cpu,;t t
+-s,@build_vendor@,$build_vendor,;t t
+-s,@build_os@,$build_os,;t t
+-s,@host@,$host,;t t
+-s,@host_cpu@,$host_cpu,;t t
+-s,@host_vendor@,$host_vendor,;t t
+-s,@host_os@,$host_os,;t t
+-s,@MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
+-s,@MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
+-s,@MAINT@,$MAINT,;t t
+-s,@PERL@,$PERL,;t t
+-s,@CC@,$CC,;t t
+-s,@ac_ct_CC@,$ac_ct_CC,;t t
+-s,@CFLAGS@,$CFLAGS,;t t
+-s,@LDFLAGS@,$LDFLAGS,;t t
+-s,@CPPFLAGS@,$CPPFLAGS,;t t
+-s,@EXEEXT@,$EXEEXT,;t t
+-s,@OBJEXT@,$OBJEXT,;t t
+-s,@DEPDIR@,$DEPDIR,;t t
+-s,@am__include@,$am__include,;t t
+-s,@am__quote@,$am__quote,;t t
+-s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t
+-s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t
+-s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
+-s,@CCDEPMODE@,$CCDEPMODE,;t t
+-s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
+-s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
+-s,@CCAS@,$CCAS,;t t
+-s,@RANLIB@,$RANLIB,;t t
+-s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
+-s,@STAGE1_CFLAGS@,$STAGE1_CFLAGS,;t t
+-s,@STAGE2_CFLAGS@,$STAGE2_CFLAGS,;t t
+-s,@GRUB_CFLAGS@,$GRUB_CFLAGS,;t t
+-s,@OBJCOPY@,$OBJCOPY,;t t
+-s,@ac_ct_OBJCOPY@,$ac_ct_OBJCOPY,;t t
+-s,@GRUB_LIBS@,$GRUB_LIBS,;t t
+-s,@CPP@,$CPP,;t t
+-s,@EGREP@,$EGREP,;t t
+-s,@NETBOOT_SUPPORT_TRUE@,$NETBOOT_SUPPORT_TRUE,;t t
+-s,@NETBOOT_SUPPORT_FALSE@,$NETBOOT_SUPPORT_FALSE,;t t
+-s,@DISKLESS_SUPPORT_TRUE@,$DISKLESS_SUPPORT_TRUE,;t t
+-s,@DISKLESS_SUPPORT_FALSE@,$DISKLESS_SUPPORT_FALSE,;t t
+-s,@HERCULES_SUPPORT_TRUE@,$HERCULES_SUPPORT_TRUE,;t t
+-s,@HERCULES_SUPPORT_FALSE@,$HERCULES_SUPPORT_FALSE,;t t
+-s,@SERIAL_SUPPORT_TRUE@,$SERIAL_SUPPORT_TRUE,;t t
+-s,@SERIAL_SUPPORT_FALSE@,$SERIAL_SUPPORT_FALSE,;t t
+-s,@SERIAL_SPEED_SIMULATION_TRUE@,$SERIAL_SPEED_SIMULATION_TRUE,;t t
+-s,@SERIAL_SPEED_SIMULATION_FALSE@,$SERIAL_SPEED_SIMULATION_FALSE,;t t
+-s,@BUILD_EXAMPLE_KERNEL_TRUE@,$BUILD_EXAMPLE_KERNEL_TRUE,;t t
+-s,@BUILD_EXAMPLE_KERNEL_FALSE@,$BUILD_EXAMPLE_KERNEL_FALSE,;t t
+-s,@FSYS_CFLAGS@,$FSYS_CFLAGS,;t t
+-s,@NET_CFLAGS@,$NET_CFLAGS,;t t
+-s,@NET_EXTRAFLAGS@,$NET_EXTRAFLAGS,;t t
+-s,@NETBOOT_DRIVERS@,$NETBOOT_DRIVERS,;t t
+-s,@CCASFLAGS@,$CCASFLAGS,;t t
+-s,@LIBOBJS@,$LIBOBJS,;t t
+-s,@LTLIBOBJS@,$LTLIBOBJS,;t t
+-CEOF
+-
+-_ACEOF
+-
+-  cat >>$CONFIG_STATUS <<\_ACEOF
+-  # Split the substitutions into bite-sized pieces for seds with
+-  # small command number limits, like on Digital OSF/1 and HP-UX.
+-  ac_max_sed_lines=48
+-  ac_sed_frag=1 # Number of current file.
+-  ac_beg=1 # First line for current file.
+-  ac_end=$ac_max_sed_lines # Line after last line for current file.
+-  ac_more_lines=:
+-  ac_sed_cmds=
+-  while $ac_more_lines; do
+-    if test $ac_beg -gt 1; then
+-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    else
+-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
+-    fi
+-    if test ! -s $tmp/subs.frag; then
+-      ac_more_lines=false
+-    else
+-      # The purpose of the label and of the branching condition is to
+-      # speed up the sed processing (if there are no `@' at all, there
+-      # is no need to browse any of the substitutions).
+-      # These are the two extra sed commands mentioned above.
+-      (echo ':t
+-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
+-      if test -z "$ac_sed_cmds"; then
+-      ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
+-      else
+-      ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
+-      fi
+-      ac_sed_frag=`expr $ac_sed_frag + 1`
+-      ac_beg=$ac_end
+-      ac_end=`expr $ac_end + $ac_max_sed_lines`
+-    fi
+-  done
+-  if test -z "$ac_sed_cmds"; then
+-    ac_sed_cmds=cat
+-  fi
+-fi # test -n "$CONFIG_FILES"
+-
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
+-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case $ac_file in
+-  - | *:- | *:-:* ) # input from stdin
+-      cat >$tmp/stdin
+-      ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-      ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-      ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  * )   ac_file_in=$ac_file.in ;;
+-  esac
+-
+-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
+-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$ac_file" : 'X\(//\)[^/]' \| \
+-       X"$ac_file" : 'X\(//\)$' \| \
+-       X"$ac_file" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-  { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$as_dir" : 'X\(//\)[^/]' \| \
+-       X"$as_dir" : 'X\(//\)$' \| \
+-       X"$as_dir" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-  ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-
+-  case $INSTALL in
+-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+-  esac
+-
+-  if test x"$ac_file" != x-; then
+-    { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-    rm -f "$ac_file"
+-  fi
+-  # Let's still pretend it is `configure' which instantiates (i.e., don't
+-  # use $as_me), people would be surprised to read:
+-  #    /* config.h.  Generated by config.status.  */
+-  if test x"$ac_file" = x-; then
+-    configure_input=
+-  else
+-    configure_input="$ac_file.  "
+-  fi
+-  configure_input=$configure_input"Generated from `echo $ac_file_in |
+-                                   sed 's,.*/,,'` by configure."
+-
+-  # First look for the input files in the build tree, otherwise in the
+-  # src tree.
+-  ac_file_inputs=`IFS=:
+-    for f in $ac_file_in; do
+-      case $f in
+-      -) echo $tmp/stdin ;;
+-      [\\/$]*)
+-       # Absolute (can't be DOS-style, as IFS=:)
+-       test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-       echo "$f";;
+-      *) # Relative
+-       if test -f "$f"; then
+-         # Build tree
+-         echo "$f"
+-       elif test -f "$srcdir/$f"; then
+-         # Source tree
+-         echo "$srcdir/$f"
+-       else
+-         # /dev/null tree
+-         { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-       fi;;
+-      esac
+-    done` || { (exit 1); exit 1; }
+-_ACEOF
+-cat >>$CONFIG_STATUS <<_ACEOF
+-  sed "$ac_vpsub
+-$extrasub
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-:t
+-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+-s,@configure_input@,$configure_input,;t t
+-s,@srcdir@,$ac_srcdir,;t t
+-s,@abs_srcdir@,$ac_abs_srcdir,;t t
+-s,@top_srcdir@,$ac_top_srcdir,;t t
+-s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
+-s,@builddir@,$ac_builddir,;t t
+-s,@abs_builddir@,$ac_abs_builddir,;t t
+-s,@top_builddir@,$ac_top_builddir,;t t
+-s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
+-s,@INSTALL@,$ac_INSTALL,;t t
+-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
+-  rm -f $tmp/stdin
+-  if test x"$ac_file" != x-; then
+-    mv $tmp/out $ac_file
+-  else
+-    cat $tmp/out
+-    rm -f $tmp/out
+-  fi
+-
+-done
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-#
+-# CONFIG_HEADER section.
+-#
+-
+-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+-# NAME is the cpp macro being defined and VALUE is the value it is being given.
+-#
+-# ac_d sets the value in "#define NAME VALUE" lines.
+-ac_dA='s,^\([  ]*\)#\([        ]*define[       ][      ]*\)'
+-ac_dB='[       ].*$,\1#\2'
+-ac_dC=' '
+-ac_dD=',;t'
+-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+-ac_uA='s,^\([  ]*\)#\([        ]*\)undef\([    ][      ]*\)'
+-ac_uB='$,\1#\2define\3'
+-ac_uC=' '
+-ac_uD=',;t'
+-
+-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
+-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+-  case $ac_file in
+-  - | *:- | *:-:* ) # input from stdin
+-      cat >$tmp/stdin
+-      ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-      ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-      ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
+-  * )   ac_file_in=$ac_file.in ;;
+-  esac
+-
+-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
+-echo "$as_me: creating $ac_file" >&6;}
+-
+-  # First look for the input files in the build tree, otherwise in the
+-  # src tree.
+-  ac_file_inputs=`IFS=:
+-    for f in $ac_file_in; do
+-      case $f in
+-      -) echo $tmp/stdin ;;
+-      [\\/$]*)
+-       # Absolute (can't be DOS-style, as IFS=:)
+-       test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-       # Do quote $f, to prevent DOS paths from being IFS'd.
+-       echo "$f";;
+-      *) # Relative
+-       if test -f "$f"; then
+-         # Build tree
+-         echo "$f"
+-       elif test -f "$srcdir/$f"; then
+-         # Source tree
+-         echo "$srcdir/$f"
+-       else
+-         # /dev/null tree
+-         { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
+-echo "$as_me: error: cannot find input file: $f" >&2;}
+-   { (exit 1); exit 1; }; }
+-       fi;;
+-      esac
+-    done` || { (exit 1); exit 1; }
+-  # Remove the trailing spaces.
+-  sed 's/[     ]*$//' $ac_file_inputs >$tmp/in
+-
+-_ACEOF
+-
+-# Transform confdefs.h into two sed scripts, `conftest.defines' and
+-# `conftest.undefs', that substitutes the proper values into
+-# config.h.in to produce config.h.  The first handles `#define'
+-# templates, and the second `#undef' templates.
+-# And first: Protect against being on the right side of a sed subst in
+-# config.status.  Protect against being in an unquoted here document
+-# in config.status.
+-rm -f conftest.defines conftest.undefs
+-# Using a here document instead of a string reduces the quoting nightmare.
+-# Putting comments in sed scripts is not portable.
+-#
+-# `end' is used to avoid that the second main sed command (meant for
+-# 0-ary CPP macros) applies to n-ary macro definitions.
+-# See the Autoconf documentation for `clear'.
+-cat >confdef2sed.sed <<\_ACEOF
+-s/[\\&,]/\\&/g
+-s,[\\$`],\\&,g
+-t clear
+-: clear
+-s,^[   ]*#[    ]*define[       ][      ]*\([^  (][^    (]*\)\(([^)]*)\)[       ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
+-t end
+-s,^[   ]*#[    ]*define[       ][      ]*\([^  ][^     ]*\)[   ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
+-: end
+-_ACEOF
+-# If some macros were called several times there might be several times
+-# the same #defines, which is useless.  Nevertheless, we may not want to
+-# sort them, since we want the *last* AC-DEFINE to be honored.
+-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
+-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
+-rm -f confdef2sed.sed
+-
+-# This sed command replaces #undef with comments.  This is necessary, for
+-# example, in the case of _POSIX_SOURCE, which is predefined and required
+-# on some systems where configure will not decide to define it.
+-cat >>conftest.undefs <<\_ACEOF
+-s,^[   ]*#[    ]*undef[        ][      ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
+-_ACEOF
+-
+-# Break up conftest.defines because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
+-echo '  if grep "^[    ]*#[    ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
+-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
+-echo '  :' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.defines >/dev/null
+-do
+-  # Write a limited-size here document to $tmp/defines.sed.
+-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
+-  # Speed up: don't consider the non `#define' lines.
+-  echo '/^[    ]*#[    ]*define/!b' >>$CONFIG_STATUS
+-  # Work around the forget-to-reset-the-flag bug.
+-  echo 't clr' >>$CONFIG_STATUS
+-  echo ': clr' >>$CONFIG_STATUS
+-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+-  echo 'CEOF
+-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
+-  rm -f $tmp/in
+-  mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+-  rm -f conftest.defines
+-  mv conftest.tail conftest.defines
+-done
+-rm -f conftest.defines
+-echo '  fi # grep' >>$CONFIG_STATUS
+-echo >>$CONFIG_STATUS
+-
+-# Break up conftest.undefs because some shells have a limit on the size
+-# of here documents, and old seds have small limits too (100 cmds).
+-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
+-rm -f conftest.tail
+-while grep . conftest.undefs >/dev/null
+-do
+-  # Write a limited-size here document to $tmp/undefs.sed.
+-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
+-  # Speed up: don't consider the non `#undef'
+-  echo '/^[    ]*#[    ]*undef/!b' >>$CONFIG_STATUS
+-  # Work around the forget-to-reset-the-flag bug.
+-  echo 't clr' >>$CONFIG_STATUS
+-  echo ': clr' >>$CONFIG_STATUS
+-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
+-  echo 'CEOF
+-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
+-  rm -f $tmp/in
+-  mv $tmp/out $tmp/in
+-' >>$CONFIG_STATUS
+-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
+-  rm -f conftest.undefs
+-  mv conftest.tail conftest.undefs
+-done
+-rm -f conftest.undefs
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-  # Let's still pretend it is `configure' which instantiates (i.e., don't
+-  # use $as_me), people would be surprised to read:
+-  #    /* config.h.  Generated by config.status.  */
+-  if test x"$ac_file" = x-; then
+-    echo "/* Generated by configure.  */" >$tmp/config.h
+-  else
+-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
+-  fi
+-  cat $tmp/in >>$tmp/config.h
+-  rm -f $tmp/in
+-  if test x"$ac_file" != x-; then
+-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+-echo "$as_me: $ac_file is unchanged" >&6;}
+-    else
+-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$ac_file" : 'X\(//\)[^/]' \| \
+-       X"$ac_file" : 'X\(//\)$' \| \
+-       X"$ac_file" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-      { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$as_dir" : 'X\(//\)[^/]' \| \
+-       X"$as_dir" : 'X\(//\)$' \| \
+-       X"$as_dir" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-      rm -f $ac_file
+-      mv $tmp/config.h $ac_file
+-    fi
+-  else
+-    cat $tmp/config.h
+-    rm -f $tmp/config.h
+-  fi
+-# Compute $ac_file's index in $config_headers.
+-_am_stamp_count=1
+-for _am_header in $config_headers :; do
+-  case $_am_header in
+-    $ac_file | $ac_file:* )
+-      break ;;
+-    * )
+-      _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+-  esac
+-done
+-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+-$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X$ac_file : 'X\(//\)[^/]' \| \
+-       X$ac_file : 'X\(//\)$' \| \
+-       X$ac_file : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X$ac_file |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`/stamp-h$_am_stamp_count
+-done
+-_ACEOF
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-#
+-# CONFIG_COMMANDS section.
+-#
+-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
+-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
+-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
+-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
+-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$ac_dest" : 'X\(//\)[^/]' \| \
+-       X"$ac_dest" : 'X\(//\)$' \| \
+-       X"$ac_dest" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$ac_dest" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-  { if $as_mkdir_p; then
+-    mkdir -p "$ac_dir"
+-  else
+-    as_dir="$ac_dir"
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$as_dir" : 'X\(//\)[^/]' \| \
+-       X"$as_dir" : 'X\(//\)$' \| \
+-       X"$as_dir" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
+-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-  ac_builddir=.
+-
+-if test "$ac_dir" != .; then
+-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+-  # A "../" for each directory in $ac_dir_suffix.
+-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
+-else
+-  ac_dir_suffix= ac_top_builddir=
+-fi
+-
+-case $srcdir in
+-  .)  # No --srcdir option.  We are building in place.
+-    ac_srcdir=.
+-    if test -z "$ac_top_builddir"; then
+-       ac_top_srcdir=.
+-    else
+-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
+-    fi ;;
+-  [\\/]* | ?:[\\/]* )  # Absolute path.
+-    ac_srcdir=$srcdir$ac_dir_suffix;
+-    ac_top_srcdir=$srcdir ;;
+-  *) # Relative path.
+-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
+-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+-esac
+-
+-# Do not use `cd foo && pwd` to compute absolute paths, because
+-# the directories may not exist.
+-case `pwd` in
+-.) ac_abs_builddir="$ac_dir";;
+-*)
+-  case "$ac_dir" in
+-  .) ac_abs_builddir=`pwd`;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
+-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_builddir=${ac_top_builddir}.;;
+-*)
+-  case ${ac_top_builddir}. in
+-  .) ac_abs_top_builddir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
+-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_srcdir=$ac_srcdir;;
+-*)
+-  case $ac_srcdir in
+-  .) ac_abs_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
+-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
+-  esac;;
+-esac
+-case $ac_abs_builddir in
+-.) ac_abs_top_srcdir=$ac_top_srcdir;;
+-*)
+-  case $ac_top_srcdir in
+-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
+-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
+-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
+-  esac;;
+-esac
+-
+-
+-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
+-echo "$as_me: executing $ac_dest commands" >&6;}
+-  case $ac_dest in
+-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+-  # Strip MF so we end up with the name of the file.
+-  mf=`echo "$mf" | sed -e 's/:.*$//'`
+-  # Check whether this is an Automake generated Makefile or not.
+-  # We used to match only the files named `Makefile.in', but
+-  # some people rename them; so instead we look at the file content.
+-  # Grep'ing the first line is not enough: some people post-process
+-  # each Makefile.in and add a new line on top of each file to say so.
+-  # So let's grep whole file.
+-  if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
+-    dirpart=`(dirname "$mf") 2>/dev/null ||
+-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$mf" : 'X\(//\)[^/]' \| \
+-       X"$mf" : 'X\(//\)$' \| \
+-       X"$mf" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$mf" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-  else
+-    continue
+-  fi
+-  # Extract the definition of DEPDIR, am__include, and am__quote
+-  # from the Makefile without running `make'.
+-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+-  test -z "$DEPDIR" && continue
+-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
+-  test -z "am__include" && continue
+-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+-  # When using ansi2knr, U may be empty or an underscore; expand it
+-  U=`sed -n 's/^U = //p' < "$mf"`
+-  # Find all dependency output files, they are included files with
+-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
+-  # simplest approach to changing $(DEPDIR) to its actual value in the
+-  # expansion.
+-  for file in `sed -n "
+-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+-    # Make sure the directory exists.
+-    test -f "$dirpart/$file" && continue
+-    fdir=`(dirname "$file") 2>/dev/null ||
+-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$file" : 'X\(//\)[^/]' \| \
+-       X"$file" : 'X\(//\)$' \| \
+-       X"$file" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$file" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-    { if $as_mkdir_p; then
+-    mkdir -p $dirpart/$fdir
+-  else
+-    as_dir=$dirpart/$fdir
+-    as_dirs=
+-    while test ! -d "$as_dir"; do
+-      as_dirs="$as_dir $as_dirs"
+-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+-       X"$as_dir" : 'X\(//\)[^/]' \| \
+-       X"$as_dir" : 'X\(//\)$' \| \
+-       X"$as_dir" : 'X\(/\)' \| \
+-       .     : '\(.\)' 2>/dev/null ||
+-echo X"$as_dir" |
+-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
+-        /^X\(\/\/\)[^/].*/{ s//\1/; q; }
+-        /^X\(\/\/\)$/{ s//\1/; q; }
+-        /^X\(\/\).*/{ s//\1/; q; }
+-        s/.*/./; q'`
+-    done
+-    test ! -n "$as_dirs" || mkdir $as_dirs
+-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
+-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+-   { (exit 1); exit 1; }; }; }
+-
+-    # echo "creating $dirpart/$file"
+-    echo '# dummy' > "$dirpart/$file"
+-  done
+-done
+- ;;
+-  esac
+-done
+-_ACEOF
+-
+-cat >>$CONFIG_STATUS <<\_ACEOF
+-
+-{ (exit 0); exit 0; }
+-_ACEOF
+-chmod +x $CONFIG_STATUS
+-ac_clean_files=$ac_clean_files_save
+-
+-
+-# configure is writing to config.log, and then calls config.status.
+-# config.status does its own redirection, appending to config.log.
+-# Unfortunately, on DOS this fails, as config.log is still kept open
+-# by configure, so config.status won't be able to write to it; its
+-# output is simply discarded.  So we exec the FD to /dev/null,
+-# effectively closing config.log, so it can be properly (re)opened and
+-# appended to by config.status.  When coming back to configure, we
+-# need to make the FD available again.
+-if test "$no_create" != yes; then
+-  ac_cs_success=:
+-  ac_config_status_args=
+-  test "$silent" = yes &&
+-    ac_config_status_args="$ac_config_status_args --quiet"
+-  exec 5>/dev/null
+-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+-  exec 5>>config.log
+-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+-  # would make configure fail if this is the last instruction.
+-  $ac_cs_success || { (exit 1); exit 1; }
+-fi
+-
+diff --git a/configure.ac b/configure.in
+similarity index 86%
+rename from configure.ac
+rename to configure.in
+index bb9e1d9..e5970af 100644
+--- a/configure.ac
++++ b/configure.in
+@@ -29,6 +29,65 @@ esac
+ AC_SUBST(host_cpu)
+ AC_SUBST(host_vendor)
++# Specify the platform (such as firmware).
++AC_ARG_WITH([platform],
++            AS_HELP_STRING([--with-platform=PLATFORM],
++                           [select the host platform [[guessed]]]))
++
++# Guess the platform if not specified.
++if test "x$with_platform" = x; then
++  case "$host_cpu"-"$host_vendor" in
++    i386-*) platform=pc ;;
++    x86_64-*) platform=pc ;;
++    *) AC_MSG_ERROR([unsupported machine type $host_cpu-$host_vendor]) ;;
++  esac
++else
++  platform="$with_platform"
++fi
++
++# Sanity check.
++case "$host_cpu"-"$platform" in
++  i386-pc) ;;
++  i386-efi) ;;
++  x86_64-pc) ;;
++  x86_64-efi) ;;
++  *) AC_MSG_ERROR([unsupported machine type "$host_cpu"-"$platform"]) ;;
++esac
++
++if test "x$platform" = xefi; then
++  case "$host_cpu" in
++    i386) EFI_ARCH=ia32 ;;
++    x86_64) EFI_ARCH=x86_64 ;;
++  *) AC_MSG_ERROR([unsupported machine type "$host_cpu"]) ;;
++  esac
++  AC_SUBST(EFI_ARCH)
++fi
++
++gnuefi_path=${libdir}/gnuefi
++gnuefi_crt0=${gnuefi_path}/crt0-efi-${EFI_ARCH}.o
++if ! test -f $gnuefi_crt0 ; then
++  gnuefi_crt0=crt0-efi.o
++fi
++GNUEFI_CRT0=${gnuefi_crt0}
++AC_SUBST(GNUEFI_CRT0)
++gnuefi_lds=${gnuefi_path}/elf_${EFI_ARCH}_efi.lds
++if ! test -f $gnuefi_lds ; then
++  gnuefi_lds=${EFI_ARCH}/elf_efi.lds
++fi
++GNUEFI_LDS=${gnuefi_lds}
++AC_SUBST(GNUEFI_LDS)
++LIBGNUEFI=${libdir}/libgnuefi.a
++AC_SUBST(LIBGNUEFI)
++LIBEFI=${libdir}/libefi.a
++AC_SUBST(LIBEFI)
++
++AC_SUBST(platform)
++AM_CONDITIONAL(PLATFORM_EFI, test "x$platform" = xefi)
++
++if test "x$platform" = xefi; then
++   AC_DEFINE(PLATFORM_EFI, 1, [Define if you run on EFI platform.])
++fi
++
+ #
+ # Options
+ #
+@@ -46,7 +105,7 @@ if test "x$CFLAGS" = x; then
+   default_CFLAGS=yes
+ fi
+-if test "x$host_cpu" = xx86_64; then
++if test "x$platform" = xpc -a "x$host_cpu" = xx86_64; then
+   CFLAGS="-m32 $CFLAGS"
+ fi
+@@ -63,6 +122,8 @@ dnl Because recent automake complains about AS, set it here.
+ CCAS="$CC"
+ AC_SUBST(CCAS)
++_AM_DEPENDENCIES(CCAS)
++
+ AC_ARG_WITH(binutils,
+   [  --with-binutils=DIR     search the directory DIR to find binutils])
+@@ -114,6 +175,20 @@ if test "x$ac_cv_prog_gcc" = xyes; then
+     fi
+   fi
+ fi
++STAGE2_CFLAGS="$STAGE2_CFLAGS -isystem `$CC -print-file-name=include`"
++
++LIBGCC=$(gcc $CFLAGS -static-libgcc -print-libgcc-file-name)
++AC_SUBST(LIBGCC)
++
++LOADER_LDFLAGS="-Wl,--build-id=none ${LIBGCC}"
++AC_SUBST(LOADER_LDFLAGS)
++
++if test "x$platform" = xefi; then
++  STAGE2_CFLAGS="$STAGE2_CFLAGS -fpic -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-reorder-functions"
++  if test "x$EFI_ARCH" = xx86_64; then
++     STAGE2_CFLAGS="$STAGE2_CFLAGS -DEFI_FUNCTION_WRAPPER"
++  fi
++fi
+ AC_SUBST(STAGE1_CFLAGS)
+ AC_SUBST(STAGE2_CFLAGS)
+@@ -159,9 +234,12 @@ fi
+ # Defined in acinclude.m4.
+ grub_ASM_USCORE
+-grub_PROG_OBJCOPY_ABSOLUTE
+-if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
+-  AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
++
++if test "x$platform" != xefi; then
++  grub_PROG_OBJCOPY_ABSOLUTE
++  if test "x$grub_cv_prog_objcopy_absolute" != xyes; then
++    AC_MSG_ERROR([GRUB requires a working absolute objcopy; upgrade your binutils])
++  fi
+ fi
+ grub_ASM_PREFIX_REQUIREMENT
+@@ -207,9 +285,9 @@ AC_CHECK_LIB(util, opendisk, [GRUB_LIBS="$GRUB_LIBS -lutil"
+ # Unless the user specify --without-curses, check for curses.
+ if test "x$with_curses" != "xno"; then
+-  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lncurses"
++  AC_CHECK_LIB(ncurses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lncurses -ltinfo -Wl,-Bdynamic"
+   AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])],
+-    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -lcurses"
++    [AC_CHECK_LIB(curses, wgetch, [GRUB_LIBS="$GRUB_LIBS -Wl,-Bstatic -lcurses -Wl,-Bdynamic"
+        AC_DEFINE(HAVE_LIBCURSES, 1, [Define if you have a curses library])])])
+ fi
+@@ -595,9 +673,18 @@ AC_ARG_ENABLE(diskless,
+   [  --enable-diskless       enable diskless support])
+ AM_CONDITIONAL(DISKLESS_SUPPORT, test "x$enable_diskless" = xyes)
++dnl Graphical splashscreen support
++AC_ARG_ENABLE(graphics,
++  [  --disable-graphics      disable graphics terminal support])
++AM_CONDITIONAL(GRAPHICS_SUPPORT, test "x$enable_graphics" != xno)
++
+ dnl Hercules terminal
+-AC_ARG_ENABLE(hercules,
+-  [  --disable-hercules      disable hercules terminal support])
++if test "x$platform" = xefi; then
++  enable_hercules=no
++else
++  AC_ARG_ENABLE(hercules,
++    [  --disable-hercules      disable hercules terminal support])
++fi
+ AM_CONDITIONAL(HERCULES_SUPPORT, test "x$enable_hercules" != xno)
+ dnl Serial terminal
+@@ -662,9 +749,13 @@ AC_SUBST(CCASFLAGS)
+ dnl Output.
++if test "x$platform" = xefi; then
++  AC_CONFIG_FILES([efi/Makefile])
++  AC_CONFIG_LINKS([efi/grub/cpu:efi/grub/$host_cpu])
++fi
+ AC_CONFIG_FILES([Makefile stage1/Makefile stage2/Makefile \
+                docs/Makefile lib/Makefile util/Makefile \
+-               grub/Makefile netboot/Makefile util/grub-image \
+-               util/grub-install util/grub-md5-crypt \
+-               util/grub-terminfo util/grub-set-default])
++               grub/Makefile netboot/Makefile util/grub-crypt \
++               util/grub-image util/grub-install util/grub-md5-crypt \
++               util/grub-terminfo])
+ AC_OUTPUT
+diff --git a/docs/.gitignore b/docs/.gitignore
+new file mode 100644
+index 0000000..e440faf
+--- /dev/null
++++ b/docs/.gitignore
+@@ -0,0 +1,3 @@
++Makefile.in
++Makefile
++.deps
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index db99e2d..fe6b22b 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -2,7 +2,8 @@ info_TEXINFOS = grub.texi multiboot.texi
+ grub_TEXINFOS = internals.texi
+ EXAMPLES = boot.S kernel.c multiboot.h
+ multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+-man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
++man_MANS = grub.8 mbchk.1 grub-crypt.8 grub-install.8 grub-md5-crypt.8 \
++      grub-terminfo.8
+ HELP2MAN = help2man
+ SRC2TEXI = src2texi
+ noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
+@@ -51,6 +52,12 @@ $(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
+               --name="check the format of a Multiboot kernel" \
+               --section=1 --output=$@ $<
++$(srcdir)/grub-crypt.8: ../util/grub-crypt $(srcdir)/$(HELP2MAN)
++      chmod 755 $<
++      $(PERL) $(srcdir)/$(HELP2MAN) \
++              --name="Encrypt a password" \
++              --section=8 --output=$@ $<
++
+ $(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN)
+       chmod 755 $<
+       $(PERL) $(srcdir)/$(HELP2MAN) \
+diff --git a/docs/Makefile.in b/docs/Makefile.in
+deleted file mode 100644
+index 3e2de4b..0000000
+--- a/docs/Makefile.in
++++ /dev/null
+@@ -1,770 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-
+-SOURCES = $(kernel_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-EXTRA_PROGRAMS = kernel$(EXEEXT)
+-@BUILD_EXAMPLE_KERNEL_TRUE@noinst_PROGRAMS = kernel$(EXEEXT)
+-subdir = docs
+-DIST_COMMON = $(grub_TEXINFOS) $(multiboot_TEXINFOS) \
+-      $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/stamp-vti $(srcdir)/version.texi mdate-sh \
+-      texinfo.tex
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-PROGRAMS = $(noinst_PROGRAMS)
+-am__kernel_SOURCES_DIST = boot.S kernel.c multiboot.h
+-am__objects_1 = boot.$(OBJEXT) kernel-kernel.$(OBJEXT)
+-@BUILD_EXAMPLE_KERNEL_TRUE@am_kernel_OBJECTS = $(am__objects_1)
+-kernel_OBJECTS = $(am_kernel_OBJECTS)
+-kernel_LDADD = $(LDADD)
+-SCRIPTS = $(noinst_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(kernel_SOURCES)
+-DIST_SOURCES = $(am__kernel_SOURCES_DIST)
+-INFO_DEPS = $(srcdir)/grub.info $(srcdir)/multiboot.info
+-am__TEXINFO_TEX_DIR = $(srcdir)
+-DVIS = grub.dvi multiboot.dvi
+-PDFS = grub.pdf multiboot.pdf
+-PSS = grub.ps multiboot.ps
+-HTMLS = grub.html multiboot.html
+-TEXINFOS = grub.texi multiboot.texi
+-TEXI2DVI = texi2dvi
+-TEXI2PDF = $(TEXI2DVI) --pdf --batch
+-MAKEINFOHTML = $(MAKEINFO) --html
+-AM_MAKEINFOHTMLFLAGS = $(AM_MAKEINFOFLAGS)
+-DVIPS = dvips
+-am__installdirs = "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" \
+-      "$(DESTDIR)$(man8dir)"
+-man1dir = $(mandir)/man1
+-man8dir = $(mandir)/man8
+-NROFF = nroff
+-MANS = $(man_MANS)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-info_TEXINFOS = grub.texi multiboot.texi
+-grub_TEXINFOS = internals.texi
+-EXAMPLES = boot.S kernel.c multiboot.h
+-multiboot_TEXINFOS = boot.S.texi kernel.c.texi multiboot.h.texi
+-man_MANS = grub.8 mbchk.1 grub-install.8 grub-md5-crypt.8 grub-terminfo.8
+-HELP2MAN = help2man
+-SRC2TEXI = src2texi
+-noinst_SCRIPTS = $(HELP2MAN) $(SRC2TEXI)
+-@BUILD_EXAMPLE_KERNEL_TRUE@kernel_SOURCES = $(EXAMPLES)
+-@BUILD_EXAMPLE_KERNEL_TRUE@kernel_CFLAGS = -fno-builtin -nostdinc -O -g -Wall \
+-@BUILD_EXAMPLE_KERNEL_TRUE@   -imacros $(top_builddir)/config.h
+-
+-@BUILD_EXAMPLE_KERNEL_TRUE@kernel_LDFLAGS = -nostdlib -Wl,-N -Wl,-Ttext -Wl,100000
+-EXTRA_DIST = menu.lst $(man_MANS) $(noinst_SCRIPTS) \
+-      $(EXAMPLES) $(multiboot_TEXINFOS)
+-
+-CLEANFILES = $(noinst_PROGRAMS)
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .S .c .dvi .html .info .o .obj .pdf .ps .texi
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  docs/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  docs/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-clean-noinstPROGRAMS:
+-      -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+-kernel$(EXEEXT): $(kernel_OBJECTS) $(kernel_DEPENDENCIES) 
+-      @rm -f kernel$(EXEEXT)
+-      $(LINK) $(kernel_LDFLAGS) $(kernel_OBJECTS) $(kernel_LDADD) $(LIBS)
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/kernel-kernel.Po@am__quote@
+-
+-.S.o:
+-      $(CCASCOMPILE) -c $<
+-
+-.S.obj:
+-      $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-kernel-kernel.o: kernel.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.o -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='kernel.c' object='kernel-kernel.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.o `test -f 'kernel.c' || echo '$(srcdir)/'`kernel.c
+-
+-kernel-kernel.obj: kernel.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -MT kernel-kernel.obj -MD -MP -MF "$(DEPDIR)/kernel-kernel.Tpo" -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/kernel-kernel.Tpo" "$(DEPDIR)/kernel-kernel.Po"; else rm -f "$(DEPDIR)/kernel-kernel.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='kernel.c' object='kernel-kernel.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(kernel_CFLAGS) $(CFLAGS) -c -o kernel-kernel.obj `if test -f 'kernel.c'; then $(CYGPATH_W) 'kernel.c'; else $(CYGPATH_W) '$(srcdir)/kernel.c'; fi`
+-
+-.texi.info:
+-      restore=: && backupdir="$(am__leading_dot)am$$$$" && \
+-      am__cwd=`pwd` && cd $(srcdir) && \
+-      rm -rf $$backupdir && mkdir $$backupdir && \
+-      for f in $@ $@-[0-9] $@-[0-9][0-9] $(@:.info=).i[0-9] $(@:.info=).i[0-9][0-9]; do \
+-        if test -f $$f; then mv $$f $$backupdir; restore=mv; else :; fi; \
+-      done; \
+-      cd "$$am__cwd"; \
+-      if $(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+-       -o $@ $<; \
+-      then \
+-        rc=0; \
+-        cd $(srcdir); \
+-      else \
+-        rc=$$?; \
+-        cd $(srcdir) && \
+-        $$restore $$backupdir/* `echo "./$@" | sed 's|[^/]*$$||'`; \
+-      fi; \
+-      rm -rf $$backupdir; exit $$rc
+-
+-.texi.dvi:
+-      TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+-      MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+-      $(TEXI2DVI) $<
+-
+-.texi.pdf:
+-      TEXINPUTS="$(am__TEXINFO_TEX_DIR)$(PATH_SEPARATOR)$$TEXINPUTS" \
+-      MAKEINFO='$(MAKEINFO) $(AM_MAKEINFOFLAGS) $(MAKEINFOFLAGS) -I $(srcdir)' \
+-      $(TEXI2PDF) $<
+-
+-.texi.html:
+-      rm -rf $(@:.html=.htp)
+-      if $(MAKEINFOHTML) $(AM_MAKEINFOHTMLFLAGS) $(MAKEINFOFLAGS) -I $(srcdir) \
+-       -o $(@:.html=.htp) $<; \
+-      then \
+-        rm -rf $@; \
+-        if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+-          mv $(@:.html=) $@; else mv $(@:.html=.htp) $@; fi; \
+-      else \
+-        if test ! -d $(@:.html=.htp) && test -d $(@:.html=); then \
+-          rm -rf $(@:.html=); else rm -Rf $(@:.html=.htp) $@; fi; \
+-        exit 1; \
+-      fi
+-$(srcdir)/grub.info: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
+-grub.dvi: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
+-grub.pdf: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
+-grub.html: grub.texi $(srcdir)/version.texi $(grub_TEXINFOS)
+-$(srcdir)/version.texi: @MAINTAINER_MODE_TRUE@ $(srcdir)/stamp-vti
+-$(srcdir)/stamp-vti: grub.texi $(top_srcdir)/configure
+-      @(dir=.; test -f ./grub.texi || dir=$(srcdir); \
+-      set `$(SHELL) $(srcdir)/mdate-sh $$dir/grub.texi`; \
+-      echo "@set UPDATED $$1 $$2 $$3"; \
+-      echo "@set UPDATED-MONTH $$2 $$3"; \
+-      echo "@set EDITION $(VERSION)"; \
+-      echo "@set VERSION $(VERSION)") > vti.tmp
+-      @cmp -s vti.tmp $(srcdir)/version.texi \
+-        || (echo "Updating $(srcdir)/version.texi"; \
+-            cp vti.tmp $(srcdir)/version.texi)
+-      -@rm -f vti.tmp
+-      @cp $(srcdir)/version.texi $@
+-
+-mostlyclean-vti:
+-      -rm -f vti.tmp
+-
+-maintainer-clean-vti:
+-@MAINTAINER_MODE_TRUE@        -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi
+-$(srcdir)/multiboot.info: multiboot.texi $(multiboot_TEXINFOS)
+-multiboot.dvi: multiboot.texi $(multiboot_TEXINFOS)
+-multiboot.pdf: multiboot.texi $(multiboot_TEXINFOS)
+-multiboot.html: multiboot.texi $(multiboot_TEXINFOS)
+-.dvi.ps:
+-      $(DVIPS) -o $@ $<
+-
+-uninstall-info-am:
+-      $(PRE_UNINSTALL)
+-      @if (install-info --version && \
+-           install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+-        list='$(INFO_DEPS)'; \
+-        for file in $$list; do \
+-          relfile=`echo "$$file" | sed 's|^.*/||'`; \
+-          echo " install-info --info-dir='$(DESTDIR)$(infodir)' --remove '$(DESTDIR)$(infodir)/$$relfile'"; \
+-          install-info --info-dir="$(DESTDIR)$(infodir)" --remove "$(DESTDIR)$(infodir)/$$relfile"; \
+-        done; \
+-      else :; fi
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(INFO_DEPS)'; \
+-      for file in $$list; do \
+-        relfile=`echo "$$file" | sed 's|^.*/||'`; \
+-        relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
+-        (if cd "$(DESTDIR)$(infodir)"; then \
+-           echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
+-           rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
+-         else :; fi); \
+-      done
+-
+-dist-info: $(INFO_DEPS)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      list='$(INFO_DEPS)'; \
+-      for base in $$list; do \
+-        case $$base in \
+-          $(srcdir)/*) base=`echo "$$base" | sed "s|^$$srcdirstrip/||"`;; \
+-        esac; \
+-        if test -f $$base; then d=.; else d=$(srcdir); fi; \
+-        for file in $$d/$$base*; do \
+-          relfile=`expr "$$file" : "$$d/\(.*\)"`; \
+-          test -f $(distdir)/$$relfile || \
+-            cp -p $$file $(distdir)/$$relfile; \
+-        done; \
+-      done
+-
+-mostlyclean-aminfo:
+-      -rm -rf grub.aux grub.cp grub.cps grub.fn grub.ky grub.log grub.pg grub.tmp \
+-        grub.toc grub.tp grub.vr grub.dvi grub.pdf grub.ps grub.html \
+-        multiboot.aux multiboot.cp multiboot.cps multiboot.fn \
+-        multiboot.ky multiboot.log multiboot.pg multiboot.tmp \
+-        multiboot.toc multiboot.tp multiboot.vr multiboot.dvi \
+-        multiboot.pdf multiboot.ps multiboot.html
+-
+-maintainer-clean-aminfo:
+-      @list='$(INFO_DEPS)'; for i in $$list; do \
+-        i_i=`echo "$$i" | sed 's|\.info$$||;s|$$|.i|'`; \
+-        echo " rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]"; \
+-        rm -f $$i $$i-[0-9] $$i-[0-9][0-9] $$i_i[0-9] $$i_i[0-9][0-9]; \
+-      done
+-install-man1: $(man1_MANS) $(man_MANS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(man1dir)" || $(mkdir_p) "$(DESTDIR)$(man1dir)"
+-      @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+-      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+-      for i in $$l2; do \
+-        case "$$i" in \
+-          *.1*) list="$$list $$i" ;; \
+-        esac; \
+-      done; \
+-      for i in $$list; do \
+-        if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+-        else file=$$i; fi; \
+-        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+-        case "$$ext" in \
+-          1*) ;; \
+-          *) ext='1' ;; \
+-        esac; \
+-        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+-        inst=`echo $$inst | sed -e 's/^.*\///'`; \
+-        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+-        echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+-        $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
+-      done
+-uninstall-man1:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
+-      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+-      for i in $$l2; do \
+-        case "$$i" in \
+-          *.1*) list="$$list $$i" ;; \
+-        esac; \
+-      done; \
+-      for i in $$list; do \
+-        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+-        case "$$ext" in \
+-          1*) ;; \
+-          *) ext='1' ;; \
+-        esac; \
+-        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+-        inst=`echo $$inst | sed -e 's/^.*\///'`; \
+-        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+-        echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
+-        rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
+-      done
+-install-man8: $(man8_MANS) $(man_MANS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(man8dir)" || $(mkdir_p) "$(DESTDIR)$(man8dir)"
+-      @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+-      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+-      for i in $$l2; do \
+-        case "$$i" in \
+-          *.8*) list="$$list $$i" ;; \
+-        esac; \
+-      done; \
+-      for i in $$list; do \
+-        if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+-        else file=$$i; fi; \
+-        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+-        case "$$ext" in \
+-          8*) ;; \
+-          *) ext='8' ;; \
+-        esac; \
+-        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+-        inst=`echo $$inst | sed -e 's/^.*\///'`; \
+-        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+-        echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+-        $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst"; \
+-      done
+-uninstall-man8:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(man8_MANS) $(dist_man8_MANS) $(nodist_man8_MANS)'; \
+-      l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
+-      for i in $$l2; do \
+-        case "$$i" in \
+-          *.8*) list="$$list $$i" ;; \
+-        esac; \
+-      done; \
+-      for i in $$list; do \
+-        ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+-        case "$$ext" in \
+-          8*) ;; \
+-          *) ext='8' ;; \
+-        esac; \
+-        inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+-        inst=`echo $$inst | sed -e 's/^.*\///'`; \
+-        inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+-        echo " rm -f '$(DESTDIR)$(man8dir)/$$inst'"; \
+-        rm -f "$(DESTDIR)$(man8dir)/$$inst"; \
+-      done
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-      $(MAKE) $(AM_MAKEFLAGS) \
+-        top_distdir="$(top_distdir)" distdir="$(distdir)" \
+-        dist-info
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(INFO_DEPS) $(PROGRAMS) $(SCRIPTS) $(MANS)
+-installdirs:
+-      for dir in "$(DESTDIR)$(infodir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man8dir)"; do \
+-        test -z "$$dir" || $(mkdir_p) "$$dir"; \
+-      done
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-      -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am: $(DVIS)
+-
+-html: html-am
+-
+-html-am: $(HTMLS)
+-
+-info: info-am
+-
+-info-am: $(INFO_DEPS)
+-
+-install-data-am: install-info-am install-man
+-
+-install-exec-am:
+-
+-install-info: install-info-am
+-
+-install-info-am: $(INFO_DEPS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(infodir)" || $(mkdir_p) "$(DESTDIR)$(infodir)"
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      list='$(INFO_DEPS)'; \
+-      for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-        esac; \
+-        if test -f $$file; then d=.; else d=$(srcdir); fi; \
+-        file_i=`echo "$$file" | sed 's|\.info$$||;s|$$|.i|'`; \
+-        for ifile in $$d/$$file $$d/$$file-[0-9] $$d/$$file-[0-9][0-9] \
+-                       $$d/$$file_i[0-9] $$d/$$file_i[0-9][0-9] ; do \
+-          if test -f $$ifile; then \
+-            relfile=`echo "$$ifile" | sed 's|^.*/||'`; \
+-            echo " $(INSTALL_DATA) '$$ifile' '$(DESTDIR)$(infodir)/$$relfile'"; \
+-            $(INSTALL_DATA) "$$ifile" "$(DESTDIR)$(infodir)/$$relfile"; \
+-          else : ; fi; \
+-        done; \
+-      done
+-      @$(POST_INSTALL)
+-      @if (install-info --version && \
+-           install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
+-        list='$(INFO_DEPS)'; \
+-        for file in $$list; do \
+-          relfile=`echo "$$file" | sed 's|^.*/||'`; \
+-          echo " install-info --info-dir='$(DESTDIR)$(infodir)' '$(DESTDIR)$(infodir)/$$relfile'";\
+-          install-info --info-dir="$(DESTDIR)$(infodir)" "$(DESTDIR)$(infodir)/$$relfile" || :;\
+-        done; \
+-      else : ; fi
+-install-man: install-man1 install-man8
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-aminfo \
+-      maintainer-clean-generic maintainer-clean-vti
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-aminfo mostlyclean-compile \
+-      mostlyclean-generic mostlyclean-vti
+-
+-pdf: pdf-am
+-
+-pdf-am: $(PDFS)
+-
+-ps: ps-am
+-
+-ps-am: $(PSS)
+-
+-uninstall-am: uninstall-info-am uninstall-man
+-
+-uninstall-man: uninstall-man1 uninstall-man8
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+-      clean-noinstPROGRAMS ctags dist-info distclean \
+-      distclean-compile distclean-generic distclean-tags distdir dvi \
+-      dvi-am html html-am info info-am install install-am \
+-      install-data install-data-am install-exec install-exec-am \
+-      install-info install-info-am install-man install-man1 \
+-      install-man8 install-strip installcheck installcheck-am \
+-      installdirs maintainer-clean maintainer-clean-aminfo \
+-      maintainer-clean-generic maintainer-clean-vti mostlyclean \
+-      mostlyclean-aminfo mostlyclean-compile mostlyclean-generic \
+-      mostlyclean-vti pdf pdf-am ps ps-am tags uninstall \
+-      uninstall-am uninstall-info-am uninstall-man uninstall-man1 \
+-      uninstall-man8
+-
+-
+-@BUILD_EXAMPLE_KERNEL_TRUE@boot.o: multiboot.h
+-
+-# Cancel the rule %.texi -> %. This rule may confuse make to determine
+-# the dependecies.
+-.texi:
+-
+-%.c.texi: %.c $(srcdir)/$(SRC2TEXI)
+-      $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
+-
+-%.h.texi: %.h $(srcdir)/$(SRC2TEXI)
+-      $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
+-
+-%.S.texi: %.S $(srcdir)/$(SRC2TEXI)
+-      $(SHELL) $(srcdir)/$(SRC2TEXI) $(srcdir) $< $@
+-
+-@MAINTAINER_MODE_TRUE@$(srcdir)/grub.8: ../grub/grub $(srcdir)/$(HELP2MAN)
+-@MAINTAINER_MODE_TRUE@        $(PERL) $(srcdir)/$(HELP2MAN) --name="the grub shell" \
+-@MAINTAINER_MODE_TRUE@                --section=8 --output=$@ $<
+-
+-@MAINTAINER_MODE_TRUE@$(srcdir)/grub-install.8: ../util/grub-install $(srcdir)/$(HELP2MAN)
+-@MAINTAINER_MODE_TRUE@        chmod 755 $<
+-@MAINTAINER_MODE_TRUE@        $(PERL) $(srcdir)/$(HELP2MAN) --name="install GRUB on your drive" \
+-@MAINTAINER_MODE_TRUE@                --section=8 --output=$@ $<
+-
+-@MAINTAINER_MODE_TRUE@$(srcdir)/mbchk.1: ../util/mbchk $(srcdir)/$(HELP2MAN)
+-@MAINTAINER_MODE_TRUE@        $(PERL) $(srcdir)/$(HELP2MAN) \
+-@MAINTAINER_MODE_TRUE@                --name="check the format of a Multiboot kernel" \
+-@MAINTAINER_MODE_TRUE@                --section=1 --output=$@ $<
+-
+-@MAINTAINER_MODE_TRUE@$(srcdir)/grub-md5-crypt.8: ../util/grub-md5-crypt $(srcdir)/$(HELP2MAN)
+-@MAINTAINER_MODE_TRUE@        chmod 755 $<
+-@MAINTAINER_MODE_TRUE@        $(PERL) $(srcdir)/$(HELP2MAN) \
+-@MAINTAINER_MODE_TRUE@                --name="Encrypt a password in MD5 format" \
+-@MAINTAINER_MODE_TRUE@                --section=8 --output=$@ $<
+-
+-@MAINTAINER_MODE_TRUE@$(srcdir)/grub-terminfo.8: ../util/grub-terminfo $(srcdir)/$(HELP2MAN)
+-@MAINTAINER_MODE_TRUE@        chmod 755 $<
+-@MAINTAINER_MODE_TRUE@        $(PERL) $(srcdir)/$(HELP2MAN) \
+-@MAINTAINER_MODE_TRUE@                --name="Generate a terminfo command from a terminfo name" \
+-@MAINTAINER_MODE_TRUE@                --section=8 --output=$@ $<
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/docs/grub-crypt.8 b/docs/grub-crypt.8
+new file mode 100644
+index 0000000..eb132d7
+--- /dev/null
++++ b/docs/grub-crypt.8
+@@ -0,0 +1,39 @@
++.\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.23.
++.TH GRUB-CRYPT "1" "January 2010" "grub-crypt (GNU GRUB 0.97)" FSF
++.SH NAME
++grub-crypt \- manual page for grub-crypt (GNU GRUB 0.97)
++.SH SYNOPSIS
++.B grub-crypt
++[\fIOPTION\fR]...
++.SH DESCRIPTION
++Encrypt a password.
++.TP
++\fB\-h\fR, \fB\-\-help\fR
++Print this message and exit
++.TP
++\fB\-v\fR, \fB\-\-version\fR
++Print the version information and exit
++.TP
++\fB\-\-md5\fR
++Use MD5 to encrypt the password
++.TP
++\fB\-\-sha\-256\fR
++Use SHA-256 to encrypt the password
++.TP
++\fB\-\-sha\-512\fR
++Use SHA-512 to encrypt the password (default)
++.SH "REPORTING BUGS"
++Report bugs to <bug-grub@gnu.org>.
++EOF
++.SH "SEE ALSO"
++The full documentation for
++.B grub-crypt
++is maintained as a Texinfo manual.  If the
++.B info
++and
++.B grub-crypt
++programs are properly installed at your site, the command
++.IP
++.B info grub-crypt
++.PP
++should give you access to the complete manual.
+diff --git a/docs/grub-install.8 b/docs/grub-install.8
+index ac588a3..accff22 100644
+--- a/docs/grub-install.8
++++ b/docs/grub-install.8
+@@ -30,6 +30,8 @@ BIOS
+ .TP
+ \fB\-\-recheck\fR
+ probe a device map even if it already exists
++
++This option is unreliable and its use is strongly discouraged.
+ .PP
+ INSTALL_DEVICE can be a GRUB device name or a system device filename.
+ .PP
+diff --git a/docs/grub.8 b/docs/grub.8
+index 92149f7..7a087d6 100644
+--- a/docs/grub.8
++++ b/docs/grub.8
+@@ -15,7 +15,7 @@ turn on batch mode for non-interactive use
+ specify stage2 boot_drive [default=0x0]
+ .TP
+ \fB\-\-config\-file\fR=\fIFILE\fR
+-specify stage2 config_file [default=/boot/grub/menu.lst]
++specify stage2 config_file [default=/boot/grub/grub.conf]
+ .TP
+ \fB\-\-device\-map\fR=\fIFILE\fR
+ use the device map file FILE
+diff --git a/docs/grub.info b/docs/grub.info
+index f48783c..7692f31 100644
+--- a/docs/grub.info
++++ b/docs/grub.info
+@@ -1,5 +1,4 @@
+-This is ../../docs/grub.info, produced by makeinfo version 4.8 from
+-../../docs/grub.texi.
++This is grub.info, produced by makeinfo version 4.9 from grub.texi.
+ INFO-DIR-SECTION Kernel
+ START-INFO-DIR-ENTRY
+@@ -1147,7 +1146,7 @@ your OS. There's a solution to that - GRUB provides a menu interface
+ (*note Menu interface::) from which you can select an item (using arrow
+ keys) that will do everything to boot an OS.
+-   To enable the menu, you need a configuration file, `menu.lst' under
++   To enable the menu, you need a configuration file, `grub.conf' under
+ the boot directory. We'll analyze an example file.
+    The file first contains some general settings, the menu interface
+@@ -1693,12 +1692,12 @@ There are two ways to specify files, by "absolute file name" and by
+    An absolute file name resembles a Unix absolute file name, using `/'
+ for the directory separator (not `\' as in DOS). One example is
+-`(hd0,0)/boot/grub/menu.lst'. This means the file `/boot/grub/menu.lst'
+-in the first partition of the first hard disk. If you omit the device
+-name in an absolute file name, GRUB uses GRUB's "root device"
+-implicitly. So if you set the root device to, say, `(hd1,0)' by the
+-command `root' (*note root::), then `/boot/kernel' is the same as
+-`(hd1,0)/boot/kernel'.
++`(hd0,0)/boot/grub/grub.conf'. This means the file
++`/boot/grub/grub.conf' in the first partition of the first hard disk.
++If you omit the device name in an absolute file name, GRUB uses GRUB's
++"root device" implicitly. So if you set the root device to, say,
++`(hd1,0)' by the command `root' (*note root::), then `/boot/kernel' is
++the same as `(hd1,0)/boot/kernel'.
\1f
+ File: grub.info,  Node: Block list syntax,  Prev: File name syntax,  Up: Filesystem
+@@ -2023,6 +2022,7 @@ Commands usable anywhere in the menu and in the command-line.
+ * rarp::                        Initialize a network device via RARP
+ * serial::                      Set up a serial device
+ * setkey::                      Configure the key map
++* splashimage::                 Use a splash image
+ * terminal::                    Choose a terminal
+ * terminfo::                    Define escape sequences for a terminal
+ * tftpserver::                  Specify a TFTP server
+@@ -2258,7 +2258,7 @@ File: grub.info,  Node: serial,  Next: setkey,  Prev: rarp,  Up: General command
+      support. See also *Note Serial terminal::.
\1f
+-File: grub.info,  Node: setkey,  Next: terminal,  Prev: serial,  Up: General commands
++File: grub.info,  Node: setkey,  Next: splashimage,  Prev: serial,  Up: General commands
+ 13.2.13 setkey
+ --------------
+@@ -2384,9 +2384,20 @@ File: grub.info,  Node: setkey,  Next: terminal,  Prev: serial,  Up: General com
+           ` '
\1f
+-File: grub.info,  Node: terminal,  Next: terminfo,  Prev: setkey,  Up: General commands
++File: grub.info,  Node: splashimage,  Next: terminal,  Prev: setkey,  Up: General commands
+-13.2.14 terminal
++13.2.14 splashimage
++-------------------
++
++ -- Command: splashimage file
++     Select an image to use as the background image.  This should be
++     specified using normal GRUB device naming syntax.  The format of
++     the file is a gzipped xpm which is 640x480 with a 14 color palette.
++
++\1f
++File: grub.info,  Node: terminal,  Next: terminfo,  Prev: splashimage,  Up: General commands
++
++13.2.15 terminal
+ ----------------
+  -- Command: terminal [`--dumb'] [`--no-echo'] [`--no-edit']
+@@ -2421,7 +2432,7 @@ File: grub.info,  Node: terminal,  Next: terminfo,  Prev: setkey,  Up: General c
\1f
+ File: grub.info,  Node: terminfo,  Next: tftpserver,  Prev: terminal,  Up: General commands
+-13.2.15 terminfo
++13.2.16 terminfo
+ ----------------
+  -- Command: terminfo `--name=name' `--cursor-address=seq'
+@@ -2439,7 +2450,7 @@ File: grub.info,  Node: terminfo,  Next: tftpserver,  Prev: terminal,  Up: Gener
\1f
+ File: grub.info,  Node: tftpserver,  Next: unhide,  Prev: terminfo,  Up: General commands
+-13.2.16 tftpserver
++13.2.17 tftpserver
+ ------------------
+  -- Command: tftpserver ipaddr
+@@ -2454,7 +2465,7 @@ File: grub.info,  Node: tftpserver,  Next: unhide,  Prev: terminfo,  Up: General
\1f
+ File: grub.info,  Node: unhide,  Prev: tftpserver,  Up: General commands
+-13.2.17 unhide
++13.2.18 unhide
+ --------------
+  -- Command: unhide partition
+@@ -3405,9 +3416,9 @@ calls with UNIX system calls and libc functions.
+      grub shell just ignores this option.
+ `--config-file=FILE'
+-     Read the configuration file FILE instead of `/boot/grub/menu.lst'.
+-     The format is the same as the normal GRUB syntax. See *Note
+-     Filesystem::, for more information.
++     Read the configuration file FILE instead of
++     `/boot/grub/grub.conf'. The format is the same as the normal GRUB
++     syntax. See *Note Filesystem::, for more information.
+ `--boot-drive=DRIVE'
+      Set the stage2 BOOT_DRIVE to DRIVE. This argument should be an
+@@ -3551,8 +3562,9 @@ name.
+ `--recheck'
+      Recheck the device map, even if `/boot/grub/device.map' already
+-     exists. You should use this option whenever you add/remove a disk
+-     into/from your computer.
++     exists.
++
++     This option is unreliable and its use is strongly discouraged.
\1f
+ File: grub.info,  Node: Invoking grub-md5-crypt,  Next: Invoking grub-terminfo,  Prev: Invoking grub-install,  Up: Top
+@@ -4279,6 +4291,7 @@ Index
+ * serial:                                serial.               (line  9)
+ * setkey:                                setkey.               (line  7)
+ * setup:                                 setup.                (line  8)
++* splashimage:                           splashimage.          (line  7)
+ * terminal:                              terminal.             (line  9)
+ * terminfo:                              terminfo.             (line  9)
+ * testload:                              testload.             (line  7)
+@@ -4293,163 +4306,164 @@ Index
\1f
+ Tag Table:
+-Node: Top\7f1487
+-Node: Introduction\7f3266
+-Node: Overview\7f3643
+-Node: Overview-Footnotes\7f5865
+-Ref: Overview-Footnote-1\7f5926
+-Node: History\7f6087
+-Node: Features\7f7208
+-Node: Features-Footnotes\7f12976
+-Ref: Features-Footnote-1\7f13037
+-Node: Role of a boot loader\7f13182
+-Node: Role of a boot loader-Footnotes\7f14520
+-Ref: Role of a boot loader-Footnote-1\7f14607
+-Node: Naming convention\7f14686
+-Node: Installation\7f17621
+-Node: Creating a GRUB boot floppy\7f19363
+-Node: Installing GRUB natively\7f20181
+-Node: Installing GRUB natively-Footnotes\7f22461
+-Ref: Installing GRUB natively-Footnote-1\7f22554
+-Node: Installing GRUB using grub-install\7f22739
+-Node: Making a GRUB bootable CD-ROM\7f25685
+-Node: Making a GRUB bootable CD-ROM-Footnotes\7f27730
+-Ref: Making a GRUB bootable CD-ROM-Footnote-1\7f27833
+-Node: Booting\7f27908
+-Node: General boot methods\7f28363
+-Node: Loading an operating system directly\7f29104
+-Node: Chain-loading\7f30408
+-Node: Chain-loading-Footnotes\7f31718
+-Ref: Chain-loading-Footnote-1\7f31789
+-Node: OS-specific notes\7f31861
+-Node: GNU/Hurd\7f32237
+-Node: GNU/Linux\7f32856
+-Node: FreeBSD\7f34104
+-Node: NetBSD\7f34617
+-Node: OpenBSD\7f35275
+-Node: DOS/Windows\7f35475
+-Node: SCO UnixWare\7f37301
+-Node: QNX\7f37719
+-Node: Making your system robust\7f37969
+-Node: Booting once-only\7f39294
+-Node: Booting fallback systems\7f41219
+-Node: Configuration\7f44066
+-Node: Network\7f48495
+-Node: General usage of network support\7f48989
+-Node: General usage of network support-Footnotes\7f50850
+-Ref: General usage of network support-Footnote-1\7f50959
+-Node: Diskless\7f51027
+-Node: Serial terminal\7f53211
+-Node: Preset Menu\7f55444
+-Node: Security\7f57812
+-Node: Images\7f60620
+-Node: Filesystem\7f63131
+-Node: Device syntax\7f63814
+-Node: File name syntax\7f65308
+-Node: Block list syntax\7f66051
+-Node: Interface\7f66784
+-Node: Command-line interface\7f67661
+-Node: Command-line interface-Footnotes\7f69602
+-Ref: Command-line interface-Footnote-1\7f69691
+-Node: Menu interface\7f69786
+-Node: Menu entry editor\7f70796
+-Node: Hidden menu interface\7f71875
+-Node: Commands\7f72452
+-Node: Menu-specific commands\7f73029
+-Node: default\7f74200
+-Node: fallback\7f74678
+-Node: hiddenmenu\7f75229
+-Node: timeout\7f75717
+-Node: title\7f75995
+-Node: General commands\7f76266
+-Node: bootp\7f77579
+-Node: color\7f78058
+-Node: device\7f79532
+-Node: dhcp\7f80104
+-Node: hide\7f80689
+-Node: ifconfig\7f81066
+-Node: pager\7f81642
+-Node: partnew\7f81976
+-Node: parttype\7f82412
+-Node: password\7f82779
+-Node: rarp\7f83598
+-Node: serial\7f83899
+-Node: setkey\7f85172
+-Node: terminal\7f87341
+-Node: terminfo\7f88878
+-Node: tftpserver\7f89565
+-Node: unhide\7f90111
+-Node: Command-line and menu entry commands\7f90486
+-Node: blocklist\7f93017
+-Node: boot\7f93259
+-Node: cat\7f93580
+-Node: chainloader\7f93884
+-Node: cmp\7f94500
+-Node: configfile\7f95051
+-Node: debug\7f95265
+-Node: displayapm\7f95649
+-Node: displaymem\7f95860
+-Node: embed\7f96562
+-Node: embed-Footnotes\7f97096
+-Ref: embed-Footnote-1\7f97151
+-Node: find\7f97208
+-Node: fstest\7f97588
+-Node: geometry\7f98273
+-Node: halt\7f98885
+-Node: help\7f99212
+-Node: impsprobe\7f99833
+-Node: initrd\7f100232
+-Node: install\7f100571
+-Node: install-Footnotes\7f103415
+-Ref: install-Footnote-1\7f103474
+-Node: ioprobe\7f103571
+-Node: kernel\7f103896
+-Node: lock\7f105016
+-Node: makeactive\7f105591
+-Node: map\7f105903
+-Node: md5crypt\7f106470
+-Node: module\7f106817
+-Node: modulenounzip\7f107394
+-Node: pause\7f107687
+-Node: quit\7f108101
+-Node: reboot\7f108377
+-Node: read\7f108558
+-Node: root\7f108800
+-Node: rootnoverify\7f109677
+-Node: savedefault\7f110232
+-Node: setup\7f111208
+-Node: testload\7f112274
+-Node: testvbe\7f112884
+-Node: uppermem\7f113255
+-Node: vbeprobe\7f113837
+-Node: Troubleshooting\7f114220
+-Node: Stage1 errors\7f114758
+-Node: Stage1.5 errors\7f116135
+-Node: Stage2 errors\7f116573
+-Node: Invoking the grub shell\7f124033
+-Node: Basic usage\7f124786
+-Node: Installation under UNIX\7f127073
+-Node: Device map\7f128748
+-Node: Invoking grub-install\7f129896
+-Node: Invoking grub-md5-crypt\7f131484
+-Node: Invoking grub-terminfo\7f132133
+-Node: Invoking grub-set-default\7f132899
+-Node: Invoking mbchk\7f134700
+-Node: Obtaining and Building GRUB\7f135214
+-Node: Reporting bugs\7f136631
+-Node: Future\7f139435
+-Node: Internals\7f139926
+-Node: Memory map\7f141149
+-Node: Embedded data\7f142627
+-Node: Filesystem interface\7f144644
+-Node: Command interface\7f148077
+-Node: Bootstrap tricks\7f149392
+-Node: I/O ports detection\7f151541
+-Node: Memory detection\7f151813
+-Node: Low-level disk I/O\7f152105
+-Node: MBR\7f152374
+-Node: Partition table\7f152571
+-Node: Submitting patches\7f152844
+-Node: Index\7f154332
++Node: Top\7f1465
++Node: Introduction\7f3244
++Node: Overview\7f3621
++Node: Overview-Footnotes\7f5843
++Ref: Overview-Footnote-1\7f5904
++Node: History\7f6065
++Node: Features\7f7186
++Node: Features-Footnotes\7f12954
++Ref: Features-Footnote-1\7f13015
++Node: Role of a boot loader\7f13160
++Node: Role of a boot loader-Footnotes\7f14498
++Ref: Role of a boot loader-Footnote-1\7f14585
++Node: Naming convention\7f14664
++Node: Installation\7f17599
++Node: Creating a GRUB boot floppy\7f19341
++Node: Installing GRUB natively\7f20159
++Node: Installing GRUB natively-Footnotes\7f22439
++Ref: Installing GRUB natively-Footnote-1\7f22532
++Node: Installing GRUB using grub-install\7f22717
++Node: Making a GRUB bootable CD-ROM\7f25663
++Node: Making a GRUB bootable CD-ROM-Footnotes\7f27708
++Ref: Making a GRUB bootable CD-ROM-Footnote-1\7f27811
++Node: Booting\7f27886
++Node: General boot methods\7f28341
++Node: Loading an operating system directly\7f29082
++Node: Chain-loading\7f30386
++Node: Chain-loading-Footnotes\7f31696
++Ref: Chain-loading-Footnote-1\7f31767
++Node: OS-specific notes\7f31839
++Node: GNU/Hurd\7f32215
++Node: GNU/Linux\7f32834
++Node: FreeBSD\7f34082
++Node: NetBSD\7f34595
++Node: OpenBSD\7f35253
++Node: DOS/Windows\7f35453
++Node: SCO UnixWare\7f37279
++Node: QNX\7f37697
++Node: Making your system robust\7f37947
++Node: Booting once-only\7f39272
++Node: Booting fallback systems\7f41197
++Node: Configuration\7f44044
++Node: Network\7f48474
++Node: General usage of network support\7f48968
++Node: General usage of network support-Footnotes\7f50829
++Ref: General usage of network support-Footnote-1\7f50938
++Node: Diskless\7f51006
++Node: Serial terminal\7f53190
++Node: Preset Menu\7f55423
++Node: Security\7f57791
++Node: Images\7f60599
++Node: Filesystem\7f63110
++Node: Device syntax\7f63793
++Node: File name syntax\7f65287
++Node: Block list syntax\7f66032
++Node: Interface\7f66765
++Node: Command-line interface\7f67642
++Node: Command-line interface-Footnotes\7f69583
++Ref: Command-line interface-Footnote-1\7f69672
++Node: Menu interface\7f69767
++Node: Menu entry editor\7f70777
++Node: Hidden menu interface\7f71856
++Node: Commands\7f72433
++Node: Menu-specific commands\7f73010
++Node: default\7f74181
++Node: fallback\7f74659
++Node: hiddenmenu\7f75210
++Node: timeout\7f75698
++Node: title\7f75976
++Node: General commands\7f76247
++Node: bootp\7f77611
++Node: color\7f78090
++Node: device\7f79564
++Node: dhcp\7f80136
++Node: hide\7f80721
++Node: ifconfig\7f81098
++Node: pager\7f81674
++Node: partnew\7f82008
++Node: parttype\7f82444
++Node: password\7f82811
++Node: rarp\7f83630
++Node: serial\7f83931
++Node: setkey\7f85204
++Node: splashimage\7f87376
++Node: terminal\7f87754
++Node: terminfo\7f89296
++Node: tftpserver\7f89983
++Node: unhide\7f90529
++Node: Command-line and menu entry commands\7f90904
++Node: blocklist\7f93435
++Node: boot\7f93677
++Node: cat\7f93998
++Node: chainloader\7f94302
++Node: cmp\7f94918
++Node: configfile\7f95469
++Node: debug\7f95683
++Node: displayapm\7f96067
++Node: displaymem\7f96278
++Node: embed\7f96980
++Node: embed-Footnotes\7f97514
++Ref: embed-Footnote-1\7f97569
++Node: find\7f97626
++Node: fstest\7f98006
++Node: geometry\7f98691
++Node: halt\7f99303
++Node: help\7f99630
++Node: impsprobe\7f100251
++Node: initrd\7f100650
++Node: install\7f100989
++Node: install-Footnotes\7f103833
++Ref: install-Footnote-1\7f103892
++Node: ioprobe\7f103989
++Node: kernel\7f104314
++Node: lock\7f105434
++Node: makeactive\7f106009
++Node: map\7f106321
++Node: md5crypt\7f106888
++Node: module\7f107235
++Node: modulenounzip\7f107812
++Node: pause\7f108105
++Node: quit\7f108519
++Node: reboot\7f108795
++Node: read\7f108976
++Node: root\7f109218
++Node: rootnoverify\7f110095
++Node: savedefault\7f110650
++Node: setup\7f111626
++Node: testload\7f112692
++Node: testvbe\7f113302
++Node: uppermem\7f113673
++Node: vbeprobe\7f114255
++Node: Troubleshooting\7f114638
++Node: Stage1 errors\7f115176
++Node: Stage1.5 errors\7f116553
++Node: Stage2 errors\7f116991
++Node: Invoking the grub shell\7f124451
++Node: Basic usage\7f125204
++Node: Installation under UNIX\7f127492
++Node: Device map\7f129167
++Node: Invoking grub-install\7f130315
++Node: Invoking grub-md5-crypt\7f131884
++Node: Invoking grub-terminfo\7f132533
++Node: Invoking grub-set-default\7f133299
++Node: Invoking mbchk\7f135100
++Node: Obtaining and Building GRUB\7f135614
++Node: Reporting bugs\7f137031
++Node: Future\7f139835
++Node: Internals\7f140326
++Node: Memory map\7f141549
++Node: Embedded data\7f143027
++Node: Filesystem interface\7f145044
++Node: Command interface\7f148477
++Node: Bootstrap tricks\7f149792
++Node: I/O ports detection\7f151941
++Node: Memory detection\7f152213
++Node: Low-level disk I/O\7f152505
++Node: MBR\7f152774
++Node: Partition table\7f152971
++Node: Submitting patches\7f153244
++Node: Index\7f154732
\1f
+ End Tag Table
+diff --git a/docs/grub.texi b/docs/grub.texi
+index 51d330a..5fd324d 100644
+--- a/docs/grub.texi
++++ b/docs/grub.texi
+@@ -21,6 +21,7 @@
+ @dircategory Kernel
+ @direntry
+ * GRUB: (grub).                 The GRand Unified Bootloader
++* grub-crypt: (grub)Invoking grub-crypt.        Encrypt a password
+ * grub-install: (grub)Invoking grub-install.    Install GRUB on your drive
+ * grub-md5-crypt: (grub)Invoking grub-md5-crypt.        Encrypt a password
+                                                         in MD5 format
+@@ -115,8 +116,9 @@ This edition documents version @value{VERSION}.
+ * Commands::                    The list of available builtin commands
+ * Troubleshooting::             Error messages produced by GRUB
+ * Invoking the grub shell::     How to use the grub shell
++* Invoking grub-crypt::         How to generate an encrypted password
+ * Invoking grub-install::       How to use the GRUB installer
+-* Invoking grub-md5-crypt::     How to generate a cryptic password
++* Invoking grub-md5-crypt::     How to generate an MD5-encrypted password
+ * Invoking grub-terminfo::      How to generate a terminfo command
+ * Invoking grub-set-default::   How to set a default boot entry
+ * Invoking mbchk::              How to use the Multiboot checker
+@@ -1265,7 +1267,7 @@ OS. There's a solution to that - GRUB provides a menu interface
+ keys) that will do everything to boot an OS.
+ To enable the menu, you need a configuration file,
+-@file{menu.lst} under the boot directory. We'll analyze an example
++@file{grub.conf} under the boot directory. We'll analyze an example
+ file.
+ The file first contains some general settings, the menu interface
+@@ -1685,27 +1687,17 @@ run the command @command{password} in your configuration file
+ (@pxref{password}), like this:
+ @example
+-password --md5 PASSWORD
++password --encrypted PASSWORD
+ @end example
+ If this is specified, GRUB disallows any interactive control, until you
+ press the key @key{p} and enter a correct password.  The option
+-@option{--md5} tells GRUB that @samp{PASSWORD} is in MD5 format.  If it
++@option{--encrypted} tells GRUB that @samp{PASSWORD} is encrypted format.  If it
+ is omitted, GRUB assumes the @samp{PASSWORD} is in clear text.
+-You can encrypt your password with the command @command{md5crypt}
+-(@pxref{md5crypt}). For example, run the grub shell (@pxref{Invoking the
+-grub shell}), and enter your password:
+-
+-@example
+-@group
+-grub> md5crypt
+-Password: **********
+-Encrypted: $1$U$JK7xFegdxWH6VuppCUSIb.
+-@end group
+-@end example
+-
+-Then, cut and paste the encrypted password to your configuration file.
++You can encrypt your password with the program @command{grub-crypt}
++(@pxref{Invoking grub-crypt}). Then, cut and paste the encrypted password to
++your configuration file.
+ Also, you can specify an optional argument to @command{password}. See
+ this example:
+@@ -1882,8 +1874,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by
+ An absolute file name resembles a Unix absolute file name, using
+ @samp{/} for the directory separator (not @samp{\} as in DOS). One
+-example is @samp{(hd0,0)/boot/grub/menu.lst}. This means the file
+-@file{/boot/grub/menu.lst} in the first partition of the first hard
++example is @samp{(hd0,0)/boot/grub/grub.conf}. This means the file
++@file{/boot/grub/grub.conf} in the first partition of the first hard
+ disk. If you omit the device name in an absolute file name, GRUB uses
+ GRUB's @dfn{root device} implicitly. So if you set the root device to,
+ say, @samp{(hd1,0)} by the command @command{root} (@pxref{root}), then
+@@ -2199,6 +2191,7 @@ Commands usable anywhere in the menu and in the command-line.
+ * rarp::                        Initialize a network device via RARP
+ * serial::                      Set up a serial device
+ * setkey::                      Configure the key map
++* splashimage::                 Use a splash image
+ * terminal::                    Choose a terminal
+ * terminfo::                    Define escape sequences for a terminal
+ * tftpserver::                  Specify a TFTP server
+@@ -2398,7 +2391,7 @@ is the new partition type and must be a number in the range 0-0xff.
+ @node password
+ @subsection password
+-@deffn Command password [@option{--md5}] passwd [new-config-file]
++@deffn Command password [@option{--md5}] [@option{--encrypted}] passwd [new-config-file]
+ If used in the first section of a menu file, disable all interactive
+ editing control (menu entry editor and command-line) and entries
+ protected by the command @command{lock}. If the password @var{passwd} is
+@@ -2408,7 +2401,9 @@ specified. Otherwise, GRUB will just unlock the privileged instructions.
+ You can also use this command in the script section, in which case it
+ will ask for the password, before continuing.  The option
+ @option{--md5} tells GRUB that @var{passwd} is encrypted with
+-@command{md5crypt} (@pxref{md5crypt}).
++@command{md5crypt} (@pxref{md5crypt}), the option @option{--encrypted}
++tells GRUB that @var{passwd} is using one of the crypt formats (GRUB currently
++supports MD5, SHA-256 and SHA-512 encryption).
+ @end deffn
+@@ -2578,6 +2573,16 @@ character each of the symbols corresponds:
+ @end deffn
++@node splashimage
++@subsection splashimage
++
++@deffn Command splashimage file
++Select an image to use as the background image.  This should be
++specified using normal GRUB device naming syntax.  The format of the
++file is a gzipped xpm which is 640x480 with a 14 color palette.
++@end deffn
++
++
+ @node terminal
+ @subsection terminal
+@@ -3542,7 +3547,7 @@ ignores this option.
+ @item --config-file=@var{file}
+ Read the configuration file @var{file} instead of
+-@file{/boot/grub/menu.lst}. The format is the same as the normal GRUB
++@file{/boot/grub/grub.conf}. The format is the same as the normal GRUB
+ syntax. See @ref{Filesystem}, for more information.
+ @item --boot-drive=@var{drive}
+@@ -3653,6 +3658,31 @@ comments in the file if needed, as the grub shell assumes that a line is
+ just a comment if the first character is @samp{#}.
++@node Invoking grub-crypt
++@chapter Invoking grub-crypt
++
++The program @command{grub-crypt} encrypts a password in one of the specified
++formats. Passwords encrypted by this program can be used with the
++command @command{password} (@pxref{password}).
++
++@command{grub-crypt} accepts the following options:
++
++@table @option
++@item --help
++Print a summary of the command-line options and exit.
++
++@item --version
++Print the version information and exit.
++
++@item --md5
++Use MD5 for password encryption.
++@item --sha-256
++Use SHA-256 for password encryption.
++@item --sha-512
++Use SHA-512 for password encryption. This is the default.
++@end table
++
++
+ @node Invoking grub-install
+ @chapter Invoking grub-install
+@@ -3702,8 +3732,9 @@ Use @var{file} as the grub shell. You can append arbitrary options to
+ @item --recheck
+ Recheck the device map, even if @file{/boot/grub/device.map} already
+-exists. You should use this option whenever you add/remove a disk
+-into/from your computer.
++exists.
++
++This option is unreliable and its use is strongly discouraged.
+ @end table
+diff --git a/docs/stamp-vti b/docs/stamp-vti
+index b97de24..eb5144d 100644
+--- a/docs/stamp-vti
++++ b/docs/stamp-vti
+@@ -1,4 +1,4 @@
+-@set UPDATED 8 May 2005
+-@set UPDATED-MONTH May 2005
++@set UPDATED 7 August 2007
++@set UPDATED-MONTH August 2007
+ @set EDITION 0.97
+ @set VERSION 0.97
+diff --git a/docs/version.texi b/docs/version.texi
+index b97de24..eb5144d 100644
+--- a/docs/version.texi
++++ b/docs/version.texi
+@@ -1,4 +1,4 @@
+-@set UPDATED 8 May 2005
+-@set UPDATED-MONTH May 2005
++@set UPDATED 7 August 2007
++@set UPDATED-MONTH August 2007
+ @set EDITION 0.97
+ @set VERSION 0.97
+diff --git a/efi/.gitignore b/efi/.gitignore
+new file mode 100644
+index 0000000..a0e4294
+--- /dev/null
++++ b/efi/.gitignore
+@@ -0,0 +1,7 @@
++.deps
++Makefile.in
++Makefile
++*.a
++*.o
++*.so
++*.efi
+diff --git a/efi/Makefile.am b/efi/Makefile.am
+new file mode 100644
+index 0000000..1d5bd15
+--- /dev/null
++++ b/efi/Makefile.am
+@@ -0,0 +1,76 @@
++
++pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++
++if PLATFORM_EFI
++
++if NETBOOT_SUPPORT
++NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
++else
++NETBOOT_FLAGS =
++endif
++
++if SERIAL_SUPPORT
++SERIAL_FLAGS = -DSUPPORT_SERIAL=1
++else
++SERIAL_FLAGS =
++endif
++
++if HERCULES_SUPPORT
++HERCULES_FLAGS = -DSUPPORT_HERCULES=1
++else
++HERCULES_FLAGS =
++endif
++
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
++GRUBEFI_FORMAT = efi-app-$(EFI_ARCH)
++GRUBSO_LD_SCRIPT = @GNUEFI_LDS@
++GRUBSO_LD_FLAGS = -T $(GRUBSO_LD_SCRIPT) -nostdlib -shared -Bsymbolic
++
++GRUBSO_OBJS = efimain.o
++GRUBSO_LIBS = @GNUEFI_CRT0@ $(top_srcdir)/stage2/libstage2.a \
++              libgrubefi.a @LIBGCC@
++
++if NETBOOT_SUPPORT
++GRUBSO_LIBS += $(top_srcdir)/netboot/libdrivers.a
++endif
++
++pkgdata_DATA = grub.efi
++
++grub.efi: grub.so
++      $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
++                   -j .rela -j .reloc --target=$(GRUBEFI_FORMAT) $^ $@
++
++grub.so: $(GRUBSO_OBJS) $(GRUBSO_LIBS) @LIBGNUEFI@
++      $(LD) -o $@ $(GRUBSO_LD_FLAGS) $^
++      echo '-------------- unresolved symbols ---------------------'
++      ! nm $@ | grep -iw u
++      echo '-------------------------------------------------------'
++
++crt0-efi.o: $(EFI_ARCH)/crt0-efi.S
++      $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
++
++efimain.o: efimain.c
++      $(CC) -o $@ -c $(libgrubefi_a_CFLAGS) $^
++
++clean-local:
++      -rm -rf grub.so grub.efi
++
++RELOC_FLAGS = $(STAGE2_CFLAGS) -I$(top_srcdir)/stage1 \
++      -I$(top_srcdir)/lib -I. -I$(top_srcdir) -I$(top_srcdir)/stage2 \
++      -fno-builtin $(NETBOOT_FLAGS) $(SERIAL_FLAGS) \
++      $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
++
++noinst_LIBRARIES = libgrubefi.a
++libgrubefi_a_SOURCES = $(EFI_ARCH)/callwrap.S eficore.c efimm.c efimisc.c \
++      eficon.c efidisk.c graphics.c efigraph.c efiuga.c efidp.c \
++      font_8x16.c efiserial.c $(EFI_ARCH)/loader/linux.c efichainloader.c \
++      xpm.c pxe.c efitftp.c
++libgrubefi_a_CFLAGS = $(RELOC_FLAGS) -nostdinc
++
++endif
+diff --git a/efi/byteswap.h b/efi/byteswap.h
+new file mode 100644
+index 0000000..5a057c4
+--- /dev/null
++++ b/efi/byteswap.h
+@@ -0,0 +1,37 @@
++#ifndef BYTESWAP_H
++#define BYTESWAP_H 1
++
++#if defined(__i386__)
++#define LITTLE_ENDIAN 1
++#elif defined(__x86_64__)
++#define LITTLE_ENDIAN 1
++#else
++#error endian not defined
++#endif
++
++#define bswap_16(x) \
++     ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
++
++#define bswap_32(x) \
++     ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) |                     \
++      (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
++
++static inline grub_efi_uint16_t htons(grub_efi_uint16_t hostshort)
++{
++#ifdef LITTLE_ENDIAN
++      return bswap_16(hostshort);
++#else
++      return hostshort;
++#endif
++}
++
++static inline grub_efi_uint32_t htonl(grub_efi_uint32_t hostshort)
++{
++#ifdef LITTLE_ENDIAN
++      return bswap_32(hostshort);
++#else
++      return hostshort;
++#endif
++}
++
++#endif /* BYTESWAP_H */
+diff --git a/efi/dhcp.h b/efi/dhcp.h
+new file mode 100644
+index 0000000..a82a522
+--- /dev/null
++++ b/efi/dhcp.h
+@@ -0,0 +1,133 @@
++#ifndef DHCP_H
++#define DHCP_H 1
++
++#include "pxe.h"
++
++#define EFI_DHCP4_PROTOCOL_GUID \
++{ 0x8a219718, 0x4ef5, 0x4761, {0x91,0xc8,0xc0,0xf0,0x4b,0xda,0x9e,0x56} }
++static grub_efi_guid_t DHCP4Protocol = EFI_DHCP4_PROTOCOL_GUID;
++
++#define EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \
++{ 0x9d9a39d8, 0xbd42, 0x4a73, {0xa4,0xd5,0x8e,0xe9,0x4b,0xe1,0x13,0x80} }
++static grub_efi_guid_t DHCP4SbProtocol = EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID;
++
++#define EFI_PXE_DHCP4_PROTOCOL_GUID \
++{ 0x03c4e624, 0xac28, 0x11d3, {0x9a,0x2d,0x00,0x90,0x29,0x3f,0xc1,0x4d} }
++static grub_efi_guid_t PxeDHCP4Protocol = EFI_PXE_DHCP4_PROTOCOL_GUID;
++
++
++typedef EFI_STATUS (*EFI_DHCP4_GET_MODE_DATA)();
++typedef EFI_STATUS (*EFI_DHCP4_CONFIGURE)();
++typedef EFI_STATUS (*EFI_DHCP4_START)();
++typedef EFI_STATUS (*EFI_DHCP4_RENEW_REBIND)();
++typedef EFI_STATUS (*EFI_DHCP4_RELEASE)();
++typedef EFI_STATUS (*EFI_DHCP4_STOP)();
++typedef EFI_STATUS (*EFI_DHCP4_BUILD)();
++typedef EFI_STATUS (*EFI_DHCP4_TRANSMIT_RECIEVE)();
++typedef EFI_STATUS (*EFI_DHCP4_PARSE)();
++
++typedef struct _EFI_DHCP4_PROTOCOL {
++      EFI_DHCP4_GET_MODE_DATA GetModeData;
++      EFI_DHCP4_CONFIGURE Configure;
++      EFI_DHCP4_START Start;
++      EFI_DHCP4_RENEW_REBIND RenewRebind;
++      EFI_DHCP4_RELEASE Release;
++      EFI_DHCP4_STOP Stop;
++      EFI_DHCP4_BUILD Build;
++      EFI_DHCP4_TRANSMIT_RECIEVE TransmitReceive;
++      EFI_DHCP4_PARSE Parse;
++} EFI_DHCP4_PROTOCOL;
++
++typedef enum {
++      Dhcp4Stopped,
++      Dhcp4Init,
++      Dhcp4Selecting,
++      Dhcp4Requesting,
++      Dhcp4Bound,
++      Dhcp4Renewing,
++      Dhcp4Rebinding,
++      Dhcp4InitReboot,
++      Dhcp4Rebooting,
++} EFI_DHCP4_STATE;
++
++typedef enum {
++      Dhcp4SendDiscover = 0x1,
++      Dhcp4RcvdOffer,
++      Dhcp4SelectOffer,
++      Dhcp4SendRequest,
++      Dhcp4RcvdAck,
++      Dhcp4RcvdNak,
++      Dhcp4SendDecline,
++      Dhcp4BoundCompleted,
++      Dhcp4EnterRenewing,
++      Dhcp4EnterRebinding,
++      Dhcp4AddressLost,
++      Dhcp4Fail,
++} EFI_DHCP4_EVENT;
++
++typedef struct {
++      grub_efi_uint8_t OpCode;
++      grub_efi_uint8_t HwType;
++      grub_efi_uint8_t HwAddrLen;
++      grub_efi_uint8_t Hops;
++      grub_efi_uint32_t xid;
++      grub_efi_uint16_t Seconds;
++      grub_efi_uint16_t reserved;
++      EFI_IPv4_ADDRESS ClientAddr;
++      EFI_IPv4_ADDRESS YourAddr;
++      EFI_IPv4_ADDRESS ServerAddr;
++      EFI_IPv4_ADDRESS GatewayAddr;
++      grub_efi_uint8_t ClientHwAddr[16];
++      char ServerName[64];
++      char BootFileName[128];
++} EFI_DHCP4_HEADER;
++
++typedef struct {
++      grub_efi_uint32_t Size;
++      grub_efi_uint32_t Length;
++      struct {
++              EFI_DHCP4_HEADER Header;
++              grub_efi_uint32_t Magik;
++              grub_efi_uint8_t option[];
++      } Dhcp4;
++} EFI_DHCP4_PACKET;
++
++typedef struct {
++      grub_efi_uint8_t OpCode;
++      grub_efi_uint8_t Length;
++      grub_efi_uint8_t Data[1];
++} EFI_DHCP4_PACKET_OPTION;
++
++typedef EFI_STATUS (*EFI_DHCP4_CALLBACK) (
++      EFI_DHCP4_PROTOCOL *This,
++      void *Context,
++      EFI_DHCP4_STATE CurrentState,
++      EFI_DHCP4_EVENT Dhcp4Event,
++      EFI_DHCP4_PACKET *Packet,
++      EFI_DHCP4_PACKET **NewPacket);
++
++typedef struct {
++      grub_efi_uint32_t DiscoverTryCount;
++      grub_efi_uint32_t *DiscoverTimeout;
++      grub_efi_uint32_t RequestTryCount;
++      grub_efi_uint32_t *RequestTimeout;
++      EFI_IPv4_ADDRESS ClientAddress;
++      EFI_DHCP4_CALLBACK Dhcp4Callback;
++      void *CallbackContext;
++      grub_efi_uint32_t OptionCount;
++      EFI_DHCP4_PACKET_OPTION **OptionList;
++} EFI_DHCP4_CONFIG_DATA;
++
++typedef struct {
++      EFI_DHCP4_STATE State;
++      EFI_DHCP4_CONFIG_DATA ConfigData;
++      EFI_IPv4_ADDRESS ClientAddress;
++      EFI_MAC_ADDRESS ClientMacAddress;
++      EFI_IPv4_ADDRESS ServerAddress;
++      EFI_IPv4_ADDRESS RouterAddress;
++      EFI_IPv4_ADDRESS SubnetMask;
++      grub_efi_uint32_t LeaseTime;
++      EFI_DHCP4_PACKET *ReplyPacket;
++} EFI_DHCP4_MODE_DATA;
++
++#endif /* DHCP_H */
+diff --git a/efi/efichainloader.c b/efi/efichainloader.c
+new file mode 100644
+index 0000000..016636c
+--- /dev/null
++++ b/efi/efichainloader.c
+@@ -0,0 +1,265 @@
++/* efichainloader.c - boot another boot loader */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2004,2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++#define grub_file_size()    filemax
++
++static grub_efi_physical_address_t address;
++static grub_efi_uintn_t pages;
++static grub_efi_device_path_t *file_path;
++static grub_efi_handle_t image_handle;
++
++static int
++grub_chainloader_unload (void)
++{
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_1 (b->unload_image, image_handle);
++  Call_Service_2 (b->free_pages, address, pages);
++  grub_free (file_path);
++
++  return 0;
++}
++
++static int
++grub_chainloader_boot (void)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_uintn_t exit_data_size = 0;
++  grub_efi_char16_t *exit_data = NULL;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_3 (b->start_image, image_handle,
++                         &exit_data_size, &exit_data);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      if (exit_data)
++      {
++        char *buf;
++
++        buf = grub_malloc (exit_data_size * 4 + 1);
++        if (buf)
++          {
++            *grub_utf16_to_utf8 ((grub_uint8_t *) buf,
++                                 exit_data, exit_data_size) = 0;
++
++            grub_printf (buf);
++            grub_free (buf);
++          }
++        else
++          grub_printf ("unknown error\n");
++      }
++      errnum = ERR_UNRECOGNIZED;
++    }
++
++  if (exit_data)
++    Call_Service_1 (b->free_pool, exit_data);
++
++  grub_chainloader_unload ();
++
++  return 0;
++}
++
++static void
++copy_file_path (grub_efi_file_path_device_path_t *fp,
++              const char *str, grub_efi_uint16_t len)
++{
++  grub_efi_char16_t *p;
++  grub_efi_uint16_t size;
++
++  fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
++  fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE;
++  size = len * sizeof (grub_efi_char16_t) + sizeof (*fp);
++  fp->header.length[0] = (grub_efi_uint8_t) (size & 0xff);
++  fp->header.length[1] = (grub_efi_uint8_t) (size >> 8);
++  for (p = fp->path_name; len > 0; len--, p++, str++)
++    {
++      *p = (grub_efi_char16_t) (*str == '/' ? '\\' : *str);
++    }
++}
++
++static grub_efi_device_path_t *
++make_file_path (const char *filename)
++{
++  char *dir_start;
++  char *dir_end;
++  grub_size_t size;
++  grub_efi_device_path_t *d;
++
++  dir_start = grub_strchr (filename, ')');
++  if (! dir_start)
++    dir_start = (char *) filename;
++  else
++    dir_start++;
++
++  dir_end = grub_strrchr (dir_start, '/');
++  if (! dir_end)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("invalid EFI file path");
++      return 0;
++    }
++
++  size = 0;
++  file_path = grub_malloc ((grub_strlen (dir_start) + 1)
++                         * sizeof (grub_efi_char16_t)
++                         + sizeof (grub_efi_file_path_device_path_t) * 2);
++  if (! file_path)
++    return 0;
++
++  /* Fill the file path for the directory.  */
++  d = (grub_efi_device_path_t *) file_path;
++
++  if (dir_end - dir_start)
++    {
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++                    dir_start, dir_end - dir_start);
++      d = GRUB_EFI_NEXT_DEVICE_PATH (d);
++      /* Fill the file path for the file.  */
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++                    dir_end + 1, grub_strlen (dir_end + 1));
++    }
++  else
++    {
++      /* Fill the file path for the file.  */
++      copy_file_path ((grub_efi_file_path_device_path_t *) d,
++                    dir_end, grub_strlen (dir_end));
++    }
++
++  /* Fill the end of device path nodes.  */
++  d = GRUB_EFI_NEXT_DEVICE_PATH (d);
++  d->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++  d->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++  d->length[0] = sizeof (*d);
++  d->length[1] = 0;
++
++  return file_path;
++}
++
++int
++grub_chainloader (char *filename)
++{
++  grub_ssize_t size;
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++  grub_efi_handle_t dev_handle = 0;
++  grub_efi_loaded_image_t *loaded_image;
++
++  /* Initialize some global variables.  */
++  address = 0xffffffff;
++  image_handle = 0;
++
++  b = grub_efi_system_table->boot_services;
++
++  if (! grub_open (filename))
++    goto fail1;
++
++  dev_handle = grub_efidisk_get_current_bdev_handle ();
++  if (! dev_handle)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("not a valid root device\n");
++      goto fail;
++    }
++
++  file_path = make_file_path (filename);
++  if (! file_path)
++    goto fail;
++
++  grub_printf ("file path: ");
++  grub_efi_print_device_path (file_path);
++
++  size = grub_file_size ();
++  pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12);
++
++  status = Call_Service_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES,
++                         GRUB_EFI_LOADER_CODE, pages, &address);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("cannot allocate %u pages", pages);
++      goto fail;
++    }
++
++  if (grub_read ((void *) ((grub_addr_t) address), size) != size)
++    {
++      if (errnum == ERR_NONE)
++      {
++        errnum = ERR_UNRECOGNIZED;
++        grub_printf ("too small");
++      }
++      goto fail;
++    }
++
++  status = Call_Service_6 (b->load_image, 0, grub_efi_image_handle, file_path,
++                         (void *) ((grub_addr_t) address), size,
++                         &image_handle);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      if (status == GRUB_EFI_OUT_OF_RESOURCES)
++      grub_printf ("out of resources");
++      else
++      grub_printf ("cannot load image");
++
++      goto fail;
++    }
++
++  /* LoadImage does not set a device handler when the image is
++     loaded from memory, so it is necessary to set it explicitly here.
++     This is a mess.  */
++  loaded_image = grub_efi_get_loaded_image (image_handle);
++  if (! loaded_image)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no loaded image available");
++      goto fail;
++    }
++  loaded_image->device_handle = dev_handle;
++
++  grub_close ();
++  return KERNEL_TYPE_CHAINLOADER;
++
++ fail:
++  grub_close ();
++ fail1:
++  if (address)
++    b->free_pages (address, pages);
++
++  return KERNEL_TYPE_NONE;
++}
++
++/* calls for direct boot-loader chaining */
++void
++chain_stage1 (unsigned long segment, unsigned long offset,
++            unsigned long part_table_addr)
++{
++  grub_chainloader_boot ();
++  for (;;);
++}
+diff --git a/efi/eficon.c b/efi/eficon.c
+new file mode 100644
+index 0000000..037f050
+--- /dev/null
++++ b/efi/eficon.c
+@@ -0,0 +1,306 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++#include <term.h>
++
++static int
++grub_console_standard_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_YELLOW,
++                                                GRUB_EFI_BACKGROUND_BLACK);
++static int
++grub_console_normal_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_LIGHTGRAY,
++                                              GRUB_EFI_BACKGROUND_BLACK);
++static int
++grub_console_highlight_color = GRUB_EFI_TEXT_ATTR (GRUB_EFI_BLACK,
++                                                 GRUB_EFI_BACKGROUND_LIGHTGRAY);
++
++static int read_key = -1;
++
++void
++console_putchar (int c)
++{
++  grub_efi_char16_t str[2];
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++
++  switch (c)
++    {
++    case DISP_LEFT:
++      c = '<';
++      break;
++
++    case DISP_UP:
++      c = '^';
++      break;
++
++    case DISP_RIGHT:
++      c = '>';
++      break;
++
++    case DISP_DOWN:
++      c = 'v';
++      break;
++
++    case DISP_HORIZ:
++      c = '-';
++      break;
++
++    case DISP_VERT:
++      c = '|';
++      break;
++
++    case DISP_UL:
++    case DISP_UR:
++    case DISP_LL:
++    case DISP_LR:
++      c = '+';
++      break;
++    }
++
++  /* For now, do not try to use a surrogate pair.  */
++  if (c > 0xffff)
++    c = '?';
++
++  str[0] = (grub_efi_char16_t)  (c & 0xffff);
++  str[1] = 0;
++
++  /* Should this test be cached?  */
++  if (c > 0x7f && Call_Service_2 (o->test_string, o, str) != GRUB_EFI_SUCCESS)
++    return;
++
++  Call_Service_2 (o->output_string, o, str);
++}
++
++int
++console_checkkey (void)
++{
++  grub_efi_simple_input_interface_t *i;
++  grub_efi_input_key_t key;
++  grub_efi_status_t status;
++
++  if (read_key >= 0)
++    return 1;
++
++  i = grub_efi_system_table->con_in;
++  status = Call_Service_2 (i->read_key_stroke ,i, &key);
++#if 0
++  switch (status)
++    {
++    case GRUB_EFI_SUCCESS:
++      {
++      int xy;
++
++      xy = console_getxy ();
++      console_gotoxy (0, 0);
++      grub_printf ("scan_code=%x,unicode_char=%x  ",
++                   (unsigned) key.scan_code,
++                   (unsigned) key.unicode_char);
++      console_gotoxy (xy >> 8, xy & 0xff);
++      }
++      break;
++
++    case GRUB_EFI_NOT_READY:
++      grub_printf ("not ready   ");
++      break;
++
++    default:
++      grub_printf ("device error   ");
++      break;
++    }
++#endif
++
++  if (status == GRUB_EFI_SUCCESS)
++    {
++      switch (key.scan_code)
++      {
++      case 0x00:
++        read_key = key.unicode_char;
++        break;
++      case 0x01:
++        read_key = 16;
++        break;
++      case 0x02:
++        read_key = 14;
++        break;
++      case 0x03:
++        read_key = 6;
++        break;
++      case 0x04:
++        read_key = 2;
++        break;
++      case 0x05:
++        read_key = 1;
++        break;
++      case 0x06:
++        read_key = 5;
++        break;
++      case 0x07:
++        break;
++      case 0x08:
++        read_key = 4;
++        break;
++      case 0x09:
++        break;
++      case 0x0a:
++        break;
++      case 0x17:
++        read_key = '\e';
++        break;
++      default:
++        break;
++      }
++    }
++
++  return read_key;
++}
++
++int
++console_getkey (void)
++{
++  grub_efi_simple_input_interface_t *i;
++  grub_efi_boot_services_t *b;
++  grub_efi_uintn_t index;
++  grub_efi_status_t status;
++  int key;
++
++  if (read_key >= 0)
++    {
++      key = read_key;
++      read_key = -1;
++      return key;
++    }
++
++  i = grub_efi_system_table->con_in;
++  b = grub_efi_system_table->boot_services;
++
++  do
++    {
++      status = Call_Service_3 (b->wait_for_event , 1, &(i->wait_for_key), &index);
++      if (status != GRUB_EFI_SUCCESS)
++              return -1;
++
++      console_checkkey ();
++    }
++  while (read_key < 0);
++
++  key = read_key;
++  read_key = -1;
++  return key;
++}
++
++int
++console_keystatus (void)
++{
++  /* Doesn't look like EFI can support this... */
++  return 0;
++}
++
++int
++console_getxy (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  return ((o->mode->cursor_column << 8) | o->mode->cursor_row);
++}
++
++void
++console_gotoxy (int x, int y)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  Call_Service_3 (o->set_cursor_position , o, x, y);
++}
++
++void
++console_cls (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++  grub_efi_int32_t orig_attr;
++
++  o = grub_efi_system_table->con_out;
++  orig_attr = o->mode->attribute;
++  Call_Service_2 (o->set_attributes, o, GRUB_EFI_BACKGROUND_BLACK);
++  Call_Service_1 (o->clear_screen , o);
++  Call_Service_2 (o->set_attributes , o, orig_attr);
++}
++
++void
++console_setcolorstate (color_state state)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++
++  switch (state) {
++    case COLOR_STATE_STANDARD:
++      Call_Service_2 (o->set_attributes, o, grub_console_standard_color);
++      break;
++    case COLOR_STATE_NORMAL:
++      Call_Service_2 (o->set_attributes, o, grub_console_normal_color);
++      break;
++    case COLOR_STATE_HIGHLIGHT:
++      Call_Service_2 (o->set_attributes, o, grub_console_highlight_color);
++      break;
++    default:
++      break;
++  }
++}
++
++void
++console_setcolor (int normal_color, int highlight_color)
++{
++  grub_console_normal_color = normal_color;
++  grub_console_highlight_color = highlight_color;
++}
++
++int
++console_setcursor (int on)
++{
++  grub_efi_simple_text_output_interface_t *o;
++
++  o = grub_efi_system_table->con_out;
++  Call_Service_2 (o->enable_cursor, o, on);
++  return on;
++}
++
++void
++grub_console_init (void)
++{
++  /* FIXME: it is necessary to consider the case where no console control
++     is present but the default is already in text mode.  */
++  if (! grub_efi_set_text_mode (1))
++    {
++      grub_printf ("cannot set text mode");
++      return;
++    }
++}
++
++void
++grub_console_fini (void)
++{
++}
+diff --git a/efi/eficore.c b/efi/eficore.c
+new file mode 100644
+index 0000000..8abea7d
+--- /dev/null
++++ b/efi/eficore.c
+@@ -0,0 +1,241 @@
++/* eficore.c - generic EFI support */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <config.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/eficall.h>
++#include <grub/efi/console_control.h>
++#include <grub/efi/time.h>
++
++#include <shared.h>
++
++/* The handle of GRUB itself. Filled in by the startup code.  */
++grub_efi_handle_t grub_efi_image_handle;
++
++/* The pointer to a system table. Filled in by the startup code.  */
++grub_efi_system_table_t *grub_efi_system_table;
++
++static grub_efi_guid_t console_control_guid = GRUB_EFI_CONSOLE_CONTROL_GUID;
++static grub_efi_guid_t loaded_image_guid = GRUB_EFI_LOADED_IMAGE_GUID;
++static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
++
++/* temporary, until we're using gnu-efi's include files --pjones */
++extern int setjmp(grub_jmp_buf env);
++int grub_setjmp(grub_jmp_buf env)
++{
++      return setjmp(env);
++}
++
++extern void longjmp(grub_jmp_buf env, int val);
++void grub_longjmp(grub_jmp_buf env, int val)
++{
++      longjmp(env, val);
++}
++
++grub_efi_status_t
++grub_efi_locate_device_path (grub_efi_guid_t *protocol,
++                           grub_efi_device_path_t **dp,
++                           grub_efi_handle_t *handle)
++{
++      return Call_Service_3(
++              grub_efi_system_table->boot_services->locate_device_path,
++              protocol, dp, handle);
++}
++
++grub_efi_status_t
++grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
++                              grub_efi_guid_t *protocol,
++                              void *search_key,
++                              grub_efi_uintn_t *no_handles,
++                              grub_efi_handle_t **buffer)
++{
++      return Call_Service_5(
++              grub_efi_system_table->boot_services->locate_handle_buffer,
++              search_type, protocol, search_key, no_handles, buffer);
++}
++
++void *
++grub_efi_locate_protocol (grub_efi_guid_t *protocol, void *registration)
++{
++  void *interface;
++  grub_efi_status_t status;
++
++  status = Call_Service_3 (grub_efi_system_table->boot_services->locate_protocol,
++                              protocol,
++                              registration,
++                              &interface);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  return interface;
++}
++
++/* Return the array of handles which meet the requirement. If successful,
++   the number of handles is stored in NUM_HANDLES. The array is allocated
++   from the heap.  */
++grub_efi_handle_t *
++grub_efi_locate_handle (grub_efi_locate_search_type_t search_type,
++                      grub_efi_guid_t *protocol,
++                      void *search_key,
++                      grub_efi_uintn_t *num_handles)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_handle_t *buffer;
++  grub_efi_uintn_t buffer_size = 8 * sizeof (grub_efi_handle_t);
++
++  buffer = grub_malloc (buffer_size);
++  if (! buffer)
++    return 0;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_5 (b->locate_handle, search_type, protocol,
++                               search_key, &buffer_size, buffer);
++  if (status == GRUB_EFI_BUFFER_TOO_SMALL)
++    {
++      grub_free (buffer);
++      buffer = grub_malloc (buffer_size);
++      if (! buffer)
++      return 0;
++
++      status = Call_Service_5 (b->locate_handle, search_type, protocol,
++                               search_key, &buffer_size, buffer);
++    }
++
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      grub_free (buffer);
++      return 0;
++    }
++
++  *num_handles = buffer_size / sizeof (grub_efi_handle_t);
++  return buffer;
++}
++
++void *
++grub_efi_open_protocol (grub_efi_handle_t handle,
++                      grub_efi_guid_t *protocol,
++                      grub_efi_uint32_t attributes)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  void *interface;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_6 ( b->open_protocol,
++                           handle,
++                           protocol,
++                           &interface,
++                           grub_efi_image_handle,
++                           0,
++                           attributes);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  return interface;
++}
++
++int
++grub_efi_set_text_mode (int on)
++{
++  grub_efi_console_control_protocol_t *c;
++  grub_efi_screen_mode_t mode, new_mode;
++
++  c = grub_efi_locate_protocol (&console_control_guid, 0);
++  if (! c)
++    /* No console control protocol instance available, assume it is
++       already in text mode. */
++    return 1;
++
++  if (Call_Service_4 (c->get_mode , c, &mode, 0, 0) != GRUB_EFI_SUCCESS)
++    return 0;
++
++  new_mode = on ? GRUB_EFI_SCREEN_TEXT : GRUB_EFI_SCREEN_GRAPHICS;
++  if (mode != new_mode)
++    if (Call_Service_2 (c->set_mode , c, new_mode) != GRUB_EFI_SUCCESS)
++      return 0;
++
++  return 1;
++}
++
++void
++grub_efi_stall (grub_efi_uintn_t microseconds)
++{
++  Call_Service_1 (grub_efi_system_table->boot_services->stall , microseconds);
++}
++
++grub_efi_loaded_image_t *
++grub_efi_get_loaded_image (grub_efi_handle_t image_handle)
++{
++  return grub_efi_open_protocol (image_handle,
++                       &loaded_image_guid,
++                       GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++}
++
++void
++grub_exit (void)
++{
++  grub_efi_fini ();
++  Call_Service_4(grub_efi_system_table->boot_services->exit,
++               grub_efi_image_handle,
++               GRUB_EFI_SUCCESS,
++               0,
++               0 );
++  for (;;);
++}
++
++int
++grub_efi_exit_boot_services (grub_efi_uintn_t map_key)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_2 (b->exit_boot_services ,
++                              grub_efi_image_handle,
++                              map_key);
++  return status == GRUB_EFI_SUCCESS;
++}
++
++grub_uint32_t
++grub_get_rtc (void)
++{
++  grub_efi_time_t time;
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  if (Call_Service_2(r->get_time , &time, 0) != GRUB_EFI_SUCCESS)
++    /* What is possible in this case?  */
++    return 0;
++
++  return (((time.minute * 60 + time.second) * 1000
++         + time.nanosecond / 1000000)
++        * GRUB_TICKS_PER_SECOND / 1000);
++}
++
++grub_efi_device_path_t *
++grub_efi_get_device_path (grub_efi_handle_t handle)
++{
++  return grub_efi_open_protocol (handle, &device_path_guid,
++                               GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++}
++
+diff --git a/efi/efidisk.c b/efi/efidisk.c
+new file mode 100644
+index 0000000..6a505f3
+--- /dev/null
++++ b/efi/efidisk.c
+@@ -0,0 +1,801 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++struct grub_efidisk_data
++{
++  grub_efi_handle_t handle;
++  grub_efi_device_path_t *device_path;
++  grub_efi_device_path_t *last_device_path;
++  grub_efi_block_io_t *block_io;
++  grub_efi_disk_io_t *disk_io;
++  struct grub_efidisk_data *next;
++};
++
++/* GUIDs.  */
++static grub_efi_guid_t disk_io_guid = GRUB_EFI_DISK_IO_GUID;
++static grub_efi_guid_t block_io_guid = GRUB_EFI_BLOCK_IO_GUID;
++static grub_efi_guid_t device_path_from_text_guid = GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID;
++
++static struct grub_efidisk_data *fd_devices;
++static struct grub_efidisk_data *hd_devices;
++static struct grub_efidisk_data *cd_devices;
++
++static int get_device_sector_bits(struct grub_efidisk_data *device);
++static int get_device_sector_size(struct grub_efidisk_data *device);
++static struct grub_efidisk_data *get_device_from_drive (int drive);
++
++static struct grub_efidisk_data *
++make_devices (void)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  struct grub_efidisk_data *devices = 0;
++
++  /* Find handles which support the disk io interface.  */
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &disk_io_guid,
++                                  0, &num_handles);
++  if (! handles)
++    return 0;
++
++  /* Make a linked list of devices.  */
++  for (handle = handles; num_handles--; handle++)
++    {
++      grub_efi_device_path_t *dp;
++      grub_efi_device_path_t *ldp;
++      struct grub_efidisk_data *d;
++      grub_efi_block_io_t *bio;
++      grub_efi_disk_io_t *dio;
++
++      dp = grub_efi_get_device_path (*handle);
++      if (! dp)
++      continue;
++
++      ldp = find_last_device_path (dp);
++      if (! ldp)
++      /* This is empty. Why?  */
++      continue;
++
++      bio = grub_efi_open_protocol (*handle, &block_io_guid,
++                                  GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      dio = grub_efi_open_protocol (*handle, &disk_io_guid,
++                                  GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      if (! bio || ! dio)
++      /* This should not happen... Why?  */
++      continue;
++
++      d = grub_malloc (sizeof (*d));
++      if (! d)
++      {
++        /* Uggh.  */
++        grub_free (handles);
++        return 0;
++      }
++
++      d->handle = *handle;
++      d->device_path = dp;
++      d->last_device_path = ldp;
++      d->block_io = bio;
++      d->disk_io = dio;
++      d->next = devices;
++      devices = d;
++    }
++
++  grub_free (handles);
++
++  return devices;
++}
++
++static int
++iterate_child_devices (struct grub_efidisk_data *devices,
++                     struct grub_efidisk_data *d,
++                     int (*hook) (struct grub_efidisk_data *child))
++{
++  struct grub_efidisk_data *p;
++
++  for (p = devices; p; p = p->next)
++    {
++      grub_efi_device_path_t *dp, *ldp;
++
++      dp = duplicate_device_path (p->device_path);
++      if (! dp)
++      return 0;
++
++      ldp = find_last_device_path (dp);
++      ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++      ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++      ldp->length[0] = sizeof (*ldp);
++      ldp->length[1] = 0;
++
++      if (compare_device_paths (dp, d->device_path) == 0)
++      if (hook (p))
++        {
++          grub_free (dp);
++          return 1;
++        }
++
++      grub_free (dp);
++    }
++
++  return 0;
++}
++
++/* Add a device into a list of devices in an ascending order.  */
++static void
++add_device (struct grub_efidisk_data **devices, struct grub_efidisk_data *d)
++{
++  struct grub_efidisk_data **p;
++  struct grub_efidisk_data *n;
++
++  for (p = devices; *p; p = &((*p)->next))
++    {
++      int ret;
++
++      ret = compare_device_paths (find_last_device_path ((*p)->device_path),
++                                find_last_device_path (d->device_path));
++      if (ret == 0)
++      ret = compare_device_paths ((*p)->device_path,
++                                  d->device_path);
++      if (ret == 0)
++      return;
++      else if (ret > 0)
++      break;
++    }
++
++  n = grub_malloc (sizeof (*n));
++  if (! n)
++    return;
++
++  grub_memcpy (n, d, sizeof (*n));
++  n->next = (*p);
++  (*p) = n;
++}
++
++/* Name the devices.  */
++static void
++name_devices (struct grub_efidisk_data *devices)
++{
++  struct grub_efidisk_data *d;
++
++  /* Let's see what can be added more.  */
++  for (d = devices; d; d = d->next)
++    {
++      grub_efi_device_path_t *dp;
++      grub_efi_block_io_media_t *m;
++
++      dp = d->last_device_path;
++      if (! dp)
++      continue;
++
++      m = d->block_io->media;
++      if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE)
++      {
++        /* XXX FIXME this won't work if we see write-protected disks with
++         * 4k sectors */
++        if (m->read_only && m->block_size > 0x200)
++          {
++            add_device (&cd_devices, d);
++          } else
++          {
++            add_device (&hd_devices, d);
++          }
++      }
++      if (GRUB_EFI_DEVICE_PATH_TYPE(dp) == GRUB_EFI_ACPI_DEVICE_PATH_TYPE)
++      {
++        add_device (&fd_devices, d);
++      }
++    }
++}
++
++static void
++free_devices (struct grub_efidisk_data *devices)
++{
++  struct grub_efidisk_data *p, *q;
++
++  for (p = devices; p; p = q)
++    {
++      q = p->next;
++      grub_free (p);
++    }
++}
++
++/* Enumerate all disks to name devices.  */
++static void
++enumerate_disks (void)
++{
++  struct grub_efidisk_data *devices;
++
++  devices = make_devices ();
++  if (! devices)
++    return;
++
++  name_devices (devices);
++  free_devices (devices);
++}
++
++static struct grub_efidisk_data *
++get_device (struct grub_efidisk_data *devices, int num)
++{
++  struct grub_efidisk_data *d;
++
++  for (d = devices; d && num; d = d->next, num--)
++    ;
++
++  if (num == 0)
++    return d;
++
++  return 0;
++}
++
++static int
++grub_efidisk_read (struct grub_efidisk_data *d, grub_disk_addr_t sector,
++                 grub_size_t size, char *buf)
++{
++  /* For now, use the disk io interface rather than the block io's.  */
++  grub_efi_disk_io_t *dio;
++  grub_efi_block_io_t *bio;
++  grub_efi_status_t status;
++  grub_efi_uint64_t sector_size = get_device_sector_size(d);
++
++  dio = d->disk_io;
++  bio = d->block_io;
++
++  status = Call_Service_5 (dio->read,
++                         dio, bio->media->media_id,
++                         sector * sector_size,
++                         size * sector_size,
++                         buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return 0;
++}
++
++static int
++grub_efidisk_write (struct grub_efidisk_data *d, grub_disk_addr_t sector,
++                  grub_size_t size, const char *buf)
++{
++  /* For now, use the disk io interface rather than the block io's.  */
++  grub_efi_disk_io_t *dio;
++  grub_efi_block_io_t *bio;
++  grub_efi_status_t status;
++  grub_efi_uint64_t sector_size = get_device_sector_size(d);
++
++  dio = d->disk_io;
++  bio = d->block_io;
++
++  grub_dprintf ("efidisk",
++              "writing 0x%x sectors at the sector 0x%x to ??\n",
++              (unsigned) size, (unsigned int) sector);
++
++  status = Call_Service_5 (dio->write ,
++                         dio, bio->media->media_id,
++                         sector * sector_size,
++                         size * sector_size,
++                         (void *) buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return 0;
++}
++
++void
++grub_efidisk_init (void)
++{
++  enumerate_disks ();
++}
++
++void
++grub_efidisk_fini (void)
++{
++  free_devices (fd_devices);
++  free_devices (hd_devices);
++  free_devices (cd_devices);
++}
++
++static int
++get_device_sector_size(struct grub_efidisk_data *device)
++{
++      return device->block_io->media->block_size;
++}
++
++int
++get_sector_size(int drive)
++{
++      struct grub_efidisk_data *device = get_device_from_drive(drive);
++      return get_device_sector_size(device);
++}
++
++/*
++ * ffz = Find First Zero in word. Undefined if no zero exists,
++ * so code should check against ~0UL first..
++ */
++static __inline__ unsigned int
++ffz (unsigned int word)
++{
++  __asm__ ("bsfl %1,%0"
++:        "=r" (word)
++:        "r" (~word));
++  return word;
++}
++#define log2(n) ffz(~(n))
++
++static int
++get_device_sector_bits(struct grub_efidisk_data *device)
++{
++      int sector_size = get_device_sector_size(device);
++      return log2(sector_size);
++}
++
++int
++get_sector_bits(int drive)
++{
++      int sector_size = get_sector_size(drive);
++      return log2(sector_size);
++}
++
++static struct grub_efidisk_data *
++get_device_from_drive (int drive)
++{
++#ifdef SUPPORT_NETBOOT
++  /* Not supported */
++  if (drive == NETWORK_DRIVE)
++    return NULL;
++#endif
++  if (drive == GRUB_INVALID_DRIVE)
++    return NULL;
++  if (drive == cdrom_drive)
++    return get_device (cd_devices, 0);
++  /* Hard disk */
++  if (drive & 0x80)
++    return get_device (hd_devices, drive - 0x80);
++  /* Floppy disk */
++  else
++    return get_device (fd_devices, drive);
++}
++
++/* Low-level disk I/O.  Our stubbed version just returns a file
++   descriptor, not the actual geometry. */
++int
++get_diskinfo (int drive, struct geometry *geometry)
++{
++  struct grub_efidisk_data *d;
++
++  d = get_device_from_drive (drive);
++  if (!d)
++    return -1;
++  geometry->total_sectors = d->block_io->media->last_block+1;
++  geometry->sector_size = d->block_io->media->block_size;
++  geometry->flags = BIOSDISK_FLAG_LBA_EXTENSION;
++  geometry->sectors = 63;
++  if (geometry->total_sectors / 63 < 255)
++    geometry->heads = 1;
++  else
++    geometry->heads = 255;
++  geometry->cylinders = geometry->total_sectors / 63 / geometry->heads;
++  return 0;
++}
++
++int
++biosdisk (int subfunc, int drive, struct geometry *geometry,
++        int sector, int nsec, int segment)
++{
++  char *buf;
++  struct grub_efidisk_data *d;
++  int ret;
++
++  d = get_device_from_drive (drive);
++  if (!d)
++    return -1;
++  buf = (char *) ((unsigned long) segment << 4);
++  switch (subfunc)
++    {
++    case BIOSDISK_READ:
++      ret = grub_efidisk_read (d, sector, nsec, buf);
++      break;
++    case BIOSDISK_WRITE:
++      ret = grub_efidisk_write (d, sector, nsec, buf);
++      break;
++    default:
++      return -1;
++    }
++
++  return 0;
++}
++
++/* Some utility functions to map GRUB devices with EFI devices.  */
++grub_efi_handle_t
++grub_efidisk_get_current_bdev_handle (void)
++{
++  struct grub_efidisk_data *d;
++
++  d = get_device_from_drive (current_drive);
++  if (d == NULL)
++    return NULL;
++
++  if (current_drive == GRUB_INVALID_DRIVE)
++    return NULL;
++
++  if (current_drive == cdrom_drive)
++    return d->handle;
++
++  if (! (current_drive & 0x80))
++    return d->handle;
++  /* If this is the whole disk, just return its own data.  */
++  else if (current_partition == 0xFFFFFF)
++    return d->handle;
++  /* Otherwise, we must query the corresponding device to the firmware.  */
++  else
++    {
++      struct grub_efidisk_data *devices;
++      grub_efi_handle_t handle = 0;
++      auto int find_partition (struct grub_efidisk_data *c);
++
++      int find_partition (struct grub_efidisk_data *c)
++      {
++        grub_efi_hard_drive_device_path_t hd;
++
++        grub_memcpy (&hd, c->last_device_path, sizeof (hd));
++
++        if ((GRUB_EFI_DEVICE_PATH_TYPE (c->last_device_path)
++             == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
++            && (GRUB_EFI_DEVICE_PATH_SUBTYPE (c->last_device_path)
++                == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
++            && (part_start == hd.partition_start))
++          {
++            handle = c->handle;
++            return 1;
++          }
++
++        return 0;
++      }
++
++      devices = make_devices ();
++      iterate_child_devices (devices, d, find_partition);
++      free_devices (devices);
++
++      if (handle != 0)
++      return handle;
++    }
++
++  return 0;
++}
++
++int
++grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
++                                         unsigned long *drive,
++                                         unsigned long *partition)
++{
++  grub_efi_device_path_t *dp, *dp1;
++  struct grub_efidisk_data *d, *devices;
++  int drv;
++  unsigned long part;
++  grub_efi_hard_drive_device_path_t hd;
++  int found;
++  int part_type, part_entry;
++  unsigned long partition_start, partition_len, part_offset, part_extoffset;
++  unsigned long gpt_offset;
++  int gpt_count, gpt_size;
++  auto int find_bdev (struct grub_efidisk_data *c);
++
++  int find_bdev (struct grub_efidisk_data *c)
++    {
++      if (! compare_device_paths (c->device_path, dp))
++      {
++        grub_memcpy (&hd, c->last_device_path, sizeof (hd));
++        found = 1;
++        return 1;
++      }
++      return 0;
++    }
++
++  dp = grub_efi_get_device_path (handle);
++  if (! dp)
++    return 0;
++
++  dp1 = dp;
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE(dp1);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
++
++      if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
++            subtype == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE)
++      {
++        dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++        dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++        dp1->length[0] = 4;
++        dp1->length[1] = 0;
++      }
++
++      if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
++        subtype == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
++      {
++        grub_efi_hard_drive_device_path_t temp_hd;
++        grub_memcpy (&temp_hd, dp1, len);
++        if (temp_hd.signature_type == 0 && temp_hd.mbr_type >= 0x10) {
++          /*
++           * Apple Parttion Map CDs appear as hard drives with non-spec
++           * partition type fields. Fix them up.
++           */
++          dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++          dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++          dp1->length[0] = 4;
++          dp1->length[1] = 0;
++        }
++      }
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
++      break;
++
++      dp1 = GRUB_EFI_NEXT_DEVICE_PATH(dp1);
++    }
++
++  drv = 0;
++  for (d = fd_devices; d; d = d->next, drv++)
++    {
++      if (! compare_device_paths (d->device_path, dp))
++      {
++        *partition = 0xFFFFFF;
++        *drive = drv;
++        return 1;
++      }
++    }
++
++  drv = cdrom_drive;
++  if (cd_devices  && ! compare_device_paths (cd_devices->device_path, dp))
++    {
++      *partition = 0xFFFFFF;
++      *drive = drv;
++      return 1;
++    }
++
++  drv = 0x80;
++  for (d = hd_devices; d; d = d->next, drv++)
++    {
++      if (! compare_device_paths (d->device_path, dp))
++      {
++        *partition = 0xFFFFFF;
++        *drive = drv;
++        return 1;
++      }
++    }
++
++  devices = make_devices ();
++
++  drv = 0x80;
++  found = 0;
++  for (d = hd_devices; d; d = d->next, drv++)
++    {
++      iterate_child_devices (devices, d, find_bdev);
++      if (found)
++      break;
++    }
++
++  free_devices (devices);
++
++  if (! found)
++    return 0;
++
++  char buf[get_sector_size(drv)];
++  part = 0xFFFFFF;
++  while (next_partition (drv, 0, &part, &part_type,
++                       &partition_start, &partition_len,
++                       &part_offset, &part_entry,
++                       &part_extoffset, &gpt_offset, &gpt_count,
++                       &gpt_size, buf))
++    {
++      if (part_type
++        && partition_start == hd.partition_start)
++      {
++        *drive = drv;
++        *partition = part;
++        return 1;
++      }
++    }
++
++  return 0;
++}
++
++int
++check_device (const char *device)
++{
++  grub_efi_device_path_t *dp;
++
++  dp = device_path_from_utf8(device);
++  if (dp == NULL)
++    return 0;
++
++  grub_free(dp);
++  return 1;
++}
++
++static void
++swap_devices (struct grub_efidisk_data *d0,
++            struct grub_efidisk_data *d1)
++{
++  struct grub_efidisk_data tmp;
++
++  if (!d0 || !d1)
++    return;
++
++  memcpy(&tmp, d1, sizeof(*d1));
++
++  memcpy(&d0->handle, &d1->handle, sizeof(d1->handle));
++  d0->device_path = d1->device_path;
++  d0->last_device_path = d1->last_device_path;
++  d0->block_io = d1->block_io;
++  d0->disk_io = d1->disk_io;
++
++  memcpy(d1->handle, tmp.handle, sizeof(tmp.handle));
++  d1->device_path = tmp.device_path;
++  d1->last_device_path = tmp.last_device_path;
++  d1->block_io = tmp.block_io;
++  d1->disk_io = tmp.disk_io;
++}
++
++static int
++compare_hd_device_paths(grub_efi_hard_drive_device_path_t *hd0,
++                      grub_efi_hard_drive_device_path_t *hd1)
++{
++  grub_efi_uint64_t x;
++  int sigsize;
++
++  if ((x = hd1->partition_number - hd0->partition_number))
++    return x;
++
++  if ((x = hd1->partition_start - hd0->partition_start))
++    return x;
++
++
++  if ((x = hd1->partition_size - hd0->partition_size))
++    return x;
++
++  if ((x = hd1->signature_type - hd0->signature_type))
++    return x;
++
++  switch (hd0->signature_type)
++    {
++    case 1:
++      sigsize = 4;
++      break;
++    case 2:
++      sigsize = 16;
++      break;
++    default:
++      sigsize = 0;
++      break;
++    }
++  x = grub_memcmp((char *)hd0->partition_signature,
++                  (char *)hd1->partition_signature, sigsize);
++  return x;
++}
++
++static grub_efi_device_path_t *
++get_parent_of_disk(grub_efi_device_path_t *hd)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  grub_efi_device_path_t *ret;
++
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
++                                   &simple_file_system_guid,
++                                    0, &num_handles);
++  for (handle = handles; num_handles--; handle++)
++    {
++      grub_efi_device_path_t *fsdp, *hddp;
++
++      fsdp = grub_efi_get_device_path (*handle);
++      if (!fsdp)
++      continue;
++      hddp = find_last_device_path(fsdp);
++
++      if (compare_hd_device_paths((grub_efi_hard_drive_device_path_t *)hddp,
++                                 (grub_efi_hard_drive_device_path_t *)hd) == 0)
++        {
++        grub_efi_device_path_t *p;
++        ret = duplicate_device_path((grub_efi_device_path_t *)fsdp);
++        if (!ret)
++          return NULL;
++        for (p = ret; ; p = GRUB_EFI_NEXT_DEVICE_PATH(p))
++          {
++            if (GRUB_EFI_END_ENTIRE_DEVICE_PATH(p))
++              break;
++            if ((GRUB_EFI_DEVICE_PATH_TYPE(p) ==
++                      GRUB_EFI_MEDIA_DEVICE_PATH_TYPE)
++                    && (GRUB_EFI_DEVICE_PATH_SUBTYPE(p) ==
++                              GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE))
++              {
++                p->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++                p->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++                p->length[0] = 4;
++                p->length[1] = 0;
++                break;
++              }
++          }
++        return ret;
++      }
++    }
++  return NULL;
++}
++
++void
++assign_device_name (int drive, const char *device)
++{
++  grub_efi_device_path_t *dp0, *dp1;
++  struct grub_efidisk_data *devices;
++  struct grub_efidisk_data *d, *d0 = NULL, *d1 = NULL;
++  int n = -1;
++
++  dp0 = device_path_from_utf8(device);
++  if (!dp0)
++    return;
++
++  dp1 = get_parent_of_disk(dp0);
++  grub_free(dp0);
++  if (!dp1)
++    return;
++
++  if (drive & 0x80)
++    {
++      drive -= 0x80;
++      devices = hd_devices;
++    }
++  else
++    {
++      devices = cd_devices;
++      drive -= 0x100;
++    }
++
++  for (d = devices; d; d = d->next)
++    {
++      if (!d->device_path)
++      continue;
++
++      if (++n == drive)
++      d0 = d;
++
++      int x;
++      if (!(x = compare_device_paths(dp1, d->device_path)))
++      d1 = d;
++
++      if (d0 && d1)
++        {
++        /* if they're the same node, that just means it's already at
++         * the right position. */
++        if (d0 != d1)
++          {
++            swap_devices(d0, d1);
++            grub_free(dp1);
++            return;
++          }
++      }
++    }
++  grub_free(dp1);
++}
+diff --git a/efi/efidp.c b/efi/efidp.c
+new file mode 100644
+index 0000000..d8ca03d
+--- /dev/null
++++ b/efi/efidp.c
+@@ -0,0 +1,999 @@
++/*
++ * GRUB  --  GRand Unified Bootloader
++ * Copyright (C) 2010 Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++/* Duplicate a device path.  */
++grub_efi_device_path_t *
++duplicate_device_path (const grub_efi_device_path_t *dp)
++{
++  grub_efi_device_path_t *p;
++  grub_size_t total_size = 0;
++
++  for (p = (grub_efi_device_path_t *) dp;
++       ;
++       p = GRUB_EFI_NEXT_DEVICE_PATH (p))
++    {
++      total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p);
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p))
++      break;
++    }
++
++  p = grub_malloc (total_size);
++  if (! p)
++    return 0;
++
++  grub_memcpy (p, dp, total_size);
++  return p;
++}
++
++/* Return the device path node right before the end node.  */
++grub_efi_device_path_t *
++find_last_device_path (const grub_efi_device_path_t *dp)
++{
++  grub_efi_device_path_t *next, *p;
++
++  if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
++    return 0;
++
++  for (p = (grub_efi_device_path_t *) dp, next = GRUB_EFI_NEXT_DEVICE_PATH (p);
++       ! GRUB_EFI_END_ENTIRE_DEVICE_PATH (next);
++       p = next, next = GRUB_EFI_NEXT_DEVICE_PATH (next))
++    ;
++
++  return p;
++}
++
++/* Return the parent device path node. Must be freed */
++grub_efi_device_path_t *
++find_parent_device_path (const grub_efi_device_path_t *dp)
++{
++  grub_efi_device_path_t *final, *dup;
++
++  dup = duplicate_device_path(dp);
++  final = find_last_device_path(dup);
++
++  final->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++  final->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++
++  return dup;
++}
++
++/* Compare device paths.  */
++int
++compare_device_paths (const grub_efi_device_path_t *dp1,
++                    const grub_efi_device_path_t *dp2)
++{
++  if (! dp1 || ! dp2)
++    /* Return non-zero.  */
++    return 1;
++
++  while (1)
++    {
++      grub_efi_uint8_t type1, type2;
++      grub_efi_uint8_t subtype1, subtype2;
++      grub_efi_uint16_t len1, len2;
++      int ret;
++
++      type1 = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
++      type2 = GRUB_EFI_DEVICE_PATH_TYPE (dp2);
++
++      if (type1 != type2)
++      return (int) type2 - (int) type1;
++
++      subtype1 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp1);
++      subtype2 = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp2);
++
++      if (subtype1 != subtype2)
++      return (int) subtype1 - (int) subtype2;
++
++      len1 = GRUB_EFI_DEVICE_PATH_LENGTH (dp1);
++      len2 = GRUB_EFI_DEVICE_PATH_LENGTH (dp2);
++
++      if (len1 != len2)
++      return (int) len1 - (int) len2;
++
++      ret = grub_memcmp ((char *)dp1, (char *)dp2, len1);
++      if (ret != 0)
++      return ret;
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
++      break;
++
++      dp1 = (grub_efi_device_path_t *) ((char *) dp1 + len1);
++      dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2);
++    }
++
++  return 0;
++}
++
++/* Print the chain of Device Path nodes. This is mainly for debugging. */
++void
++grub_efi_print_device_path (grub_efi_device_path_t *dp)
++{
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
++
++      switch (type)
++      {
++      case GRUB_EFI_END_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE:
++            grub_printf ("/EndEntire\n");
++            //grub_putchar ('\n');
++            break;
++          case GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE:
++            grub_printf ("/EndThis\n");
++            //grub_putchar ('\n');
++            break;
++          default:
++            grub_printf ("/EndUnknown(%x)\n", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      case GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_pci_device_path_t pci;
++              grub_memcpy (&pci, dp, len);
++              grub_printf ("/PCI(%x,%x)",
++                           (unsigned) pci.function, (unsigned) pci.device);
++            }
++            break;
++          case GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_pccard_device_path_t pccard;
++              grub_memcpy (&pccard, dp, len);
++              grub_printf ("/PCCARD(%x)",
++                           (unsigned) pccard.function);
++            }
++            break;
++          case GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_memory_mapped_device_path_t mmapped;
++              grub_memcpy (&mmapped, dp, len);
++              grub_printf ("/MMap(%x,%llx,%llx)",
++                           (unsigned) mmapped.memory_type,
++                           mmapped.start_address,
++                           mmapped.end_address);
++            }
++            break;
++          case GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_vendor_device_path_t vendor;
++              grub_memcpy (&vendor, dp, sizeof (vendor));
++              grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++                           (unsigned) vendor.vendor_guid.data1,
++                           (unsigned) vendor.vendor_guid.data2,
++                           (unsigned) vendor.vendor_guid.data3,
++                           (unsigned) vendor.vendor_guid.data4[0],
++                           (unsigned) vendor.vendor_guid.data4[1],
++                           (unsigned) vendor.vendor_guid.data4[2],
++                           (unsigned) vendor.vendor_guid.data4[3],
++                           (unsigned) vendor.vendor_guid.data4[4],
++                           (unsigned) vendor.vendor_guid.data4[5],
++                           (unsigned) vendor.vendor_guid.data4[6],
++                           (unsigned) vendor.vendor_guid.data4[7]);
++            }
++            break;
++          case GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_controller_device_path_t controller;
++              grub_memcpy (&controller, dp, len);
++              grub_printf ("/Ctrl(%x)",
++                           (unsigned) controller.controller_number);
++            }
++            break;
++          default:
++            grub_printf ("/UnknownHW(%x)", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      case GRUB_EFI_ACPI_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_acpi_device_path_t acpi;
++              grub_memcpy (&acpi, dp, len);
++              grub_printf ("/ACPI(%x,%x)",
++                           (unsigned) acpi.hid,
++                           (unsigned) acpi.uid);
++            }
++            break;
++          case GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_expanded_acpi_device_path_t eacpi;
++              grub_memcpy (&eacpi, dp, sizeof (eacpi));
++              grub_printf ("/ACPI(");
++
++              if (GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp)[0] == '\0')
++                grub_printf ("%x,", (unsigned) eacpi.hid);
++              else
++                grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_HIDSTR (dp));
++
++              if (GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp)[0] == '\0')
++                grub_printf ("%x,", (unsigned) eacpi.uid);
++              else
++                grub_printf ("%s,", GRUB_EFI_EXPANDED_ACPI_UIDSTR (dp));
++
++              if (GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp)[0] == '\0')
++                grub_printf ("%x)", (unsigned) eacpi.cid);
++              else
++                grub_printf ("%s)", GRUB_EFI_EXPANDED_ACPI_CIDSTR (dp));
++            }
++            break;
++          default:
++            grub_printf ("/UnknownACPI(%x)", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      case GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_atapi_device_path_t atapi;
++              grub_memcpy (&atapi, dp, len);
++              grub_printf ("/ATAPI(%x,%x,%x)",
++                           (unsigned) atapi.primary_secondary,
++                           (unsigned) atapi.slave_master,
++                           (unsigned) atapi.lun);
++            }
++            break;
++          case GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_scsi_device_path_t scsi;
++              grub_memcpy (&scsi, dp, len);
++              grub_printf ("/SCSI(%x,%x)",
++                           (unsigned) scsi.pun,
++                           (unsigned) scsi.lun);
++            }
++            break;
++          case GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_fibre_channel_device_path_t fc;
++              grub_memcpy (&fc, dp, len);
++              grub_printf ("/FibreChannel(%llx,%llx)",
++                           fc.wwn, fc.lun);
++            }
++            break;
++          case GRUB_EFI_1394_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_1394_device_path_t firewire;
++              grub_memcpy (&firewire, dp, len);
++              grub_printf ("/1394(%llx)", firewire.guid);
++            }
++            break;
++          case GRUB_EFI_USB_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_usb_device_path_t usb;
++              grub_memcpy (&usb, dp, len);
++              grub_printf ("/USB(%x,%x)",
++                           (unsigned) usb.parent_port_number,
++                           (unsigned) usb.interface);
++            }
++            break;
++          case GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_usb_class_device_path_t usb_class;
++              grub_memcpy (&usb_class, dp, len);
++              grub_printf ("/USBClass(%x,%x,%x,%x,%x)",
++                           (unsigned) usb_class.vendor_id,
++                           (unsigned) usb_class.product_id,
++                           (unsigned) usb_class.device_class,
++                           (unsigned) usb_class.device_subclass,
++                           (unsigned) usb_class.device_protocol);
++            }
++            break;
++          case GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_i2o_device_path_t i2o;
++              grub_memcpy (&i2o, dp, len);
++              grub_printf ("/I2O(%x)", (unsigned) i2o.tid);
++            }
++            break;
++          case GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_mac_address_device_path_t mac;
++              grub_memcpy (&mac, dp, len);
++              grub_printf ("/MacAddr(%x:%x:%x:%x:%x:%x,%x)",
++                           (unsigned) mac.mac_address[0],
++                           (unsigned) mac.mac_address[1],
++                           (unsigned) mac.mac_address[2],
++                           (unsigned) mac.mac_address[3],
++                           (unsigned) mac.mac_address[4],
++                           (unsigned) mac.mac_address[5],
++                           (unsigned) mac.if_type);
++            }
++            break;
++          case GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_ipv4_device_path_t ipv4;
++              grub_memcpy (&ipv4, dp, len);
++              grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)",
++                           (unsigned) ipv4.local_ip_address[0],
++                           (unsigned) ipv4.local_ip_address[1],
++                           (unsigned) ipv4.local_ip_address[2],
++                           (unsigned) ipv4.local_ip_address[3],
++                           (unsigned) ipv4.remote_ip_address[0],
++                           (unsigned) ipv4.remote_ip_address[1],
++                           (unsigned) ipv4.remote_ip_address[2],
++                           (unsigned) ipv4.remote_ip_address[3],
++                           (unsigned) ipv4.local_port,
++                           (unsigned) ipv4.remote_port,
++                           (unsigned) ipv4.protocol,
++                           (unsigned) ipv4.static_ip_address);
++            }
++            break;
++          case GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_ipv6_device_path_t ipv6;
++              grub_memcpy (&ipv6, dp, len);
++              grub_printf ("/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)",
++                           (unsigned) ipv6.local_ip_address[0],
++                           (unsigned) ipv6.local_ip_address[1],
++                           (unsigned) ipv6.local_ip_address[2],
++                           (unsigned) ipv6.local_ip_address[3],
++                           (unsigned) ipv6.local_ip_address[4],
++                           (unsigned) ipv6.local_ip_address[5],
++                           (unsigned) ipv6.local_ip_address[6],
++                           (unsigned) ipv6.local_ip_address[7],
++                           (unsigned) ipv6.remote_ip_address[0],
++                           (unsigned) ipv6.remote_ip_address[1],
++                           (unsigned) ipv6.remote_ip_address[2],
++                           (unsigned) ipv6.remote_ip_address[3],
++                           (unsigned) ipv6.remote_ip_address[4],
++                           (unsigned) ipv6.remote_ip_address[5],
++                           (unsigned) ipv6.remote_ip_address[6],
++                           (unsigned) ipv6.remote_ip_address[7],
++                           (unsigned) ipv6.local_port,
++                           (unsigned) ipv6.remote_port,
++                           (unsigned) ipv6.protocol,
++                           (unsigned) ipv6.static_ip_address);
++            }
++            break;
++          case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_infiniband_device_path_t ib;
++              grub_memcpy (&ib, dp, len);
++              grub_printf ("/InfiniBand(%x,%llx,%llx,%llx)",
++                           (unsigned) ib.port_gid[0], /* XXX */
++                           ib.remote_id,
++                           ib.target_port_id,
++                           ib.device_id);
++            }
++            break;
++          case GRUB_EFI_UART_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_uart_device_path_t uart;
++              grub_memcpy (&uart, dp, len);
++              grub_printf ("/UART(%llu,%u,%x,%x)",
++                           uart.baud_rate,
++                           uart.data_bits,
++                           uart.parity,
++                           uart.stop_bits);
++            }
++            break;
++          case GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_vendor_messaging_device_path_t vendor;
++              grub_memcpy (&vendor, dp, sizeof (vendor));
++              grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++                           (unsigned) vendor.vendor_guid.data1,
++                           (unsigned) vendor.vendor_guid.data2,
++                           (unsigned) vendor.vendor_guid.data3,
++                           (unsigned) vendor.vendor_guid.data4[0],
++                           (unsigned) vendor.vendor_guid.data4[1],
++                           (unsigned) vendor.vendor_guid.data4[2],
++                           (unsigned) vendor.vendor_guid.data4[3],
++                           (unsigned) vendor.vendor_guid.data4[4],
++                           (unsigned) vendor.vendor_guid.data4[5],
++                           (unsigned) vendor.vendor_guid.data4[6],
++                           (unsigned) vendor.vendor_guid.data4[7]);
++            }
++            break;
++          default:
++            grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_hard_drive_device_path_t hd;
++              grub_memcpy (&hd, dp, len);
++              grub_printf ("/HD(%u,%llx,%llx,%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++                           hd.partition_number,
++                           hd.partition_start,
++                           hd.partition_size,
++                           (unsigned) hd.partition_signature[3],
++                           (unsigned) hd.partition_signature[2],
++                           (unsigned) hd.partition_signature[1],
++                           (unsigned) hd.partition_signature[0],
++                           (unsigned) hd.partition_signature[5],
++                           (unsigned) hd.partition_signature[4],
++                           (unsigned) hd.partition_signature[7],
++                           (unsigned) hd.partition_signature[6],
++                           (unsigned) hd.partition_signature[9],
++                           (unsigned) hd.partition_signature[8],
++                           (unsigned) hd.partition_signature[10],
++                           (unsigned) hd.partition_signature[11],
++                           (unsigned) hd.partition_signature[12],
++                           (unsigned) hd.partition_signature[13],
++                           (unsigned) hd.partition_signature[14],
++                           (unsigned) hd.partition_signature[15]);
++            }
++            break;
++          case GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_cdrom_device_path_t cd;
++              grub_memcpy (&cd, dp, len);
++              grub_printf ("/CD(%u,%llx,%llx)",
++                           cd.boot_entry,
++                           cd.partition_start,
++                           cd.partition_size);
++            }
++            break;
++          case GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_vendor_media_device_path_t vendor;
++              grub_memcpy (&vendor, dp, sizeof (vendor));
++              grub_printf ("/Vendor(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++                           (unsigned) vendor.vendor_guid.data1,
++                           (unsigned) vendor.vendor_guid.data2,
++                           (unsigned) vendor.vendor_guid.data3,
++                           (unsigned) vendor.vendor_guid.data4[0],
++                           (unsigned) vendor.vendor_guid.data4[1],
++                           (unsigned) vendor.vendor_guid.data4[2],
++                           (unsigned) vendor.vendor_guid.data4[3],
++                           (unsigned) vendor.vendor_guid.data4[4],
++                           (unsigned) vendor.vendor_guid.data4[5],
++                           (unsigned) vendor.vendor_guid.data4[6],
++                           (unsigned) vendor.vendor_guid.data4[7]);
++            }
++            break;
++          case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_file_path_device_path_t *fp;
++              grub_uint8_t buf[(len - 4) * 2 + 1];
++              fp = (grub_efi_file_path_device_path_t *) dp;
++              *grub_utf16_to_utf8 (buf, fp->path_name,
++                                   (len - 4) / sizeof (grub_efi_char16_t))
++                = '\0';
++              grub_printf ("/File(%s)", buf);
++            }
++            break;
++          case GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_protocol_device_path_t proto;
++              grub_memcpy (&proto, dp, sizeof (proto));
++              grub_printf ("/Protocol(%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x)",
++                           (unsigned) proto.guid.data1,
++                           (unsigned) proto.guid.data2,
++                           (unsigned) proto.guid.data3,
++                           (unsigned) proto.guid.data4[0],
++                           (unsigned) proto.guid.data4[1],
++                           (unsigned) proto.guid.data4[2],
++                           (unsigned) proto.guid.data4[3],
++                           (unsigned) proto.guid.data4[4],
++                           (unsigned) proto.guid.data4[5],
++                           (unsigned) proto.guid.data4[6],
++                           (unsigned) proto.guid.data4[7]);
++            }
++            break;
++          default:
++            grub_printf ("/UnknownMedia(%x)", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      case GRUB_EFI_BIOS_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_bios_device_path_t bios;
++              grub_memcpy (&bios, dp, sizeof (bios));
++              grub_printf ("/BIOS(%x,%x,%s)",
++                           (unsigned) bios.device_type,
++                           (unsigned) bios.status_flags,
++                           (char *) (dp + 1));
++            }
++            break;
++          default:
++            grub_printf ("/UnknownBIOS(%x)", (unsigned) subtype);
++            break;
++          }
++        break;
++
++      default:
++        grub_printf ("/UnknownType(%x,%x)\n",
++                     (unsigned) type,
++                     (unsigned) subtype);
++        return;
++        break;
++      }
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp))
++      break;
++
++      dp = (grub_efi_device_path_t *) ((char *) dp + len);
++    }
++}
++
++static inline int
++dpname_matches(char *str, char *candidate)
++{
++  grub_size_t clen = grub_strlen(candidate);
++  char scratch[clen + 2];
++  int rc;
++
++  grub_strncpy(scratch, candidate, clen);
++  scratch[clen+1] = '\0';
++  if (scratch[clen-1] == '$')
++    {
++      scratch[--clen] = '\0';
++      rc = !grub_strncasecmp(str, scratch, clen);
++      return rc;
++    }
++
++    grub_strncpy(scratch+clen, "(", 2);
++    clen = grub_strlen(scratch);
++    rc = !grub_strncasecmp(str, scratch, clen);
++    return rc;
++}
++
++static void
++finish_param_parse(char *pos, char **end, char *tmp)
++{
++  if (!pos || !end || !tmp)
++    return;
++
++  if (*end)
++    **end = *tmp;
++}
++
++static char *
++get_next_param(char *pos, char **end, char *tmp)
++{
++  char *comma = NULL;
++  char *openparen = NULL;
++  char *closeparen = NULL;
++
++  if (!pos || !end || !tmp)
++    return NULL;
++
++  if (*end)
++    **end = *tmp;
++
++  openparen = grub_strchr(pos, '(');
++  if (openparen && *openparen)
++    {
++      pos = grub_strnchr(openparen + 1, ' ');
++      comma = grub_strchr(pos, ',');
++      closeparen = grub_strchr(pos, ')');
++
++      if (comma && *comma)
++      {
++        *tmp = *comma;
++        *comma = '\0';
++        *end = comma;
++      }
++      else if (closeparen && *closeparen)
++      {
++        *tmp = *closeparen;
++        *closeparen = '\0';
++        *end = closeparen;
++      }
++      return pos;
++    }
++
++  comma = grub_strchr(pos, ',');
++  if (comma && *comma)
++    {
++      pos = grub_strnchr(comma + 1, ' ');
++      comma = grub_strchr(pos, ',');
++      closeparen = grub_strchr(pos, ')');
++
++      if (comma && *comma)
++      {
++        *tmp = *comma;
++        *comma = '\0';
++        *end = comma;
++      }
++      else if (closeparen && *closeparen)
++      {
++        *tmp = *closeparen;
++        *closeparen = '\0';
++        *end = closeparen;
++      }
++      return pos;
++    }
++
++  closeparen = grub_strchr(pos, ')');
++  if (closeparen && *closeparen)
++    pos = grub_strnchr(closeparen + 1, ' ');
++
++  return pos;
++}
++
++struct generic_device_path
++  {
++    grub_efi_uint8_t type;
++    grub_efi_uint8_t subtype;
++    grub_efi_uint16_t length;
++  } __attribute__((packed));
++
++struct hd_media_device_path
++  {
++    grub_efi_uint8_t type;
++    grub_efi_uint8_t subtype;
++    grub_efi_uint16_t length;
++    grub_efi_uint32_t partition;
++    grub_efi_uint64_t startlba;
++    grub_efi_uint64_t size;
++    grub_efi_uint8_t signature[16];
++    grub_efi_uint8_t mbr_type;
++    grub_efi_uint8_t signature_type;
++  } __attribute__((packed));
++
++static inline int
++parse_device_path_component(const char *orig_str, void *data)
++{
++  int orig_str_len = strlen(orig_str) + 1;
++  char str[orig_str_len];
++  char tmp;
++  char *pos = str;
++  int ret = 0;
++
++  grub_strcpy(str, orig_str);
++  if (dpname_matches(str, "pci"))
++    {
++    }
++  else if (dpname_matches(str, "pccard"))
++    {
++    }
++  else if (dpname_matches(str, "mmap"))
++    {
++    }
++  else if (dpname_matches(str, "ctrl"))
++    {
++    }
++  else if (dpname_matches(str, "acpi"))
++    {
++    }
++    /* XXX what about _ADR? */
++  /* messaging device paths */
++  else if (dpname_matches(str, "atapi"))
++    {
++    }
++  else if (dpname_matches(str, "scsi"))
++    {
++    }
++  else if (dpname_matches(str, "fibrechannel"))
++    {
++    }
++  else if (dpname_matches(str, "1394"))
++    {
++    }
++  else if (dpname_matches(str, "usb"))
++    {
++    }
++  else if (dpname_matches(str, "sata"))
++    {
++    }
++    /* XXX what about usb-wwid */
++    /* XXX what about lun */
++  else if (dpname_matches(str, "usbclass"))
++    {
++    }
++  else if (dpname_matches(str, "i2o"))
++    {
++    }
++  else if (dpname_matches(str, "macaddr"))
++    {
++    }
++  else if (dpname_matches(str, "ipv4"))
++    {
++    }
++  else if (dpname_matches(str, "ipv6"))
++    {
++    }
++    /* XXX what about vlan */
++  else if (dpname_matches(str, "infiniband"))
++    {
++    }
++  else if (dpname_matches(str, "uart"))
++    {
++    }
++  else if (dpname_matches(str, "uartflowctrl"))
++    {
++    }
++  else if (dpname_matches(str, "sas"))
++    {
++    }
++  else if (dpname_matches(str, "iscsi"))
++    {
++    }
++  /* media device paths */
++  else if (dpname_matches(str, "hd"))
++    {
++      /* these look roughly like:
++       *  HD(Partition,Type,Signature,Start, Size)
++       * but:
++       * - type may be optional.  1 or "MBR" means MBR. 2 or "GPT" means GPT.
++       * - start and size are optional
++       * - there can be random spaces
++       */
++      struct hd_media_device_path hddp;
++      unsigned long tmpul;
++      char *end = NULL, c;
++      char tmps[19] = "0x";
++      char *tmpsp;
++
++      ret = 42;
++
++      hddp.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE;
++      hddp.subtype = GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE;
++      hddp.length = ret;
++
++      //pos += grub_strcspn(pos, '(');
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++      {
++broken_hd:
++        finish_param_parse(pos, &end, &c);
++        return 0;
++      }
++      grub_strncpy(tmps+2, pos, 16);
++      tmps[18] = '\0';
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.partition = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++      goto broken_hd;
++      grub_strcpy(tmps+2, pos);
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.startlba = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++      goto broken_hd;
++      grub_strcpy(tmps+2, pos);
++      tmpsp = tmps;
++      safe_parse_maxulong(&tmpsp, &tmpul);
++      hddp.size = tmpul;
++
++      pos = get_next_param(pos, &end, &c);
++      if (!*pos)
++      goto broken_hd;
++      if (!grub_strcmp(pos, "None"))
++      {
++        hddp.signature_type = 0;
++        grub_memset(hddp.signature, '\0', sizeof(hddp.signature));
++      }
++      else if (grub_strnlen(pos, 36) == 8)
++        {
++        grub_efi_uint32_t tmpu32;
++        grub_strncpy(tmps+2, pos, 8);
++        tmps[10] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu32 = tmpul;
++        hddp.signature_type = 1;
++        grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
++      }
++      else if (grub_strnlen(pos, 36) == 36)
++      {
++        grub_efi_uint32_t tmpu32;
++        grub_efi_uint16_t tmpu16;
++        grub_efi_uint8_t tmpu8;
++
++        grub_strncpy(tmps+2, pos, 8);
++        tmps[10] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu32 = tmpul;
++        grub_memcpy(hddp.signature, &tmpu32, sizeof(tmpu32));
++
++        grub_strncpy(tmps+2, pos+9, 4);
++        tmps[6] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu16 = tmpul;
++        grub_memcpy(hddp.signature + 4, &tmpu16, sizeof(tmpu16));
++
++        grub_strncpy(tmps+2, pos+14, 4);
++        tmps[6] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu16 = tmpul;
++        grub_memcpy(hddp.signature + 6, &tmpu16, sizeof(tmpu16));
++
++        /* these are displayed like a u16, but they're a u8.  thanks. */
++        grub_strncpy(tmps+2, pos+19, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 8, &tmpu8, sizeof(tmpu8));
++        grub_strncpy(tmps+2, pos+21, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 9, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+24, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 10, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+26, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 11, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+28, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 12, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+30, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 13, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+32, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 14, &tmpu8, sizeof(tmpu8));
++
++        grub_strncpy(tmps+2, pos+34, 2);
++        tmps[4] = '\0';
++        tmpsp = tmps;
++        safe_parse_maxulong(&tmpsp, &tmpul);
++        tmpu8 = tmpul;
++        grub_memcpy(hddp.signature + 15, &tmpu8, sizeof(tmpu8));
++
++        hddp.signature_type = 2;
++      }
++      else
++      goto broken_hd;
++
++      hddp.mbr_type = hddp.signature_type;
++
++      if (data)
++      grub_memcpy(data, &hddp, sizeof(hddp));
++    }
++  else if (dpname_matches(str, "cd"))
++    {
++    }
++  else if (dpname_matches(str, "file"))
++    {
++    }
++  else if (dpname_matches(str, "protocol"))
++    {
++    }
++    /* what about piwg firmware file? */
++    /* what about piwg firmware volume? */
++    /* what about relative offset media */
++  else if (dpname_matches(str, "bios"))
++    {
++    }
++  /* This is the end beautiful friend */
++  else if (dpname_matches(str, "EndEntire$"))
++    {
++      struct generic_device_path gdp = {
++            .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++            .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
++            .length = 4
++      };
++      ret = 4;
++      if (data)
++      grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  else if (dpname_matches(str, "EndThis$"))
++    {
++      struct generic_device_path gdp = {
++            .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++            .subtype = GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE,
++            .length = 4
++      };
++      ret = 4;
++      if (data)
++      grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  else if (dpname_matches(str, "EndUnknown$"))
++    {
++      struct generic_device_path gdp = {
++            .type = GRUB_EFI_END_DEVICE_PATH_TYPE,
++            .subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
++            .length = 4
++      };
++      ret = 4;
++      if (data)
++      grub_memmove(data, &gdp, sizeof(gdp));
++    }
++  /* handle anything we didn't recognize */
++  else if (dpname_matches(str, "vendor"))
++    {
++      /* needs to handle:
++       * 1) hw vendor
++       * 2) messaging vendor
++       * 3) media vendor
++       */
++    }
++  else
++    {
++    }
++
++  return ret;
++}
++
++grub_efi_device_path_t *
++device_path_from_utf8 (const char *device)
++{
++  grub_size_t device_len;
++  grub_efi_device_path_t *dp = NULL;
++
++  device_len = parse_device_path_component(device, dp);
++  device_len += parse_device_path_component("EndEntire", dp);
++  dp = grub_malloc(device_len);
++  if (!dp)
++    return NULL;
++  device_len = parse_device_path_component(device, dp);
++  device_len += parse_device_path_component("EndEntire",
++                                   (void *)((unsigned long)dp + device_len));
++
++
++  return dp;
++}
+diff --git a/efi/efigraph.c b/efi/efigraph.c
+new file mode 100644
+index 0000000..6905e07
+--- /dev/null
++++ b/efi/efigraph.c
+@@ -0,0 +1,1501 @@
++/* efigraph.c - EFI "graphics output" support for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright 2007 Red Hat, Inc.
++ *  Copyright (C) 2007 Intel Corp.
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++#include "xpm.h"
++
++#define dbgdelay(_f, _l) ({\
++      if (debug_graphics) {                           \
++              do {                                    \
++                      grub_efi_stall(1000);           \
++              } while (console_getkey() < 0);         \
++      }                                               \
++      })
++
++#define dprintf(format, args...) ({                   \
++      if (debug_graphics) {                           \
++              struct term_entry *_tt = current_term;  \
++              current_term = term_table;              \
++              grub_printf(format, ##args);            \
++              current_term = _tt;                     \
++      }                                               \
++      })
++
++struct grub_pixel_info
++{
++  char depth_bits;
++  char depth_bytes;
++  unsigned char red_size;
++  unsigned char red_pos;
++  unsigned char green_size;
++  unsigned char green_pos;
++  unsigned char blue_size;
++  unsigned char blue_pos;
++  unsigned char reserved_size;
++  unsigned char reserved_pos;
++  int line_length;
++};
++
++typedef struct grub_pixel_info grub_pixel_info_t;
++
++
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
++
++#ifndef MIN
++#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
++#endif
++#ifndef MAX
++#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
++#endif
++
++#define pixel_equal(x,y) ((x).bgrr.red == (y).bgrr.red && \
++                          (x).bgrr.green == (y).bgrr.green && \
++                          (x).bgrr.blue == (y).bgrr.blue && \
++                          (x).bgrr.reserved == (y).bgrr.reserved)
++
++struct video_mode {
++    grub_efi_uint32_t number;
++    grub_efi_uintn_t size;
++    grub_efi_graphics_output_mode_information_t *info;
++};
++
++#define MAX_PALETTE 16
++struct eg {
++    struct graphics_backend *backend;
++    grub_efi_graphics_output_t *output_intf;
++    struct video_mode **modes;
++    int max_mode;
++    grub_efi_uint32_t text_mode;
++    grub_efi_uint32_t graphics_mode;
++    grub_pixel_info_t pixel_info;
++    enum { TEXT, GRAPHICS } current_mode;
++
++    position_t screen_size;
++    position_t screen_pos;
++
++    struct bltbuf *background;
++
++    grub_efi_graphics_output_pixel_t palette[MAX_PALETTE + 1];
++};
++
++#define RGB(r,g,b) { .bgrr.red = r, .bgrr.green = g, .bgrr.blue = b }
++
++static grub_efi_graphics_output_pixel_t cga_colors[] = {
++    RGB(0x00,0x00,0x00), //  0 Black
++    RGB(0x7f,0x00,0x00), //  1 Dark Red
++    RGB(0x00,0x7f,0x00), //  2 Dark Green
++    RGB(0x7f,0x7f,0x00), //  3 Dark Yellow
++    RGB(0x00,0x00,0x7f), //  4 Dark Blue
++    RGB(0x7f,0x00,0x7f), //  5 Dark Magenta
++    RGB(0x00,0x7f,0x7f), //  6 Dark Cyan
++    RGB(0xc0,0xc0,0xc0), //  7 Light Grey
++    RGB(0x7f,0x7f,0x7f), //  8 Dark Grey
++    RGB(0xff,0x00,0x00), //  9 Red
++    RGB(0x00,0xff,0x00), // 10 Green
++    RGB(0xff,0xff,0x00), // 11 Yellow
++    RGB(0x00,0x00,0xff), // 12 Blue
++    RGB(0xff,0x00,0xff), // 13 Magenta
++    RGB(0x00,0xff,0xff), // 14 Cyan
++    RGB(0xff,0xff,0xff), // 15 White
++    RGB(0xff,0xff,0xff), // 16 Also white ;)
++};
++
++static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
++
++static void
++find_bits (unsigned long mask, unsigned char *first,
++         unsigned char* len)
++{
++  unsigned char bit_pos = 0, bit_len = 0;
++  *first =0;
++  *len = 0;
++  if (mask == 0)
++    return;
++  while (! (mask & 0x1)) {
++    mask = mask >> 1;
++    bit_pos++;
++  }
++  while (mask & 0x1) {
++    mask = mask >> 1;
++    bit_len++;
++  }
++  *first = bit_pos;
++  *len = bit_len;
++}
++
++static grub_efi_graphics_output_mode_information_t *
++get_graphics_mode_info_for_mode(struct eg *eg, int mode)
++{
++      int i;
++
++      for (i = 0; i < eg->max_mode; i++) {
++              if (eg->modes[i] == NULL)
++                      continue;
++              if (eg->modes[i]->number == mode)
++                      return eg->modes[i]->info;
++      }
++      return NULL;
++}
++
++static grub_efi_graphics_output_mode_information_t *
++get_graphics_mode_info(struct eg *eg)
++{
++      return get_graphics_mode_info_for_mode(eg, eg->graphics_mode);
++}
++
++static void
++print_mode_info(struct video_mode *mode)
++{
++      grub_efi_graphics_output_mode_information_t *info = mode->info;
++      dprintf("mode %d (%dx%d, pitch %d, ",
++              mode->number,
++              info->horizontal_resolution,
++              info->vertical_resolution,
++              info->pixels_per_scan_line);
++      switch(info->pixel_format) {
++              case GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR:
++                      dprintf("rgbr 8bpc");
++                      break;
++              case GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR:
++                      dprintf("bgrr 8bpc");
++                      break;
++              case GRUB_EFI_PIXEL_BIT_MASK:
++                      dprintf("bitmask color");
++                      break;
++              case GRUB_EFI_PIXEL_BLT_ONLY:
++                      dprintf("blt only");
++                      break;
++      }
++      dprintf(")\n");
++      if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++              dprintf("red: %08x green: %08x blue: %08x res: %08x\n",
++              info->pixel_information.red_mask,
++              info->pixel_information.green_mask,
++              info->pixel_information.blue_mask,
++              info->pixel_information.reserved_mask);
++      }
++}
++
++static void
++set_kernel_params(struct graphics_backend *backend,
++            struct linux_kernel_params *params)
++{
++    struct eg *eg;
++
++    if (!backend || !backend->priv)
++        return;
++
++    eg = backend->priv;
++    grub_efi_graphics_output_t *gop_intf = NULL;
++    grub_efi_graphics_output_mode_t *gop_mode = NULL;
++    grub_efi_status_t efi_status = GRUB_EFI_SUCCESS;
++    grub_efi_graphics_output_mode_information_t *gop_info = NULL;
++    grub_efi_uintn_t size;
++
++    gop_intf = grub_efi_locate_protocol (&graphics_output_guid, NULL);
++    if (gop_intf == NULL)
++        return;
++
++    gop_mode = gop_intf->mode;
++
++    efi_status = Call_Service_4 (gop_intf->query_mode,
++                             gop_intf, gop_mode->mode, &size, &gop_info);
++
++
++    if (efi_status == GRUB_EFI_SUCCESS) {
++        /* No VBE on EFI.  */
++        params->lfb_width = gop_info->horizontal_resolution;
++        params->lfb_height = gop_info->vertical_resolution;
++        params->lfb_base = gop_mode->frame_buffer_base;
++        params->lfb_size = gop_mode->frame_buffer_size;
++        params->lfb_pages = 1;
++        params->vesapm_segment = 0;
++        params->vesapm_offset = 0;
++        params->vesa_attrib = 0;
++        if (gop_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
++            params->lfb_depth = 32;
++            params->red_mask_size = 8;
++            params->red_field_pos = 0;
++            params->green_mask_size = 8;
++            params->green_field_pos = 8;
++            params->blue_mask_size = 8;
++            params->blue_field_pos = 16;
++            params->reserved_mask_size = 8;
++            params->reserved_field_pos = 24;
++            params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
++        } else if (gop_info->pixel_format ==
++                GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
++            params->lfb_depth = 32;
++            params->red_mask_size = 8;
++            params->red_field_pos = 16;
++            params->green_mask_size = 8;
++            params->green_field_pos = 8;
++            params->blue_mask_size = 8;
++            params->blue_field_pos = 0;
++            params->reserved_mask_size = 8;
++            params->reserved_field_pos = 24;
++          params->lfb_line_len = gop_info->pixels_per_scan_line * 4;
++        } else if (gop_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++            find_bits (gop_info->pixel_information.red_mask,
++                       &params->red_field_pos, &params->red_mask_size);
++            find_bits (gop_info->pixel_information.green_mask,
++                       &params->green_field_pos, &params->green_mask_size);
++            find_bits (gop_info->pixel_information.blue_mask,
++                       &params->blue_field_pos, &params->blue_mask_size);
++            find_bits (gop_info->pixel_information.reserved_mask,
++                       &params->reserved_field_pos, &params->reserved_mask_size);
++            params->lfb_depth = params->red_mask_size
++                                + params->green_mask_size
++                                + params->blue_mask_size
++                                + params->reserved_mask_size;
++            params->lfb_line_len =
++                (gop_info->pixels_per_scan_line * params->lfb_depth) / 8;
++        } else  {
++            params->lfb_depth = 4;
++            params->red_mask_size = 0;
++            params->red_field_pos = 0;
++            params->green_mask_size = 0;
++            params->green_field_pos = 0;
++            params->blue_mask_size = 0;
++            params->blue_field_pos = 0;
++            params->reserved_mask_size = 0;
++            params->reserved_field_pos = 0;
++            params->lfb_line_len = params->lfb_width / 2;
++        }
++#if 0
++        params->video_cursor_x = 0;
++        params->video_cursor_y = 0;
++        params->video_page = 0;
++        params->video_mode = 0;
++        params->video_width = 0;
++        params->video_ega_bx = 0;
++        params->video_height = 0;
++        params->have_vga = 0x70;
++        params->font_size = 0;
++#else
++        params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
++        params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
++        params->video_page = 0; /* ??? */
++        params->video_mode = grub_efi_system_table->con_out->mode->mode;
++        params->video_width = (grub_console_getwh () >> 8);
++        params->video_ega_bx = 0;
++        params->video_height = (grub_console_getwh () & 0xff);
++        params->have_vga = VIDEO_TYPE_EFI;
++        params->font_size = 16; /* XXX */
++#endif
++    }
++}
++
++static void
++pixel_to_rgb(grub_efi_graphics_output_pixel_t *pixel,
++             int *red, int *green, int *blue)
++{
++    *red = pixel->bgrr.red;
++    *green = pixel->bgrr.green;
++    *blue = pixel->bgrr.blue;
++}
++
++static void
++rgb_to_pixel(int red, int green, int blue,
++             grub_efi_graphics_output_pixel_t *pixel)
++{
++    pixel->bgrr.red = red;
++    pixel->bgrr.green = green;
++    pixel->bgrr.blue = blue;
++}
++
++static void
++position_to_phys(struct eg *eg, position_t *virt, position_t *phys)
++{
++    phys->x = virt->x + eg->screen_pos.x;
++    phys->y = virt->y + eg->screen_pos.y;
++}
++
++static int
++abs_paddr(struct eg *eg, position_t *virt)
++{
++    position_t phys;
++    position_to_phys(eg, virt, &phys);
++    return phys.x + phys.y * eg->screen_size.x;
++}
++
++struct bltbuf {
++    grub_efi_uintn_t width;
++    grub_efi_uintn_t height;
++    grub_efi_graphics_output_pixel_t pixbuf[];
++};
++
++static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
++                                         grub_efi_uintn_t height)
++{
++      struct bltbuf *buf = NULL;
++      grub_efi_uintn_t pixbuf_size = width * height *
++              sizeof (grub_efi_graphics_output_pixel_t);
++
++      if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
++                              pixbuf_size)))
++              return NULL;
++
++      buf->width = width;
++      buf->height = height;
++      grub_memset(buf->pixbuf, '\0', pixbuf_size);
++      return buf;
++}
++
++
++static void
++hw_blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
++                      position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    position_t phys;
++
++    position_to_phys(eg, pos, &phys);
++
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, (void *)bltbuf->pixbuf,
++                    GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++                    bltpos->x, bltpos->y,
++                    phys.x, phys.y,
++                    bltsz->x, bltsz->y,
++                    0);
++}
++
++static void
++blt_pos_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf,
++        position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    grub_efi_graphics_output_mode_information_t *info = get_graphics_mode_info(eg);
++    grub_efi_graphics_output_pixel_t *pixel;
++    position_t phys;
++    const int pxlstride = info->pixels_per_scan_line;
++    const int bytestride = pxlstride * sizeof (*pixel);
++
++    position_to_phys(eg, pos, &phys);
++
++    if (info->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY || 1) {
++        hw_blt_pos_to_screen_pos(eg, bltbuf, bltpos, bltsz, pos);
++#if 0
++    } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++        int y;
++        grub_pixel_info_t *pinfo = &eg->pixel_info;
++        const int maxpixels =
++            MIN(info->horizontal_resolution - pos->x, bltsz->x);
++
++        for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
++            char raw_pixels[maxpixels * pinfo->depth_bytes];
++            char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
++            int x;
++
++            pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
++            fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
++
++            for (x = 0; x < maxpixels; x++) {
++                char depth_bytes = pinfo->depth_bytes;
++                char *raw_pixel = raw_pixels + x * depth_bytes;
++
++                int red, green, blue, color;
++                char *colorp;
++
++#if 0
++                red = pixel[x].bgrr.red & 0x3f;
++                green = pixel[x].bgrr.green & 0x3f;
++                blue = pixel[x].bgrr.blue & 0x3f;
++                red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
++                green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
++                blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
++#else
++                red = pixel[x].bgrr.red;
++                green = pixel[x].bgrr.green;
++                blue = pixel[x].bgrr.blue;
++
++                red >>= 8 - pinfo->red_size;
++                green >>= 8 - pinfo->green_size;
++                blue >>= 8 - pinfo->blue_size;
++#endif
++
++                color = (red << pinfo->red_pos) |
++                        (green << pinfo->green_pos) |
++                        (blue << pinfo->blue_pos);
++                colorp = (void *)&color;
++                while (depth_bytes--)
++                    *raw_pixel++ = *colorp++;
++            }
++            memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
++        }
++#endif
++    } else {
++        int y;
++        grub_pixel_info_t *pinfo = &eg->pixel_info;
++        const int maxpixels =
++            MIN(info->horizontal_resolution - pos->x, bltsz->x);
++
++      //char *line = &fb[phys.y * bytestride + phys.x * sizeof(*pixel)];
++        for (y = bltpos->y; y < bltpos->y + bltsz->y; y++, phys.y++) {
++          char raw_pixels[maxpixels * sizeof(*pixel)];
++            char *fb = (char *)(unsigned long)eg->output_intf->mode->frame_buffer_base;
++            int x;
++
++            pixel = (void *)&bltbuf->pixbuf[y * bltbuf->width + bltpos->x];
++            fb += phys.y * pinfo->line_length + phys.x * pinfo->depth_bytes;
++
++            if (info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR) {
++                memmove(raw_pixels, pixel, maxpixels * sizeof (*pixel));
++                continue;
++            } else if (info->pixel_format==GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR) {
++                grub_efi_graphics_output_pixel_t shadow[maxpixels];
++                for (x = 0; x < maxpixels; x++) {
++                    shadow[x].rgbr.red = pixel[x].bgrr.red;
++                    shadow[x].rgbr.green = pixel[x].bgrr.green;
++                    shadow[x].rgbr.blue = pixel[x].bgrr.blue;
++                }
++
++                memmove(raw_pixels, shadow, maxpixels * sizeof (*pixel));
++            } else if (info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK) {
++                for (x = 0; x < maxpixels; x++) {
++                    char depth_bytes = pinfo->depth_bytes;
++                    char *raw_pixel = raw_pixels + x * depth_bytes;
++
++                    int red, green, blue, color;
++                    char *colorp;
++
++#if 0
++                    red = pixel[x].bgrr.red & 0x3f;
++                    green = pixel[x].bgrr.green & 0x3f;
++                    blue = pixel[x].bgrr.blue & 0x3f;
++                    red = red * ((1 << pinfo->red_size) - 1) / 0x3f;
++                    green = green * ((1 << pinfo->green_size) - 1) / 0x3f;
++                    blue = blue * ((1 << pinfo->blue_size) - 1) / 0x3f;
++#else
++                    red = pixel[x].bgrr.red;
++                    green = pixel[x].bgrr.green;
++                    blue = pixel[x].bgrr.blue;
++
++                    red >>= 8 - pinfo->red_size;
++                    green >>= 8 - pinfo->green_size;
++                    blue >>= 8 - pinfo->blue_size;
++#endif
++
++                    color = (red << pinfo->red_pos) |
++                            (green << pinfo->green_pos) |
++                            (blue << pinfo->blue_pos);
++                    colorp = (void *)&color;
++                    while (depth_bytes--)
++                        *raw_pixel++ = *colorp++;
++                }
++          }
++          memmove(fb, raw_pixels, maxpixels * pinfo->depth_bytes);
++        }
++    }
++}
++
++static void
++blt_to_screen(struct eg *eg, struct bltbuf *bltbuf)
++{
++#if 0
++    position_t addr = {0, 0};
++
++    position_to_phys(eg, &addr, &addr);
++
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
++                    GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++                    0, 0,
++                    addr.x, addr.y,
++                    bltbuf->width, bltbuf->height,
++                    0);
++#else
++    const int pxlstride = eg->output_intf->mode->info->pixels_per_scan_line;
++    position_t bltsz, bltpos = { 0, 0 }, pos = { 0, 0 };
++    bltsz.x = MIN(bltbuf->width, pxlstride);
++    bltsz.y = MIN(bltbuf->height, eg->output_intf->mode->info->vertical_resolution);
++
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
++#endif
++}
++
++static void
++blt_to_screen_pos(struct eg *eg, struct bltbuf *bltbuf, position_t *pos)
++{
++    position_t bltpos = {0, 0};
++    position_t bltsz = { bltbuf->width, bltbuf->height };
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, pos);
++}
++
++static int
++save_video_mode(struct eg *eg, struct video_mode *mode)
++{
++      grub_efi_status_t status;
++
++
++
++      status = Call_Service_4(eg->output_intf->query_mode, eg->output_intf,
++                                mode->number, &mode->size, &mode->info);
++      return status == GRUB_EFI_SUCCESS;
++}
++
++static void
++get_screen_size(struct graphics_backend *backend, position_t *size)
++{
++    struct eg *eg = backend->priv;
++    grub_efi_graphics_output_mode_information_t *info;
++
++    info = get_graphics_mode_info(eg);
++
++    size->x = info->horizontal_resolution;
++    size->y = info->vertical_resolution;
++}
++
++static void
++bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
++                             grub_efi_graphics_output_pixel_t *pixel)
++{
++    if (pos->x < 0 || pos->x >= bltbuf->width)
++        return;
++    if (pos->x < 0 || pos->y >= bltbuf->height)
++        return;
++    grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
++            sizeof *pixel);
++}
++
++static void
++bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
++                 grub_efi_graphics_output_pixel_t *pixel)
++{
++    if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
++      grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
++            sizeof *pixel);
++    } else {
++      pixel->bgrr.red = 0x00;
++      pixel->bgrr.green = 0x00;
++      pixel->bgrr.blue = 0x00;
++    }
++}
++
++static void
++bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
++                     int red, int green, int blue)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    bltbuf_set_pixel(bltbuf, pos, &pixel);
++}
++
++static void
++bltbuf_set_pixel_idx(struct eg *eg, struct bltbuf *bltbuf,
++                     position_t *pos, int idx)
++{
++    bltbuf_set_pixel(bltbuf, pos, &eg->palette[idx]);
++}
++
++static void
++bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++
++    rgb_to_pixel(0, 0, 0, &pixel);
++    bltbuf_get_pixel(bltbuf, pos, &pixel);
++    for (*idx = 0; *idx < 16; (*idx)++) {
++        if (pixel_equal(cga_colors[*idx], pixel))
++            break;
++    }
++}
++
++static struct bltbuf *
++xpm_to_bltbuf(struct xpm *xpm)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos;
++
++    if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
++        return NULL;
++
++    for (pos.y = 0; pos.y < xpm->height; pos.y++) {
++        for (pos.x = 0; pos.x < xpm->width; pos.x++) {
++            xpm_pixel_t xpl;
++            unsigned char idx;
++
++            idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
++            xpm_get_idx(xpm, idx, &xpl);
++
++            bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
++        }
++    }
++
++    return bltbuf;
++}
++
++static void
++cursor(struct graphics_backend *backend, int set)
++{
++    struct eg *eg;
++    int ch, invert;
++    unsigned short *text;
++    position_t fpos, screensz;
++    int offset;
++
++    eg = backend->priv;
++
++    if (set && !graphics_get_scroll())
++        return;
++
++    text = graphics_get_text_buf();
++    graphics_get_font_position(&fpos);
++    graphics_get_screen_rowscols(&screensz);
++
++    offset = fpos.y * screensz.x + fpos.x;
++
++    if (set)
++        text[offset] |= 0x0200;
++
++    graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
++
++    if (set)
++        text[offset] &= 0xfdff;
++}
++
++static void blank(struct graphics_backend *backend);
++
++static void
++reset_screen_geometry(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct xpm *xpm = graphics_get_splash_xpm();
++    grub_efi_graphics_output_mode_information_t *info;
++    position_t screensz;
++
++    info = get_graphics_mode_info(eg);
++
++    if (xpm) {
++        eg->screen_pos.x =
++            (info->horizontal_resolution - xpm->width) / 2;
++        eg->screen_pos.y =
++            (info->vertical_resolution - xpm->height) / 2;
++    } else {
++        eg->screen_pos.x = 0;
++        eg->screen_pos.y = 0;
++    }
++
++    blank(backend);
++    graphics_get_screen_rowscols(&screensz);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++}
++
++static void
++setxy(struct graphics_backend *backend, position_t *pos)
++{
++    position_t fpos;
++
++    fpos.x = pos->x;
++    fpos.y = pos->y;
++    graphics_set_font_position(&fpos);
++}
++
++static void
++eg_getxy(struct graphics_backend *backend, position_t *pos)
++{
++    graphics_get_font_position(pos);
++}
++
++static void
++draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
++{
++    struct bltbuf *bltbuf = NULL;
++    grub_efi_graphics_output_pixel_t *eup = (grub_efi_graphics_output_pixel_t *)pixel;
++
++    bltbuf = alloc_bltbuf(1,1);
++    if (!bltbuf)
++        return;
++
++    grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
++
++    blt_to_screen_pos(backend->priv, bltbuf, pos);
++
++    grub_free(bltbuf);
++}
++
++static pixel_t *
++get_pixel_idx(struct graphics_backend *backend, int idx)
++{
++    static grub_efi_graphics_output_pixel_t pixel;
++    struct eg *eg = backend->priv;
++    if (idx < 0 || idx > MAX_PALETTE)
++        return NULL;
++    pixel.bgrr.red = eg->palette[idx].bgrr.red;
++    pixel.bgrr.green = eg->palette[idx].bgrr.green;
++    pixel.bgrr.blue = eg->palette[idx].bgrr.blue;
++    return (pixel_t *)&pixel;
++}
++
++static pixel_t *
++get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
++{
++    static grub_efi_graphics_output_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    return &pixel;
++}
++
++static void
++set_palette(struct graphics_backend *backend, int idx,
++            int red, int green, int blue)
++{
++    grub_efi_graphics_output_pixel_t pixel;
++    struct eg *eg = backend->priv;
++
++    if (idx > MAX_PALETTE)
++        return;
++    rgb_to_pixel(red, green, blue, &pixel);
++    grub_memmove(&eg->palette[idx], &pixel, sizeof pixel);
++}
++
++static void
++blank(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0};
++    grub_efi_graphics_output_mode_information_t *info;
++    grub_efi_uintn_t x, y, i, j;
++    unsigned char r = 0 ,g = 0;
++
++    info = get_graphics_mode_info(eg);
++    x = info->horizontal_resolution;
++    y = info->vertical_resolution;
++
++    if (x == 0 || y == 0)
++        return;
++
++    bltbuf = alloc_bltbuf(x, y);
++    for (j = 0; j < y; j++) {
++        if (debug_graphics && j % 16 == 0) {
++            g = g == 0 ? 7 : 0;
++            r = g == 0 ? 7 : 0;
++        }
++        for (i = 0; i < x; i++) {
++            if (debug_graphics && i % 16 == 0) {
++                g = g == 0 ? 7 : 0;
++                r = g == 0 ? 7 : 0;
++            }
++            pos.x = i;
++            pos.y = j;
++            bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
++        }
++    }
++
++    blt_to_screen(eg, bltbuf);
++
++    grub_free(bltbuf);
++}
++
++
++static void
++draw_white_box(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0}, bltpos = {0, 0}, bltsz = {100,100};
++
++    bltbuf = alloc_bltbuf(bltsz.x, bltsz.y);
++    for (pos.y = 0; pos.y < bltsz.y; pos.y++) {
++        for (pos.x = 0; pos.x < bltsz.x; pos.x++) {
++            bltbuf_set_pixel_rgb(bltbuf, &pos, 0xff, 0xff, 0xff);
++        }
++    }
++
++    blt_pos_to_screen_pos(eg, bltbuf, &bltpos, &bltsz, &pos);
++
++#if 0
++    Call_Service_10(eg->output_intf->blt, eg->output_intf, bltbuf->pixbuf,
++        GRUB_EFI_BLT_BUFFER_TO_VIDEO, 0, 0, 100, 100, x, y, 0);
++#endif
++
++    grub_free(bltbuf);
++}
++
++static void
++bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
++             struct bltbuf *s, position_t spos)
++{
++    grub_efi_graphics_output_pixel_t *dp, *sp;
++
++    const int xavail = MAX(0, s ? s->width - spos.x : 0);
++    const int xtotal = MAX(0, d->width - dpos.x);
++    const int xcp = MAX(0, MIN(xtotal, xavail));
++    const int xcl = MAX(0, xtotal - xcp);
++
++    const int yavail = MAX(0, s ? s->height - spos.y : 0);
++    const int ytotal = MAX(0, d->height - dpos.y);
++    const int ycp = MAX(0, MIN(ytotal, yavail));
++    const int ycl = MAX(0, ytotal - ycp);
++
++    int y, x;
++
++    for (y = 0; y < ytotal; y++) {
++        dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
++
++        if (y < yavail) {
++            sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
++            memmove(dp, sp, xcp * sizeof (*dp));
++            dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
++            memset(dp, '\0', xcl * sizeof (*dp));
++        } else {
++            memset(dp, '\0', xtotal * sizeof (*dp));
++        }
++    }
++}
++
++/* copy a region the size of bltbuf from the background into bltbuf,
++ * starting at offset bgpos
++ */
++static void
++bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
++        position_t bgpos)
++{
++    struct eg *eg = backend->priv;
++    position_t blpos = { 0, 0 };
++
++    bltbuf_cp_bl(bltbuf, blpos, eg->background, bgpos);
++}
++
++static void
++dbg_dump_palette(struct graphics_backend *backend)
++{
++    struct eg *eg;
++    int i;
++    if (!backend || !backend->priv)
++        return;
++    eg = backend->priv;
++    if (!eg->palette)
++        return;
++}
++
++static int
++is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
++                position_t fontsz)
++{
++    unsigned short *text = graphics_get_text_buf();
++    const unsigned char *glyph;
++    position_t glyphpos = { textpos.x, textpos.y };
++    position_t glyphbit = { bitpos.x, bitpos.y };
++    unsigned short ch;
++
++    if (glyphbit.x == 0) {
++        glyphbit.x = fontsz.x;
++        glyphpos.x--;
++    }
++    if (glyphbit.y == 0) {
++        glyphbit.y = fontsz.y;
++        glyphpos.y--;
++    }
++    glyphbit.x--;
++    glyphbit.y--;
++
++    if (glyphpos.x < 0 || glyphpos.y < 0)
++        return 0;
++
++    ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
++    glyph = font8x16 + (ch << 4);
++    return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
++}
++
++static void
++bltbuf_draw_character(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the bltbuf to draw into */
++        position_t target,      /* the position in the bltbuf to draw to */
++        position_t fontsz,      /* the size of the font, in pixels */
++        position_t charpos,     /* the position of the character in the text
++                                   screen buffer */
++        position_t screensz,    /* the size of the screen in characters */
++        unsigned short ch       /* the character to draw, plus flags */
++    )
++{
++    struct eg *eg = backend->priv;
++    position_t blpos;
++    position_t glyphpos;
++
++    blpos.y = target.y;
++    for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
++        blpos.x = target.x;
++        for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
++            int invert = (ch & 0x0100) != 0;
++            int set = (ch & 0x0200) != 0;
++            const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
++            int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
++            int idx = -1;
++
++            if (!set) {
++                if (invert)
++                    idx = bit ? 0 : 15;
++                else if (bit)
++                    idx = 15;
++
++                if (idx == -1) {
++                    if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
++                            !eg->background)
++                        idx = invert ? 15 : 0;
++                }
++            } else {
++                idx = bit ? 0 : 15;
++            }
++
++            if (idx != -1)
++                bltbuf_set_pixel_idx(eg, bltbuf, &blpos, idx);
++        }
++    }
++}
++
++static void
++bltbuf_draw_text(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the buffer to draw into */
++        position_t screensz,    /* the size of the screen in characters */
++        position_t fontsz,      /* the size of the font in pixels */
++        position_t txtpos,      /* the position of the text on the screen
++                                   (in characters) */
++        position_t txtsz        /* the size of the block to fill in
++                                   (in characters) */
++    )
++{
++    struct eg *eg = backend->priv;
++    unsigned short *text = graphics_get_text_buf();
++    position_t charpos;
++
++    for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
++        for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
++            int offset = charpos.y * screensz.x + charpos.x;
++            position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
++                                 (charpos.y-txtpos.y)*fontsz.y };
++
++            bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
++                    screensz, text[offset]);
++        }
++    }
++}
++
++static void
++clbl(struct graphics_backend *backend, int col, int row, int width, int height,
++        int draw_text)
++{
++    struct eg *eg = backend->priv;
++    struct xpm *xpm;
++
++    struct bltbuf *bltbuf;
++    position_t fontsz, blpos, blsz, screensz;
++    unsigned short *text;
++
++//    blank(backend);
++//
++    xpm = graphics_get_splash_xpm();
++    if (xpm && !eg->background)
++        eg->background = xpm_to_bltbuf(xpm);
++
++    graphics_get_screen_rowscols(&screensz);
++    width = MIN(width, screensz.x - col);
++    height = MIN(height, screensz.y - row);
++    graphics_get_font_size(&fontsz);
++
++    blsz.x = width * fontsz.x;
++    blsz.y = height * fontsz.y;
++
++    bltbuf = alloc_bltbuf(blsz.x, blsz.y);
++    if (!bltbuf)
++        return;
++
++    blsz.x = col * fontsz.x;
++    blsz.y = row * fontsz.y;
++
++    text = graphics_get_text_buf();
++    bltbuf_draw_bg(backend, bltbuf, blsz);
++
++    if (draw_text) {
++        blsz.x = width;
++        blsz.y = height;
++        blpos.x = col;
++        blpos.y = row;
++
++        bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
++    }
++
++    blpos.x = col * fontsz.x;
++    blpos.y = row * fontsz.y;
++
++    blt_to_screen_pos(eg, bltbuf, &blpos);
++}
++
++static void
++setup_cga_palette(struct eg *eg)
++{
++    rgb_to_pixel(0x00,0x00,0x00, &eg->palette[0]); //  0 Black
++    rgb_to_pixel(0x7f,0x00,0x00, &eg->palette[1]); //  1 Dark Red
++    rgb_to_pixel(0x00,0x7f,0x00, &eg->palette[2]); //  2 Dark Green
++    rgb_to_pixel(0x7f,0x7f,0x00, &eg->palette[3]); //  3 Dark Yellow
++    rgb_to_pixel(0x00,0x00,0x7f, &eg->palette[4]); //  4 Dark Blue
++    rgb_to_pixel(0x7f,0x00,0x7f, &eg->palette[5]); //  5 Dark Magenta
++    rgb_to_pixel(0x00,0x7f,0x7f, &eg->palette[6]); //  6 Dark Cyan
++    rgb_to_pixel(0xc0,0xc0,0xc0, &eg->palette[7]); //  7 Light Grey
++    rgb_to_pixel(0x7f,0x7f,0x7f, &eg->palette[8]); //  8 Dark Grey
++    rgb_to_pixel(0xff,0x00,0x00, &eg->palette[9]); //  9 Red
++    rgb_to_pixel(0x00,0xff,0x00, &eg->palette[10]); // 10 Green
++    rgb_to_pixel(0xff,0xff,0x00, &eg->palette[11]); // 11 Yellow
++    rgb_to_pixel(0x00,0x00,0xff, &eg->palette[12]); // 12 Blue
++    rgb_to_pixel(0xff,0x00,0xff, &eg->palette[13]); // 13 Magenta
++    rgb_to_pixel(0x00,0xff,0xff, &eg->palette[14]); // 14 Cyan
++    rgb_to_pixel(0xff,0xff,0xff, &eg->palette[15]); // 15 White
++    rgb_to_pixel(0xff,0xff,0xff, &eg->palette[16]); // 16 Also white ;)
++}
++
++static grub_efi_status_t
++set_video_mode(struct eg *eg, int mode)
++{
++      grub_efi_status_t efi_status;
++      efi_status = Call_Service_2(eg->output_intf->set_mode, eg->output_intf, mode);
++      return efi_status;
++}
++
++static void disable(struct graphics_backend *backend)
++{
++    struct eg *eg;
++
++    if (!backend)
++        return;
++
++    eg = backend->priv;
++    if (!eg || eg->current_mode != GRAPHICS)
++        return;
++
++#if 0
++    blank(backend);
++
++    set_video_mode(eg, eg->text_mode);
++    grub_efi_set_text_mode(1);
++#endif
++    eg->current_mode = TEXT;
++}
++
++static int
++fill_pixel_info (grub_pixel_info_t *pixel_info,
++               grub_efi_graphics_output_mode_information_t *mode_info)
++{
++  if (mode_info->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++    {
++      pixel_info->depth_bits = 32;
++      pixel_info->depth_bytes = 4;
++      pixel_info->red_size = 8;
++      pixel_info->red_pos = 0;
++      pixel_info->green_size = 8;
++      pixel_info->green_pos = 8;
++      pixel_info->blue_size = 8;
++      pixel_info->blue_pos = 16;
++      pixel_info->reserved_size = 8;
++      pixel_info->reserved_pos = 24;
++      pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
++    }
++  else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++    {
++      pixel_info->depth_bits = 32;
++      pixel_info->depth_bytes = 4;
++      pixel_info->red_size = 8;
++      pixel_info->red_pos = 16;
++      pixel_info->green_size = 8;
++      pixel_info->green_pos = 8;
++      pixel_info->blue_size = 8;
++      pixel_info->blue_pos = 0;
++      pixel_info->reserved_size = 8;
++      pixel_info->reserved_pos = 24;
++      pixel_info->line_length = mode_info->pixels_per_scan_line * 4;
++    }
++  else if (mode_info->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
++    {
++      find_bits (mode_info->pixel_information.red_mask,
++               &pixel_info->red_pos, &pixel_info->red_size);
++      find_bits (mode_info->pixel_information.green_mask,
++               &pixel_info->green_pos, &pixel_info->green_size);
++      find_bits (mode_info->pixel_information.blue_mask,
++               &pixel_info->blue_pos, &pixel_info->blue_size);
++      find_bits (mode_info->pixel_information.reserved_mask,
++               &pixel_info->reserved_pos, &pixel_info->reserved_size);
++      pixel_info->depth_bits = pixel_info->red_size + pixel_info->green_size +
++      pixel_info->blue_size + pixel_info->reserved_size;
++      pixel_info->depth_bytes = (pixel_info->depth_bits + 7) / 8;
++      pixel_info->line_length = mode_info->pixels_per_scan_line *
++      pixel_info->depth_bytes;
++    }
++  else
++    return 0;
++  return 1;
++}
++
++/* 1 = prefer a
++ * 0 = prefer neither
++ * -1 = prefer b
++ */
++static int
++modecmp_helper(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
++{
++        grub_efi_graphics_output_mode_information_t *a = amode->info;
++        grub_efi_graphics_output_mode_information_t *b = bmode->info;
++
++        if (a != NULL && b == NULL)
++                return 1;
++        if (a == NULL && b == NULL)
++                return 0;
++        if (a == NULL && b != NULL)
++                return -1;
++
++#if 0
++      if (amode->number == eg->graphics_mode && bmode->number != eg->graphics_mode)
++              return 1;
++      if (amode->number == eg->graphics_mode && bmode->number == eg->graphics_mode)
++              return 0;
++      if (amode->number != eg->graphics_mode && bmode->number == eg->graphics_mode)
++              return -1;
++#endif
++
++
++      /* kernel doesn't deal with blt only modes, so prefer against them. */
++        if (a->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
++                        b->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
++                return 1;
++        if (b->pixel_format != GRUB_EFI_PIXEL_BLT_ONLY &&
++                        a->pixel_format == GRUB_EFI_PIXEL_BLT_ONLY)
++                return -1;
++
++      /* XXX PJFIX there's something wrong with what we're passing to the
++       * kernel for stride in the bgrr/rgbr modes, and I haven't figured out
++       * just what yet, so for now, prefer bitmask modes.
++       */
++      if (a->pixel_format == GRUB_EFI_PIXEL_BIT_MASK &&
++                      b->pixel_format != GRUB_EFI_PIXEL_BIT_MASK)
++              return 1;
++      if (a->pixel_format != GRUB_EFI_PIXEL_BIT_MASK &&
++                      b->pixel_format == GRUB_EFI_PIXEL_BIT_MASK)
++              return -1;
++
++        if (a->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++                      b->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++              return 1;
++        if (a->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++                      b->pixel_format == GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR)
++              return -1;
++
++        if (a->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++                      b->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++              return 1;
++        if (a->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++                      b->pixel_format == GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR)
++              return -1;
++
++        if (a->horizontal_resolution > b->horizontal_resolution &&
++                        a->vertical_resolution > b->vertical_resolution)
++                return 1;
++        if (a->horizontal_resolution < b->horizontal_resolution &&
++                        a->vertical_resolution < b->vertical_resolution)
++                return -1;
++        return 0;
++}
++
++static int
++modecmp(struct eg *eg, struct video_mode *amode, struct video_mode *bmode)
++{
++        int rc;
++#if 0
++        grub_efi_graphics_output_mode_information_t *a = amode->info;
++        grub_efi_graphics_output_mode_information_t *b = bmode->info;
++#endif
++        rc = modecmp_helper(eg, amode, bmode);
++#if 0
++        grub_printf("comparing nodes:\n");
++        print_mode_info(amode);
++        print_mode_info(bmode);
++        if (rc > 0)
++                grub_printf("result: a > b\n");
++        else if (rc < 0)
++                grub_printf("result: a < b\n");
++        else
++                grub_printf("result: a == b\n");
++
++        //dbgdelay(__FILE__, __LINE__);
++#endif
++        return rc;
++}
++
++static void
++modeswap(struct video_mode *amode, struct video_mode *bmode)
++{
++        struct video_mode tmp;
++
++        memcpy(&tmp, amode, sizeof (tmp));
++        memcpy(amode, bmode, sizeof (tmp));
++        memcpy(bmode, &tmp, sizeof(tmp));
++}
++
++static void
++sort_modes(struct eg *eg, int p, int r)
++{
++      struct video_mode **modes = eg->modes;
++
++        int i, j;
++      for (i = 0; i < eg->max_mode; i++) {
++              for (j = i + 1; j < eg->max_mode; j++) {
++                      if (modecmp(eg, modes[j], modes[i]) < 0)
++                              modeswap(modes[j], modes[i]);
++              }
++      }
++}
++
++static int
++try_enable(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    grub_efi_status_t efi_status = GRUB_EFI_UNSUPPORTED;
++    int i;
++
++    if (eg->text_mode == 0xffffffff) {
++        grub_efi_set_text_mode(1);
++        eg->text_mode = eg->output_intf->mode->mode;
++    }
++
++    if (eg->graphics_mode == 0xffffffff) {
++        grub_efi_graphics_output_mode_information_t *info;
++
++        if (!graphics_alloc_text_buf())
++            return 0;
++
++        grub_efi_set_text_mode(0);
++        eg->graphics_mode = eg->output_intf->mode->mode;
++        grub_efi_set_text_mode(1);
++#if 0
++      dprintf("graphics mode is %d\n", eg->graphics_mode);
++      /* this is okay here because we haven't sorted yet.*/
++      print_mode_info(eg->modes[eg->graphics_mode]);
++      dprintf("text mode is %d\n", eg->text_mode);
++      print_mode_info(eg->modes[eg->text_mode]);
++#endif
++
++        sort_modes(eg, 0, eg->max_mode-1);
++
++#if 0
++        for (i = eg->max_mode - 1; i >= 0; i--)
++            print_mode_info(eg->modes[i]);
++      dbgdelay(__FILE__, __LINE__);
++#endif
++
++      efi_status = GRUB_EFI_UNSUPPORTED;
++
++        for (i = eg->max_mode - 1; i >= 0; i--) {
++            if (!eg->modes[i])
++                continue;
++
++            info = eg->modes[i]->info;
++
++#if 0
++            if (info->pixel_format != GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR &&
++                 info->pixel_format != GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR &&
++                 info->pixel_format != GRUB_EFI_PIXEL_BIT_MASK) {
++                continue;
++            }
++#endif
++
++            grub_efi_set_text_mode(0);
++            efi_status = set_video_mode(eg, eg->modes[i]->number);
++            if (efi_status == GRUB_EFI_SUCCESS) {
++#if 0
++                grub_efi_set_text_mode(1);
++              dprintf("switched to mode %d successfully\n",
++                      eg->modes[i]->number);
++              dbgdelay(__FILE__,__LINE__);
++                grub_efi_set_text_mode(0);
++#endif
++                eg->graphics_mode = eg->modes[i]->number;
++              fill_pixel_info(&eg->pixel_info, info);
++                break;
++            } else {
++#if 0
++                set_video_mode(eg, eg->text_mode);
++                grub_efi_set_text_mode(1);
++              dprintf("return code was %d\n", efi_status);
++#endif
++            }
++        }
++        if (efi_status != GRUB_EFI_SUCCESS) {
++#if 1
++            grub_efi_set_text_mode(1);
++            set_video_mode(eg, eg->text_mode);
++#endif
++            return 0;
++        }
++
++    }
++
++    eg->current_mode = GRAPHICS;
++    return 1;
++}
++
++static int
++enable(struct graphics_backend *backend)
++{
++    struct eg *eg = backend->priv;
++    int i;
++
++    if (eg) {
++        if (eg->current_mode == GRAPHICS) {
++            return 1;
++        }
++    } else {
++        grub_efi_status_t efi_status;
++      grub_efi_handle_t *handle, *handles;
++      grub_efi_uintn_t num_handles;
++      grub_efi_pci_io_t *pci_proto;
++
++        if (!(eg = grub_malloc(sizeof (*eg))))
++            return 0;
++
++        grub_memset(eg, '\0', sizeof (*eg));
++
++        eg->backend = backend;
++        eg->current_mode = TEXT;
++
++      handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
++                                        &graphics_output_guid,
++                                        NULL, &num_handles);
++
++      if (!num_handles || !handles)
++        goto fail;
++
++      for (handle = handles; num_handles--; handle++)
++        {
++          pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
++                                       GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++          if (!pci_proto)
++            continue;
++
++          eg->output_intf = grub_efi_open_protocol (*handle,
++                 &graphics_output_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++          if (eg->output_intf)
++            {
++              grub_efi_setup_gfx_pci(*handle);
++              break;
++            }
++        }
++
++      grub_free(handles);
++
++      if (!eg->output_intf)
++          eg->output_intf = grub_efi_locate_protocol(&graphics_output_guid, NULL);
++
++        if (!eg->output_intf)
++            goto fail;
++
++        eg->text_mode = eg->graphics_mode = 0xffffffff;
++
++        eg->max_mode = eg->output_intf->mode->max_mode;
++        eg->modes = grub_malloc(eg->max_mode * sizeof (void *));
++        if (!eg->modes)
++            goto fail;
++        memset(eg->modes, '\0', eg->max_mode * sizeof (void *));
++
++        for (i = 0; i < eg->max_mode; i++) {
++            eg->modes[i] = grub_malloc(sizeof *(eg->modes[0]));
++            if (!eg->modes[i])
++                goto fail;
++            memset(eg->modes[i], '\0', sizeof *(eg->modes[0]));
++            eg->modes[i]->number = i;
++
++            efi_status = Call_Service_4(eg->output_intf->query_mode,
++                    eg->output_intf, i, &eg->modes[i]->size,
++                    &eg->modes[i]->info);
++          if (efi_status == GRUB_EFI_NOT_STARTED) {
++              /* The firmware didn't turn on GRAPHICS_OUTPUT_PROTOCOL, so
++               * try to do so ourselves. Thanks, Intel. */
++              set_video_mode(eg, eg->output_intf->mode->mode);
++              efi_status = Call_Service_4(eg->output_intf->query_mode,
++                    eg->output_intf, i, &eg->modes[i]->size,
++                    &eg->modes[i]->info);
++          }
++            if (efi_status != GRUB_EFI_SUCCESS) {
++                grub_free(eg->modes[i]);
++                eg->modes[i] = NULL;
++                //eg->max_mode = i;
++                break;
++            }
++        }
++
++        backend->priv = eg;
++        setup_cga_palette(eg);
++        for (i = 0; i < n_cga_colors; i++) {
++            eg->palette[i].bgrr.red = cga_colors[i].bgrr.red;
++            eg->palette[i].bgrr.green = cga_colors[i].bgrr.green;
++            eg->palette[i].bgrr.blue = cga_colors[i].bgrr.blue;
++        }
++    }
++
++    if (try_enable(backend)) {
++        reset_screen_geometry(backend);
++        return 1;
++    }
++
++fail:
++    backend->priv = NULL;
++    if (eg->modes) {
++        for (i = 0; i < eg->max_mode; i++) {
++            if (eg->modes[i])
++                grub_free(eg->modes[i]);
++        }
++        grub_free(eg->modes);
++    }
++    grub_free(eg);
++    return 0;
++}
++
++struct graphics_backend eg_backend = {
++    .name = "eg",
++    .enable = enable,
++    .disable = disable,
++    .set_kernel_params = set_kernel_params,
++    .clbl = clbl,
++    .set_palette = set_palette,
++    .get_pixel_idx = get_pixel_idx,
++    .get_pixel_rgb = get_pixel_rgb,
++    .draw_pixel = draw_pixel,
++    .reset_screen_geometry = reset_screen_geometry,
++    .get_screen_size = get_screen_size,
++    .getxy = eg_getxy,
++    .setxy = setxy,
++    .gotoxy = NULL,
++    .cursor = cursor,
++};
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/efimain.c b/efi/efimain.c
+new file mode 100644
+index 0000000..e1a1e66
+--- /dev/null
++++ b/efi/efimain.c
+@@ -0,0 +1,129 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2007 Intel Corp.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <efistubs.h>
++
++#include "pxe.h"
++
++#define GRUB_SCRATCH_MEM_PAGES  (GRUB_SCRATCH_MEM_SIZE >> 12)
++
++/* Emulation requirements. */
++void *grub_scratch_mem = NULL;
++
++#define LOW_STACK_SIZE  0x100000
++#define LOW_STACK_PAGES (LOW_STACK_SIZE >> 12)
++static void *low_stack, *real_stack;
++
++extern int grub_test_pxe(grub_efi_loaded_image_t *loaded_image);
++
++static void
++real_main (void)
++{
++  grub_efi_loaded_image_t *loaded_image;
++  char *path_name = NULL;
++
++  loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
++
++  path_name = grub_efi_pxe_get_config_path(loaded_image);
++
++  if (path_name) {
++    network_ready = 1;
++
++    grub_set_config_file (path_name);
++    grub_free (path_name);
++  } else {
++      grub_get_drive_partition_from_bdev_handle (loaded_image->device_handle,
++                                               &boot_drive,
++                                               &install_partition);
++      path_name = grub_efi_file_path_to_path_name (loaded_image->file_path);
++
++    if (path_name)
++      {
++        grub_set_config_file (path_name);
++        grub_free (path_name);
++      }
++
++    grub_load_saved_default (loaded_image->device_handle);
++  }
++
++  init_bios_info ();
++  while (console_getkey() < 0)
++    grub_efi_stall(1000);
++}
++
++grub_efi_status_t
++efi_main (grub_efi_handle_t image_handle, grub_efi_system_table_t *sys_tab)
++{
++  grub_efi_image_handle = image_handle;
++  grub_efi_system_table = sys_tab;
++  grub_efi_init ();
++
++  grub_scratch_mem = grub_efi_allocate_pages (0, GRUB_SCRATCH_MEM_PAGES);
++  if (! grub_scratch_mem)
++    {
++      grub_printf ("Failed to allocate scratch mem!\n");
++      return GRUB_EFI_OUT_OF_RESOURCES;
++    }
++
++  /* If current stack reside in memory region > 2G, switch stack to a
++     memory region < 2G */
++  if ((unsigned long)&image_handle >= 0x80000000UL)
++    {
++      low_stack = grub_efi_allocate_pages (0, LOW_STACK_PAGES);
++      if (! low_stack)
++      {
++        grub_printf("Failed to allocate low memory stack!\n");
++        return GRUB_EFI_OUT_OF_RESOURCES;
++      }
++
++#ifdef __x86_64__
++      asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
++                  : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
++#else
++      asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
++                  : "=&r" (real_stack) : "r" (low_stack+LOW_STACK_SIZE));
++#endif
++    }
++
++  real_main ();
++
++  if (real_stack) {
++#ifdef __x86_64__
++    asm volatile ("movq %0, %%rsp\n" : : "r" (real_stack));
++#else
++    asm volatile ("movl %0, %%esp\n" : : "r" (real_stack));
++#endif
++
++    grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long) low_stack,
++                       LOW_STACK_PAGES);
++  }
++
++  grub_efi_free_pages ((grub_efi_physical_address_t)(unsigned long)grub_scratch_mem,
++                     GRUB_SCRATCH_MEM_PAGES);
++  grub_efi_fini ();
++
++  return GRUB_EFI_SUCCESS;
++}
+diff --git a/efi/efimisc.c b/efi/efimisc.c
+new file mode 100644
+index 0000000..480ba25
+--- /dev/null
++++ b/efi/efimisc.c
+@@ -0,0 +1,665 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <config.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/time.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++
++unsigned long install_partition = 0x20000;
++unsigned long boot_drive = 0x80;
++int saved_entryno = 0;
++char version_string[] = VERSION;
++char config_file[128] = "/boot/grub/menu.lst";
++unsigned short io_map[IO_MAP_SIZE];
++struct apm_info apm_bios_info;
++/* The key map.  */
++unsigned short bios_key_map[KEY_MAP_SIZE + 1];
++unsigned short ascii_key_map[KEY_MAP_SIZE + 1];
++
++void
++grub_efi_init (void)
++{
++  /* First of all, initialize the console so that GRUB can display
++     messages.  */
++  grub_console_init ();
++  /* Initialize the memory management system.  */
++  grub_efi_mm_init ();
++  grub_efidisk_init ();
++}
++
++void
++grub_efi_fini (void)
++{
++  grub_efidisk_fini ();
++  grub_efi_mm_fini ();
++  grub_console_fini ();
++}
++
++void *
++grub_malloc (grub_size_t size)
++{
++  return grub_efi_allocate_pool (size);
++}
++
++void
++grub_free (void *p)
++{
++  grub_efi_free_pool (p);
++}
++
++char *
++grub_stpcpy (char *dest, const char *src)
++{
++  char *d = dest;
++  const char *s = src;
++
++  do
++    *d++ = *s;
++  while (*s++ != '\0');
++
++  return d - 1;
++}
++
++void
++grub_fatal (const char *fmt, ...)
++{
++  va_list ap;
++
++  va_start (ap, fmt);
++  grub_vsprintf (NULL, fmt, ap);
++  va_end (ap);
++
++  grub_exit ();
++}
++
++void
++grub_real_dprintf (const char *file, const int line, const char *condition,
++                 const char *fmt, ...)
++{
++  va_list args;
++
++  if (! debug)
++    return;
++
++  grub_printf ("%s:%d: ", file, line);
++  va_start (args, fmt);
++  grub_vsprintf (0, fmt, args);
++  va_end (args);
++}
++
++grub_size_t
++grub_utf8_char_len(grub_uint8_t ch)
++{
++  return ((0xe5000000 >> ((ch >> 3) & 0x1e)) & 3) + 1;
++}
++
++#define UTF8_SHIFT_AND_MASK(unicode, byte)  (unicode)<<=6; (unicode) |= (0x3f & (byte))
++
++/* convert utf8 to utf32 */
++grub_uint32_t
++grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length)
++{
++  grub_uint32_t unicode;
++
++  switch (length)
++    {
++    case 1:
++      return src[0];
++    case 2:
++      unicode = src[0] & 0x1f;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      return unicode;
++    case 3:
++      unicode = src[0] & 0x0f;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      UTF8_SHIFT_AND_MASK(unicode, src[2]);
++      return unicode;
++    case 4:
++      unicode = src[0] & 0x07;
++      UTF8_SHIFT_AND_MASK(unicode, src[1]);
++      UTF8_SHIFT_AND_MASK(unicode, src[2]);
++      UTF8_SHIFT_AND_MASK(unicode, src[3]);
++      return unicode;
++    default:
++      return 0xffff;
++    }
++}
++
++/* convert utf8 to utf16 */
++void
++grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
++                 grub_uint16_t *dst, grub_size_t dstlen)
++{
++  const grub_uint8_t *end = src + srclen;
++  grub_efi_char16_t *dstend = dst + dstlen;
++
++  while (src < end && dst < dstend)
++    {
++      grub_size_t len = grub_utf8_char_len(*src);
++      /* get the utf32 codepoint */
++      grub_uint32_t codepoint = grub_utf8_to_utf32(src, len);
++
++      /* convert that codepoint to utf16 codepoints */
++      if (codepoint <= 0xffff)
++      {
++        /* it's a single utf16 character */
++        *dst++ = (grub_efi_char16_t) codepoint;
++      }
++      else
++      {
++        /* it's multiple utf16 characters, with surrogate pairs */
++        codepoint = codepoint - 0x10000;
++        *dst++ = (grub_efi_char16_t) ((codepoint >> 10) + 0xd800);
++        *dst++ = (grub_efi_char16_t) ((codepoint & 0x3ff) + 0xdc00);
++      }
++
++      src += len;
++    }
++
++  if (dst < dstend)
++    *dst = 0;
++}
++
++/* Convert UTF-16 to UTF-8.  */
++grub_uint8_t *
++grub_utf16_to_utf8 (grub_uint8_t *dest, grub_uint16_t *src,
++                  grub_size_t size)
++{
++  grub_uint32_t code_high = 0;
++
++  while (size--)
++    {
++      grub_uint32_t code = *src++;
++
++      if (code_high)
++      {
++        if (code >= 0xDC00 && code <= 0xDFFF)
++          {
++            /* Surrogate pair.  */
++            code = ((code_high - 0xD800) << 12) + (code - 0xDC00) + 0x10000;
++
++            *dest++ = (code >> 18) | 0xF0;
++            *dest++ = ((code >> 12) & 0x3F) | 0x80;
++            *dest++ = ((code >> 6) & 0x3F) | 0x80;
++            *dest++ = (code & 0x3F) | 0x80;
++          }
++        else
++          {
++            /* Error...  */
++            *dest++ = '?';
++          }
++
++        code_high = 0;
++      }
++      else
++      {
++        if (code <= 0x007F)
++          *dest++ = code;
++        else if (code <= 0x07FF)
++          {
++            *dest++ = (code >> 6) | 0xC0;
++            *dest++ = (code & 0x3F) | 0x80;
++          }
++        else if (code >= 0xD800 && code <= 0xDBFF)
++          {
++            code_high = code;
++            continue;
++          }
++        else if (code >= 0xDC00 && code <= 0xDFFF)
++          {
++            /* Error... */
++            *dest++ = '?';
++          }
++        else
++          {
++            *dest++ = (code >> 16) | 0xE0;
++            *dest++ = ((code >> 12) & 0x3F) | 0x80;
++            *dest++ = (code & 0x3F) | 0x80;
++          }
++      }
++    }
++
++  return dest;
++}
++
++/* low-level timing info */
++int
++getrtsecs (void)
++{
++  return grub_get_rtc() / GRUB_TICKS_PER_SECOND;
++}
++
++void
++grub_reboot (void)
++{
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  Call_Service_4 (r->reset_system, GRUB_EFI_RESET_COLD,
++                GRUB_EFI_SUCCESS, 0, NULL);
++  for (;;);
++}
++
++void
++grub_halt (int no_apm)
++{
++  grub_efi_runtime_services_t *r;
++
++  r = grub_efi_system_table->runtime_services;
++  Call_Service_4 (r->reset_system, GRUB_EFI_RESET_SHUTDOWN,
++                GRUB_EFI_SUCCESS, 0, NULL);
++  for (;;);
++}
++
++void
++stop (void)
++{
++  grub_exit ();
++}
++
++/* booting a multiboot executable */
++void
++multi_boot (int start, int mb_info)
++{
++  stop ();
++}
++
++/* sets it to linear or wired A20 operation */
++void
++gateA20 (int linear)
++{
++}
++
++/* Set up the int15 handler.  */
++void
++set_int15_handler (void)
++{
++}
++
++/* Restore the original int15 handler.  */
++void
++unset_int15_handler (void)
++{
++}
++
++/* Copy MAP to the drive map and set up the int13 handler.  */
++void
++set_int13_handler (unsigned short *map)
++{
++}
++
++/* Get the ROM configuration table.  */
++unsigned long
++get_rom_config_table (void)
++{
++  return 0;
++}
++
++/* Get APM BIOS information.  */
++void
++get_apm_info (void)
++{
++  /* Nothing to do in the simulator.  */
++}
++
++void
++stop_floppy (void)
++{
++  /* NOTUSED */
++}
++
++char *
++grub_strndup (const char *s, int n)
++{
++  int l = grub_strnlen(s, n);
++  char *new = grub_malloc(l + 1);
++
++  if (new == NULL)
++    return NULL;
++
++  new[l] = '\0';
++  return grub_strncpy(new, s, l);
++}
++
++int
++safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr)
++{
++  char *ptr = *str_ptr;
++  unsigned long myulong = 0;
++  unsigned int mult = 10, found = 0;
++
++  /*
++   *  Is this a hex number?
++   */
++  if (*ptr == '0' && tolower (*(ptr + 1)) == 'x')
++    {
++      ptr += 2;
++      mult = 16;
++    }
++
++  while (1)
++    {
++      /* A bit tricky. This below makes use of the equivalence:
++       (A >= B && A <= C) <=> ((A - B) <= (C - B))
++       when C > B and A is unsigned.  */
++      unsigned int digit;
++
++      digit = tolower (*ptr) - '0';
++      if (digit > 9)
++      {
++        digit -= 'a' - '0';
++        if (mult == 10 || digit > 5)
++          break;
++        digit += 10;
++      }
++
++      found = 1;
++      if (myulong > ((~0UL - digit) / mult))
++      {
++        errnum = ERR_NUMBER_OVERFLOW;
++        return 0;
++      }
++      myulong = (myulong * mult) + digit;
++      ptr++;
++    }
++
++  if (!found)
++    {
++      errnum = ERR_NUMBER_PARSING;
++      return 0;
++    }
++
++  *str_ptr = ptr;
++  *myulong_ptr = myulong;
++
++  return 1;
++}
++
++int
++currticks (void)
++{
++  return grub_get_rtc ();
++}
++
++static char *
++fix_path_name (char *path_name)
++{
++  char *p1, *p2;
++
++  p1 = path_name;
++  p2 = p1 + 1;
++  if (*p1 == '\\')
++    *p1 = '/';
++  while (*p1)
++    {
++      switch (*p2)
++      {
++      case '\0':
++        *++p1 = *p2;
++        break;
++      case '.':
++        if (*p1 == '/' && *(p2+1) == '\\')
++          p2 += 2;
++        else
++          *++p1=*p2++;
++        break;
++      case '\\':
++        if (*p1 == '/')
++          p2++;
++        else
++          *++p1 = '/';
++        break;
++      default:
++        *++p1=*p2++;
++        break;
++      }
++    }
++  return path_name;
++}
++
++char *
++grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path)
++{
++  char *str;
++  grub_efi_uint32_t str_len = 16;
++  grub_efi_uint32_t str_pos = 0;
++
++  str = grub_malloc (str_len);
++  if (! str)
++    return NULL;
++  str[0] = '\0';
++
++  while (1)
++    {
++      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (file_path);
++      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (file_path);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (file_path);
++
++      switch (type)
++      {
++      case GRUB_EFI_MEDIA_DEVICE_PATH_TYPE:
++        switch (subtype)
++          {
++          case GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE:
++            {
++              grub_efi_file_path_device_path_t *fp;
++              grub_uint8_t buf[(len - 4) * 2 + 2];
++              grub_uint32_t path_name_len;
++              char *tmp_str;
++
++              fp = (grub_efi_file_path_device_path_t *) file_path;
++              *grub_utf16_to_utf8 (buf, fp->path_name,
++                                   (len - 4) / sizeof (grub_efi_char16_t))
++                = '\0';
++              path_name_len = strlen ((char *)buf) + 1;
++              if ((str_len - str_pos) <= path_name_len)
++                {
++                  do
++                    str_len *= 2;
++                  while ((str_len - str_pos) <= path_name_len);
++                  tmp_str = grub_malloc (str_len);
++                  if (tmp_str == NULL)
++                    goto fail;
++                  grub_memmove (tmp_str, str, str_pos);
++                  grub_free (str);
++                  str = tmp_str;
++                }
++              str[str_pos] = '\\';
++              strcpy (str + str_pos + 1, (char *)buf);
++              str_pos += path_name_len;
++            }
++            break;
++          default:
++            break;
++          }
++        break;
++      default:
++        break;
++      }
++
++      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (file_path))
++      break;
++
++      file_path = (grub_efi_device_path_t *) ((char *) file_path + len);
++    }
++  return fix_path_name (str);
++
++ fail:
++  grub_free (str);
++  return NULL;
++}
++
++#define DEFAULT_SAVED_DEFAULT_FILE_NAME               "grub.default"
++#define DEFAULT_CONFIG_FILE_NAME              "grub.conf"
++
++static char saved_default_file[128] = "/boot/grub/grub.default";
++
++void
++grub_set_config_file (char *path_name)
++{
++  char *dir_end;
++  grub_uint32_t path_name_len;
++
++  path_name_len = strlen (path_name);
++  if (path_name_len > 4
++      && path_name[path_name_len - 4] == '.'
++      && grub_tolower (path_name[path_name_len - 3]) == 'e'
++      && grub_tolower (path_name[path_name_len - 2]) == 'f'
++      && grub_tolower (path_name[path_name_len - 1]) == 'i')
++    {
++      /* Bigger than buffer of config_file */
++      if (path_name_len + 1 > 127)
++      return;
++      grub_memmove (config_file, path_name, path_name_len - 4);
++      grub_strcpy (config_file + path_name_len - 4, ".conf");
++      /* Bigger than buffer of default file */
++      if (path_name_len + 4 > 127)
++      return;
++      grub_memmove (saved_default_file, path_name, path_name_len - 4);
++      grub_strcpy (saved_default_file + path_name_len - 4, ".default");
++      return;
++    }
++  dir_end = grub_strrchr (path_name, '/');
++  if (! dir_end)
++    {
++      grub_strcpy (config_file, DEFAULT_CONFIG_FILE_NAME);
++      grub_strcpy (saved_default_file, DEFAULT_SAVED_DEFAULT_FILE_NAME);
++      return;
++    }
++  if (strlen(dir_end) == 1) {
++    path_name_len = dir_end + 1 - path_name;
++    if (path_name_len + sizeof (DEFAULT_CONFIG_FILE_NAME) > 128)
++      return;
++    grub_memmove (config_file, path_name, path_name_len);
++    grub_strcpy (config_file + path_name_len, DEFAULT_CONFIG_FILE_NAME);
++  } else {
++    grub_memmove (config_file, path_name, path_name_len+1);
++  }
++  if (path_name_len + sizeof (DEFAULT_SAVED_DEFAULT_FILE_NAME) > 128)
++    return;
++  path_name_len = dir_end + 1 - path_name;
++  grub_memmove (saved_default_file, path_name, path_name_len);
++  grub_strcpy (saved_default_file + path_name_len,
++             DEFAULT_SAVED_DEFAULT_FILE_NAME);
++}
++
++grub_efi_guid_t simple_file_system_guid = GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID;
++
++static grub_efi_file_t *
++simple_open_file(grub_efi_handle_t dev_handle,
++               char *file_name,
++               int for_write)
++{
++  grub_efi_simple_file_system_t *file_system;
++  grub_efi_file_t *root;
++  grub_efi_file_t *file = NULL;
++  grub_efi_status_t status;
++  grub_efi_char16_t *file_name_w = NULL;
++  grub_efi_char16_t *chp_w;
++  grub_efi_uint64_t open_mode;
++
++  file_system = grub_efi_open_protocol (dev_handle,
++                                      &simple_file_system_guid,
++                                      GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++  if (! file_system)
++    return NULL;
++  status = Call_Service_2 (file_system->open_volume, file_system, &root);
++  if (status != GRUB_EFI_SUCCESS)
++    return NULL;
++  file_name_w = grub_malloc (2 * strlen(file_name) + 2);
++  if (! file_name_w)
++    goto done;
++  for (chp_w = file_name_w; *file_name; chp_w++, file_name++)
++    if (*file_name == '/')
++      *chp_w = '\\';
++    else
++      *chp_w = *file_name;
++  *chp_w = '\0';
++  open_mode = for_write ? GRUB_EFI_FILE_MODE_READ | GRUB_EFI_FILE_MODE_WRITE \
++    | GRUB_EFI_FILE_MODE_CREATE : GRUB_EFI_FILE_MODE_READ;
++  status = Call_Service_5 (root->open, root, &file, file_name_w,
++                         open_mode, 0);
++ done:
++  if (file_name_w)
++    grub_free (file_name_w);
++  Call_Service_1 (root->close, root);
++  return file;
++}
++
++void
++grub_load_saved_default (grub_efi_handle_t dev_handle)
++{
++  grub_efi_file_t *file;
++  char buf[16];
++  char *ptr = buf;
++  grub_efi_status_t status;
++  int val;
++  grub_efi_uintn_t buf_size = sizeof(buf);
++
++  file = simple_open_file (dev_handle, saved_default_file, 0);
++  if (! file)
++    return;
++  status = Call_Service_3 (file->read, file, &buf_size, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    goto done;
++  if (buf_size >= sizeof(buf))
++    buf_size = sizeof(buf) - 1;
++  buf[buf_size] = '\0';
++  if (safe_parse_maxint (&ptr, &val))
++    saved_entryno = val;
++ done:
++  Call_Service_1 (file->close, file);
++}
++
++int
++grub_save_saved_default (int new_default)
++{
++  grub_efi_loaded_image_t *loaded_image;
++  grub_efi_file_t *file;
++  char buf[16];
++  grub_efi_status_t status;
++  grub_efi_uintn_t buf_size;
++  int ret = 0;
++
++  loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle);
++  file = simple_open_file (loaded_image->device_handle,
++                         saved_default_file, 1);
++  if (! file)
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++  sprintf (buf, "%d", new_default);
++  buf_size = strlen (buf);
++  status = Call_Service_3 (file->write, file, &buf_size, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      errnum = ERR_WRITE;
++      ret = 1;
++      goto done;
++    }
++ done:
++  Call_Service_1 (file->close, file);
++  return ret;
++}
+diff --git a/efi/efimm.c b/efi/efimm.c
+new file mode 100644
+index 0000000..836188d
+--- /dev/null
++++ b/efi/efimm.c
+@@ -0,0 +1,539 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#include <config.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)    \
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define BYTES_TO_PAGES(bytes) ((bytes) >> 12)
++#define PAGES_TO_BYTES(pages) ((pages) << 12)
++
++/* Global variables used to store memory map, its size, and the number of
++ * pages allocated for the buffer. */
++void *mmap_buf;
++grub_efi_uintn_t mmap_size;
++grub_efi_uintn_t mmap_pages;
++
++/* Maintain the list of allocated pages.  */
++struct allocated_page
++{
++  grub_efi_physical_address_t addr;
++  grub_efi_uint64_t num_pages;
++};
++
++#define ALLOCATED_PAGES_SIZE  0x1000
++#define MAX_ALLOCATED_PAGES   \
++  (ALLOCATED_PAGES_SIZE / sizeof (struct allocated_page))
++
++static struct allocated_page *allocated_pages = 0;
++
++/* The minimum and maximum heap size for GRUB itself.  */
++#define MIN_HEAP_SIZE 0x100000
++#define MAX_HEAP_SIZE (16 * 0x100000)
++
++
++void *
++grub_efi_allocate_pool (grub_efi_uintn_t size)
++{
++  grub_efi_status_t status;
++  void *p;
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_3(b->allocate_pool, GRUB_EFI_LOADER_DATA, size, &p);
++  if (status != GRUB_EFI_SUCCESS)
++    return NULL;
++
++  return p;
++}
++
++void
++grub_efi_free_pool (void *buffer)
++{
++  grub_efi_boot_services_t *b;
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_1(b->free_pool, buffer);
++}
++
++void *
++grub_efi_allocate_anypages(grub_efi_uintn_t pages)
++{
++  grub_efi_boot_services_t *b;
++  grub_efi_status_t status;
++  grub_efi_physical_address_t address;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_4 (b->allocate_pages,
++                          GRUB_EFI_ALLOCATE_ANY_PAGES,
++                          GRUB_EFI_LOADER_DATA,
++                          pages,
++                          &address);
++  if (status != GRUB_EFI_SUCCESS)
++      return 0;
++
++  if (allocated_pages)
++     {
++       unsigned i;
++ 
++       for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++      if (allocated_pages[i].addr == 0)
++        {
++              allocated_pages[i].addr = address;
++              allocated_pages[i].num_pages = pages;
++              break;
++        }
++ 
++       if (i == MAX_ALLOCATED_PAGES)
++        {
++           grub_printf ("too many page allocations");
++           return NULL;
++        }
++     }
++ 
++  return (void *) ((grub_addr_t) address);
++
++}
++
++/* Allocate pages. Return the pointer to the first of allocated pages.  */
++static void *
++grub_efi_allocate_pages_real (grub_efi_physical_address_t address,
++                            grub_efi_uintn_t pages,
++                            grub_efi_memory_type_t memtype)
++{
++  grub_efi_allocate_type_t type;
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++
++  /* Limit the memory access to less than 2GB to avoid 64bit
++   * compatible problem of grub  */
++  if (address > 0x7fffffff)
++    return 0;
++
++  if (address == 0)
++    {
++      type = GRUB_EFI_ALLOCATE_MAX_ADDRESS;
++      address = 0x7fffffff;
++    }
++  else
++    type = GRUB_EFI_ALLOCATE_ADDRESS;
++
++  b = grub_efi_system_table->boot_services;
++  status = Call_Service_4 (b->allocate_pages, type,
++                         memtype, pages, &address);
++
++  if (status != GRUB_EFI_SUCCESS)
++    {
++      /* EFI_NOT_FOUND means the region was unavailable, which means we can
++       probably just use it. This is only for hacks to start with */
++      if (memtype == GRUB_EFI_RUNTIME_SERVICES_DATA &&
++        status == GRUB_EFI_NOT_FOUND)
++      return (void *) ((grub_addr_t) address);
++      else
++      return 0;
++    }
++
++  if (address == 0)
++    {
++      /* Uggh, the address 0 was allocated... This is too annoying,
++       so reallocate another one.  */
++      address = 0x7fffffff;
++      status = Call_Service_4 (b->allocate_pages,
++                              type, GRUB_EFI_LOADER_DATA, pages, &address);
++      grub_efi_free_pages (0, pages);
++      if (status != GRUB_EFI_SUCCESS)
++      return 0;
++    }
++
++  /* We don't want to free anything we've allocated for runtime */
++  if (allocated_pages && memtype != GRUB_EFI_RUNTIME_SERVICES_DATA)
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++      if (allocated_pages[i].addr == 0)
++        {
++          allocated_pages[i].addr = address;
++          allocated_pages[i].num_pages = pages;
++          break;
++        }
++
++      if (i == MAX_ALLOCATED_PAGES)
++      {
++        grub_printf ("too many page allocations");
++        return NULL;
++      }
++    }
++
++  return (void *) ((grub_addr_t) address);
++}
++
++void *
++grub_efi_allocate_pages (grub_efi_physical_address_t address,
++                       grub_efi_uintn_t pages)
++
++{
++  return grub_efi_allocate_pages_real(address, pages, GRUB_EFI_LOADER_DATA);
++}
++
++void *
++grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address,
++                               grub_efi_uintn_t pages)
++
++{
++  return grub_efi_allocate_pages_real(address, pages,
++                                    GRUB_EFI_RUNTIME_SERVICES_DATA);
++}
++/* Free pages starting from ADDRESS.  */
++void
++grub_efi_free_pages (grub_efi_physical_address_t address,
++                   grub_efi_uintn_t pages)
++{
++  grub_efi_boot_services_t *b;
++
++  if (allocated_pages
++      && ((grub_efi_physical_address_t) ((grub_addr_t) allocated_pages)
++        != address))
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++      if (allocated_pages[i].addr == address)
++        {
++          allocated_pages[i].addr = 0;
++          break;
++        }
++    }
++
++  b = grub_efi_system_table->boot_services;
++  Call_Service_2 (b->free_pages ,address, pages);
++}
++
++/* Get the memory map as defined in the EFI spec. Return 1 if successful,
++   return 0 if partial, or return -1 if an error occurs.
++
++   This function will allocate memory for (global) mmap_buf if there isn't
++   already a buffer allocated, and will free & reallocate if it needs to
++   be larger. */
++
++int
++grub_efi_get_memory_map (grub_efi_uintn_t *map_key,
++                       grub_efi_uintn_t *descriptor_size,
++                       grub_efi_uint32_t *descriptor_version)
++{
++  grub_efi_status_t status;
++  grub_efi_boot_services_t *b;
++  grub_efi_uintn_t key;
++  grub_efi_uint32_t version;
++  grub_efi_uintn_t tmp_mmap_size;
++
++  /* Allow some parameters to be missing.  */
++  if (! map_key)
++    map_key = &key;
++  if (! descriptor_version)
++    descriptor_version = &version;
++
++  while (1)
++    {
++      b = grub_efi_system_table->boot_services;
++      tmp_mmap_size = PAGES_TO_BYTES(mmap_pages);
++      status = Call_Service_5 (b->get_memory_map,
++                            &tmp_mmap_size, mmap_buf, map_key,
++                            descriptor_size, descriptor_version);
++      if (status == GRUB_EFI_SUCCESS)
++        {
++          mmap_size = tmp_mmap_size;
++          return 1;
++        }
++      else if (status != GRUB_EFI_BUFFER_TOO_SMALL)
++        return -1;
++
++      /* we need a larger buffer */
++      if (mmap_buf)
++        grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++
++      /* get 1 more page than we need, just in case */
++      mmap_pages = BYTES_TO_PAGES(tmp_mmap_size + 4095) + 1;
++      mmap_buf = grub_efi_allocate_pages (0, mmap_pages);
++      if (! mmap_buf)
++        {
++          mmap_pages = 0;
++          grub_printf ("cannot allocate memory for memory map");
++          return -1;
++        }
++    }
++}
++
++#define MMAR_DESC_LENGTH      20
++
++/*
++ * Add a memory region to the kernel e820 map.
++ *
++ * Convert EFI memory map to E820 map for the operating system
++ * This code is based on a Linux kernel patch submitted by Edgar Hucek 
++ */
++static void
++add_memory_region (struct e820_entry *e820_map,
++                 int *e820_nr_map,
++                 unsigned long long start,
++                 unsigned long long size,
++                 unsigned int type)
++{
++  int x = *e820_nr_map;
++  static unsigned long long estart = 0ULL;
++  static unsigned long esize = 0L;
++  static unsigned int etype = -1;
++  static int merge = 0;
++
++  /* merge adjacent regions of same type */
++  if ((x > 0) && e820_map[x-1].addr + e820_map[x-1].size == start
++      && e820_map[x-1].type == type)
++    {
++      e820_map[x-1].size += size;
++      estart = e820_map[x-1].addr;
++      esize  = e820_map[x-1].size;
++      etype  = e820_map[x-1].type;
++      merge++;
++      return;
++    }
++
++    /* fill up to E820_MAX */
++    if ( x < E820_MAX )
++    {
++      e820_map[x].addr = start;
++      e820_map[x].size = size;
++      e820_map[x].type = type;
++      (*e820_nr_map)++;
++      merge=0;
++      return;
++    }
++
++    /* different type means another region didn't fit */
++    /* or same type, but there's a hole */
++    if (etype != type || (estart + esize) != start)
++    {
++      merge = 0;
++      estart = start;
++      esize = size;
++      etype = type;
++      return;
++    }
++
++    /* same type and no hole, merge it */
++    estart += esize;
++    esize += size;
++    merge++;
++}
++
++/*
++ * Make a e820 memory map
++ */
++void
++e820_map_from_efi_map (struct e820_entry *e820_map,
++                     int *e820_nr_map,
++                     grub_efi_memory_descriptor_t *memory_map,
++                     grub_efi_uintn_t desc_size,
++                     grub_efi_uintn_t memory_map_size)
++{
++  grub_efi_memory_descriptor_t *desc;
++  unsigned long long start = 0;
++  unsigned long long end = 0;
++  unsigned long long size = 0;
++  grub_efi_memory_descriptor_t *memory_map_end;
++
++  memory_map_end = NEXT_MEMORY_DESCRIPTOR (memory_map, memory_map_size);
++  *e820_nr_map = 0;
++  for (desc = memory_map;
++       desc < memory_map_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      switch (desc->type)
++      {
++      case GRUB_EFI_ACPI_RECLAIM_MEMORY:
++        add_memory_region (e820_map, e820_nr_map,
++                           desc->physical_start, desc->num_pages << 12,
++                           E820_ACPI);
++        break;
++      case GRUB_EFI_RUNTIME_SERVICES_CODE:
++      case GRUB_EFI_RUNTIME_SERVICES_DATA:
++      case GRUB_EFI_RESERVED_MEMORY_TYPE:
++      case GRUB_EFI_MEMORY_MAPPED_IO:
++      case GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE:
++      case GRUB_EFI_UNUSABLE_MEMORY:
++      case GRUB_EFI_PAL_CODE:
++        add_memory_region (e820_map, e820_nr_map,
++                           desc->physical_start, desc->num_pages << 12,
++                           E820_RESERVED);
++        break;
++      case GRUB_EFI_LOADER_CODE:
++      case GRUB_EFI_LOADER_DATA:
++      case GRUB_EFI_BOOT_SERVICES_CODE:
++      case GRUB_EFI_BOOT_SERVICES_DATA:
++      case GRUB_EFI_CONVENTIONAL_MEMORY:
++        start = desc->physical_start;
++        size = desc->num_pages << 12;
++        end = start + size;
++        if (start < 0x100000ULL && end > 0xA0000ULL)
++          {
++            if (start < 0xA0000ULL)
++              add_memory_region (e820_map, e820_nr_map,
++                                 start, 0xA0000ULL-start,
++                                 E820_RAM);
++            if (end <= 0x100000ULL)
++              continue;
++            start = 0x100000ULL;
++            size = end - start;
++          }
++        add_memory_region (e820_map, e820_nr_map,
++                           start, size, E820_RAM);
++        break;
++      case GRUB_EFI_ACPI_MEMORY_NVS:
++        add_memory_region (e820_map, e820_nr_map,
++                           desc->physical_start, desc->num_pages << 12,
++                           E820_NVS);
++        break;
++      }
++    }
++}
++
++static void
++update_e820_map (struct e820_entry *e820_map,
++               int *e820_nr_map)
++{
++  grub_efi_uintn_t desc_size;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) < 0)
++    {
++      grub_printf ("cannot get memory map");
++      return;
++    }
++
++  e820_map_from_efi_map (e820_map, e820_nr_map,
++                       mmap_buf, desc_size, mmap_size);
++}
++
++/* Simulated memory sizes. */
++#define EXTENDED_MEMSIZE (3 * 1024 * 1024)    /* 3MB */
++#define CONVENTIONAL_MEMSIZE (640 * 1024)     /* 640kB */
++
++int
++get_code_end (void)
++{
++  /* Just return a little area for simulation. */
++  return BOOTSEC_LOCATION + (60 * 1024);
++}
++
++/* memory probe routines */
++int
++get_memsize (int type)
++{
++  if (! type)
++    return CONVENTIONAL_MEMSIZE >> 10;
++  else
++    return EXTENDED_MEMSIZE >> 10;
++}
++
++/* get_eisamemsize() :  return packed EISA memory map, lower 16 bits is
++ *            memory between 1M and 16M in 1K parts, upper 16 bits is
++ *            memory above 16M in 64K parts.  If error, return -1.
++ */
++int
++get_eisamemsize (void)
++{
++  return (EXTENDED_MEMSIZE >> 10);
++}
++
++static int grub_e820_nr_map;
++static struct e820_entry grub_e820_map[E820_MAX];
++
++/* Fetch the next entry in the memory map and return the continuation
++   value.  DESC is a pointer to the descriptor buffer, and CONT is the
++   previous continuation value (0 to get the first entry in the
++   map).  */
++int
++get_mmap_entry (struct mmar_desc *desc, int cont)
++{
++  if (cont < 0 || cont >= grub_e820_nr_map)
++    {
++      /* Should not happen.  */
++      desc->desc_len = 0;
++    }
++  else
++    {
++      struct e820_entry *entry;
++      /* Copy the entry.  */
++      desc->desc_len = MMAR_DESC_LENGTH;
++      entry = &grub_e820_map[cont++];
++      desc->addr = entry->addr;
++      desc->length = entry->size;
++      desc->type = entry->type;
++
++      /* If the next entry exists, return the index.  */
++      if (cont < grub_e820_nr_map)
++      return cont;
++    }
++
++  return 0;
++}
++
++void
++grub_efi_mm_init (void)
++{
++  /* First of all, allocate pages to maintain allocations.  */
++  allocated_pages
++    = grub_efi_allocate_pages (0, BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
++  if (! allocated_pages)
++    {
++      grub_printf ("cannot allocate memory");
++      return;
++    }
++
++  grub_memset (allocated_pages, 0, ALLOCATED_PAGES_SIZE);
++
++  update_e820_map (grub_e820_map, &grub_e820_nr_map);
++}
++
++void
++grub_efi_mm_fini (void)
++{
++  if (allocated_pages)
++    {
++      unsigned i;
++
++      for (i = 0; i < MAX_ALLOCATED_PAGES; i++)
++      {
++        struct allocated_page *p;
++
++        p = allocated_pages + i;
++        if (p->addr != 0)
++          grub_efi_free_pages ((grub_addr_t) p->addr, p->num_pages);
++      }
++
++      grub_efi_free_pages ((grub_addr_t) allocated_pages,
++                         BYTES_TO_PAGES (ALLOCATED_PAGES_SIZE));
++    }
++}
+diff --git a/efi/efinic.c b/efi/efinic.c
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/efiserial.c b/efi/efiserial.c
+new file mode 100644
+index 0000000..32898a9
+--- /dev/null
++++ b/efi/efiserial.c
+@@ -0,0 +1,265 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2007 Intel Corp.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_SERIAL
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <shared.h>
++#include <serial.h>
++#include <term.h>
++
++struct grub_efiserial_data
++{
++  grub_efi_handle_t handle;
++  grub_efi_serial_io_t *serial_io;
++  struct grub_efiserial_data *next;
++};
++
++/* GUIDs.  */
++static grub_efi_guid_t serial_io_guid = GRUB_EFI_SERIAL_IO_GUID;
++
++static grub_efi_serial_io_t *serial_device = NULL;
++
++static struct grub_efiserial_data *
++make_devices (void)
++{
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handles;
++  grub_efi_handle_t *handle;
++  struct grub_efiserial_data *devices = 0;
++
++  /* Find handles which support the serial io interface.  */
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &serial_io_guid,
++                                  0, &num_handles);
++  if (! handles)
++    return 0;
++
++  /* Make a linked list of devices.  */
++  for (handle = handles; num_handles--; handle++)
++    {
++      struct grub_efiserial_data *s;
++      grub_efi_serial_io_t *sio;
++
++      sio = grub_efi_open_protocol (*handle, &serial_io_guid,
++                                  GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++      if (! sio)
++      /* This should not happen... Why?  */
++      continue;
++
++      s = grub_malloc (sizeof (*s));
++      if (! s)
++      {
++        /* Uggh.  */
++        grub_free (handles);
++        return 0;
++      }
++
++      s->handle = *handle;
++      s->serial_io = sio;
++      s->next = devices;
++      devices = s;
++    }
++
++  grub_free (handles);
++
++  return devices;
++}
++
++static void
++free_devices (struct grub_efiserial_data *devices)
++{
++  struct grub_efiserial_data *p, *q;
++
++  for (p = devices; p; p = q)
++    {
++      q = p->next;
++      grub_free (p);
++    }
++}
++
++static struct grub_efiserial_data *
++get_device (struct grub_efiserial_data *devices, int num)
++{
++  struct grub_efiserial_data *s;
++
++  for (s = devices; s && num; s = s->next, num--)
++    ;
++
++  if (num == 0)
++    return s;
++
++  return 0;
++}
++
++/* Fetch a key from a serial device.  */
++int
++serial_hw_fetch (void)
++{
++  grub_efi_status_t status;
++  char buf[1];
++  grub_efi_uintn_t buf_siz = sizeof (buf);
++  grub_efi_uint32_t control;
++
++  if (! serial_device)
++    return -1;
++
++  status = Call_Service_2 (serial_device->get_control_bits, serial_device, &control);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++  if (control & GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY)
++    return -1;
++  status = Call_Service_3 (serial_device->read, serial_device, &buf_siz, buf);
++  if (status != GRUB_EFI_SUCCESS)
++    return -1;
++
++  return buf[0];
++}
++
++/* Put a character to a serial device.  */
++void
++serial_hw_put (int c)
++{
++  grub_efi_status_t status;
++  char ch = c;
++  grub_efi_uintn_t buf_size = sizeof (ch);
++
++  if (! serial_device)
++    return;
++
++  status = Call_Service_3 (serial_device->write, serial_device, &buf_size, &ch);
++}
++
++void
++serial_hw_delay (void)
++{
++}
++
++/* Get the port number of the unit UNIT, the port number is same as
++   serial port unit number in EFI. */
++unsigned short
++serial_hw_get_port (int unit)
++{
++  return unit;
++}
++
++static inline grub_efi_uint8_t
++efi_data_bits_from_8250_LCR (int word_len)
++{
++  switch (word_len & 0x3)
++    {
++    case 0:
++      return 5;
++    case 1:
++      return 6;
++    case 2:
++      return 7;
++    case 3:
++      return 8;
++    default:
++      return 0;
++    }
++}
++
++static inline grub_efi_stop_bits_t
++efi_stop_bits_from_8250_LCR (int stop_bit_len)
++{
++  switch (stop_bit_len & 0x4)
++    {
++    case 0x0:
++      return GRUB_EFI_ONE_STOP_BIT;
++    case 0x4:
++      return GRUB_EFI_TWO_STOP_BITS;
++    default:
++      return GRUB_EFI_DEFAULT_STOP_BITS;
++    }
++}
++
++static inline grub_efi_parity_t
++efi_parity_from_8250_LCR (int parity_8250)
++{
++  if (! (parity_8250 & 0x8))
++    return GRUB_EFI_NO_PARITY;
++
++  switch (parity_8250 & 0x30)
++    {
++    case 0x00:
++      return GRUB_EFI_ODD_PARITY;
++    case 0x10:
++      return GRUB_EFI_EVEN_PARITY;
++    case 0x20:
++      return GRUB_EFI_MARK_PARITY;
++    case 0x30:
++      return GRUB_EFI_SPACE_PARITY;
++    default:
++      return GRUB_EFI_DEFAULT_PARITY;
++    }
++}
++
++/* Initialize a serial device. In EFI, PORT is used to assign
++   serial port unit number.  */
++int
++serial_hw_init (unsigned short port, unsigned int speed,
++              int word_len, int parity, int stop_bit_len)
++{
++  grub_efi_serial_io_t *sio;
++  struct grub_efiserial_data *devices, *s;
++  grub_efi_parity_t efi_parity;
++  grub_efi_stop_bits_t efi_stop_bits;
++  grub_efi_uint8_t efi_data_bits;
++  grub_efi_status_t status;
++  int i;
++
++  devices = make_devices ();
++  s = get_device (devices, port);
++  if (!s)
++    return 0;
++  sio = s->serial_io;
++  free_devices (devices);
++
++  efi_data_bits = efi_data_bits_from_8250_LCR (word_len);
++  efi_parity = efi_parity_from_8250_LCR (parity);
++  efi_stop_bits = efi_stop_bits_from_8250_LCR (stop_bit_len);
++
++  status = Call_Service_1 (sio->reset, sio);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  status = Call_Service_7 (sio->set_attributes, sio, speed, 0, 0,
++                         efi_parity, efi_data_bits, efi_stop_bits);
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  serial_device = sio;
++  /* Get rid of TERM_NEED_INIT from the serial terminal.  */
++  for (i = 0; term_table[i].name; i++)
++    if (grub_strcmp (term_table[i].name, "serial") == 0)
++      {
++      term_table[i].flags &= ~TERM_NEED_INIT;
++      break;
++      }
++
++  return 1;
++}
++
++#endif /* SUPPORT_SERIAL */
+diff --git a/efi/efitftp.c b/efi/efitftp.c
+new file mode 100644
+index 0000000..ba6918f
+--- /dev/null
++++ b/efi/efitftp.c
+@@ -0,0 +1,228 @@
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <filesys.h>
++#include "pxe.h"
++
++struct tftp_info tftp_info = {
++      .LoadedImage = NULL,
++      .Pxe = NULL,
++      .ServerIp = NULL,
++      .BasePath = NULL
++};
++
++/*
++ * CLIENT MAC ADDR: 00 15 17 4C E6 74
++ * CLIENT IP: 10.16.52.158  MASK: 255.255.255.0  DHCP IP: 10.16.52.16
++ * GATEWAY IP: 10.16.52.254
++ *
++ * TSize.Running LoadFile()
++ *
++ * TFTP.status: 5
++ * got to grub_efi_pxe_get_config_path
++ * SiAddr: 10.16.52.16
++ * BootpHwAddr: 00:15:17:4c:e6:74:00:00:00:00:00:00:00:00:00:00
++ * BootpSrvName:
++ * BootpBootFile: X86PC/UNDI/pxelinux/bootx64.efi
++ */
++
++static grub_efi_status_t tftp_get_file_size_defective_buffer_fallback(
++      char *Filename,
++      grub_efi_uintn_t *Size)
++{
++      EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
++      char *Buffer = NULL;
++      grub_efi_boolean_t Overwrite = 0;
++      grub_efi_boolean_t DontUseBuffer = 0;
++      grub_efi_uint64_t BufferSize = 4096;
++      grub_efi_uintn_t BlockSize = 512;
++      grub_efi_status_t rc = GRUB_EFI_BUFFER_TOO_SMALL;
++      char *FullPath = NULL;
++
++      while (rc == GRUB_EFI_BUFFER_TOO_SMALL) {
++              char *NewBuffer;
++
++              if (Buffer) {
++                      grub_free(Buffer);
++                      Buffer = NULL;
++              }
++              BufferSize *= 2;
++              NewBuffer = grub_malloc(BufferSize);
++              if (!NewBuffer)
++                      return GRUB_EFI_OUT_OF_RESOURCES;
++              Buffer = NewBuffer;
++
++              if (tftp_info.BasePath) {
++                      int PathSize = 0;
++                      PathSize = strlen(tftp_info.BasePath) + 2 +
++                                 strlen(Filename);
++                      FullPath = grub_malloc(PathSize);
++                      grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath,
++                                   Filename);
++              } else {
++                      FullPath = grub_malloc(strlen(Filename));
++                      strcpy(FullPath, Filename);
++              }
++
++              rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe,
++                      OpCode, Buffer, Overwrite, &BufferSize, &BlockSize,
++                      tftp_info.ServerIp, FullPath, NULL, DontUseBuffer);
++              if (rc == GRUB_EFI_SUCCESS || rc == GRUB_EFI_BUFFER_TOO_SMALL)
++                      *Size = BufferSize;
++      }
++      grub_free(FullPath);
++      grub_free(Buffer);
++      return rc;
++}
++
++grub_efi_status_t tftp_get_file_size(
++      char *Filename,
++      grub_efi_uintn_t *Size)
++{
++      EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE;
++      char Buffer[8192];
++      grub_efi_boolean_t Overwrite = 0;
++      grub_efi_boolean_t DontUseBuffer = 0;
++      grub_efi_uint64_t BufferSize = 8192;
++      grub_efi_uintn_t BlockSize = 512;
++      grub_efi_status_t rc;
++      char *FullPath = NULL;
++
++      if (tftp_info.BasePath) {
++              int PathSize = 0;
++              PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
++              FullPath = grub_malloc(PathSize);
++              grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
++      } else {
++              FullPath = grub_malloc(strlen(Filename));
++              strcpy(FullPath, Filename);
++      }
++
++      rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
++              Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
++              FullPath, NULL, DontUseBuffer);
++      if (rc == GRUB_EFI_BUFFER_TOO_SMALL)
++              rc = tftp_get_file_size_defective_buffer_fallback(Filename, Size);
++      if (rc == GRUB_EFI_SUCCESS)
++              *Size = BufferSize;
++      grub_free(FullPath);
++      return rc;
++}
++
++static grub_efi_status_t tftp_read_file(
++      char *Filename,
++      char *Buffer,
++      grub_efi_uint64_t BufferSize)
++{
++      EFI_PXE_BASE_CODE_TFTP_OPCODE OpCode = EFI_PXE_BASE_CODE_TFTP_READ_FILE;
++      grub_efi_boolean_t Overwrite = 0;
++      grub_efi_boolean_t DontUseBuffer = 0;
++      grub_efi_uintn_t BlockSize = 512;
++      grub_efi_status_t rc;
++      char *FullPath = NULL;
++
++      if (tftp_info.BasePath) {
++              int PathSize = 0;
++              PathSize = strlen(tftp_info.BasePath) + 2 + strlen(Filename);
++              FullPath = grub_malloc(PathSize);
++              grub_sprintf(FullPath, "%s/%s", tftp_info.BasePath, Filename);
++      } else {
++              FullPath = grub_malloc(strlen(Filename));
++              strcpy(FullPath, Filename);
++      }
++
++      rc = Call_Service_10(tftp_info.Pxe->Mtftp, tftp_info.Pxe, OpCode,
++              Buffer, Overwrite, &BufferSize, &BlockSize, tftp_info.ServerIp,
++              FullPath, NULL, DontUseBuffer);
++      grub_free(FullPath);
++      return rc;
++}
++
++int
++efi_tftp_mount (void)
++{
++      if (current_drive != NETWORK_DRIVE) {
++              return 0;
++      }
++      return 1;
++}
++
++int
++efi_tftp_read (char *addr, int size)
++{
++      int rc;
++
++      if (tftp_info.LastPath == NULL) {
++              grub_printf(" = 0 (no path known)\n");
++              return 0;
++      }
++      if (tftp_info.Buffer == NULL) {
++              grub_printf(" = 0 (no file open)\n");
++              return 0;
++      }
++      if (filemax == -1) {
++              grub_printf(" = 0 (file not found)\n");
++              return 0;
++      }
++      if (filepos == 0) {
++              rc = tftp_read_file(tftp_info.LastPath, tftp_info.Buffer,
++                                  filemax);
++      }
++
++      grub_memmove(addr, tftp_info.Buffer+filepos, size);
++      filepos += size;
++
++      return size;
++}
++
++int
++efi_tftp_dir (char *dirname)
++{
++      int rc;
++      int ch;
++      grub_efi_uintn_t size;
++      int len;
++      char *name;
++
++      ch = nul_terminate(dirname);
++      len = strlen(dirname);
++
++      name = grub_malloc(len + 1);
++      grub_memmove(name, dirname, len);
++      name[len] = '\0';
++      dirname[len] = ch;
++
++#if 0
++      if (print_possibilities)
++              return 1;
++#endif
++
++      filemax = -1;
++
++      rc = tftp_get_file_size(name, &size);
++      if (rc == GRUB_EFI_SUCCESS) {
++              tftp_info.LastPath = grub_malloc(strlen(name) + 1);
++              sprintf(tftp_info.LastPath, "%s", name);
++              filemax = size;
++              filepos = 0;
++
++              tftp_info.Buffer = grub_malloc(filemax);
++
++              return 1;
++      }
++      return 0;
++}
++
++void
++efi_tftp_close (void)
++{
++      filepos = 0;
++      filemax = -1;
++      grub_free(tftp_info.LastPath);
++      tftp_info.LastPath = NULL;
++      grub_free(tftp_info.Buffer);
++      tftp_info.Buffer = NULL;
++}
+diff --git a/efi/efiuga.c b/efi/efiuga.c
+new file mode 100644
+index 0000000..b27500b
+--- /dev/null
++++ b/efi/efiuga.c
+@@ -0,0 +1,982 @@
++/* efiuga.c - "univeral graphics adapter" support for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright 2007 Red Hat, Inc.
++ *  Copyright (C) 2007 Intel Corp.
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++#include "xpm.h"
++
++static grub_efi_guid_t draw_guid = GRUB_EFI_UGA_DRAW_GUID;
++static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
++
++#if 0
++#define UGA
++#include "ugadebug.h"
++#endif
++
++#ifndef MIN
++#define MIN(x,y) ( ((x) < (y)) ? (x) : (y))
++#endif
++#ifndef MAX
++#define MAX(x,y) ( ((x) < (y)) ? (y) : (x))
++#endif
++
++#define pixel_equal(x,y) ((x).red == (y).red && \
++                          (x).green == (y).green && \
++                          (x).blue == (y).blue)
++
++struct video_mode {
++    grub_efi_uint32_t horizontal_resolution;
++    grub_efi_uint32_t vertical_resolution;
++    grub_efi_uint32_t color_depth;
++    grub_efi_uint32_t refresh_rate;
++};
++
++static void
++xpnd_6_to_8(grub_efi_uga_pixel_t *pixel)
++{
++    if (!((pixel->red | pixel->green | pixel->blue) & 0xc0)) {
++        pixel->red <<= 2;
++        pixel->red |= ((pixel->red & 0xc0) >> 6);
++        pixel->red &= 0xff;
++        pixel->green <<= 2;
++        pixel->green |= ((pixel->green & 0xc0) >> 6);
++        pixel->green &= 0xff;
++        pixel->blue <<= 2;
++        pixel->blue |= ((pixel->blue & 0xc0) >> 6);
++        pixel->blue &= 0xff;
++    }
++}
++
++
++
++#define MAX_PALETTE 16
++struct uga {
++    grub_efi_uga_draw_t *draw_intf;
++    struct video_mode graphics_mode;
++    struct video_mode text_mode;
++    enum { TEXT, GRAPHICS } current_mode;
++
++    position_t screen_size;
++    position_t screen_pos;
++
++    struct bltbuf *background;
++
++    grub_efi_uga_pixel_t palette[MAX_PALETTE + 1];
++};
++
++#define RGB(r,g,b) { .red = r, .green = g, .blue = b }
++
++static grub_efi_uga_pixel_t cga_colors[] = {
++    RGB(0x00,0x00,0x00), //  0 Black
++    RGB(0x7f,0x00,0x00), //  1 Dark Red
++    RGB(0x00,0x7f,0x00), //  2 Dark Green
++    RGB(0x7f,0x7f,0x00), //  3 Dark Yellow
++    RGB(0x00,0x00,0x7f), //  4 Dark Blue
++    RGB(0x7f,0x00,0x7f), //  5 Dark Magenta
++    RGB(0x00,0x7f,0x7f), //  6 Dark Cyan
++    RGB(0xc0,0xc0,0xc0), //  7 Light Grey
++    RGB(0x7f,0x7f,0x7f), //  8 Dark Grey
++    RGB(0xff,0x00,0x00), //  9 Red
++    RGB(0x00,0xff,0x00), // 10 Green
++    RGB(0xff,0xff,0x00), // 11 Yellow
++    RGB(0x00,0x00,0xff), // 12 Blue
++    RGB(0xff,0x00,0xff), // 13 Magenta
++    RGB(0x00,0xff,0xff), // 14 Cyan
++    RGB(0xff,0xff,0xff), // 15 White
++    RGB(0xff,0xff,0xff), // 16 Also white ;)
++};
++
++static const int n_cga_colors = sizeof (cga_colors) / sizeof (cga_colors[0]);
++
++static void
++set_kernel_params(struct graphics_backend *backend,
++            struct linux_kernel_params *params)
++{
++    struct uga *uga;
++    
++    if (!backend || !backend->priv)
++        return;
++
++    uga = backend->priv;
++
++    params->lfb_width = uga->graphics_mode.horizontal_resolution;
++    params->lfb_height = uga->graphics_mode.vertical_resolution;
++    params->lfb_depth = 32;
++    params->red_mask_size = 8;
++    params->red_field_pos = 16;
++    params->green_mask_size = 8;
++    params->green_field_pos = 8;
++    params->blue_mask_size = 8;
++    params->blue_field_pos = 0;
++    params->reserved_mask_size = 8;
++    params->reserved_field_pos = 24;
++    params->have_vga = VIDEO_TYPE_EFI;
++}
++
++static void
++pixel_to_rgb(grub_efi_uga_pixel_t *pixel, int *red, int *green, int *blue)
++{
++    *red = pixel->red;
++    *green = pixel->green;
++    *blue = pixel->blue;
++}
++
++static void
++rgb_to_pixel(int red, int green, int blue, grub_efi_uga_pixel_t *pixel)
++{
++    pixel->red = red;
++    pixel->green = green;
++    pixel->blue = blue;
++}
++
++static void
++position_to_phys(struct uga *uga, position_t *virt, position_t *phys)
++{
++    phys->x = virt->x + uga->screen_pos.x;
++    phys->y = virt->y + uga->screen_pos.y;
++}
++
++static int
++abs_paddr(struct uga *uga, position_t *virt)
++{
++    position_t phys;
++    position_to_phys(uga, virt, &phys);
++    return phys.x + phys.y * uga->screen_size.x;
++}
++
++struct bltbuf {
++    grub_efi_uintn_t width;
++    grub_efi_uintn_t height;
++    grub_efi_uga_pixel_t pixbuf[];
++};
++
++static struct bltbuf *alloc_bltbuf(grub_efi_uintn_t width,
++                                         grub_efi_uintn_t height)
++{
++      struct bltbuf *buf = NULL;
++      grub_efi_uintn_t pixbuf_size = width * height *
++              sizeof (grub_efi_uga_pixel_t);
++
++      if (!(buf = grub_malloc(sizeof(buf->width) + sizeof(buf->height) +
++                              pixbuf_size)))
++              return NULL;
++
++      buf->width = width;
++      buf->height = height;
++      grub_memset(buf->pixbuf, '\0', pixbuf_size);
++      return buf;
++}
++
++static void
++blt_to_screen(struct uga *uga, struct bltbuf *bltbuf)
++{
++    position_t addr = {0, 0};
++
++    position_to_phys(uga, &addr, &addr);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++                  EfiUgaBltBufferToVideo,
++                    0, 0,
++                    addr.x, addr.y,
++                    bltbuf->width, bltbuf->height,
++                    0);
++}
++
++static void
++blt_pos_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf,
++                      position_t *bltpos, position_t *bltsz, position_t *pos)
++{
++    position_t phys;
++
++    position_to_phys(uga, pos, &phys);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++                    EfiUgaBltBufferToVideo,
++                    bltpos->x, bltpos->y,
++                    phys.x, phys.y,
++                    bltsz->x, bltsz->y,
++                    0);
++}
++
++static void
++blt_to_screen_pos(struct uga *uga, struct bltbuf *bltbuf, position_t *pos)
++{
++    position_t bltpos = {0, 0};
++    position_t bltsz = { bltbuf->width, bltbuf->height };
++    blt_pos_to_screen_pos(uga, bltbuf, &bltpos, &bltsz, pos);
++}
++
++static int
++blt_from_screen_pos(struct uga *uga, struct bltbuf **retbuf,
++    position_t *pos, position_t *size)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t phys;
++
++    if (!retbuf)
++        return 0;
++
++    if (*retbuf)
++        grub_free(*retbuf);
++
++    bltbuf = alloc_bltbuf(size->x, size->y);
++    if (!bltbuf)
++        return 0;
++
++    position_to_phys(uga, pos, &phys);
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++            EfiUgaVideoToBltBuffer,
++            phys.x, phys.y,
++            0, 0,
++            size->x, size->y, 0);
++    *retbuf = bltbuf;
++    return 1;
++}
++
++static int
++save_video_mode(struct uga *uga, struct video_mode *mode)
++{
++      grub_efi_status_t status;
++
++      status = Call_Service_5(uga->draw_intf->get_mode, uga->draw_intf,
++              &mode->horizontal_resolution, &mode->vertical_resolution,
++              &mode->color_depth, &mode->refresh_rate);
++      return status == GRUB_EFI_SUCCESS;
++}
++
++static grub_efi_status_t
++set_video_mode(struct uga *uga, struct video_mode *mode)
++{
++    grub_efi_status_t status;
++
++    status = Call_Service_5(uga->draw_intf->set_mode, uga->draw_intf,
++                            mode->horizontal_resolution,
++                            mode->vertical_resolution,
++                            mode->color_depth,
++                            mode->refresh_rate);
++    return status;
++}
++
++static int
++cmp_video_modes(struct video_mode *vm0, struct video_mode *vm1)
++{
++    if (vm0->horizontal_resolution == vm1->horizontal_resolution &&
++            vm0->vertical_resolution == vm1->vertical_resolution)
++        return 0;
++    if (vm0->horizontal_resolution >= vm1->horizontal_resolution &&
++            vm0->vertical_resolution >= vm1->vertical_resolution)
++        return 1;
++    return -1;
++}
++
++static int
++blt_from_screen(struct uga *uga, struct bltbuf **retbuf)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos = {0 ,0};
++    position_t size = {
++            .x = uga->graphics_mode.horizontal_resolution,
++            .y = uga->graphics_mode.vertical_resolution
++        };
++
++    return blt_from_screen_pos(uga, retbuf, &pos, &size);
++}
++
++static void 
++bltbuf_set_pixel(struct bltbuf *bltbuf, position_t *pos,
++                             grub_efi_uga_pixel_t *pixel)
++{
++    if (pos->x < 0 || pos->x >= bltbuf->width)
++        return;
++    if (pos->x < 0 || pos->y >= bltbuf->height)
++        return;
++    grub_memmove(&bltbuf->pixbuf[pos->x + pos->y * bltbuf->width], pixel,
++            sizeof *pixel);
++}
++
++static void
++bltbuf_get_pixel(struct bltbuf *bltbuf, position_t *pos,
++                 grub_efi_uga_pixel_t *pixel)
++{
++    if (bltbuf && pos->x < bltbuf->width && pos->y < bltbuf->height) {
++      grub_memmove(pixel, &bltbuf->pixbuf[pos->x + pos->y * bltbuf->width],
++            sizeof *pixel);
++    } else {
++      pixel->red = 0x00;
++      pixel->green = 0x00;
++      pixel->blue = 0x00;
++    }
++}
++
++static void
++bltbuf_set_pixel_rgb(struct bltbuf *bltbuf, position_t *pos,
++                     int red, int green, int blue)
++{
++    grub_efi_uga_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    bltbuf_set_pixel(bltbuf, pos, &pixel);
++}
++
++static void
++bltbuf_set_pixel_idx(struct uga *uga, struct bltbuf *bltbuf,
++                     position_t *pos, int idx)
++{
++    bltbuf_set_pixel(bltbuf, pos, &uga->palette[idx]);
++}
++
++static void
++bltbuf_get_pixel_idx(struct bltbuf *bltbuf, position_t *pos, int *idx)
++{
++    grub_efi_uga_pixel_t pixel;
++    
++    rgb_to_pixel(0, 0, 0, &pixel);
++    bltbuf_get_pixel(bltbuf, pos, &pixel);
++    for (*idx = 0; *idx < 16; (*idx)++) {
++        if (pixel_equal(cga_colors[*idx], pixel))
++            break;
++    }
++}
++
++static struct bltbuf *
++xpm_to_bltbuf(struct xpm *xpm)
++{
++    struct bltbuf *bltbuf = NULL;
++    position_t pos;
++
++    if (!(bltbuf = alloc_bltbuf(xpm->width, xpm->height)))
++        return NULL;
++
++    for (pos.y = 0; pos.y < xpm->height; pos.y++) {
++        for (pos.x = 0; pos.x < xpm->width; pos.x++) {
++            xpm_pixel_t xpl;
++            unsigned char idx;
++        
++            idx = xpm_get_pixel_idx(xpm, pos.x, pos.y);
++            xpm_get_idx(xpm, idx, &xpl);
++
++            bltbuf_set_pixel_rgb(bltbuf, &pos, xpl.red, xpl.green, xpl.blue);
++        }
++    }
++
++    return bltbuf;
++}
++
++static void
++cursor(struct graphics_backend *backend, int set)
++{
++    struct uga *uga;
++    int ch, invert;
++    unsigned short *text;
++    position_t fpos, screensz;
++    int offset;
++    
++    uga = backend->priv;
++    
++    if (set && !graphics_get_scroll())
++        return;
++
++    text = graphics_get_text_buf();
++    graphics_get_font_position(&fpos);
++    graphics_get_screen_rowscols(&screensz);
++
++    offset = fpos.y * screensz.x + fpos.x;
++
++    if (set)
++        text[offset] |= 0x200;
++
++    graphics_clbl(fpos.x, fpos.y, 1, 1, 1);
++
++    if (set)
++        text[offset] &= 0xfdff;
++}
++
++static void blank(struct graphics_backend *backend);
++
++static void
++reset_screen_geometry(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct xpm *xpm = graphics_get_splash_xpm();
++    position_t screensz = { .x = 640, .y = 480 };
++
++    if (xpm) {
++        screensz.x = xpm->width;
++        screensz.y = xpm->height;
++    }
++
++    uga->screen_pos.x =
++        (uga->graphics_mode.horizontal_resolution - screensz.x) / 2;
++    uga->screen_pos.y =
++        (uga->graphics_mode.vertical_resolution - screensz.y) / 2;
++
++    blank(backend);
++    graphics_get_screen_rowscols(&screensz);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++}
++
++static void
++get_screen_size(struct graphics_backend *backend, position_t *size)
++{
++    struct uga *uga = backend->priv;
++    size->x = uga->graphics_mode.horizontal_resolution;
++    size->y = uga->graphics_mode.vertical_resolution;
++}
++
++static void
++setxy(struct graphics_backend *backend, position_t *pos)
++{
++    position_t fpos;
++
++    fpos.x = pos->x;
++    fpos.y = pos->y;
++    graphics_set_font_position(&fpos);
++}
++
++static void
++uga_getxy(struct graphics_backend *backend, position_t *pos)
++{
++    graphics_get_font_position(pos);
++}
++
++static void
++draw_pixel(struct graphics_backend *backend, position_t *pos, pixel_t *pixel)
++{
++    struct bltbuf *bltbuf = NULL;
++    grub_efi_uga_pixel_t *eup = (grub_efi_uga_pixel_t *)pixel;
++
++    bltbuf = alloc_bltbuf(1,1);
++    if (!bltbuf)
++        return;
++
++    grub_memmove(&bltbuf->pixbuf[0], eup, sizeof (*eup));
++
++    blt_to_screen_pos(backend->priv, bltbuf, pos);
++
++    grub_free(bltbuf);
++}
++
++static pixel_t *
++get_pixel_idx(struct graphics_backend *backend, int idx)
++{
++    static grub_efi_uga_pixel_t pixel;
++    struct uga *uga = backend->priv;
++    if (idx < 0 || idx > MAX_PALETTE)
++        return NULL;
++    pixel.red = uga->palette[idx].red;
++    pixel.green = uga->palette[idx].green;
++    pixel.blue = uga->palette[idx].blue;
++    return (pixel_t *)&pixel;
++}
++
++static pixel_t *
++get_pixel_rgb(struct graphics_backend *backend, int red, int green, int blue)
++{
++    static grub_efi_uga_pixel_t pixel;
++    rgb_to_pixel(red, green, blue, &pixel);
++    return &pixel;
++}
++
++static void
++set_palette(struct graphics_backend *backend, int idx,
++            int red, int green, int blue)
++{
++    grub_efi_uga_pixel_t pixel;
++    struct uga *uga = backend->priv;
++
++    if (idx > MAX_PALETTE)
++        return;
++    rgb_to_pixel(red, green, blue, &pixel);
++    grub_memmove(&uga->palette[idx], &pixel, sizeof pixel);
++}
++
++static void
++blank(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct bltbuf *bltbuf;
++    position_t pos = {0, 0};
++    grub_efi_uintn_t x, y, i, j;
++    unsigned char r = 0 ,g = 0;
++
++    x = uga->graphics_mode.horizontal_resolution;
++    y = uga->graphics_mode.vertical_resolution;
++
++    if (x == 0 || y == 0)
++        return;
++
++    bltbuf = alloc_bltbuf(x, y);
++    for (j = 0; j < y; j++) {
++        if (debug_graphics && j % 16 == 0) {
++            g = g == 0 ? 7 : 0;
++            r = g == 0 ? 7 : 0;
++        }
++        for (i = 0; i < x; i++) {
++            if (debug_graphics && i % 16 == 0) {
++                g = g == 0 ? 7 : 0;
++                r = g == 0 ? 7 : 0;
++            }
++            pos.x = i;
++            pos.y = j;
++            bltbuf_set_pixel_rgb(bltbuf, &pos, r * 16, g * 16, 0x0);
++        }
++    }
++
++    Call_Service_10(uga->draw_intf->blt, uga->draw_intf, bltbuf->pixbuf,
++        EfiUgaBltBufferToVideo, 0, 0, 0, 0, x, y, 0);
++
++    grub_free(bltbuf);
++}
++
++static void
++bltbuf_cp_bl(struct bltbuf *d, position_t dpos,
++             struct bltbuf *s, position_t spos)
++{
++    grub_efi_uga_pixel_t *dp, *sp;
++
++    const int xavail = MAX(0, s ? s->width - spos.x : 0);
++    const int xtotal = MAX(0, d->width - dpos.x);
++    const int xcp = MAX(0, MIN(xtotal, xavail));
++    const int xcl = MAX(0, xtotal - xcp);
++
++    const int yavail = MAX(0, s ? s->height - spos.y : 0);
++    const int ytotal = MAX(0, d->height - dpos.y);
++    const int ycp = MAX(0, MIN(ytotal, yavail));
++    const int ycl = MAX(0, ytotal - ycp);
++
++    int y, x;
++
++    for (y = 0; y < ytotal; y++) {
++        dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x];
++
++        if (y < yavail) {
++            sp = &s->pixbuf[(spos.y + y) * s->width + spos.x];
++            memmove(dp, sp, xcp * sizeof (*dp));
++            dp = &d->pixbuf[(dpos.y + y) * d->width + dpos.x + xcp];
++            memset(dp, '\0', xcl * sizeof (*dp));
++        } else {
++            memset(dp, '\0', xtotal * sizeof (*dp));
++        }
++    }
++}
++
++/* copy a region the size of bltbuf from the background into bltbuf,
++ * starting at offset bgpos
++ */
++static void
++bltbuf_draw_bg(struct graphics_backend *backend, struct bltbuf *bltbuf,
++        position_t bgpos)
++{
++    struct uga *uga = backend->priv;
++    position_t blpos = { 0, 0 };
++
++    bltbuf_cp_bl(bltbuf, blpos, uga->background, bgpos);
++}
++
++static void
++dbg_dump_palette(struct graphics_backend *backend)
++{
++    struct uga *uga;
++    int i;
++    if (!backend || !backend->priv)
++        return;
++    uga = backend->priv;
++    if (!uga->palette)
++        return;
++}
++
++static int
++is_shadow_pixel(position_t screensz, position_t textpos, position_t bitpos,
++                position_t fontsz)
++{
++    unsigned short *text = graphics_get_text_buf();
++    const unsigned char *glyph;
++    position_t glyphpos = { textpos.x, textpos.y };
++    position_t glyphbit = { bitpos.x, bitpos.y };
++    unsigned short ch;
++
++    if (glyphbit.x == 0) {
++        glyphbit.x = fontsz.x;
++        glyphpos.x--;
++    }
++    if (glyphbit.y == 0) {
++        glyphbit.y = fontsz.y;
++        glyphpos.y--;
++    }
++    glyphbit.x--;
++    glyphbit.y--;
++
++    if (glyphpos.x < 0 || glyphpos.y < 0)
++        return 0;
++        
++    ch = text[glyphpos.y * screensz.x + glyphpos.x] & 0xff;
++    glyph = font8x16 + (ch << 4);
++    return glyph[glyphbit.y] & (1 << ((fontsz.x-1) - glyphbit.x));
++}
++
++static void
++bltbuf_draw_character(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the bltbuf to draw into */
++        position_t target,      /* the position in the bltbuf to draw to */
++        position_t fontsz,      /* the size of the font, in pixels */
++        position_t charpos,     /* the position of the character in the text
++                                   screen buffer */
++        position_t screensz,    /* the size of the screen in characters */
++        unsigned short ch       /* the character to draw, plus flags */
++    )
++{
++    struct uga *uga = backend->priv;
++    position_t blpos;
++    position_t glyphpos;
++
++    blpos.y = target.y;
++    for (glyphpos.y = 0; glyphpos.y < fontsz.y; glyphpos.y++, blpos.y++) {
++        blpos.x = target.x;
++        for (glyphpos.x = 0; glyphpos.x < fontsz.x; glyphpos.x++, blpos.x++) {
++            int invert = (ch & 0x0100) != 0;
++            int set = (ch & 0x0200) != 0;
++            const unsigned char *glyph = font8x16 + ((ch & 0xff) << 4);
++            int bit = glyph[glyphpos.y] & (1 << ((fontsz.x-1) - glyphpos.x));
++            int idx = -1;
++
++            if (!set) {
++                if (invert)
++                    idx = bit ? 0 : 15;
++                else if (bit)
++                    idx = 15;
++
++                if (idx == -1) {
++                    if (is_shadow_pixel(screensz, charpos, glyphpos, fontsz) ||
++                            !uga->background)
++                        idx = invert ? 15 : 0;
++                }
++            } else {
++                idx = bit ? 0 : 15;
++            }
++
++            if (idx != -1)
++                bltbuf_set_pixel_idx(uga, bltbuf, &blpos, idx);
++        }
++    }
++}
++
++static void
++bltbuf_draw_text(struct graphics_backend *backend,
++        struct bltbuf *bltbuf,  /* the buffer to draw into */
++        position_t screensz,    /* the size of the screen in characters */
++        position_t fontsz,      /* the size of the font in pixels */
++        position_t txtpos,      /* the position of the text on the screen
++                                   (in characters) */
++        position_t txtsz        /* the size of the block to fill in
++                                   (in characters) */
++    )
++{
++    struct uga *uga = backend->priv;
++    unsigned short *text = graphics_get_text_buf();
++    position_t charpos;
++
++    for (charpos.y = txtpos.y; charpos.y < txtpos.y + txtsz.y; charpos.y++) {
++        for (charpos.x = txtpos.x; charpos.x < txtpos.x + txtsz.x; charpos.x++){
++            int offset = charpos.y * screensz.x + charpos.x;
++            position_t blpos = { (charpos.x-txtpos.x)*fontsz.x,
++                                 (charpos.y-txtpos.y)*fontsz.y };
++
++            bltbuf_draw_character(backend, bltbuf, blpos, fontsz, charpos,
++                    screensz, text[offset]);
++        }
++    }
++}
++
++static void
++clbl(struct graphics_backend *backend, int col, int row, int width, int height,
++        int draw_text)
++{
++    struct uga *uga = backend->priv;
++    struct xpm *xpm;
++
++    struct bltbuf *bltbuf;
++    position_t fontsz, blpos, blsz, screensz;
++    unsigned short *text;
++
++//    blank(backend);
++//
++    xpm = graphics_get_splash_xpm();
++    if (xpm && !uga->background)
++        uga->background = xpm_to_bltbuf(xpm);
++
++    graphics_get_screen_rowscols(&screensz);
++    width = MIN(width, screensz.x - col);
++    height = MIN(height, screensz.y - row);
++    graphics_get_font_size(&fontsz);
++ 
++    blsz.x = width * fontsz.x;
++    blsz.y = height * fontsz.y;
++   
++    bltbuf = alloc_bltbuf(blsz.x, blsz.y);
++    if (!bltbuf)
++        return;
++
++    blsz.x = col * fontsz.x;
++    blsz.y = row * fontsz.y;
++
++    text = graphics_get_text_buf();
++    bltbuf_draw_bg(backend, bltbuf, blsz);
++
++    if (draw_text) {
++        blsz.x = width;
++        blsz.y = height;
++        blpos.x = col;
++        blpos.y = row;
++
++        bltbuf_draw_text(backend, bltbuf, screensz, fontsz, blpos, blsz);
++    }
++
++    blpos.x = col * fontsz.x;
++    blpos.y = row * fontsz.y;
++
++    blt_to_screen_pos(uga, bltbuf, &blpos);
++}
++
++static void
++setup_cga_palette(void)
++{
++/*
++ * Nov 27 15:53:19 <pjones> ping?
++ * Nov 27 15:54:13 <ajax> pong?
++ * Nov 27 15:54:16 <pjones> say I've got a color channel in 6 bits, and it's
++ *                          stored in an 8-bit value.  let's call it white.
++ *                          now let's say I've got hardware with 8 bits per
++ *                          channel that I'm blitting to.  What's the right
++ *                          way to expand 0x3f to 0xff?
++ * Nov 27 15:55:17 <pjones> (my naive idea, which I haven't tried yet, is
++ *                          "x <<= 2; if (x) x |= 3;")
++ * Nov 27 15:55:35 <ajax> no.
++ * Nov 27 15:55:43 <pjones> yeah, figured I'd ask instead of doing that.
++ * Nov 27 15:56:15 <ajax>  x <<= 2; x |= ((x & 0xc0) >> 6);
++ */
++    int i;
++    for (i = 0; i < n_cga_colors; i++) {
++        grub_efi_uga_pixel_t *pixel = &cga_colors[i];
++
++        if ((pixel->red | pixel->green | pixel->blue) & 0xc0)
++            continue;
++        pixel->red <<= 2;
++        pixel->red |= ((pixel->red & 0xc0) >> 6);
++        pixel->red &= 0xff;
++        pixel->green <<= 2;
++        pixel->green |= ((pixel->green & 0xc0) >> 6);
++        pixel->green &= 0xff;
++        pixel->blue <<= 2;
++        pixel->blue |= ((pixel->blue & 0xc0) >> 6);
++        pixel->blue &= 0xff;
++    }
++}
++
++static int
++try_enable(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    struct video_mode modes[] = {
++        { 1440, 900, 32, 60 },
++        { 640, 480, 32, 60 },
++        { 800, 600, 32, 60 },
++        { 640, 480, 16, 60 },
++        { 800, 600, 16, 60 },
++        { 640, 480, 8, 60 },
++        { 800, 600, 8, 60 }
++    };
++    struct video_mode mode;
++    position_t font_size;
++    int i;
++
++    if (uga->text_mode.horizontal_resolution == 0) {
++        grub_efi_set_text_mode(1);
++        save_video_mode(uga, &uga->text_mode);
++    }
++
++    if (uga->graphics_mode.horizontal_resolution == 0) {
++        grub_efi_set_text_mode(0);
++        save_video_mode(uga, &uga->graphics_mode);
++
++        if (cmp_video_modes(&uga->graphics_mode, &modes[0]) >= 0) {
++            uga->current_mode = GRAPHICS;
++            graphics_alloc_text_buf();
++            return 1;
++        }
++        for (i = 0; i < sizeof (modes) / sizeof (modes[0]); i++) {
++            set_video_mode(uga, &modes[i]);
++            save_video_mode(uga, &mode);
++            if (!cmp_video_modes(&modes[i], &mode)) {
++                grub_memmove(&uga->graphics_mode, &mode, sizeof (mode));
++                uga->current_mode = GRAPHICS;
++                graphics_alloc_text_buf();
++                return 1;
++            }
++        }
++        set_video_mode(uga, &uga->graphics_mode);
++        save_video_mode(uga, &mode);
++        if (!cmp_video_modes(&uga->graphics_mode, &mode)) {
++            uga->current_mode = GRAPHICS;
++            graphics_alloc_text_buf();
++            return 1;
++        }
++        grub_efi_set_text_mode(1);
++        return 0;
++    }
++    set_video_mode(uga, &uga->graphics_mode);
++
++    uga->current_mode = GRAPHICS;
++    return 1;
++}
++
++static int
++enable(struct graphics_backend *backend)
++{
++    struct uga *uga = backend->priv;
++    grub_efi_handle_t *handle, *handles;
++    grub_efi_uintn_t num_handles;
++    grub_efi_pci_io_t *pci_proto;
++    int i;
++
++    if (uga) {
++        if (uga->current_mode == GRAPHICS) {
++            return 1;
++        }
++    } else {
++        if (!(uga = grub_malloc(sizeof (*uga)))) {
++            return 0;
++        }
++      grub_memset(uga, '\0', sizeof (*uga));
++
++        uga->current_mode = TEXT;
++
++        handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
++                                          &draw_guid, NULL, &num_handles);
++
++        if (!num_handles || !handles)
++        {
++            grub_free(uga);
++          return 0;
++        }
++
++      for (handle = handles; num_handles--; handle++)
++          {
++            pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
++                                        GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++            if (!pci_proto)
++              continue;
++
++            uga->draw_intf = grub_efi_open_protocol (*handle, &draw_guid,
++                                        GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++            if (uga->draw_intf)
++              {
++                grub_efi_setup_gfx_pci(*handle);
++                break;
++              }
++          }
++
++      grub_free(handles);
++
++      if (!uga->draw_intf)
++          uga->draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
++
++        if (!uga->draw_intf) {
++            grub_free(uga);
++            return 0;
++        }
++        grub_memset(&uga->graphics_mode, '\0', sizeof (uga->graphics_mode));
++        grub_memset(&uga->text_mode, '\0', sizeof (uga->text_mode));
++        backend->priv = uga;
++
++        setup_cga_palette();
++        for (i = 0; i < n_cga_colors; i++) {
++            uga->palette[i].red = cga_colors[i].red;
++            uga->palette[i].green = cga_colors[i].green;
++            uga->palette[i].blue = cga_colors[i].blue;
++        }
++    }
++
++    if (try_enable(backend)) {
++        reset_screen_geometry(backend);
++        return 1;
++    }
++    
++    backend->priv = NULL;
++    grub_free(uga);
++    return 0;
++}
++
++static void disable(struct graphics_backend *backend)
++{
++    struct uga *uga;
++    
++    if (!backend)
++        return;
++    
++    uga = backend->priv;
++    if (!uga || uga->current_mode != GRAPHICS)
++        return;
++
++#if 0
++    blank(backend);
++
++    set_video_mode(uga, &uga->text_mode);
++    grub_efi_set_text_mode(1);
++#endif
++    uga->current_mode = TEXT;
++}
++
++struct graphics_backend uga_backend = {
++    .name = "uga",
++    .enable = enable,
++    .disable = disable,
++    .set_kernel_params = set_kernel_params,
++    .clbl = clbl,
++    .set_palette = set_palette,
++    .get_pixel_idx = get_pixel_idx,
++    .get_pixel_rgb = get_pixel_rgb,
++    .draw_pixel = draw_pixel,
++    .reset_screen_geometry = reset_screen_geometry,
++    .get_screen_size = get_screen_size,
++    .getxy = uga_getxy,
++    .setxy = setxy,
++    .gotoxy = NULL,
++    .cursor = cursor,
++};
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/font_8x16.c b/efi/font_8x16.c
+new file mode 100644
+index 0000000..94829ec
+--- /dev/null
++++ b/efi/font_8x16.c
+@@ -0,0 +1,4638 @@
++/* font_8x16.c - 8x16 font for GRUB/EFI */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copied from Linux kernel drivers/video/console/font_8x16.c,
++ *    which is generated by cpi2fnt.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifdef SUPPORT_GRAPHICS
++
++#define FONTDATAMAX 4096
++
++const unsigned char font8x16[FONTDATAMAX] = {
++
++      /* 0 0x00 '^@' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 1 0x01 '^A' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x81, /* 10000001 */
++      0xa5, /* 10100101 */
++      0x81, /* 10000001 */
++      0x81, /* 10000001 */
++      0xbd, /* 10111101 */
++      0x99, /* 10011001 */
++      0x81, /* 10000001 */
++      0x81, /* 10000001 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 2 0x02 '^B' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0xff, /* 11111111 */
++      0xdb, /* 11011011 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xc3, /* 11000011 */
++      0xe7, /* 11100111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 3 0x03 '^C' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x6c, /* 01101100 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0x7c, /* 01111100 */
++      0x38, /* 00111000 */
++      0x10, /* 00010000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 4 0x04 '^D' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x7c, /* 01111100 */
++      0xfe, /* 11111110 */
++      0x7c, /* 01111100 */
++      0x38, /* 00111000 */
++      0x10, /* 00010000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 5 0x05 '^E' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0xe7, /* 11100111 */
++      0xe7, /* 11100111 */
++      0xe7, /* 11100111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 6 0x06 '^F' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x7e, /* 01111110 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 7 0x07 '^G' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 8 0x08 '^H' */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xe7, /* 11100111 */
++      0xc3, /* 11000011 */
++      0xc3, /* 11000011 */
++      0xe7, /* 11100111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++
++      /* 9 0x09 '^I' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x42, /* 01000010 */
++      0x42, /* 01000010 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 10 0x0a '^J' */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xc3, /* 11000011 */
++      0x99, /* 10011001 */
++      0xbd, /* 10111101 */
++      0xbd, /* 10111101 */
++      0x99, /* 10011001 */
++      0xc3, /* 11000011 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++
++      /* 11 0x0b '^K' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1e, /* 00011110 */
++      0x0e, /* 00001110 */
++      0x1a, /* 00011010 */
++      0x32, /* 00110010 */
++      0x78, /* 01111000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 12 0x0c '^L' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 13 0x0d '^M' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3f, /* 00111111 */
++      0x33, /* 00110011 */
++      0x3f, /* 00111111 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x70, /* 01110000 */
++      0xf0, /* 11110000 */
++      0xe0, /* 11100000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 14 0x0e '^N' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7f, /* 01111111 */
++      0x63, /* 01100011 */
++      0x7f, /* 01111111 */
++      0x63, /* 01100011 */
++      0x63, /* 01100011 */
++      0x63, /* 01100011 */
++      0x63, /* 01100011 */
++      0x67, /* 01100111 */
++      0xe7, /* 11100111 */
++      0xe6, /* 11100110 */
++      0xc0, /* 11000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 15 0x0f '^O' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xdb, /* 11011011 */
++      0x3c, /* 00111100 */
++      0xe7, /* 11100111 */
++      0x3c, /* 00111100 */
++      0xdb, /* 11011011 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 16 0x10 '^P' */
++      0x00, /* 00000000 */
++      0x80, /* 10000000 */
++      0xc0, /* 11000000 */
++      0xe0, /* 11100000 */
++      0xf0, /* 11110000 */
++      0xf8, /* 11111000 */
++      0xfe, /* 11111110 */
++      0xf8, /* 11111000 */
++      0xf0, /* 11110000 */
++      0xe0, /* 11100000 */
++      0xc0, /* 11000000 */
++      0x80, /* 10000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 17 0x11 '^Q' */
++      0x00, /* 00000000 */
++      0x02, /* 00000010 */
++      0x06, /* 00000110 */
++      0x0e, /* 00001110 */
++      0x1e, /* 00011110 */
++      0x3e, /* 00111110 */
++      0xfe, /* 11111110 */
++      0x3e, /* 00111110 */
++      0x1e, /* 00011110 */
++      0x0e, /* 00001110 */
++      0x06, /* 00000110 */
++      0x02, /* 00000010 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 18 0x12 '^R' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 19 0x13 '^S' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 20 0x14 '^T' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7f, /* 01111111 */
++      0xdb, /* 11011011 */
++      0xdb, /* 11011011 */
++      0xdb, /* 11011011 */
++      0x7b, /* 01111011 */
++      0x1b, /* 00011011 */
++      0x1b, /* 00011011 */
++      0x1b, /* 00011011 */
++      0x1b, /* 00011011 */
++      0x1b, /* 00011011 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 21 0x15 '^U' */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0x60, /* 01100000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x0c, /* 00001100 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 22 0x16 '^V' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 23 0x17 '^W' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 24 0x18 '^X' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 25 0x19 '^Y' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 26 0x1a '^Z' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0xfe, /* 11111110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 27 0x1b '^[' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xfe, /* 11111110 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 28 0x1c '^\' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 29 0x1d '^]' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x28, /* 00101000 */
++      0x6c, /* 01101100 */
++      0xfe, /* 11111110 */
++      0x6c, /* 01101100 */
++      0x28, /* 00101000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 30 0x1e '^^' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x38, /* 00111000 */
++      0x7c, /* 01111100 */
++      0x7c, /* 01111100 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 31 0x1f '^_' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0x7c, /* 01111100 */
++      0x7c, /* 01111100 */
++      0x38, /* 00111000 */
++      0x38, /* 00111000 */
++      0x10, /* 00010000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 32 0x20 ' ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 33 0x21 '!' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 34 0x22 '"' */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x24, /* 00100100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 35 0x23 '#' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0xfe, /* 11111110 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0xfe, /* 11111110 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 36 0x24 '$' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc2, /* 11000010 */
++      0xc0, /* 11000000 */
++      0x7c, /* 01111100 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x86, /* 10000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 37 0x25 '%' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc2, /* 11000010 */
++      0xc6, /* 11000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc6, /* 11000110 */
++      0x86, /* 10000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 38 0x26 '&' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 39 0x27 ''' */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 40 0x28 '(' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 41 0x29 ')' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 42 0x2a '*' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0xff, /* 11111111 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 43 0x2b '+' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 44 0x2c ',' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 45 0x2d '-' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 46 0x2e '.' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 47 0x2f '/' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x02, /* 00000010 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0x80, /* 10000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 48 0x30 '0' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 49 0x31 '1' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x38, /* 00111000 */
++      0x78, /* 01111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 50 0x32 '2' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 51 0x33 '3' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x3c, /* 00111100 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 52 0x34 '4' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x0c, /* 00001100 */
++      0x1c, /* 00011100 */
++      0x3c, /* 00111100 */
++      0x6c, /* 01101100 */
++      0xcc, /* 11001100 */
++      0xfe, /* 11111110 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x1e, /* 00011110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 53 0x35 '5' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xfc, /* 11111100 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 54 0x36 '6' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xfc, /* 11111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 55 0x37 '7' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 56 0x38 '8' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 57 0x39 '9' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7e, /* 01111110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 58 0x3a ':' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 59 0x3b ';' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 60 0x3c '<' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x06, /* 00000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 61 0x3d '=' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 62 0x3e '>' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 63 0x3f '?' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 64 0x40 '@' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xde, /* 11011110 */
++      0xde, /* 11011110 */
++      0xde, /* 11011110 */
++      0xdc, /* 11011100 */
++      0xc0, /* 11000000 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 65 0x41 'A' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 66 0x42 'B' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfc, /* 11111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0xfc, /* 11111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 67 0x43 'C' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0xc2, /* 11000010 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc2, /* 11000010 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 68 0x44 'D' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xf8, /* 11111000 */
++      0x6c, /* 01101100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x6c, /* 01101100 */
++      0xf8, /* 11111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 69 0x45 'E' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x66, /* 01100110 */
++      0x62, /* 01100010 */
++      0x68, /* 01101000 */
++      0x78, /* 01111000 */
++      0x68, /* 01101000 */
++      0x60, /* 01100000 */
++      0x62, /* 01100010 */
++      0x66, /* 01100110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 70 0x46 'F' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x66, /* 01100110 */
++      0x62, /* 01100010 */
++      0x68, /* 01101000 */
++      0x78, /* 01111000 */
++      0x68, /* 01101000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xf0, /* 11110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 71 0x47 'G' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0xc2, /* 11000010 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xde, /* 11011110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x66, /* 01100110 */
++      0x3a, /* 00111010 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 72 0x48 'H' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 73 0x49 'I' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 74 0x4a 'J' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1e, /* 00011110 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 75 0x4b 'K' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xe6, /* 11100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x6c, /* 01101100 */
++      0x78, /* 01111000 */
++      0x78, /* 01111000 */
++      0x6c, /* 01101100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0xe6, /* 11100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 76 0x4c 'L' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xf0, /* 11110000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x62, /* 01100010 */
++      0x66, /* 01100110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 77 0x4d 'M' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xee, /* 11101110 */
++      0xfe, /* 11111110 */
++      0xfe, /* 11111110 */
++      0xd6, /* 11010110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 78 0x4e 'N' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xe6, /* 11100110 */
++      0xf6, /* 11110110 */
++      0xfe, /* 11111110 */
++      0xde, /* 11011110 */
++      0xce, /* 11001110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 79 0x4f 'O' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 80 0x50 'P' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfc, /* 11111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xf0, /* 11110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 81 0x51 'Q' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xd6, /* 11010110 */
++      0xde, /* 11011110 */
++      0x7c, /* 01111100 */
++      0x0c, /* 00001100 */
++      0x0e, /* 00001110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 82 0x52 'R' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfc, /* 11111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x6c, /* 01101100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0xe6, /* 11100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 83 0x53 'S' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x60, /* 01100000 */
++      0x38, /* 00111000 */
++      0x0c, /* 00001100 */
++      0x06, /* 00000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 84 0x54 'T' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x5a, /* 01011010 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 85 0x55 'U' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 86 0x56 'V' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x10, /* 00010000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 87 0x57 'W' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xfe, /* 11111110 */
++      0xee, /* 11101110 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 88 0x58 'X' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x7c, /* 01111100 */
++      0x38, /* 00111000 */
++      0x38, /* 00111000 */
++      0x7c, /* 01111100 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 89 0x59 'Y' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 90 0x5a 'Z' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0x86, /* 10000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc2, /* 11000010 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 91 0x5b '[' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 92 0x5c '\' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x80, /* 10000000 */
++      0xc0, /* 11000000 */
++      0xe0, /* 11100000 */
++      0x70, /* 01110000 */
++      0x38, /* 00111000 */
++      0x1c, /* 00011100 */
++      0x0e, /* 00001110 */
++      0x06, /* 00000110 */
++      0x02, /* 00000010 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 93 0x5d ']' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 94 0x5e '^' */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 95 0x5f '_' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 96 0x60 '`' */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 97 0x61 'a' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 98 0x62 'b' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xe0, /* 11100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x78, /* 01111000 */
++      0x6c, /* 01101100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 99 0x63 'c' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 100 0x64 'd' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1c, /* 00011100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x3c, /* 00111100 */
++      0x6c, /* 01101100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 101 0x65 'e' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 102 0x66 'f' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1c, /* 00011100 */
++      0x36, /* 00110110 */
++      0x32, /* 00110010 */
++      0x30, /* 00110000 */
++      0x78, /* 01111000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 103 0x67 'g' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x7c, /* 01111100 */
++      0x0c, /* 00001100 */
++      0xcc, /* 11001100 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++
++      /* 104 0x68 'h' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xe0, /* 11100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x6c, /* 01101100 */
++      0x76, /* 01110110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0xe6, /* 11100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 105 0x69 'i' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 106 0x6a 'j' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x00, /* 00000000 */
++      0x0e, /* 00001110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++
++      /* 107 0x6b 'k' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xe0, /* 11100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x66, /* 01100110 */
++      0x6c, /* 01101100 */
++      0x78, /* 01111000 */
++      0x78, /* 01111000 */
++      0x6c, /* 01101100 */
++      0x66, /* 01100110 */
++      0xe6, /* 11100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 108 0x6c 'l' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 109 0x6d 'm' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xec, /* 11101100 */
++      0xfe, /* 11111110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 110 0x6e 'n' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xdc, /* 11011100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 111 0x6f 'o' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 112 0x70 'p' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xdc, /* 11011100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xf0, /* 11110000 */
++      0x00, /* 00000000 */
++
++      /* 113 0x71 'q' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x7c, /* 01111100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x1e, /* 00011110 */
++      0x00, /* 00000000 */
++
++      /* 114 0x72 'r' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xdc, /* 11011100 */
++      0x76, /* 01110110 */
++      0x66, /* 01100110 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xf0, /* 11110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 115 0x73 's' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0x60, /* 01100000 */
++      0x38, /* 00111000 */
++      0x0c, /* 00001100 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 116 0x74 't' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0xfc, /* 11111100 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x36, /* 00110110 */
++      0x1c, /* 00011100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 117 0x75 'u' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 118 0x76 'v' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 119 0x77 'w' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xd6, /* 11010110 */
++      0xfe, /* 11111110 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 120 0x78 'x' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x38, /* 00111000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 121 0x79 'y' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7e, /* 01111110 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0xf8, /* 11111000 */
++      0x00, /* 00000000 */
++
++      /* 122 0x7a 'z' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xcc, /* 11001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 123 0x7b '{' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x0e, /* 00001110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x70, /* 01110000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x0e, /* 00001110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 124 0x7c '|' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 125 0x7d '}' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x70, /* 01110000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x0e, /* 00001110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 126 0x7e '~' */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 127 0x7f '\7f' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 128 0x80 '\80' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0xc2, /* 11000010 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc2, /* 11000010 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 129 0x81 '\81' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 130 0x82 '\82' */
++      0x00, /* 00000000 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 131 0x83 '\83' */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 132 0x84 '\84' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 133 0x85 '\85' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 134 0x86 '\86' */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 135 0x87 '\87' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x18, /* 00011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 136 0x88 '\88' */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 137 0x89 '\89' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 138 0x8a '\8a' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 139 0x8b '\8b' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 140 0x8c '\8c' */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 141 0x8d '\8d' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 142 0x8e '\8e' */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 143 0x8f '\8f' */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 144 0x90 '\90' */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x66, /* 01100110 */
++      0x62, /* 01100010 */
++      0x68, /* 01101000 */
++      0x78, /* 01111000 */
++      0x68, /* 01101000 */
++      0x62, /* 01100010 */
++      0x66, /* 01100110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 145 0x91 '\91' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xec, /* 11101100 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x7e, /* 01111110 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0x6e, /* 01101110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 146 0x92 '\92' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3e, /* 00111110 */
++      0x6c, /* 01101100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xfe, /* 11111110 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xce, /* 11001110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 147 0x93 '\93' */
++      0x00, /* 00000000 */
++      0x10, /* 00010000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 148 0x94 '\94' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 149 0x95 '\95' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 150 0x96 '\96' */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x78, /* 01111000 */
++      0xcc, /* 11001100 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 151 0x97 '\97' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 152 0x98 '\98' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7e, /* 01111110 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x78, /* 01111000 */
++      0x00, /* 00000000 */
++
++      /* 153 0x99 '\99' */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 154 0x9a '\9a' */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 155 0x9b '\9b' */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 156 0x9c '\9c' */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x64, /* 01100100 */
++      0x60, /* 01100000 */
++      0xf0, /* 11110000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xe6, /* 11100110 */
++      0xfc, /* 11111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 157 0x9d '\9d' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 158 0x9e '\9e' */
++      0x00, /* 00000000 */
++      0xf8, /* 11111000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xf8, /* 11111000 */
++      0xc4, /* 11000100 */
++      0xcc, /* 11001100 */
++      0xde, /* 11011110 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 159 0x9f '\9f' */
++      0x00, /* 00000000 */
++      0x0e, /* 00001110 */
++      0x1b, /* 00011011 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xd8, /* 11011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 160 0xa0 ' ' */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0x0c, /* 00001100 */
++      0x7c, /* 01111100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 161 0xa1 '¡' */
++      0x00, /* 00000000 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 162 0xa2 '¢' */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 163 0xa3 '£' */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x00, /* 00000000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 164 0xa4 '¤' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x00, /* 00000000 */
++      0xdc, /* 11011100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 165 0xa5 '¥' */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x00, /* 00000000 */
++      0xc6, /* 11000110 */
++      0xe6, /* 11100110 */
++      0xf6, /* 11110110 */
++      0xfe, /* 11111110 */
++      0xde, /* 11011110 */
++      0xce, /* 11001110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 166 0xa6 '¦' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x3e, /* 00111110 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 167 0xa7 '§' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 168 0xa8 '¨' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x7c, /* 01111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 169 0xa9 '©' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 170 0xaa 'ª' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 171 0xab '«' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0xe0, /* 11100000 */
++      0x62, /* 01100010 */
++      0x66, /* 01100110 */
++      0x6c, /* 01101100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xdc, /* 11011100 */
++      0x86, /* 10000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x3e, /* 00111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 172 0xac '¬' */
++      0x00, /* 00000000 */
++      0x60, /* 01100000 */
++      0xe0, /* 11100000 */
++      0x62, /* 01100010 */
++      0x66, /* 01100110 */
++      0x6c, /* 01101100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x66, /* 01100110 */
++      0xce, /* 11001110 */
++      0x9a, /* 10011010 */
++      0x3f, /* 00111111 */
++      0x06, /* 00000110 */
++      0x06, /* 00000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 173 0xad '­' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 174 0xae '®' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x36, /* 00110110 */
++      0x6c, /* 01101100 */
++      0xd8, /* 11011000 */
++      0x6c, /* 01101100 */
++      0x36, /* 00110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 175 0xaf '¯' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xd8, /* 11011000 */
++      0x6c, /* 01101100 */
++      0x36, /* 00110110 */
++      0x6c, /* 01101100 */
++      0xd8, /* 11011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 176 0xb0 '°' */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++      0x11, /* 00010001 */
++      0x44, /* 01000100 */
++
++      /* 177 0xb1 '±' */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++      0x55, /* 01010101 */
++      0xaa, /* 10101010 */
++
++      /* 178 0xb2 '²' */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++      0xdd, /* 11011101 */
++      0x77, /* 01110111 */
++
++      /* 179 0xb3 '³' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 180 0xb4 '´' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 181 0xb5 'µ' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 182 0xb6 '¶' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xf6, /* 11110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 183 0xb7 '·' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 184 0xb8 '¸' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 185 0xb9 '¹' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xf6, /* 11110110 */
++      0x06, /* 00000110 */
++      0xf6, /* 11110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 186 0xba 'º' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 187 0xbb '»' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x06, /* 00000110 */
++      0xf6, /* 11110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 188 0xbc '¼' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xf6, /* 11110110 */
++      0x06, /* 00000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 189 0xbd '½' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 190 0xbe '¾' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 191 0xbf '¿' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xf8, /* 11111000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 192 0xc0 'À' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 193 0xc1 'Á' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 194 0xc2 'Â' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 195 0xc3 'Ã' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 196 0xc4 'Ä' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 197 0xc5 'Å' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xff, /* 11111111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 198 0xc6 'Æ' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 199 0xc7 'Ç' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x37, /* 00110111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 200 0xc8 'È' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x37, /* 00110111 */
++      0x30, /* 00110000 */
++      0x3f, /* 00111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 201 0xc9 'É' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3f, /* 00111111 */
++      0x30, /* 00110000 */
++      0x37, /* 00110111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 202 0xca 'Ê' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xf7, /* 11110111 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 203 0xcb 'Ë' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0xf7, /* 11110111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 204 0xcc 'Ì' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x37, /* 00110111 */
++      0x30, /* 00110000 */
++      0x37, /* 00110111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 205 0xcd 'Í' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 206 0xce 'Î' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xf7, /* 11110111 */
++      0x00, /* 00000000 */
++      0xf7, /* 11110111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 207 0xcf 'Ï' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 208 0xd0 'Ð' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 209 0xd1 'Ñ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 210 0xd2 'Ò' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 211 0xd3 'Ó' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x3f, /* 00111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 212 0xd4 'Ô' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 213 0xd5 'Õ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 214 0xd6 'Ö' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x3f, /* 00111111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 215 0xd7 '×' */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0xff, /* 11111111 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++
++      /* 216 0xd8 'Ø' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xff, /* 11111111 */
++      0x18, /* 00011000 */
++      0xff, /* 11111111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 217 0xd9 'Ù' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xf8, /* 11111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 218 0xda 'Ú' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1f, /* 00011111 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 219 0xdb 'Û' */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++
++      /* 220 0xdc 'Ü' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++
++      /* 221 0xdd 'Ý' */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++      0xf0, /* 11110000 */
++
++      /* 222 0xde 'Þ' */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++      0x0f, /* 00001111 */
++
++      /* 223 0xdf 'ß' */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0xff, /* 11111111 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 224 0xe0 'à' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xdc, /* 11011100 */
++      0x76, /* 01110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 225 0xe1 'á' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x78, /* 01111000 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xcc, /* 11001100 */
++      0xd8, /* 11011000 */
++      0xcc, /* 11001100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xcc, /* 11001100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 226 0xe2 'â' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0xc0, /* 11000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 227 0xe3 'ã' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 228 0xe4 'ä' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 229 0xe5 'å' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 230 0xe6 'æ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x7c, /* 01111100 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0x00, /* 00000000 */
++
++      /* 231 0xe7 'ç' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 232 0xe8 'è' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 233 0xe9 'é' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xfe, /* 11111110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 234 0xea 'ê' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0xee, /* 11101110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 235 0xeb 'ë' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1e, /* 00011110 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x3e, /* 00111110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x66, /* 01100110 */
++      0x3c, /* 00111100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 236 0xec 'ì' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0xdb, /* 11011011 */
++      0xdb, /* 11011011 */
++      0xdb, /* 11011011 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 237 0xed 'í' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x03, /* 00000011 */
++      0x06, /* 00000110 */
++      0x7e, /* 01111110 */
++      0xdb, /* 11011011 */
++      0xdb, /* 11011011 */
++      0xf3, /* 11110011 */
++      0x7e, /* 01111110 */
++      0x60, /* 01100000 */
++      0xc0, /* 11000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 238 0xee 'î' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x1c, /* 00011100 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x7c, /* 01111100 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x1c, /* 00011100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 239 0xef 'ï' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7c, /* 01111100 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0xc6, /* 11000110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 240 0xf0 'ð' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0xfe, /* 11111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 241 0xf1 'ñ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x7e, /* 01111110 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 242 0xf2 'ò' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x06, /* 00000110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 243 0xf3 'ó' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x30, /* 00110000 */
++      0x60, /* 01100000 */
++      0x30, /* 00110000 */
++      0x18, /* 00011000 */
++      0x0c, /* 00001100 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 244 0xf4 'ô' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x0e, /* 00001110 */
++      0x1b, /* 00011011 */
++      0x1b, /* 00011011 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++
++      /* 245 0xf5 'õ' */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0xd8, /* 11011000 */
++      0x70, /* 01110000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 246 0xf6 'ö' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 247 0xf7 '÷' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x00, /* 00000000 */
++      0x76, /* 01110110 */
++      0xdc, /* 11011100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 248 0xf8 'ø' */
++      0x00, /* 00000000 */
++      0x38, /* 00111000 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x38, /* 00111000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 249 0xf9 'ù' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 250 0xfa 'ú' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x18, /* 00011000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 251 0xfb 'û' */
++      0x00, /* 00000000 */
++      0x0f, /* 00001111 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0x0c, /* 00001100 */
++      0xec, /* 11101100 */
++      0x6c, /* 01101100 */
++      0x6c, /* 01101100 */
++      0x3c, /* 00111100 */
++      0x1c, /* 00011100 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 252 0xfc 'ü' */
++      0x00, /* 00000000 */
++      0x6c, /* 01101100 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x36, /* 00110110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 253 0xfd 'ý' */
++      0x00, /* 00000000 */
++      0x3c, /* 00111100 */
++      0x66, /* 01100110 */
++      0x0c, /* 00001100 */
++      0x18, /* 00011000 */
++      0x32, /* 00110010 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 254 0xfe 'þ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x7e, /* 01111110 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++      /* 255 0xff 'ÿ' */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++      0x00, /* 00000000 */
++
++};
++
++#endif
+diff --git a/efi/graphics.c b/efi/graphics.c
+new file mode 100644
+index 0000000..eb98d8a
+--- /dev/null
++++ b/efi/graphics.c
+@@ -0,0 +1,666 @@
++#ifdef SUPPORT_GRAPHICS
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++#include "graphics.h"
++
++#if 0
++#include "ugadebug.h"
++#endif
++
++int foreground = 0x00ffffff, background = 0; 
++int graphics_inited = 0;
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int
++hex (int v)
++{
++  if (v >= 'A' && v <= 'F')
++    return (v - 'A' + 10);
++  if (v >= 'a' && v <= 'f')
++    return (v - 'a' + 10);
++  return (v - '0');
++}
++
++grub_uint16_t
++grub_console_getwh (void)
++{
++  grub_efi_simple_text_output_interface_t *o;
++  grub_efi_uintn_t columns, rows;
++
++  o = grub_efi_system_table->con_out;
++  if (Call_Service_4 (o->query_mode , o, o->mode->mode, &columns, &rows)
++      != GRUB_EFI_SUCCESS)
++    {
++      /* Why does this fail?  */
++      columns = 80;
++      rows = 25;
++    }
++
++  return ((columns << 8) | rows);
++}
++
++extern struct graphics_backend uga_backend;
++extern struct graphics_backend eg_backend;
++
++static struct graphics_backend *backends[] = {
++    &eg_backend,
++    &uga_backend,
++    NULL
++};
++static struct graphics_backend *backend;
++
++struct graphics {
++    int scroll;
++    int fontx;
++    int fonty;
++
++    int standard_color;
++    int normal_color;
++    int highlight_color;
++    int current_color;
++    color_state color_state;
++
++    char splashpath[64];
++    struct xpm *splashimage;
++
++    unsigned short *text;
++};
++
++static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
++static grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
++static grub_efi_guid_t pci_root_io_guid = GRUB_EFI_PCI_ROOT_IO_GUID;
++
++static void
++grub_efi_configure_pci(grub_efi_handle_t handle)
++{
++  grub_efi_device_path_t *path, *parent;
++  grub_efi_handle_t parent_handle;
++  grub_efi_pci_io_t *pci_proto;
++  grub_efi_pci_root_io_t *pci_root_proto;
++  grub_efi_status_t status;
++
++  path = grub_efi_get_device_path(handle);
++  parent = find_parent_device_path(path);
++
++  if (!parent)
++    return;
++
++  status = grub_efi_locate_device_path (&device_path_guid, &parent,
++                                      &parent_handle);
++  if (status != GRUB_EFI_SUCCESS)
++    return;
++
++  pci_proto = grub_efi_open_protocol (parent_handle, &pci_io_guid,
++                                    GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++  pci_root_proto = grub_efi_open_protocol (parent_handle, &pci_root_io_guid,
++                                         GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++
++  if (pci_proto || pci_root_proto)
++    {
++      if (pci_proto)
++      {
++        Call_Service_4 (pci_proto->attributes, pci_proto,
++                        grub_efi_pci_io_attribute_operation_enable,
++                        GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY |
++                        GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO |
++                        GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO, NULL);
++
++        grub_efi_configure_pci (parent_handle);
++      }
++      else
++      {
++        grub_uint8_t value = 0x33;
++        grub_uint16_t vendor;
++
++        Call_Service_5 (pci_root_proto->pci.read, pci_root_proto,
++                        grub_efi_pci_io_width_uint16, 0x00, 1, &vendor);
++
++        if (vendor == 0x8086) {
++          Call_Service_5 (pci_root_proto->pci.write, pci_root_proto,
++                          grub_efi_pci_io_width_uint8, 0x91, 1, &value);
++          Call_Service_5 (pci_root_proto->pci.write, pci_root_proto,
++                          grub_efi_pci_io_width_uint8, 0x92, 1, &value);
++        }
++      }
++    }
++  grub_free(parent);
++}
++
++void
++grub_efi_setup_gfx_pci(grub_efi_handle_t handle)
++{
++  grub_efi_uint64_t romsize;
++  grub_efi_uint16_t *header;
++  void *vrom;
++  grub_efi_pci_io_t *pci_proto;
++
++  pci_proto = grub_efi_open_protocol (handle, &pci_io_guid,
++                                    GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++  if (!pci_proto)
++    return;
++
++  romsize = pci_proto->rom_size;
++
++  if (!romsize || romsize > 65536 || !pci_proto->rom_image)
++    return;
++
++  /* Copy the ROM */
++  vrom = grub_efi_allocate_runtime_pages(0xc0000, 16);
++
++  if (!vrom)
++    return;
++
++  header = vrom;
++
++  if (*header == 0xaa55)
++    return;
++
++  grub_efi_configure_pci(handle);
++
++  grub_memcpy(vrom, pci_proto->rom_image, romsize);
++}
++
++void
++graphics_set_kernel_params(struct linux_kernel_params *params)
++{
++    params->video_cursor_x = grub_efi_system_table->con_out->mode->cursor_column;
++    params->video_cursor_y = grub_efi_system_table->con_out->mode->cursor_row;
++    params->video_page = 0; /* ??? */
++    params->video_mode = grub_efi_system_table->con_out->mode->mode;
++    params->video_width = (grub_console_getwh () >> 8);
++    params->video_ega_bx = 0;
++    params->video_height = (grub_console_getwh () & 0xff);
++    params->have_vga = 0;
++    params->font_size = 16; /* XXX */
++
++    /* No VBE.  */
++    params->lfb_width = 0;
++    params->lfb_height = 0;
++    params->lfb_depth = 0;
++    params->lfb_base = 0;
++    params->lfb_size = 0;
++    params->lfb_line_len = 0;
++    params->red_mask_size = 0;
++    params->red_field_pos = 0;
++    params->green_mask_size = 0;
++    params->green_field_pos = 0;
++    params->blue_mask_size = 0;
++    params->blue_field_pos = 0;
++    params->reserved_mask_size = 0;
++    params->reserved_field_pos = 0;
++    params->vesapm_segment = 0;
++    params->vesapm_offset = 0;
++    params->lfb_pages = 0;
++    params->vesa_attrib = 0;
++
++    if (backend && backend->set_kernel_params)
++        backend->set_kernel_params(backend, params);
++}
++
++int
++graphics_alloc_text_buf(void)
++{
++    if (backend) {
++        struct graphics *graphics = backend->graphics;
++        position_t screen_size;
++
++        if (graphics->text) {
++            grub_free(graphics->text);
++            graphics->text = NULL;
++        }
++        graphics_get_screen_rowscols(&screen_size);
++        graphics->text = grub_malloc(screen_size.x
++                                     * screen_size.y
++                                     * sizeof (graphics->text[0]));
++        if (graphics->text) {
++            int x, y;
++            for (y = 0; y < screen_size.y; y++)
++                for (x = 0; x < screen_size.x; x++)
++                    graphics->text[y * screen_size.x + x] = ' ';
++            return 1;
++        }
++    }
++    return 0;
++}
++
++unsigned short *
++graphics_get_text_buf(void)
++{
++    return backend ? backend->graphics->text : NULL;
++    return NULL;
++}
++
++int
++graphics_get_screen_rowscols(position_t *size)
++{
++#if 0
++    if (backend && backend->get_screen_size) {
++        backend->get_screen_size(backend, size);
++        size->x >>= 3;
++        size->y >>= 4;
++        return 1;
++    }
++    size->x = -1;
++    size->y = -1;
++    return 0;
++#else
++    size->x = 80;
++    size->y = 30;
++    return 1;
++#endif
++}
++
++int
++graphics_get_scroll(void)
++{
++    return backend ? backend->graphics->scroll : 1;
++}
++
++void
++graphics_set_palette(int idx, int red, int green, int blue)
++{
++    if (backend && backend->set_palette) {
++        backend->set_palette(backend, idx, red, green, blue);
++      backend->set_palette(backend, 0, 0x00, 0x00, 0x00);
++      backend->set_palette(backend, 15, 0xff, 0xff, 0xff);
++      backend->set_palette(backend, 16, 0x00, 0x00, 0x00);
++    }
++}
++
++static char splashpath[64] = "";
++
++static void
++graphics_set_splash_helper(void)
++{
++    if (backend) {
++        struct xpm *xpm = NULL;
++
++        if (backend->graphics->splashimage)
++            xpm_free(backend->graphics->splashimage);
++
++        if (splashpath[0])
++            xpm = xpm_open(splashpath);
++
++        if (xpm) {
++            backend->graphics->splashimage = xpm;
++          grub_strcpy(backend->graphics->splashpath, splashpath);
++        } else {
++            backend->graphics->splashimage = NULL;
++            backend->graphics->splashpath[0] = '\0';
++        }
++        backend->reset_screen_geometry(backend);
++    }
++}
++
++void
++graphics_set_splash(char *s)
++{
++    if (s && s[0] != '\0')
++        grub_strcpy(splashpath, s);
++    else
++        splashpath[0] = '\0';
++    graphics_set_splash_helper();
++}
++
++char *
++graphics_get_splash(void)
++{
++    if (backend)
++        return backend->graphics->splashpath;
++    if (splashpath[0] != '\0')
++        return splashpath;
++    return NULL;
++}
++
++struct xpm *
++graphics_get_splash_xpm(void)
++{
++    if (backend)
++        return backend->graphics->splashimage;
++    return NULL;
++}
++
++void
++graphics_putchar(int ch)
++{
++    struct graphics *graphics;
++    position_t screensz;
++    int offset;
++
++    void *old_term = current_term;
++
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++    graphics_get_screen_rowscols(&screensz);
++
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (graphics->fonty + 1 < screensz.y) {
++            graphics_setxy(graphics->fontx, graphics->fonty + 1);
++        } else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(0, graphics->fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    offset = graphics->fontx + graphics->fonty * screensz.x;
++    graphics->text[offset] = ch;
++    graphics->text[offset] &= 0x00ff;
++    if (graphics->current_color & 0xf0)
++        graphics->text[offset] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((graphics->fontx + 1) >= screensz.x) {
++        graphics_setxy(0, graphics->fonty);
++        if (graphics->fonty + 1 < screensz.y)
++            graphics_setxy(0, graphics->fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(graphics->fontx + 1, graphics->fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++void
++graphics_set_font_position(position_t *pos)
++{
++    if (backend) {
++        backend->graphics->fontx = pos->x;
++        backend->graphics->fonty = pos->y;
++    }
++}
++
++void
++graphics_get_font_position(position_t *pos)
++{
++    if (backend) {
++        pos->x = backend->graphics->fontx;
++        pos->y = backend->graphics->fonty;
++        return;
++    }
++    pos->x = -1;
++    pos->y = -1;
++}
++
++void
++graphics_get_font_size(position_t *size)
++{
++    size->x = 8;
++    size->y = 16;
++}
++
++void
++graphics_setxy(int x, int y)
++{
++    if (!backend)
++        return;
++
++    if (backend->setxy) {
++        position_t pos = {x, y};
++        backend->setxy(backend, &pos);
++        return;
++    }
++}
++
++int
++graphics_getxy(void)
++{
++    int ret = 0;
++    if (backend) {
++        if (backend->getxy) {
++            position_t pos;
++            backend->getxy(backend, &pos);
++            ret = ((pos.x & 0xff) << 8) | (pos.y & 0xff);
++        } else {
++            ret = ((backend->graphics->fontx & 0xff) << 8) | (backend->graphics->fonty & 0xff);
++        }
++    }
++    return ret;
++}
++
++void
++graphics_scroll (void)
++{
++    struct graphics *graphics;
++    position_t screensz;
++    int i;
++    unsigned short *text;
++    int linesz;
++
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (!graphics->scroll)
++        return;
++    graphics->scroll = 0;
++    graphics_get_screen_rowscols(&screensz);
++
++    text = graphics_get_text_buf();
++    linesz = screensz.x * sizeof (text[0]);
++    for (i = 1; i < screensz.y; i++) {
++        unsigned short *prev = &text[(i-1) * screensz.x];
++        unsigned short *this = prev + screensz.x;
++
++        memmove(prev, this, linesz);
++        prev = this;
++        this += screensz.x;
++    }
++    graphics_setxy(0, screensz.y - 1);
++    for (i = 0; i < screensz.x; i++) {
++        graphics_putchar(' ');
++        //text[(screensz.y-1) + i] = ' ';
++    }
++
++    graphics_clbl(0, 0, screensz.x, screensz.y, 1);
++    graphics_setxy(0, screensz.y - 1);
++    graphics->scroll = 1;
++}
++
++void
++graphics_cursor(int set)
++{
++    if (backend && backend->cursor)
++        backend->cursor(backend, set);
++}
++
++void
++graphics_gotoxy(int x, int y)
++{
++    position_t pos = {x,y};
++    if (backend) {
++        if (backend->gotoxy) {
++            backend->gotoxy(backend, &pos);
++        } else {
++            graphics_cursor(0);
++            graphics_setxy(x, y);
++            graphics_cursor(1);
++        }
++    }
++}
++
++void
++graphics_cls(void)
++{
++    int x = 0, y = 0, xy;
++    unsigned short *text;
++    position_t screensz;
++
++    graphics_get_screen_rowscols(&screensz);
++    text = graphics_get_text_buf();
++    for (y = 0; y < screensz.y; y++)
++            for (x = 0; x < screensz.x; x++)
++                text[x + y * screensz.x] = ' ';
++
++    if (backend) {
++        //int xy = graphics_getxy();
++
++        graphics_clbl(0, 0, screensz.x, screensz.y, 0);
++        //graphics_gotoxy(xy & 0xf0 >> 8, xy & 0xf);
++        graphics_gotoxy(0, 0);
++    }
++}
++
++void
++graphics_clbl(int col, int row, int width, int height, int draw_text)
++{
++    if (backend) {
++        int x = 0, y = 0, xy;
++        unsigned short *text;
++        position_t screensz;
++
++        graphics_get_screen_rowscols(&screensz);
++
++#if 0
++        xy = graphics_getxy();
++#endif
++        if (backend->clbl) {
++            backend->clbl(backend, col, row, width, height, draw_text);
++        } else {
++            for (y = 0; y < screensz.y; y++) {
++                for (x = 0; x < screensz.x; x++) {
++                    graphics_setxy(x, y);
++                    graphics_cursor(0);
++                }
++            }
++        }
++#if 0
++        graphics_gotoxy(xy >> 8, xy & 0xf);
++#endif
++    }
++}
++
++void
++graphics_setcolorstate (color_state state)
++{
++    struct graphics *graphics;
++    if (!backend)
++        return;
++
++    graphics = backend->graphics;
++    
++    switch (state) {
++        case COLOR_STATE_STANDARD:
++            graphics->current_color = graphics->standard_color;
++            break;
++        case COLOR_STATE_NORMAL:
++            graphics->current_color = graphics->normal_color;
++            break;
++        case COLOR_STATE_HIGHLIGHT:
++            graphics->current_color = graphics->highlight_color;
++            break;
++        default:
++            graphics->current_color = graphics->standard_color;
++            break;
++    }
++
++    graphics->color_state = state;
++}
++
++void
++graphics_setcolor (int normal_color, int highlight_color)
++{
++    backend->graphics->normal_color = normal_color;
++    backend->graphics->highlight_color = highlight_color;
++
++    graphics_setcolorstate (backend->graphics->color_state);
++}
++
++int 
++graphics_setcursor(int on)
++{
++    /* FIXME: we don't have a cursor in graphics */
++    return 0;
++}
++
++int
++graphics_init(void)
++{
++    struct graphics *graphics;
++    int i;
++
++    if (graphics_inited)
++        return 1;
++
++    if (backend) {
++        if (backend->enable(backend)) {
++            graphics_inited = 1;
++            graphics_set_splash_helper();
++            return 1;
++        }
++        return 0;
++    }
++
++    graphics = grub_malloc(sizeof (*graphics));
++    if (!graphics)
++        return 0;
++
++    grub_memset(graphics, '\0', sizeof (*graphics));
++
++    graphics->scroll = 1;
++    graphics->fontx = 0;
++    graphics->fonty = 0;
++
++    graphics->standard_color = A_NORMAL;
++    graphics->normal_color = A_NORMAL;
++    graphics->highlight_color = A_REVERSE;
++    graphics->current_color = A_NORMAL;
++    graphics->color_state = COLOR_STATE_STANDARD;
++
++    grub_memset(graphics->splashpath, '\0', sizeof (graphics->splashpath));
++
++    for(i = 0; backends[i] != NULL; i++) {
++        backend = backends[i];
++        backend->graphics = graphics;
++        if (backend->enable(backend)) {
++            graphics_inited = 1;
++            graphics_set_splash_helper();
++            return 1;
++        }
++        backend->graphics = NULL;
++    }
++    current_term = term_table;
++    grub_free(graphics->text);
++    grub_free(graphics);
++    return 0;
++}
++
++void
++graphics_end(void)
++{
++    if (backend && graphics_inited) {
++        graphics_inited = 0;
++        backend->disable(backend);
++    }
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/efi/graphics.h b/efi/graphics.h
+new file mode 100644
+index 0000000..ecf9e0e
+--- /dev/null
++++ b/efi/graphics.h
+@@ -0,0 +1,81 @@
++#ifndef GRUB_EFI_GRAPHICS_H
++#define GRUB_EFI_GRAPHICS_H
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include "xpm.h"
++
++#define VIDEO_TYPE_EFI 0x70
++
++typedef void pixel_t;
++struct graphics;
++
++struct position {
++    int x;
++    int y;
++};
++typedef struct position position_t;
++
++extern void grub_efi_setup_gfx_pci (grub_efi_handle_t handle);
++
++extern grub_uint16_t grub_console_getwh (void);
++extern void graphics_set_kernel_params(struct linux_kernel_params *params);
++extern void graphics_set_font_position(position_t *pos);
++extern void graphics_get_font_position(position_t *pos);
++extern void graphics_get_font_size(position_t *size);
++extern int graphics_get_screen_rowscols(position_t *size);
++extern int graphics_alloc_text_buf(void);
++extern unsigned short *graphics_get_text_buf(void);
++
++extern int graphics_get_scroll(void);
++
++extern char *graphics_get_splash(void);
++extern void graphics_setxy(int x, int y);
++extern void graphics_cls(void);
++extern void graphics_clbl(int x, int y, int width, int height, int draw_text);
++extern void graphics_setcolorstate (color_state state);
++extern void graphics_setcolor (int normal_color, int highlight_color);
++extern int graphics_setcursor(int on);
++extern int graphics_init(void);
++extern void graphics_end(void);
++extern struct xpm *graphics_get_splash_xpm(void);
++extern void graphics_cursor(int set);
++extern void graphics_scroll(void);
++
++struct graphics_backend {
++    char *name;
++    struct graphics *graphics;
++    void *priv;
++
++    int (*enable)(struct graphics_backend *backend);
++    void (*disable)(struct graphics_backend *backend);
++
++    void (*set_kernel_params)(struct graphics_backend *backend,
++            struct linux_kernel_params *params);
++
++    void (*clbl)(struct graphics_backend *backend, int col, int row,
++                                                 int width, int height,
++                                                   int draw_text);
++
++    void (*set_palette)(struct graphics_backend *backend,
++                        int idx, int red, int green, int blue);
++    pixel_t *(*get_pixel_idx)(struct graphics_backend *backend, int idx);
++    pixel_t *(*get_pixel_rgb)(struct graphics_backend *backend,
++                              int red, int green, int blue);
++    void (*draw_pixel)(struct graphics_backend *backend,
++                       position_t *pos, pixel_t *pixel);
++
++    void (*reset_screen_geometry)(struct graphics_backend *backend);
++    void (*get_screen_size)(struct graphics_backend *backend, position_t *size);
++    void (*getxy)(struct graphics_backend *backend, position_t *pos);
++    void (*setxy)(struct graphics_backend *backend, position_t *pos);
++    void (*gotoxy)(struct graphics_backend *backend, position_t *pos);
++    void (*cursor)(struct graphics_backend *backend, int set);
++//    void (*putchar)(struct graphics_backend *backend, int ch);
++};
++
++extern const unsigned char font8x16[];
++
++#endif /* SUPPORT_GRAPHCIS */
++#endif /* GRUB_EFI_GRAPHICS_H */
+diff --git a/efi/grub/.gitignore b/efi/grub/.gitignore
+new file mode 100644
+index 0000000..40a991e
+--- /dev/null
++++ b/efi/grub/.gitignore
+@@ -0,0 +1 @@
++cpu
+diff --git a/efi/grub/efi/api.h b/efi/grub/efi/api.h
+new file mode 100644
+index 0000000..81a0b3f
+--- /dev/null
++++ b/efi/grub/efi/api.h
+@@ -0,0 +1,1716 @@
++/* efi.h - declare EFI types and functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_API_HEADER
++#define GRUB_EFI_API_HEADER   1
++
++#include <grub/types.h>
++#include <grub/efi/eficall.h>
++
++/* For consistency and safety, we name the EFI-defined types differently.
++   All names are transformed into lower case, _t appended, and
++   grub_efi_ prepended.  */
++
++/* Constants.  */
++#define GRUB_EFI_EVT_TIMER                            0x80000000
++#define GRUB_EFI_EVT_RUNTIME                          0x40000000
++#define GRUB_EFI_EVT_RUNTIME_CONTEXT                  0x20000000
++#define GRUB_EFI_EVT_NOTIFY_WAIT                      0x00000100
++#define GRUB_EFI_EVT_NOTIFY_SIGNAL                    0x00000200
++#define GRUB_EFI_EVT_SIGNAL_EXIT_BOOT_SERVICES                0x00000201
++#define GRUB_EFI_EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE    0x60000202
++
++#define GRUB_EFI_TPL_APPLICATION      4
++#define GRUB_EFI_TPL_CALLBACK         8
++#define GRUB_EFI_TPL_NOTIFY           16
++#define GRUB_EFI_TPL_HIGH_LEVEL               31
++
++#define GRUB_EFI_MEMORY_UC    0x0000000000000001
++#define GRUB_EFI_MEMORY_WC    0x0000000000000002
++#define GRUB_EFI_MEMORY_WT    0x0000000000000004
++#define GRUB_EFI_MEMORY_WB    0x0000000000000008
++#define GRUB_EFI_MEMORY_UCE   0x0000000000000010
++#define GRUB_EFI_MEMORY_WP    0x0000000000001000
++#define GRUB_EFI_MEMORY_RP    0x0000000000002000
++#define GRUB_EFI_MEMORY_XP    0x0000000000004000
++#define GRUB_EFI_MEMORY_RUNTIME       0x8000000000000000
++
++#define GRUB_EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL     0x00000001
++#define GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL           0x00000002
++#define GRUB_EFI_OPEN_PROTOCOL_TEST_PROTOCOL          0x00000004
++#define GRUB_EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER    0x00000008
++#define GRUB_EFI_OPEN_PROTOCOL_BY_DRIVER              0x00000010
++#define GRUB_EFI_OPEN_PROTOCOL_BY_EXCLUSIVE           0x00000020
++
++#define GRUB_EFI_VARIABLE_NON_VOLATILE                0x0000000000000001
++#define GRUB_EFI_VARIABLE_BOOTSERVICE_ACCESS  0x0000000000000002
++#define GRUB_EFI_VARIABLE_RUNTIME_ACCESS      0x0000000000000004
++
++#define GRUB_EFI_TIME_ADJUST_DAYLIGHT 0x01
++#define GRUB_EFI_TIME_IN_DAYLIGHT     0x02
++
++#define GRUB_EFI_UNSPECIFIED_TIMEZONE 0x07FF
++
++#define GRUB_EFI_OPTIONAL_PTR 0x00000001
++
++#define GRUB_EFI_PCI_IO_GUID  \
++  { 0x4cf5b200, 0x68b8, 0x4ca5, \
++    { 0x9e, 0xec, 0xb2, 0x3e, 0x3f, 0x50, 0x02, 0x9a } \
++  }
++
++#define GRUB_EFI_PCI_ROOT_IO_GUID \
++  { 0x2F707EBB, 0x4A1A, 0x11d4, \
++      { 0x9A, 0x38, 0x00, 0x90,       0x27, 0x3F, 0xC1, 0x4D } \
++  }
++
++#define GRUB_EFI_LOADED_IMAGE_GUID    \
++  { 0x5b1b31a1, 0x9562, 0x11d2, \
++    { 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DISK_IO_GUID \
++  { 0xce345171, 0xba0b, 0x11d2, \
++    { 0x8e, 0x4f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_BLOCK_IO_GUID        \
++  { 0x964e5b21, 0x6459, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DEVICE_PATH_GUID     \
++  { 0x09576e91, 0x6d3f, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_DEVICE_PATH_FROM_TEXT_GUID   \
++  { 0x05c99a21, 0xc70f, 0x4ad2, \
++    { 0x8a, 0x5f, 0x35, 0xdf, 0x33, 0x43, 0xf5, 0x1e } \
++  }
++
++#define GRUB_EFI_GRAPHICS_OUTPUT_GUID \
++  { 0x9042a9de, 0x23dc, 0x4a38, \
++    { 0x96, 0xfb, 0x7a, 0xde, 0xd0, 0x80, 0x51, 0x6a } \
++  }
++
++#define GRUB_EFI_UGA_DRAW_GUID \
++  { 0x982c298b, 0xf4fa, 0x41cb, \
++    { 0xb8, 0x38, 0x77, 0xaa, 0x68, 0x8f, 0xb8, 0x39 } \
++  }
++
++#define GRUB_EFI_UGA_IO_GUID \
++  { 0x61a4d49e, 0x6f68, 0x4f1b, \
++    { 0xb9, 0x22, 0xa8, 0x6e, 0xed, 0xb, 0x7, 0xa2 } \
++  }
++
++#define GRUB_EFI_SIMPLE_FILE_SYSTEM_GUID      \
++  { 0x964e5b22, 0x6459, 0x11d2, \
++    { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
++  }
++
++#define GRUB_EFI_SERIAL_IO_GUID               \
++  { 0xbb25cf6f, 0xf1d4, 0x11d2, \
++    { 0x9a, 0x0c, 0x00, 0x90, 0x27, 0x3F, 0xc1, 0xfd } \
++  }
++
++/* Enumerations.  */
++enum grub_efi_timer_delay
++{
++  GRUB_EFI_TIMER_CANCEL,
++  GRUB_EFI_TIMER_PERIODIC,
++  GRUB_EFI_TIMER_RELATIVE
++};
++typedef enum grub_efi_timer_delay grub_efi_timer_delay_t;
++
++enum grub_efi_allocate_type
++{
++  GRUB_EFI_ALLOCATE_ANY_PAGES,
++  GRUB_EFI_ALLOCATE_MAX_ADDRESS,
++  GRUB_EFI_ALLOCATE_ADDRESS,
++  GRUB_EFI_MAX_ALLOCATION_TYPE
++};
++typedef enum grub_efi_allocate_type grub_efi_allocate_type_t;
++
++enum grub_efi_memory_type
++{
++  GRUB_EFI_RESERVED_MEMORY_TYPE,
++  GRUB_EFI_LOADER_CODE,
++  GRUB_EFI_LOADER_DATA,
++  GRUB_EFI_BOOT_SERVICES_CODE,
++  GRUB_EFI_BOOT_SERVICES_DATA,
++  GRUB_EFI_RUNTIME_SERVICES_CODE,
++  GRUB_EFI_RUNTIME_SERVICES_DATA,
++  GRUB_EFI_CONVENTIONAL_MEMORY,
++  GRUB_EFI_UNUSABLE_MEMORY,
++  GRUB_EFI_ACPI_RECLAIM_MEMORY,
++  GRUB_EFI_ACPI_MEMORY_NVS,
++  GRUB_EFI_MEMORY_MAPPED_IO,
++  GRUB_EFI_MEMORY_MAPPED_IO_PORT_SPACE,
++  GRUB_EFI_PAL_CODE,
++  GRUB_EFI_MAX_MEMORY_TYPE
++};
++typedef enum grub_efi_memory_type grub_efi_memory_type_t;
++
++enum grub_efi_interface_type
++{
++  GRUB_EFI_NATIVE_INTERFACE
++};
++typedef enum grub_efi_interface_type grub_efi_interface_type_t;
++
++enum grub_efi_locate_search_type
++{
++  GRUB_EFI_ALL_HANDLES,
++  GRUB_EFI_BY_REGISTER_NOTIFY,
++  GRUB_EFI_BY_PROTOCOL
++};
++typedef enum grub_efi_locate_search_type grub_efi_locate_search_type_t;
++
++enum grub_efi_reset_type
++{
++  GRUB_EFI_RESET_COLD,
++  GRUB_EFI_RESET_WARM,
++  GRUB_EFI_RESET_SHUTDOWN
++};
++typedef enum grub_efi_reset_type grub_efi_reset_type_t;
++
++/* Types.  */
++typedef char grub_efi_boolean_t;
++typedef long grub_efi_intn_t;
++typedef unsigned long grub_efi_uintn_t;
++typedef grub_int8_t grub_efi_int8_t;
++typedef grub_uint8_t grub_efi_uint8_t;
++typedef grub_int16_t grub_efi_int16_t;
++typedef grub_uint16_t grub_efi_uint16_t;
++typedef grub_int32_t grub_efi_int32_t;
++typedef grub_uint32_t grub_efi_uint32_t;
++typedef grub_int64_t grub_efi_int64_t;
++typedef grub_uint64_t grub_efi_uint64_t;
++typedef grub_uint8_t grub_efi_char8_t;
++typedef grub_uint16_t grub_efi_char16_t;
++
++typedef grub_efi_intn_t grub_efi_status_t;
++
++#define GRUB_EFI_ERROR_CODE(value)    \
++  ((1L << (sizeof (grub_efi_status_t) * 8 - 1)) | (value))
++
++#define GRUB_EFI_WARNING_CODE(value)  (value)
++
++#define GRUB_EFI_SUCCESS              0
++
++#define GRUB_EFI_LOAD_ERROR           GRUB_EFI_ERROR_CODE (1)
++#define GRUB_EFI_INVALID_PARAMETER    GRUB_EFI_ERROR_CODE (2)
++#define GRUB_EFI_UNSUPPORTED          GRUB_EFI_ERROR_CODE (3)
++#define GRUB_EFI_BAD_BUFFER_SIZE      GRUB_EFI_ERROR_CODE (4)
++#define GRUB_EFI_BUFFER_TOO_SMALL     GRUB_EFI_ERROR_CODE (5)
++#define GRUB_EFI_NOT_READY            GRUB_EFI_ERROR_CODE (6)
++#define GRUB_EFI_DEVICE_ERROR         GRUB_EFI_ERROR_CODE (7)
++#define GRUB_EFI_WRITE_PROTECTED      GRUB_EFI_ERROR_CODE (8)
++#define GRUB_EFI_OUT_OF_RESOURCES     GRUB_EFI_ERROR_CODE (9)
++#define GRUB_EFI_VOLUME_CORRUPTED     GRUB_EFI_ERROR_CODE (10)
++#define GRUB_EFI_VOLUME_FULL          GRUB_EFI_ERROR_CODE (11)
++#define GRUB_EFI_NO_MEDIA             GRUB_EFI_ERROR_CODE (12)
++#define GRUB_EFI_MEDIA_CHANGED                GRUB_EFI_ERROR_CODE (13)
++#define GRUB_EFI_NOT_FOUND            GRUB_EFI_ERROR_CODE (14)
++#define GRUB_EFI_ACCESS_DENIED                GRUB_EFI_ERROR_CODE (15)
++#define GRUB_EFI_NO_RESPONSE          GRUB_EFI_ERROR_CODE (16)
++#define GRUB_EFI_NO_MAPPING           GRUB_EFI_ERROR_CODE (17)
++#define GRUB_EFI_TIMEOUT              GRUB_EFI_ERROR_CODE (18)
++#define GRUB_EFI_NOT_STARTED          GRUB_EFI_ERROR_CODE (19)
++#define GRUB_EFI_ALREADY_STARTED      GRUB_EFI_ERROR_CODE (20)
++#define GRUB_EFI_ABORTED              GRUB_EFI_ERROR_CODE (21)
++#define GRUB_EFI_ICMP_ERROR           GRUB_EFI_ERROR_CODE (22)
++#define GRUB_EFI_TFTP_ERROR           GRUB_EFI_ERROR_CODE (23)
++#define GRUB_EFI_PROTOCOL_ERROR               GRUB_EFI_ERROR_CODE (24)
++#define GRUB_EFI_INCOMPATIBLE_VERSION GRUB_EFI_ERROR_CODE (25)
++#define GRUB_EFI_SECURITY_VIOLATION   GRUB_EFI_ERROR_CODE (26)
++#define GRUB_EFI_CRC_ERROR            GRUB_EFI_ERROR_CODE (27)
++
++#define GRUB_EFI_WARN_UNKNOWN_GLYPH   GRUB_EFI_WARNING_CODE (1)
++#define GRUB_EFI_WARN_DELETE_FAILURE  GRUB_EFI_WARNING_CODE (2)
++#define GRUB_EFI_WARN_WRITE_FAILURE   GRUB_EFI_WARNING_CODE (3)
++#define GRUB_EFI_WARN_BUFFER_TOO_SMALL        GRUB_EFI_WARNING_CODE (4)
++
++typedef void *grub_efi_handle_t;
++typedef void *grub_efi_event_t;
++typedef grub_efi_uint64_t grub_efi_lba_t;
++typedef grub_efi_uintn_t grub_efi_tpl_t;
++typedef grub_uint8_t grub_efi_mac_address_t[32];
++typedef grub_uint8_t grub_efi_ipv4_address_t[4];
++typedef grub_uint16_t grub_efi_ipv6_address_t[8];
++typedef grub_uint8_t grub_efi_ip_address_t[8] __attribute__ ((aligned (4)));
++typedef grub_efi_uint64_t grub_efi_physical_address_t;
++typedef grub_efi_uint64_t grub_efi_virtual_address_t;
++
++struct grub_efi_guid
++{
++  grub_uint32_t data1;
++  grub_uint16_t data2;
++  grub_uint16_t data3;
++  grub_uint8_t data4[8];
++} __attribute__ ((aligned (8)));
++typedef struct grub_efi_guid grub_efi_guid_t;
++
++/* XXX although the spec does not specify the padding, this actually
++   must have the padding!  */
++struct grub_efi_memory_descriptor
++{
++  grub_efi_uint32_t type;
++  grub_efi_uint32_t padding;
++  grub_efi_physical_address_t physical_start;
++  grub_efi_virtual_address_t virtual_start;
++  grub_efi_uint64_t num_pages;
++  grub_efi_uint64_t attribute;
++};
++typedef struct grub_efi_memory_descriptor grub_efi_memory_descriptor_t;
++
++/* Device Path definitions.  */
++struct grub_efi_device_path
++{
++  grub_efi_uint8_t type;
++  grub_efi_uint8_t subtype;
++  grub_efi_uint8_t length[2];
++};
++typedef struct grub_efi_device_path grub_efi_device_path_t;
++/* XXX EFI does not define EFI_DEVICE_PATH_PROTOCOL but uses it.
++   It seems to be identical to EFI_DEVICE_PATH.  */
++typedef struct grub_efi_device_path grub_efi_device_path_protocol_t;
++
++#define GRUB_EFI_DEVICE_PATH_TYPE(dp)         ((dp)->type & 0x7f)
++#define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp)      ((dp)->subtype)
++#define GRUB_EFI_DEVICE_PATH_LENGTH(dp)               \
++  ((dp)->length[0] | ((grub_efi_uint16_t) ((dp)->length[1]) << 8))
++
++/* The End of Device Path nodes.  */
++#define GRUB_EFI_END_DEVICE_PATH_TYPE                 (0xff & 0x7f)
++
++#define GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE               0xff
++#define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE         0x01
++
++#define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp)   \
++  (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \
++   && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \
++       == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))
++
++#define GRUB_EFI_NEXT_DEVICE_PATH(dp) \
++  ((grub_efi_device_path_t *) ((char *) (dp) \
++                               + GRUB_EFI_DEVICE_PATH_LENGTH (dp)))
++
++/* Hardware Device Path.  */
++#define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE            1
++
++#define GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE              1
++
++struct grub_efi_pci_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t function;
++  grub_efi_uint8_t device;
++};
++typedef struct grub_efi_pci_device_path grub_efi_pci_device_path_t;
++
++#define GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE           2
++
++struct grub_efi_pccard_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t function;
++};
++typedef struct grub_efi_pccard_device_path grub_efi_pccard_device_path_t;
++
++#define GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE    3
++
++struct grub_efi_memory_mapped_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_memory_type_t memory_type;
++  grub_efi_physical_address_t start_address;
++  grub_efi_physical_address_t end_address;
++};
++typedef struct grub_efi_memory_mapped_device_path
++  grub_efi_memory_mapped_device_path_t;
++
++#define GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE           4
++
++struct grub_efi_vendor_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_device_path grub_efi_vendor_device_path_t;
++
++#define GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE               5
++
++struct grub_efi_controller_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t controller_number;
++};
++typedef struct grub_efi_controller_device_path
++  grub_efi_controller_device_path_t;
++
++/* ACPI Device Path.  */
++#define GRUB_EFI_ACPI_DEVICE_PATH_TYPE                        2
++
++#define GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE             1
++
++struct grub_efi_acpi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t hid;
++  grub_efi_uint32_t uid;
++};
++typedef struct grub_efi_acpi_device_path grub_efi_acpi_device_path_t;
++
++#define GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE    2
++
++struct grub_efi_expanded_acpi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t hid;
++  grub_efi_uint32_t uid;
++  grub_efi_uint32_t cid;
++  char hidstr[1];
++};
++typedef struct grub_efi_expanded_acpi_device_path
++  grub_efi_expanded_acpi_device_path_t;
++
++#define GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)     \
++  (((grub_efi_expanded_acpi_device_path_t *) dp)->hidstr)
++#define GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)     \
++  (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp) \
++   + grub_strlen (GRUB_EFI_EXPANDED_ACPI_HIDSTR(dp)) + 1)
++#define GRUB_EFI_EXPANDED_ACPI_CIDSTR(dp)     \
++  (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp) \
++   + grub_strlen (GRUB_EFI_EXPANDED_ACPI_UIDSTR(dp)) + 1)
++
++/* Messaging Device Path.  */
++#define GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE           3
++
++#define GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE            1
++
++struct grub_efi_atapi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t primary_secondary;
++  grub_efi_uint8_t slave_master;
++  grub_efi_uint16_t lun;
++};
++typedef struct grub_efi_atapi_device_path grub_efi_atapi_device_path_t;
++
++#define GRUB_EFI_SCSI_DEVICE_PATH_SUBTYPE             2
++
++struct grub_efi_scsi_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t pun;
++  grub_efi_uint16_t lun;
++};
++typedef struct grub_efi_scsi_device_path grub_efi_scsi_device_path_t;
++
++#define GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE    3
++
++struct grub_efi_fibre_channel_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t wwn;
++  grub_efi_uint64_t lun;
++};
++typedef struct grub_efi_fibre_channel_device_path
++  grub_efi_fibre_channel_device_path_t;
++
++#define GRUB_EFI_1394_DEVICE_PATH_SUBTYPE             4
++
++struct grub_efi_1394_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t guid;
++};
++typedef struct grub_efi_1394_device_path grub_efi_1394_device_path_t;
++
++#define GRUB_EFI_USB_DEVICE_PATH_SUBTYPE              5
++
++struct grub_efi_usb_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint8_t parent_port_number;
++  grub_efi_uint8_t interface;
++};
++typedef struct grub_efi_usb_device_path grub_efi_usb_device_path_t;
++
++#define GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE                15
++
++struct grub_efi_usb_class_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t vendor_id;
++  grub_efi_uint16_t product_id;
++  grub_efi_uint8_t device_class;
++  grub_efi_uint8_t device_subclass;
++  grub_efi_uint8_t device_protocol;
++};
++typedef struct grub_efi_usb_class_device_path
++  grub_efi_usb_class_device_path_t;
++
++#define GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE              6
++
++struct grub_efi_i2o_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t tid;
++};
++typedef struct grub_efi_i2o_device_path grub_efi_i2o_device_path_t;
++
++#define GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE      11
++
++struct grub_efi_mac_address_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_mac_address_t mac_address;
++  grub_efi_uint8_t if_type;
++};
++typedef struct grub_efi_mac_address_device_path
++  grub_efi_mac_address_device_path_t;
++
++#define GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE             12
++
++struct grub_efi_ipv4_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_ipv4_address_t local_ip_address;
++  grub_efi_ipv4_address_t remote_ip_address;
++  grub_efi_uint16_t local_port;
++  grub_efi_uint16_t remote_port;
++  grub_efi_uint16_t protocol;
++  grub_efi_uint8_t static_ip_address;
++};
++typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t;
++
++#define GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE             13
++
++struct grub_efi_ipv6_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_ipv6_address_t local_ip_address;
++  grub_efi_ipv6_address_t remote_ip_address;
++  grub_efi_uint16_t local_port;
++  grub_efi_uint16_t remote_port;
++  grub_efi_uint16_t protocol;
++  grub_efi_uint8_t static_ip_address;
++};
++typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t;
++
++#define GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE               9
++
++struct grub_efi_infiniband_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t resource_flags;
++  grub_efi_uint8_t port_gid[16];
++  grub_efi_uint64_t remote_id;
++  grub_efi_uint64_t target_port_id;
++  grub_efi_uint64_t device_id;
++};
++typedef struct grub_efi_infiniband_device_path
++  grub_efi_infiniband_device_path_t;
++
++#define GRUB_EFI_UART_DEVICE_PATH_SUBTYPE             14
++
++struct grub_efi_uart_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t reserved;
++  grub_efi_uint64_t baud_rate;
++  grub_efi_uint8_t data_bits;
++  grub_efi_uint8_t parity;
++  grub_efi_uint8_t stop_bits;
++};
++typedef struct grub_efi_uart_device_path grub_efi_uart_device_path_t;
++
++#define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10
++
++struct grub_efi_vendor_messaging_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_messaging_device_path
++  grub_efi_vendor_messaging_device_path_t;
++
++/* Media Device Path.  */
++#define GRUB_EFI_MEDIA_DEVICE_PATH_TYPE                       4
++
++#define GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE               1
++
++struct grub_efi_hard_drive_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t partition_number;
++  grub_efi_lba_t partition_start;
++  grub_efi_lba_t partition_size;
++  grub_efi_uint8_t partition_signature[16];
++  grub_efi_uint8_t mbr_type;
++  grub_efi_uint8_t signature_type;
++};
++typedef struct grub_efi_hard_drive_device_path
++  grub_efi_hard_drive_device_path_t;
++
++#define GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE            2
++
++struct grub_efi_cdrom_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint32_t boot_entry;
++  grub_efi_lba_t partition_start;
++  grub_efi_lba_t partition_size;
++};
++typedef struct grub_efi_cdrom_device_path grub_efi_cdrom_device_path_t;
++
++#define GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE     3
++
++struct grub_efi_vendor_media_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t vendor_guid;
++  grub_efi_uint8_t vendor_defined_data[0];
++};
++typedef struct grub_efi_vendor_media_device_path
++  grub_efi_vendor_media_device_path_t;
++
++#define GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE                4
++
++struct grub_efi_file_path_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_char16_t path_name[0];
++};
++typedef struct grub_efi_file_path_device_path
++  grub_efi_file_path_device_path_t;
++
++#define GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE         5
++
++struct grub_efi_protocol_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_guid_t guid;
++};
++typedef struct grub_efi_protocol_device_path grub_efi_protocol_device_path_t;
++
++/* BIOS Boot Specification Device Path.  */
++#define GRUB_EFI_BIOS_DEVICE_PATH_TYPE                        5
++
++#define GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE             1
++
++struct grub_efi_bios_device_path
++{
++  grub_efi_device_path_t header;
++  grub_efi_uint16_t device_type;
++  grub_efi_uint16_t status_flags;
++  char description[0];
++};
++typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t;
++
++struct grub_efi_device_path_from_text
++{
++  grub_efi_device_path_t * (*convert_text_to_device_node) (const grub_efi_char16_t *text_device_node);
++  grub_efi_device_path_t * (*convert_text_to_device_path) (const grub_efi_char16_t *text_device_path);
++};
++typedef struct grub_efi_device_path_from_text grub_efi_device_path_from_text_t;
++
++struct grub_efi_open_protocol_information_entry
++{
++  grub_efi_handle_t agent_handle;
++  grub_efi_handle_t controller_handle;
++  grub_efi_uint32_t attributes;
++  grub_efi_uint32_t open_count;
++};
++typedef struct grub_efi_open_protocol_information_entry
++  grub_efi_open_protocol_information_entry_t;
++
++struct grub_efi_time
++{
++  grub_efi_uint16_t year;
++  grub_efi_uint8_t month;
++  grub_efi_uint8_t day;
++  grub_efi_uint8_t hour;
++  grub_efi_uint8_t minute;
++  grub_efi_uint8_t second;
++  grub_efi_uint8_t pad1;
++  grub_efi_uint32_t nanosecond;
++  grub_efi_int16_t time_zone;
++  grub_efi_uint8_t daylight;
++  grub_efi_uint8_t pad2;
++};
++typedef struct grub_efi_time grub_efi_time_t;
++
++struct grub_efi_time_capabilities
++{
++  grub_efi_uint32_t resolution;
++  grub_efi_uint32_t accuracy;
++  grub_efi_boolean_t sets_to_zero;
++};
++typedef struct grub_efi_time_capabilities grub_efi_time_capabilities_t;
++
++struct grub_efi_input_key
++{
++  grub_efi_uint16_t scan_code;
++  grub_efi_char16_t unicode_char;
++};
++typedef struct grub_efi_input_key grub_efi_input_key_t;
++
++struct grub_efi_simple_text_output_mode
++{
++  grub_efi_int32_t max_mode;
++  grub_efi_int32_t mode;
++  grub_efi_int32_t attribute;
++  grub_efi_int32_t cursor_column;
++  grub_efi_int32_t cursor_row;
++  grub_efi_boolean_t cursor_visible;
++};
++typedef struct grub_efi_simple_text_output_mode
++  grub_efi_simple_text_output_mode_t;
++
++/* Tables.  */
++struct grub_efi_table_header
++{
++  grub_efi_uint64_t signature;
++  grub_efi_uint32_t revision;
++  grub_efi_uint32_t header_size;
++  grub_efi_uint32_t crc32;
++  grub_efi_uint32_t reserved;
++};
++typedef struct grub_efi_table_header grub_efi_table_header_t;
++
++struct grub_efi_boot_services
++{
++  grub_efi_table_header_t hdr;
++
++    grub_efi_tpl_t (*raise_tpl) (grub_efi_tpl_t new_tpl);
++
++  void (*restore_tpl) (grub_efi_tpl_t old_tpl);
++
++    grub_efi_status_t
++    (*allocate_pages) (grub_efi_allocate_type_t type,
++                     grub_efi_memory_type_t memory_type,
++                     grub_efi_uintn_t pages,
++                     grub_efi_physical_address_t * memory);
++
++    grub_efi_status_t
++    (*free_pages) (grub_efi_physical_address_t memory,
++                 grub_efi_uintn_t pages);
++
++    grub_efi_status_t
++    (*get_memory_map) (grub_efi_uintn_t * memory_map_size,
++                     grub_efi_memory_descriptor_t * memory_map,
++                     grub_efi_uintn_t * map_key,
++                     grub_efi_uintn_t * descriptor_size,
++                     grub_efi_uint32_t * descriptor_version);
++
++    grub_efi_status_t
++    (*allocate_pool) (grub_efi_memory_type_t pool_type,
++                    grub_efi_uintn_t size, void **buffer);
++
++    grub_efi_status_t (*free_pool) (void *buffer);
++
++    grub_efi_status_t
++    (*create_event) (grub_efi_uint32_t type,
++                   grub_efi_tpl_t notify_tpl,
++                   void (*notify_function) (grub_efi_event_t event,
++                                            void *context),
++                   void *notify_context, grub_efi_event_t * event);
++
++    grub_efi_status_t
++    (*set_timer) (grub_efi_event_t event,
++                grub_efi_timer_delay_t type,
++                grub_efi_uint64_t trigger_time);
++
++    grub_efi_status_t
++    (*wait_for_event) (grub_efi_uintn_t num_events,
++                     grub_efi_event_t * event, grub_efi_uintn_t * index);
++
++    grub_efi_status_t (*signal_event) (grub_efi_event_t event);
++
++    grub_efi_status_t (*close_event) (grub_efi_event_t event);
++
++    grub_efi_status_t (*check_event) (grub_efi_event_t event);
++
++    grub_efi_status_t
++    (*install_protocol_interface) (grub_efi_handle_t * handle,
++                                 grub_efi_guid_t * protocol,
++                                 grub_efi_interface_type_t interface_type,
++                                 void *interface);
++
++    grub_efi_status_t
++    (*reinstall_protocol_interface) (grub_efi_handle_t handle,
++                                   grub_efi_guid_t * protocol,
++                                   void *old_interface, void *new_inteface);
++
++    grub_efi_status_t
++    (*uninstall_protocol_interface) (grub_efi_handle_t handle,
++                                   grub_efi_guid_t * protocol,
++                                   void *interface);
++
++    grub_efi_status_t
++    (*handle_protocol) (grub_efi_handle_t handle,
++                      grub_efi_guid_t * protocol, void **interface);
++
++  void *reserved;
++
++    grub_efi_status_t
++    (*register_protocol_notify) (grub_efi_guid_t * protocol,
++                               grub_efi_event_t event, void **registration);
++
++    grub_efi_status_t
++    (*locate_handle) (grub_efi_locate_search_type_t search_type,
++                    grub_efi_guid_t * protocol,
++                    void *search_key,
++                    grub_efi_uintn_t * buffer_size,
++                    grub_efi_handle_t * buffer);
++
++    grub_efi_status_t
++    (*locate_device_path) (grub_efi_guid_t * protocol,
++                         grub_efi_device_path_t ** device_path,
++                         grub_efi_handle_t * device);
++
++    grub_efi_status_t
++    (*install_configuration_table) (grub_efi_guid_t * guid, void *table);
++
++    grub_efi_status_t
++    (*load_image) (grub_efi_boolean_t boot_policy,
++                 grub_efi_handle_t parent_image_handle,
++                 grub_efi_device_path_t * file_path,
++                 void *source_buffer,
++                 grub_efi_uintn_t source_size,
++                 grub_efi_handle_t * image_handle);
++
++    grub_efi_status_t
++    (*start_image) (grub_efi_handle_t image_handle,
++                  grub_efi_uintn_t * exit_data_size,
++                  grub_efi_char16_t ** exit_data);
++
++    grub_efi_status_t
++    (*exit) (grub_efi_handle_t image_handle,
++           grub_efi_status_t exit_status,
++           grub_efi_uintn_t exit_data_size,
++           grub_efi_char16_t * exit_data) __attribute__ ((noreturn));
++
++    grub_efi_status_t (*unload_image) (grub_efi_handle_t image_handle);
++
++    grub_efi_status_t
++    (*exit_boot_services) (grub_efi_handle_t image_handle,
++                         grub_efi_uintn_t map_key);
++
++    grub_efi_status_t (*get_next_monotonic_count) (grub_efi_uint64_t * count);
++
++    grub_efi_status_t (*stall) (grub_efi_uintn_t microseconds);
++
++    grub_efi_status_t
++    (*set_watchdog_timer) (grub_efi_uintn_t timeout,
++                         grub_efi_uint64_t watchdog_code,
++                         grub_efi_uintn_t data_size,
++                         grub_efi_char16_t * watchdog_data);
++
++    grub_efi_status_t
++    (*connect_controller) (grub_efi_handle_t controller_handle,
++                         grub_efi_handle_t * driver_image_handle,
++                         grub_efi_device_path_protocol_t *
++                         remaining_device_path,
++                         grub_efi_boolean_t recursive);
++
++    grub_efi_status_t
++    (*disconnect_controller) (grub_efi_handle_t controller_handle,
++                            grub_efi_handle_t driver_image_handle,
++                            grub_efi_handle_t child_handle);
++
++    grub_efi_status_t
++    (*open_protocol) (grub_efi_handle_t handle,
++                    grub_efi_guid_t * protocol,
++                    void **interface,
++                    grub_efi_handle_t agent_handle,
++                    grub_efi_handle_t controller_handle,
++                    grub_efi_uint32_t attributes);
++
++    grub_efi_status_t
++    (*close_protocol) (grub_efi_handle_t handle,
++                     grub_efi_guid_t * protocol,
++                     grub_efi_handle_t agent_handle,
++                     grub_efi_handle_t controller_handle);
++
++    grub_efi_status_t
++    (*open_protocol_information) (grub_efi_handle_t handle,
++                                grub_efi_guid_t * protocol,
++                                grub_efi_open_protocol_information_entry_t
++                                ** entry_buffer,
++                                grub_efi_uintn_t * entry_count);
++
++    grub_efi_status_t
++    (*protocols_per_handle) (grub_efi_handle_t handle,
++                           grub_efi_guid_t *** protocol_buffer,
++                           grub_efi_uintn_t * protocol_buffer_count);
++
++    grub_efi_status_t
++    (*locate_handle_buffer) (grub_efi_locate_search_type_t search_type,
++                           grub_efi_guid_t * protocol,
++                           void *search_key,
++                           grub_efi_uintn_t * no_handles,
++                           grub_efi_handle_t ** buffer);
++
++    grub_efi_status_t
++    (*locate_protocol) (grub_efi_guid_t * protocol,
++                      void *registration, void **interface);
++
++    grub_efi_status_t
++    (*install_multiple_protocol_interfaces) (grub_efi_handle_t * handle, ...);
++
++    grub_efi_status_t
++    (*uninstall_multiple_protocol_interfaces) (grub_efi_handle_t handle, ...);
++
++    grub_efi_status_t
++    (*calculate_crc32) (void *data,
++                      grub_efi_uintn_t data_size,
++                      grub_efi_uint32_t * crc32);
++
++  void (*copy_mem) (void *destination, void *source, grub_efi_uintn_t length);
++
++  void
++    (*set_mem) (void *buffer, grub_efi_uintn_t size, grub_efi_uint8_t value);
++};
++typedef struct grub_efi_boot_services grub_efi_boot_services_t;
++
++struct grub_efi_runtime_services
++{
++  grub_efi_table_header_t hdr;
++
++    grub_efi_status_t
++    (*get_time) (grub_efi_time_t * time,
++               grub_efi_time_capabilities_t * capabilities);
++
++    grub_efi_status_t (*set_time) (grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*get_wakeup_time) (grub_efi_boolean_t * enabled,
++                      grub_efi_boolean_t * pending, grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*set_wakeup_time) (grub_efi_boolean_t enabled, grub_efi_time_t * time);
++
++    grub_efi_status_t
++    (*set_virtual_address_map) (grub_efi_uintn_t memory_map_size,
++                              grub_efi_uintn_t descriptor_size,
++                              grub_efi_uint32_t descriptor_version,
++                              grub_efi_memory_descriptor_t * virtual_map);
++
++    grub_efi_status_t
++    (*convert_pointer) (grub_efi_uintn_t debug_disposition, void **address);
++
++    grub_efi_status_t
++    (*get_variable) (grub_efi_char16_t * variable_name,
++                   grub_efi_guid_t * vendor_guid,
++                   grub_efi_uint32_t * attributes,
++                   grub_efi_uintn_t * data_size, void *data);
++
++    grub_efi_status_t
++    (*get_next_variable_name) (grub_efi_uintn_t * variable_name_size,
++                             grub_efi_char16_t * variable_name,
++                             grub_efi_guid_t * vendor_guid);
++
++    grub_efi_status_t
++    (*set_variable) (grub_efi_char16_t * variable_name,
++                   grub_efi_guid_t * vendor_guid,
++                   grub_efi_uint32_t attributes,
++                   grub_efi_uintn_t data_size, void *data);
++
++    grub_efi_status_t
++    (*get_next_high_monotonic_count) (grub_efi_uint32_t * high_count);
++
++  void
++    (*reset_system) (grub_efi_reset_type_t reset_type,
++                   grub_efi_status_t reset_status,
++                   grub_efi_uintn_t data_size,
++                   grub_efi_char16_t * reset_data);
++};
++typedef struct grub_efi_runtime_services grub_efi_runtime_services_t;
++
++struct grub_efi_configuration_table
++{
++  grub_efi_guid_t vendor_guid;
++  void *vendor_table;
++};
++typedef struct grub_efi_configuration_table grub_efi_configuration_table_t;
++
++struct grub_efi_simple_input_interface
++{
++  grub_efi_status_t
++    (*reset) (struct grub_efi_simple_input_interface * this,
++            grub_efi_boolean_t extended_verification);
++
++  grub_efi_status_t
++    (*read_key_stroke) (struct grub_efi_simple_input_interface * this,
++                      grub_efi_input_key_t * key);
++
++  grub_efi_event_t wait_for_key;
++};
++typedef struct grub_efi_simple_input_interface
++  grub_efi_simple_input_interface_t;
++
++struct grub_efi_simple_text_output_interface
++{
++  grub_efi_status_t
++    (*reset) (struct grub_efi_simple_text_output_interface * this,
++            grub_efi_boolean_t extended_verification);
++
++  grub_efi_status_t
++    (*output_string) (struct grub_efi_simple_text_output_interface * this,
++                    grub_efi_char16_t * string);
++
++  grub_efi_status_t
++    (*test_string) (struct grub_efi_simple_text_output_interface * this,
++                  grub_efi_char16_t * string);
++
++  grub_efi_status_t
++    (*query_mode) (struct grub_efi_simple_text_output_interface * this,
++                 grub_efi_uintn_t mode_number,
++                 grub_efi_uintn_t * columns, grub_efi_uintn_t * rows);
++
++  grub_efi_status_t
++    (*set_mode) (struct grub_efi_simple_text_output_interface * this,
++               grub_efi_uintn_t mode_number);
++
++  grub_efi_status_t
++    (*set_attributes) (struct grub_efi_simple_text_output_interface * this,
++                     grub_efi_uintn_t attribute);
++
++  grub_efi_status_t
++    (*clear_screen) (struct grub_efi_simple_text_output_interface * this);
++
++  grub_efi_status_t
++    (*set_cursor_position) (struct grub_efi_simple_text_output_interface *
++                          this, grub_efi_uintn_t column,
++                          grub_efi_uintn_t row);
++
++  grub_efi_status_t
++    (*enable_cursor) (struct grub_efi_simple_text_output_interface * this,
++                    grub_efi_boolean_t visible);
++
++  grub_efi_simple_text_output_mode_t *mode;
++};
++typedef struct grub_efi_simple_text_output_interface
++  grub_efi_simple_text_output_interface_t;
++
++#define GRUB_EFI_BLACK                0x00
++#define GRUB_EFI_BLUE         0x01
++#define GRUB_EFI_GREEN                0x02
++#define GRUB_EFI_CYAN         0x03
++#define GRUB_EFI_RED          0x04
++#define GRUB_EFI_MAGENTA      0x05
++#define GRUB_EFI_BROWN                0x06
++#define GRUB_EFI_LIGHTGRAY    0x07
++#define GRUB_EFI_BRIGHT               0x08
++#define GRUB_EFI_DARKGRAY     0x08
++#define GRUB_EFI_LIGHTBLUE    0x09
++#define GRUB_EFI_LIGHTGREEN   0x0A
++#define GRUB_EFI_LIGHTCYAN    0x0B
++#define GRUB_EFI_LIGHTRED     0x0C
++#define GRUB_EFI_LIGHTMAGENTA 0x0D
++#define GRUB_EFI_YELLOW               0x0E
++#define GRUB_EFI_WHITE                0x0F
++
++#define GRUB_EFI_BACKGROUND_BLACK     0x00
++#define GRUB_EFI_BACKGROUND_BLUE      0x10
++#define GRUB_EFI_BACKGROUND_GREEN     0x20
++#define GRUB_EFI_BACKGROUND_CYAN      0x30
++#define GRUB_EFI_BACKGROUND_RED               0x40
++#define GRUB_EFI_BACKGROUND_MAGENTA   0x50
++#define GRUB_EFI_BACKGROUND_BROWN     0x60
++#define GRUB_EFI_BACKGROUND_LIGHTGRAY 0x70
++
++#define GRUB_EFI_TEXT_ATTR(fg, bg)    ((fg) | ((bg)))
++
++struct grub_efi_system_table
++{
++  grub_efi_table_header_t hdr;
++  grub_efi_char16_t *firmware_vendor;
++  grub_efi_uint32_t firmware_revision;
++  grub_efi_handle_t console_in_handler;
++  grub_efi_simple_input_interface_t *con_in;
++  grub_efi_handle_t console_out_handler;
++  grub_efi_simple_text_output_interface_t *con_out;
++  grub_efi_handle_t standard_error_handle;
++  grub_efi_simple_text_output_interface_t *std_err;
++  grub_efi_runtime_services_t *runtime_services;
++  grub_efi_boot_services_t *boot_services;
++  grub_efi_uintn_t num_table_entries;
++  grub_efi_configuration_table_t *configuration_table;
++};
++typedef struct grub_efi_system_table grub_efi_system_table_t;
++
++struct grub_efi_loaded_image
++{
++  grub_efi_uint32_t revision;
++  grub_efi_handle_t parent_handle;
++  grub_efi_system_table_t *system_table;
++
++  grub_efi_handle_t device_handle;
++  grub_efi_device_path_t *file_path;
++  void *reserved;
++
++  grub_efi_uint32_t load_options_size;
++  void *load_options;
++
++  void *image_base;
++  grub_efi_uint64_t image_size;
++  grub_efi_memory_type_t image_code_type;
++  grub_efi_memory_type_t image_data_type;
++
++    grub_efi_status_t (*unload) (grub_efi_handle_t image_handle);
++};
++typedef struct grub_efi_loaded_image grub_efi_loaded_image_t;
++
++struct grub_efi_disk_io
++{
++  grub_efi_uint64_t revision;
++    grub_efi_status_t (*read) (struct grub_efi_disk_io * this,
++                             grub_efi_uint32_t media_id,
++                             grub_efi_uint64_t offset,
++                             grub_efi_uintn_t buffer_size, void *buffer);
++    grub_efi_status_t (*write) (struct grub_efi_disk_io * this,
++                              grub_efi_uint32_t media_id,
++                              grub_efi_uint64_t offset,
++                              grub_efi_uintn_t buffer_size, void *buffer);
++};
++typedef struct grub_efi_disk_io grub_efi_disk_io_t;
++
++struct grub_efi_block_io_media
++{
++  grub_efi_uint32_t media_id;
++  grub_efi_boolean_t removable_media;
++  grub_efi_boolean_t media_present;
++  grub_efi_boolean_t logical_partition;
++  grub_efi_boolean_t read_only;
++  grub_efi_boolean_t write_caching;
++  grub_efi_uint8_t pad[3];
++  grub_efi_uint32_t block_size;
++  grub_efi_uint32_t io_align;
++  grub_efi_uint8_t pad2[4];
++  grub_efi_lba_t last_block;
++};
++typedef struct grub_efi_block_io_media grub_efi_block_io_media_t;
++
++struct grub_efi_block_io
++{
++  grub_efi_uint64_t revision;
++  grub_efi_block_io_media_t *media;
++    grub_efi_status_t (*reset) (struct grub_efi_block_io * this,
++                              grub_efi_boolean_t extended_verification);
++    grub_efi_status_t (*read_blocks) (struct grub_efi_block_io * this,
++                                    grub_efi_uint32_t media_id,
++                                    grub_efi_lba_t lba,
++                                    grub_efi_uintn_t buffer_size,
++                                    void *buffer);
++    grub_efi_status_t (*write_blocks) (struct grub_efi_block_io * this,
++                                     grub_efi_uint32_t media_id,
++                                     grub_efi_lba_t lba,
++                                     grub_efi_uintn_t buffer_size,
++                                     void *buffer);
++    grub_efi_status_t (*flush_blocks) (struct grub_efi_block_io * this);
++};
++typedef struct grub_efi_block_io grub_efi_block_io_t;
++
++struct grub_efi_pixel_bitmask
++{
++  grub_efi_uint32_t red_mask;
++  grub_efi_uint32_t green_mask;
++  grub_efi_uint32_t blue_mask;
++  grub_efi_uint32_t reserved_mask;
++};
++typedef struct grub_efi_pixel_bitmask grub_efi_pixel_bitmask_t;
++
++enum grub_efi_graphics_pixel_format
++{
++  GRUB_EFI_PIXEL_RGBR_8BIT_PER_COLOR,
++  GRUB_EFI_PIXEL_BGRR_8BIT_PER_COLOR,
++  GRUB_EFI_PIXEL_BIT_MASK,
++  GRUB_EFI_PIXEL_BLT_ONLY,
++};
++typedef enum grub_efi_graphics_pixel_format grub_efi_graphics_pixel_format_t;
++
++struct grub_efi_graphics_output_mode_information
++{
++  grub_efi_uint32_t version;
++  grub_efi_uint32_t horizontal_resolution;
++  grub_efi_uint32_t vertical_resolution;
++  grub_efi_graphics_pixel_format_t pixel_format;
++  grub_efi_pixel_bitmask_t pixel_information;
++  grub_efi_uint32_t pixels_per_scan_line;
++};
++typedef struct grub_efi_graphics_output_mode_information
++  grub_efi_graphics_output_mode_information_t;
++
++struct grub_efi_graphics_output_bgrr_pixel
++{
++  grub_efi_uint8_t blue;
++  grub_efi_uint8_t green;
++  grub_efi_uint8_t red;
++  grub_efi_uint8_t reserved;
++};
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_graphics_output_bgrr_pixel_t;
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_graphics_output_blt_pixel_t;
++typedef struct grub_efi_graphics_output_bgrr_pixel
++  grub_efi_uga_pixel_t;
++
++struct grub_efi_graphics_output_rgbr_pixel
++{
++  grub_efi_uint8_t red;
++  grub_efi_uint8_t green;
++  grub_efi_uint8_t blue;
++  grub_efi_uint8_t reserved;
++};
++typedef struct grub_efi_graphics_output_rgbr_pixel
++  grub_efi_graphics_output_rgbr_pixel_t;
++
++union grub_efi_graphics_output_pixel
++{
++  grub_efi_graphics_output_rgbr_pixel_t rgbr;
++  grub_efi_graphics_output_bgrr_pixel_t bgrr;
++  grub_efi_uint32_t raw;
++};
++typedef union grub_efi_graphics_output_pixel
++  grub_efi_graphics_output_pixel_t;
++
++enum grub_efi_graphics_output_blt_operation
++{
++  GRUB_EFI_BLT_VIDEO_FILL,
++  GRUB_EFI_BLT_VIDEO_TO_BLT_BUFFER,
++  GRUB_EFI_BLT_BUFFER_TO_VIDEO,
++  GRUB_EFI_BLT_VIDEO_TO_VIDEO,
++};
++typedef enum grub_efi_graphics_output_blt_operation
++  grub_efi_graphics_output_blt_operation_t;
++
++struct grub_efi_graphics_output_mode
++{
++  grub_efi_uint32_t max_mode;
++  grub_efi_uint32_t mode;
++  grub_efi_graphics_output_mode_information_t *info;
++  grub_efi_uintn_t size_of_info;
++  grub_efi_physical_address_t frame_buffer_base;
++  grub_efi_uintn_t frame_buffer_size;
++};
++typedef struct grub_efi_graphics_output_mode grub_efi_graphics_output_mode_t;
++
++struct grub_efi_graphics_output
++{
++  grub_efi_status_t (*query_mode) (struct grub_efi_graphics_output * this,
++                                 grub_efi_uint32_t mode_number,
++                                 grub_efi_uintn_t * size_of_info,
++                                 grub_efi_graphics_output_mode_information_t
++                                 ** info);
++  grub_efi_status_t (*set_mode) (struct grub_efi_graphics_output * this,
++                               grub_efi_uint32_t mode_number);
++
++  grub_efi_status_t (*blt) (struct grub_efi_graphics_output * this,
++                          grub_efi_graphics_output_blt_pixel_t * blt_buffer,
++                          grub_efi_graphics_output_blt_operation_t
++                          blt_operation, grub_efi_uintn_t src_x,
++                          grub_efi_uintn_t src_y, grub_efi_uintn_t dest_x,
++                          grub_efi_uintn_t dest_y, grub_efi_uintn_t width,
++                          grub_efi_uintn_t height, grub_efi_uintn_t delta);
++  grub_efi_graphics_output_mode_t *mode;
++};
++typedef struct grub_efi_graphics_output grub_efi_graphics_output_t;
++
++typedef enum {
++  EfiUgaVideoFill,
++  EfiUgaVideoToBltBuffer,
++  EfiUgaBltBufferToVideo,
++  EfiUgaVideoToVideo,
++  EfiUgaBltMax
++} grub_efi_uga_blt_operation_t;
++
++typedef enum {
++  grub_efi_pci_io_width_uint8,
++  grub_efi_pci_io_width_uint16,
++  grub_efi_pci_io_width_uint32,
++  grub_efi_pci_io_width_uint64,
++  grub_efi_pci_io_width_fifo_uint8,
++  grub_efi_pci_io_width_fifo_uint16,
++  grub_efi_pci_io_width_fifo_uint32,
++  grub_efi_pci_io_width_fifo_uint64,
++  grub_efi_pci_io_width_fill_uint8,
++  grub_efi_pci_io_width_fill_uint16,
++  grub_efi_pci_io_width_fill_uint32,
++  grub_efi_pci_io_width_fill_uint64,
++  grub_efi_pci_io_width_maximum
++} grub_efi_pci_io_width;
++
++struct grub_efi_pci_io;
++
++typedef struct
++{
++  grub_efi_status_t(*read) (struct grub_efi_pci_io *this,
++                          grub_efi_pci_io_width width,
++                          grub_efi_uint8_t bar_index,
++                          grub_efi_uint64_t offset,
++                          grub_efi_uintn_t count,
++                          void *buffer);
++  grub_efi_status_t(*write) (struct grub_efi_pci_io *this,
++                          grub_efi_pci_io_width width,
++                          grub_efi_uint8_t bar_index,
++                          grub_efi_uint64_t offset,
++                          grub_efi_uintn_t count,
++                          void *buffer);
++} grub_efi_pci_io_access_t;
++
++typedef struct
++{
++  grub_efi_status_t( *read) (struct grub_efi_pci_io *this,
++                           grub_efi_pci_io_width width,
++                           grub_efi_uint32_t offset,
++                           grub_efi_uintn_t count,
++                           void *buffer);
++  grub_efi_status_t( *write) (struct grub_efi_pci_io *this,
++                           grub_efi_pci_io_width width,
++                           grub_efi_uint32_t offset,
++                           grub_efi_uintn_t count,
++                           void *buffer);
++} grub_efi_pci_io_config_access_t;
++
++typedef enum {
++  grub_efi_pci_io_operation_bus_masterread,
++  grub_efi_pci_io_operation_bus_masterwrite,
++  grub_efi_pci_io_operation_bus_master_common_buffer,
++  grub_efi_pci_io_operation_maximum
++} grub_efi_pci_io_operation_t;
++
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO               0x0002
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO       0x0004
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_MEMORY           0x0008
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO               0x0010
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_PRIMARY_IO       0x0020
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_IDE_SECONDARY_IO     0x0040
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x0080
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_IO                   0x0100
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY               0x0200
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_BUS_MASTER           0x0400
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_CACHED        0x0800
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_MEMORY_DISABLE       0x1000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE      0x2000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM         0x4000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE   0x8000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_ISA_IO_16            0x10000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_PALETTE_IO_16    0x20000
++#define GRUB_EFI_PCI_IO_ATTRIBUTE_VGA_IO_16            0x40000
++
++typedef enum {
++  grub_efi_pci_io_attribute_operation_get,
++  grub_efi_pci_io_attribute_operation_set,
++  grub_efi_pci_io_attribute_operation_enable,
++  grub_efi_pci_io_attribute_operation_disable,
++  grub_efi_pci_io_attribute_operation_supported,
++  grub_efi_pci_io_attribute_operation_maximum
++} grub_efi_pci_io_attribute_operation_t;
++
++struct grub_efi_pci_io {
++  grub_efi_status_t (*poll_mem) (struct grub_efi_pci_io *this,
++                               grub_efi_pci_io_width  width,
++                               grub_efi_uint8_t bar_ndex,
++                               grub_efi_uint64_t offset,
++                               grub_efi_uint64_t mask,
++                               grub_efi_uint64_t value,
++                               grub_efi_uint64_t delay,
++                               grub_efi_uint64_t *result);
++  grub_efi_status_t (*poll_io) (struct grub_efi_pci_io *this,
++                              grub_efi_pci_io_width  Width,
++                              grub_efi_uint8_t bar_index,
++                              grub_efi_uint64_t offset,
++                              grub_efi_uint64_t mask,
++                              grub_efi_uint64_t value,
++                              grub_efi_uint64_t delay,
++                              grub_efi_uint64_t *result);
++  grub_efi_pci_io_access_t mem;
++  grub_efi_pci_io_access_t io;
++  grub_efi_pci_io_config_access_t pci;
++  grub_efi_status_t (*copy_mem) (struct grub_efi_pci_io *this,
++                               grub_efi_pci_io_width width,
++                               grub_efi_uint8_t dest_bar_index,
++                               grub_efi_uint64_t dest_offset,
++                               grub_efi_uint8_t src_bar_index,
++                               grub_efi_uint64_t src_offset,
++                               grub_efi_uintn_t count);
++  grub_efi_status_t (*map) ( struct grub_efi_pci_io *this,
++                           grub_efi_pci_io_operation_t operation,
++                           void *host_address,
++                           grub_efi_uintn_t *number_of_bytes,
++                           grub_efi_uint64_t *device_address,
++                           void **mapping);
++  grub_efi_status_t (*unmap) (struct grub_efi_pci_io *this,
++                            void *mapping);
++  grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_io *this,
++                                      grub_efi_allocate_type_t type,
++                                      grub_efi_memory_type_t memory_type,
++                                      grub_efi_uintn_t pages,
++                                      void **host_address,
++                                      grub_efi_uint64_t attributes);
++  grub_efi_status_t (*free_buffer) (struct grub_efi_pci_io *this,
++                                      grub_efi_allocate_type_t type,
++                                      grub_efi_memory_type_t memory_type,
++                                      grub_efi_uintn_t pages,
++                                      void **host_address,
++                                      grub_efi_uint64_t attributes);
++  grub_efi_status_t (*flush) (struct grub_efi_pci_io *this);
++  grub_efi_status_t (*get_location) (struct grub_efi_pci_io *this,
++                                   grub_efi_uintn_t *segment_number,
++                                   grub_efi_uintn_t *bus_number,
++                                   grub_efi_uintn_t *device_number,
++                                   grub_efi_uintn_t *function_number);
++  grub_efi_status_t (*attributes) (struct grub_efi_pci_io *this,
++                                 grub_efi_pci_io_attribute_operation_t operation,
++                                 grub_efi_uint64_t attributes,
++                                 grub_efi_uint64_t *result);
++  grub_efi_status_t (*get_bar_attributes) (struct grub_efi_pci_io *this,
++                                         grub_efi_uint8_t bar_index,
++                                         grub_efi_uint64_t *supports,
++                                         void **resources);
++  grub_efi_status_t (*set_bar_attributes) (struct grub_efi_pci_io *this,
++                                         grub_efi_uint64_t attributes,
++                                         grub_efi_uint8_t bar_index,
++                                         grub_efi_uint64_t *offset,
++                                         grub_efi_uint64_t *length);
++  grub_efi_uint64_t rom_size;
++  void *rom_image;
++};
++typedef struct grub_efi_pci_io grub_efi_pci_io_t;
++
++struct grub_efi_pci_root_io;
++
++typedef struct
++{
++  grub_efi_status_t(*read) (struct grub_efi_pci_root_io *this,
++                          grub_efi_pci_io_width width,
++                          grub_efi_uint64_t address,
++                          grub_efi_uintn_t count,
++                          void *buffer);
++  grub_efi_status_t(*write) (struct grub_efi_pci_root_io *this,
++                          grub_efi_pci_io_width width,
++                          grub_efi_uint64_t address,
++                          grub_efi_uintn_t count,
++                          void *buffer);
++} grub_efi_pci_root_io_access_t;
++
++typedef enum {
++  grub_efi_pci_root_io_operation_bus_master_read,
++  grub_efi_pci_root_io_operation_bus_master_write,
++  grub_efi_pci_root_io_operation_bus_master_common_buffer,
++  grub_efi_pci_root_io_operation_bus_master_read_64,
++  grub_efi_pci_root_io_operation_bus_master_write_64,
++  grub_efi_pci_root_io_operation_bus_master_common_buffer_64,
++  grub_efi_pci_root_io_operation_maximum
++} grub_efi_pci_root_io_operation_t;
++
++struct grub_efi_pci_root_io {
++  grub_efi_handle_t parent;
++  grub_efi_status_t (*poll_mem) (struct grub_efi_pci_root_io *this,
++                               grub_efi_pci_io_width  width,
++                               grub_efi_uint64_t address,
++                               grub_efi_uint64_t mask,
++                               grub_efi_uint64_t value,
++                               grub_efi_uint64_t delay,
++                               grub_efi_uint64_t *result);
++  grub_efi_status_t (*poll_io) (struct grub_efi_pci_root_io *this,
++                              grub_efi_pci_io_width  Width,
++                              grub_efi_uint64_t address,
++                              grub_efi_uint64_t mask,
++                              grub_efi_uint64_t value,
++                              grub_efi_uint64_t delay,
++                              grub_efi_uint64_t *result);
++  grub_efi_pci_root_io_access_t mem;
++  grub_efi_pci_root_io_access_t io;
++  grub_efi_pci_root_io_access_t pci;
++  grub_efi_status_t (*copy_mem) (struct grub_efi_pci_root_io *this,
++                               grub_efi_pci_io_width width,
++                               grub_efi_uint64_t dest_offset,
++                               grub_efi_uint64_t src_offset,
++                               grub_efi_uintn_t count);
++  grub_efi_status_t (*map) ( struct grub_efi_pci_root_io *this,
++                           grub_efi_pci_root_io_operation_t operation,
++                           void *host_address,
++                           grub_efi_uintn_t *number_of_bytes,
++                           grub_efi_uint64_t *device_address,
++                           void **mapping);
++  grub_efi_status_t (*unmap) (struct grub_efi_pci_root_io *this,
++                            void *mapping);
++  grub_efi_status_t (*allocate_buffer) (struct grub_efi_pci_root_io *this,
++                                      grub_efi_allocate_type_t type,
++                                      grub_efi_memory_type_t memory_type,
++                                      grub_efi_uintn_t pages,
++                                      void **host_address,
++                                      grub_efi_uint64_t attributes);
++  grub_efi_status_t (*free_buffer) (struct grub_efi_pci_root_io *this,
++                                  grub_efi_uintn_t pages,
++                                  void **host_address);
++  grub_efi_status_t (*flush) (struct grub_efi_pci_root_io *this);
++  grub_efi_status_t (*get_attributes) (struct grub_efi_pci_root_io *this,
++                                     grub_efi_uint64_t *supports,
++                                     void **resources);
++  grub_efi_status_t (*set_attributes) (struct grub_efi_pci_root_io *this,
++                                     grub_efi_uint64_t attributes,
++                                     grub_efi_uint64_t *offset,
++                                     grub_efi_uint64_t *length);
++  grub_efi_status_t (*configuration) (struct grub_efi_pci_root_io *this,
++                                    void **resources);
++};
++
++typedef struct grub_efi_pci_root_io grub_efi_pci_root_io_t;
++
++struct grub_efi_uga_draw
++{
++  grub_efi_status_t (*get_mode) (struct grub_efi_uga_draw * this,
++                                 grub_efi_uint32_t *horizontal_resolution,
++                                 grub_efi_uint32_t *vertical_resolution,
++                                 grub_efi_uint32_t *color_depth,
++                                 grub_efi_uint32_t *refresh_rate);
++  grub_efi_status_t (*set_mode) (struct grub_efi_uga_draw * this,
++                                 grub_efi_uint32_t horizontal_resolution,
++                                 grub_efi_uint32_t vertical_resolution,
++                                 grub_efi_uint32_t color_depth,
++                                 grub_efi_uint32_t refresh_rate);
++  grub_efi_status_t (*blt) (struct grub_efi_uga_draw * this,
++                            grub_efi_uga_pixel_t *blt_buffer,
++                            grub_efi_uga_blt_operation_t blt_operation,
++                            grub_efi_uintn_t source_x,
++                            grub_efi_uintn_t source_y,
++                            grub_efi_uintn_t destination_x,
++                            grub_efi_uintn_t destination_y,
++                            grub_efi_uintn_t width,
++                            grub_efi_uintn_t height,
++                            grub_efi_uintn_t delta);
++};
++typedef struct grub_efi_uga_draw grub_efi_uga_draw_t;
++
++typedef grub_uint32_t grub_uga_status_t;
++
++typedef enum {
++  UgaDtParentBus = 1,
++  UgaDtGraphicsController,
++  UgaDtOutputController,
++  UgaDtOutputPort,
++  UgaDtOther
++} grub_uga_device_type_t;
++
++typedef grub_efi_uint32_t grub_uga_device_id_t;
++
++struct grub_uga_device_data {
++  grub_uga_device_type_t device_type;
++  grub_uga_device_id_t device_id;
++  grub_efi_uint32_t device_context_size;
++  grub_efi_uint32_t shared_context_size;
++};
++typedef struct grub_uga_device_data grub_uga_device_data_t;
++
++struct grub_uga_device {
++  void *device_context;
++  void *shared_context;
++  void *runtime_context;
++  struct grub_uga_device *parent_device;
++  void *bus_io_services;
++  void *stdio_services;
++  grub_uga_device_data_t device_data;
++};
++typedef struct grub_uga_device grub_uga_device_t;
++
++typedef enum {
++  UgaIoGetVersion = 1,
++  UgaIoGetChildDevice,
++  UgaIoStartDevice,
++  UgaIoStopDevice,
++  UgaIoFlushDevice,
++  UgaIoResetDevice,
++  UgaIoGetDeviceState,
++  UgaIoSetDeviceState,
++  UgaIoSetPowerState,
++  UgaIoGetMemoryConfiguration,
++  UgaIoSetVideoMode,
++  UgaIoCopyRectangle,
++  UgaIoGetEdidSegment,
++  UgaIoDeviceChannelOpen,
++  UgaIoDeviceChannelClose,
++  UgaIoDeviceChannelRead,
++  UgaIoDeviceChannelWrite,
++  UgaIoGetPersistentDataSize,
++  UgaIoGetPersistentData,
++  UgaIoSetPersistentData,
++  UgaIoGetDevicePropertySize,
++  UgaIoGetDeviceProperty,
++  UgaIoBtPrivateInterface
++} grub_uga_io_request_code_t;
++
++struct grub_uga_io_request {
++  grub_uga_io_request_code_t io_request_code;
++  void *in_buffer;
++  grub_efi_uint64_t in_buffer_size;
++  grub_efi_uint64_t bytes_returned;
++};
++typedef struct grub_uga_io_request grub_uga_io_request_t;
++
++struct grub_efi_uga_io
++{
++  grub_efi_status_t (*create_device) (struct grub_efi_uga_io * this,
++                                      grub_uga_device_t *parent_device,
++                                      grub_uga_device_data_t *device_data,
++                                      void *runtime_context,
++                                      grub_uga_device_t **device);
++  grub_efi_status_t (*delete_device) (struct grub_efi_uga_io * this,
++                                      grub_uga_device_t *device);
++  grub_uga_status_t (*dispatch_service) (grub_uga_device_t *device,
++                                         grub_uga_io_request_t *io_request);
++};
++typedef struct grub_efi_uga_io grub_efi_uga_io_t;
++
++/* XXX PJFIX add uga driver handoff stuff */
++
++// File Open Modes
++#define GRUB_EFI_FILE_MODE_READ               0x0000000000000001ULL
++#define GRUB_EFI_FILE_MODE_WRITE      0x0000000000000002ULL
++#define GRUB_EFI_FILE_MODE_CREATE     0x8000000000000000ULL
++
++// File Attributes
++#define GRUB_EFI_FILE_READ_ONLY               0x0000000000000001ULL
++#define GRUB_EFI_FILE_HIDDEN          0x0000000000000002ULL
++#define GRUB_EFI_FILE_SYSTEM          0x0000000000000004ULL
++#define GRUB_EFI_FILE_RESERVED                0x0000000000000008ULL
++#define GRUB_EFI_FILE_DIRECTORY               0x0000000000000010ULL
++#define GRUB_EFI_FILE_ARCHIVE         0x0000000000000020ULL
++#define GRUB_EFI_FILE_VALID_ATTR      0x0000000000000037ULL
++
++struct grub_efi_file
++{
++  grub_efi_uint64_t revision;
++  grub_efi_status_t (*open) (struct grub_efi_file * this,
++                           struct grub_efi_file ** new_handle,
++                           grub_efi_char16_t * file_name,
++                           grub_efi_uint64_t open_mode,
++                           grub_efi_uint64_t attributes);
++  grub_efi_status_t (*close) (struct grub_efi_file * this);
++  grub_efi_status_t (*delete) (struct grub_efi_file * this);
++  grub_efi_status_t (*read) (struct grub_efi_file * this,
++                           grub_efi_uintn_t * buffer_size,
++                           void * buffer);
++  grub_efi_status_t (*write) (struct grub_efi_file * this,
++                            grub_efi_uintn_t * buffer_size,
++                            void * buffer);
++  grub_efi_status_t (*get_position) (struct grub_efi_file * this,
++                                   grub_efi_uint64_t * position);
++  grub_efi_status_t (*set_position) (struct grub_efi_file * this,
++                                   grub_efi_uint64_t position);
++  grub_efi_status_t (*get_info) (struct grub_efi_file * this,
++                               grub_efi_guid_t * information_type,
++                               grub_efi_uintn_t * buffer_size,
++                               void * buffer);
++  grub_efi_status_t (*set_info) (struct grub_efi_file * this,
++                               grub_efi_guid_t * information_type,
++                               grub_efi_uintn_t buffer_size,
++                               void * buffer);
++  grub_efi_status_t (*flush) (struct grub_efi_file * this);
++};
++typedef struct grub_efi_file grub_efi_file_t;
++
++struct grub_efi_simple_file_system
++{
++  grub_efi_uint64_t revision;
++  grub_efi_status_t (*open_volume) (struct grub_efi_simple_file_system * this,
++                                  grub_efi_file_t ** root);
++};
++typedef struct grub_efi_simple_file_system grub_efi_simple_file_system_t;
++
++struct grub_efi_serial_io_mode
++{
++  grub_efi_uint32_t control_mask;
++  grub_efi_uint32_t timeout;
++  grub_efi_uint64_t baud_rate;
++  grub_efi_uint32_t receive_fifo_depth;
++  grub_efi_uint32_t data_bits;
++  grub_efi_uint32_t parity;
++  grub_efi_uint32_t stop_bits;
++};
++typedef struct grub_efi_serial_io_mode grub_efi_serial_io_mode_t;
++
++enum grub_efi_parity
++{
++  GRUB_EFI_DEFAULT_PARITY,
++  GRUB_EFI_NO_PARITY,
++  GRUB_EFI_EVEN_PARITY,
++  GRUB_EFI_ODD_PARITY,
++  GRUB_EFI_MARK_PARITY,
++  GRUB_EFI_SPACE_PARITY
++};
++typedef enum grub_efi_parity grub_efi_parity_t;
++
++enum grub_efi_stop_bits
++{
++  GRUB_EFI_DEFAULT_STOP_BITS,
++  GRUB_EFI_ONE_STOP_BIT,
++  GRUB_EFI_ONE_FIVE_STOP_BITS,
++  GRUB_EFI_TWO_STOP_BITS
++};
++typedef enum grub_efi_stop_bits grub_efi_stop_bits_t;
++
++#define GRUB_EFI_SERIAL_CLEAR_TO_SEND                 0x0010
++#define GRUB_EFI_SERIAL_DATA_SET_READY                        0x0020
++#define GRUB_EFI_SERIAL_RING_INDICATE                 0x0040
++#define GRUB_EFI_SERIAL_CARRIER_DETECT                        0x0080
++#define GRUB_EFI_SERIAL_REQUEST_TO_SEND                       0x0002
++#define GRUB_EFI_SERIAL_DATA_TERMINAL_READY           0x0001
++#define GRUB_EFI_SERIAL_INPUT_BUFFER_EMPTY            0x0100
++#define GRUB_EFI_SERIAL_OUTPUT_BUFFER_EMPTY           0x0200
++#define GRUB_EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE      0x1000
++#define GRUB_EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE      0x2000
++#define GRUB_EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE  0x4000
++
++struct grub_efi_serial_io
++{
++  grub_efi_uint32_t revision;
++  grub_efi_status_t (*reset) (struct grub_efi_serial_io * this);
++  grub_efi_status_t (*set_attributes) (struct grub_efi_serial_io * this,
++                                     grub_efi_uint64_t baud_rate,
++                                     grub_efi_uint32_t receive_fifo_depth,
++                                     grub_efi_uint32_t timeout,
++                                     grub_efi_parity_t parity,
++                                     grub_efi_uint8_t data_bits,
++                                     grub_efi_stop_bits_t stop_bits);
++  grub_efi_status_t (*set_control_bits) (struct grub_efi_serial_io * this,
++                                       grub_efi_uint32_t control);
++  grub_efi_status_t (*get_control_bits) (struct grub_efi_serial_io * this,
++                                       grub_efi_uint32_t * control);
++  grub_efi_status_t (*write) (struct grub_efi_serial_io * this,
++                            grub_efi_uintn_t * buffer_size,
++                            void * buffer);
++  grub_efi_status_t (*read) (struct grub_efi_serial_io * this,
++                           grub_efi_uintn_t * buffer_size,
++                           void * buffer);
++  grub_efi_serial_io_mode_t *mode;
++};
++typedef struct grub_efi_serial_io grub_efi_serial_io_t;
++
++#endif /* ! GRUB_EFI_API_HEADER */
+diff --git a/efi/grub/efi/console_control.h b/efi/grub/efi/console_control.h
+new file mode 100644
+index 0000000..ffc4305
+--- /dev/null
++++ b/efi/grub/efi/console_control.h
+@@ -0,0 +1,59 @@
++/* console_control.h - definitions of the console control protocol */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* The console control protocol is not a part of the EFI spec,
++   but defined in Intel's Sample Implementation.  */
++
++#ifndef GRUB_EFI_CONSOLE_CONTROL_HEADER
++#define GRUB_EFI_CONSOLE_CONTROL_HEADER       1
++
++#define GRUB_EFI_CONSOLE_CONTROL_GUID \
++  { 0xf42f7782, 0x12e, 0x4c12, \
++    { 0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } \
++  }
++
++enum grub_efi_screen_mode
++{
++  GRUB_EFI_SCREEN_TEXT,
++  GRUB_EFI_SCREEN_GRAPHICS,
++  GRUB_EFI_SCREEN_TEXT_MAX_VALUE
++};
++typedef enum grub_efi_screen_mode grub_efi_screen_mode_t;
++
++struct grub_efi_console_control_protocol
++{
++  grub_efi_status_t
++    (*get_mode) (struct grub_efi_console_control_protocol * this,
++               grub_efi_screen_mode_t * mode,
++               grub_efi_boolean_t * uga_exists,
++               grub_efi_boolean_t * std_in_locked);
++
++  grub_efi_status_t
++    (*set_mode) (struct grub_efi_console_control_protocol * this,
++               grub_efi_screen_mode_t mode);
++
++  grub_efi_status_t
++    (*lock_std_in) (struct grub_efi_console_control_protocol * this,
++                  grub_efi_char16_t * password);
++};
++typedef struct grub_efi_console_control_protocol
++  grub_efi_console_control_protocol_t;
++
++#endif /* ! GRUB_EFI_CONSOLE_CONTROL_HEADER */
+diff --git a/efi/grub/efi/efi.h b/efi/grub/efi/efi.h
+new file mode 100644
+index 0000000..301f9d9
+--- /dev/null
++++ b/efi/grub/efi/efi.h
+@@ -0,0 +1,85 @@
++/* efi.h - declare variables and functions for EFI support */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_EFI_HEADER
++#define GRUB_EFI_EFI_HEADER   1
++
++#include <grub/types.h>
++#include <grub/efi/api.h>
++
++/* Functions.  */
++grub_efi_status_t
++grub_efi_locate_device_path (grub_efi_guid_t *protocol,
++                             grub_efi_device_path_t **dp,
++                             grub_efi_handle_t *handle);
++grub_efi_status_t
++grub_efi_locate_handle_buffer (grub_efi_locate_search_type_t search_type,
++                              grub_efi_guid_t *protocol,
++                              void *search_key,
++                              grub_efi_uintn_t *no_handles,
++                              grub_efi_handle_t **buffer);
++void *grub_efi_locate_protocol (grub_efi_guid_t * protocol,
++                              void *registration);
++grub_efi_handle_t *grub_efi_locate_handle (grub_efi_locate_search_type_t
++                                         search_type,
++                                         grub_efi_guid_t * protocol,
++                                         void *search_key,
++                                         grub_efi_uintn_t * num_handles);
++void *grub_efi_open_protocol (grub_efi_handle_t handle,
++                            grub_efi_guid_t * protocol,
++                            grub_efi_uint32_t attributes);
++int grub_efi_set_text_mode (int on);
++void grub_efi_stall (grub_efi_uintn_t microseconds);
++void *grub_efi_allocate_pool (grub_efi_uintn_t size);
++void grub_efi_free_pool (void *buffer);
++void *grub_efi_allocate_anypages (grub_efi_uintn_t pages);
++void *grub_efi_allocate_pages (grub_efi_physical_address_t address,
++                             grub_efi_uintn_t pages);
++void *grub_efi_allocate_runtime_pages (grub_efi_physical_address_t address,
++                                     grub_efi_uintn_t pages);
++void
++grub_efi_free_pages (grub_efi_physical_address_t address,
++                   grub_efi_uintn_t pages);
++int
++grub_efi_get_memory_map (grub_efi_uintn_t * map_key,
++                       grub_efi_uintn_t * descriptor_size,
++                       grub_efi_uint32_t * descriptor_version);
++grub_efi_loaded_image_t *grub_efi_get_loaded_image (grub_efi_handle_t
++                                                  image_handle);
++void grub_efi_print_device_path (grub_efi_device_path_t * dp);
++char *grub_efi_get_filename (grub_efi_device_path_t * dp);
++grub_efi_device_path_t *grub_efi_get_device_path (grub_efi_handle_t handle);
++int grub_efi_exit_boot_services (grub_efi_uintn_t map_key);
++
++void grub_efi_mm_init (void);
++void grub_efi_mm_fini (void);
++void grub_efi_init (void);
++void grub_efi_fini (void);
++void grub_efi_set_prefix (void);
++
++/* Variables.  */
++extern void *mmap_buf;
++extern grub_efi_uintn_t mmap_size;
++extern grub_efi_uintn_t mmap_pages;
++
++extern grub_efi_system_table_t *grub_efi_system_table;
++extern grub_efi_handle_t grub_efi_image_handle;
++
++#endif /* ! GRUB_EFI_EFI_HEADER */
+diff --git a/efi/grub/efi/eficall.h b/efi/grub/efi/eficall.h
+new file mode 100644
+index 0000000..2e79e04
+--- /dev/null
++++ b/efi/grub/efi/eficall.h
+@@ -0,0 +1,162 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef _EFI_CALL_INCLUDE_
++#define _EFI_CALL_INCLUDE_ 1
++
++#include <grub/types.h>
++
++#ifndef __x86_64__
++#ifdef EFI_FUNCTION_WRAPPER
++#undef EFI_FUNCTION_WRAPPER
++#endif
++#endif
++
++#ifdef  EFI_FUNCTION_WRAPPER
++typedef long EFI_STATUS;
++
++EFI_STATUS x64_call0 (unsigned long func);
++EFI_STATUS x64_call1 (unsigned long func, unsigned long a);
++EFI_STATUS x64_call2 (unsigned long func, unsigned long a, unsigned long b);
++EFI_STATUS x64_call3 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c);
++EFI_STATUS x64_call4 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c, unsigned long d);
++EFI_STATUS x64_call5 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e);
++EFI_STATUS x64_call6 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e, unsigned long f);
++EFI_STATUS x64_call7 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e,
++                    unsigned long f, unsigned long g);
++EFI_STATUS x64_call8 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e,
++                    unsigned long f, unsigned long g,
++                    unsigned long h);
++EFI_STATUS x64_call9 (unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e,
++                    unsigned long f, unsigned long g,
++                    unsigned long h, unsigned long i);
++EFI_STATUS x64_call10(unsigned long func, unsigned long a,
++                    unsigned long b, unsigned long c,
++                    unsigned long d, unsigned long e,
++                    unsigned long f, unsigned long g,
++                    unsigned long h, unsigned long i,
++                    unsigned long j);
++
++#define Call_Service(func)                      x64_call0((unsigned long)func)
++
++#define Call_Service_1(func,a)                  x64_call1((unsigned long)func, \
++                                                        (unsigned long)a)
++
++#define Call_Service_2(func,a,b)                x64_call2((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b)
++
++#define Call_Service_3(func,a,b,c)              x64_call3((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c)
++
++#define Call_Service_4(func,a,b,c,d)            x64_call4((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d)
++
++#define Call_Service_5(func,a,b,c,d,e)          x64_call5((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e)
++
++#define Call_Service_6(func,a,b,c,d,e,f)        x64_call6((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e,    \
++                                                        (unsigned long)f)
++
++#define Call_Service_7(func,a,b,c,d,e,f,g)      x64_call7((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e,    \
++                                                        (unsigned long)f,    \
++                                                        (unsigned long)g)
++
++#define Call_Service_8(func,a,b,c,d,e,f,g,h)    x64_call8((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e,    \
++                                                        (unsigned long)f,    \
++                                                        (unsigned long)g,    \
++                                                        (unsigned long)h)
++
++#define Call_Service_9(func,a,b,c,d,e,f,g,h,i)  x64_call9((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e,    \
++                                                        (unsigned long)f,    \
++                                                        (unsigned long)g,    \
++                                                        (unsigned long)h,    \
++                                                        (unsigned long)i)
++
++#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j) \
++                                             x64_call10((unsigned long)func, \
++                                                        (unsigned long)a,    \
++                                                        (unsigned long)b,    \
++                                                        (unsigned long)c,    \
++                                                        (unsigned long)d,    \
++                                                        (unsigned long)e,    \
++                                                        (unsigned long)f,    \
++                                                        (unsigned long)g,    \
++                                                        (unsigned long)h,    \
++                                                        (unsigned long)i,    \
++                                                        (unsigned long)j)
++
++#else
++
++typedef long EFI_STATUS;
++#define Call_Service(func)                      func()
++#define Call_Service_1(func,a)                  func(a)
++#define Call_Service_2(func,a,b)                func(a,b)
++#define Call_Service_3(func,a,b,c)              func(a,b,c)
++#define Call_Service_4(func,a,b,c,d)            func(a,b,c,d)
++#define Call_Service_5(func,a,b,c,d,e)          func(a,b,c,d,e)
++#define Call_Service_6(func,a,b,c,d,e,f)        func(a,b,c,d,e,f)
++#define Call_Service_7(func,a,b,c,d,e,f,g)      func(a,b,c,d,e,f,g)
++#define Call_Service_8(func,a,b,c,d,e,f,g,h)    func(a,b,c,d,e,f,g,h)
++#define Call_Service_9(func,a,b,c,d,e,f,g,h,i)  func(a,b,c,d,e,f,g,h,i)
++#define Call_Service_10(func,a,b,c,d,e,f,g,h,i,j)  func(a,b,c,d,e,f,g,h,i,j)
++#endif
++
++#endif
+diff --git a/efi/grub/efi/misc.h b/efi/grub/efi/misc.h
+new file mode 100644
+index 0000000..e06a2fb
+--- /dev/null
++++ b/efi/grub/efi/misc.h
+@@ -0,0 +1,60 @@
++/* misc.h - prototypes for misc EFI functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2003,2005,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_EFI_MISC_HEADER
++#define GRUB_EFI_MISC_HEADER  1
++
++struct e820_entry;
++void e820_map_from_efi_map (struct e820_entry *e820_map,
++                          int *e820_nr_map,
++                          grub_efi_memory_descriptor_t *memory_map,
++                          grub_efi_uintn_t desc_size,
++                          grub_efi_uintn_t memory_map_size);
++
++/* Initialize the console system.  */
++void grub_console_init (void);
++/* Finish the console system.  */
++void grub_console_fini (void);
++
++void grub_efidisk_init (void);
++void grub_efidisk_fini (void);
++grub_efi_handle_t grub_efidisk_get_current_bdev_handle (void);
++int grub_get_drive_partition_from_bdev_handle (grub_efi_handle_t handle,
++                                             unsigned long *drive,
++                                             unsigned long *partition);
++
++char *grub_efi_file_path_to_path_name (grub_efi_device_path_t *file_path);
++void grub_load_saved_default (grub_efi_handle_t dev_handle);
++
++grub_efi_device_path_t *
++find_last_device_path (const grub_efi_device_path_t *dp);
++grub_efi_device_path_t *
++find_parent_device_path (const grub_efi_device_path_t *dp);
++grub_efi_device_path_t *
++duplicate_device_path (const grub_efi_device_path_t *dp);
++int
++compare_device_paths (const grub_efi_device_path_t *dp1,
++                    const grub_efi_device_path_t *dp2);
++grub_efi_device_path_t *
++device_path_from_utf8 (const char *device);
++
++extern grub_efi_guid_t simple_file_system_guid;
++
++#endif /* ! GRUB_EFI_MISC_HEADER */
+diff --git a/efi/grub/efi/net.h b/efi/grub/efi/net.h
+new file mode 100644
+index 0000000..e69de29
+diff --git a/efi/grub/efi/time.h b/efi/grub/efi/time.h
+new file mode 100644
+index 0000000..55bfe68
+--- /dev/null
++++ b/efi/grub/efi/time.h
+@@ -0,0 +1,31 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
++ *  MA  02110-1301, USA.
++ */
++
++#ifndef GRUB_EFI_TIME_HEADER
++#define GRUB_EFI_TIME_HEADER  1
++
++#include <grub/symbol.h>
++
++#define GRUB_TICKS_PER_SECOND 18
++
++/* Return the real time in ticks.  */
++grub_uint32_t grub_get_rtc (void);
++
++#endif /* ! GRUB_EFI_TIME_HEADER */
+diff --git a/efi/grub/i386/linux.h b/efi/grub/i386/linux.h
+new file mode 100644
+index 0000000..1545a7a
+--- /dev/null
++++ b/efi/grub/i386/linux.h
+@@ -0,0 +1,226 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_LINUX_MACHINE_HEADER
++#define GRUB_LINUX_MACHINE_HEADER     1
++
++#define GRUB_LINUX_MAGIC_SIGNATURE    0x53726448      /* "HdrS" */
++#define GRUB_LINUX_DEFAULT_SETUP_SECTS        4
++#define GRUB_LINUX_FLAG_CAN_USE_HEAP  0x80
++#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF
++#define GRUB_LINUX_MAX_SETUP_SECTS    64
++#define GRUB_LINUX_BOOT_LOADER_TYPE   0x72
++#define GRUB_LINUX_HEAP_END_OFFSET    (0x9000 - 0x200)
++
++#define GRUB_LINUX_BZIMAGE_ADDR               0x100000
++#define GRUB_LINUX_ZIMAGE_ADDR                0x10000
++#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000
++#define GRUB_LINUX_SETUP_STACK                0x9000
++
++#define GRUB_LINUX_FLAG_BIG_KERNEL    0x1
++
++/* Linux's video mode selection support. Actually I hate it!  */
++#define GRUB_LINUX_VID_MODE_NORMAL    0xFFFF
++#define GRUB_LINUX_VID_MODE_EXTENDED  0xFFFE
++#define GRUB_LINUX_VID_MODE_ASK               0xFFFD
++
++#define GRUB_LINUX_CL_OFFSET          0x9000
++#define GRUB_LINUX_CL_END_OFFSET      0x90FF
++#define GRUB_LINUX_SETUP_MOVE_SIZE    0x9100
++#define GRUB_LINUX_CL_MAGIC           0xA33F
++
++#if 0 
++#define GRUB_LINUX_EFI_SIGNATURE_X64  \
++  ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
++#else
++#define GRUB_LINUX_EFI_SIGNATURE_X64  \
++  ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
++#endif
++
++#ifndef ASM_FILE
++
++/* For the Linux/i386 boot protocol version 2.07.  */
++struct grub_linux_kernel_header
++{
++  grub_uint8_t setup_sects;   /* The size of the setup in sectors */
++  grub_uint16_t root_flags;   /* If the root is mounted readonly */
++  grub_uint32_t syssize;      /* obsolete */
++  grub_uint16_t ram_size;     /* obsolete */
++  grub_uint16_t vid_mode;     /* Video mode control */
++  grub_uint16_t root_dev;     /* Default root device number */
++  grub_uint16_t boot_flag;    /* 0xAA55 magic number */
++  grub_uint8_t jump_ins;      /* Jump instruction */
++  grub_uint8_t jump_off;      /* Jump offset */
++  grub_uint32_t header;               /* Magic signature "HdrS" */
++  grub_uint16_t version;      /* Boot protocol version supported */
++  grub_uint32_t realmode_swtch;       /* Boot loader hook */
++  grub_uint16_t start_sys;    /* The load-low segment (obsolete) */
++  grub_uint16_t kernel_version;       /* Points to kernel version string */
++  grub_uint8_t type_of_loader;        /* Boot loader identifier */
++  grub_uint8_t loadflags;     /* Boot protocol option flags */
++  grub_uint16_t setup_move_size;/* Move to high memory size */
++  grub_uint32_t code32_start; /* Boot loader hook */
++  grub_uint32_t ramdisk_image;        /* initrd load address */
++  grub_uint32_t ramdisk_size; /* initrd size */
++  grub_uint32_t bootsect_kludge;/* obsolete */
++  grub_uint16_t heap_end_ptr; /* Free memory after setup end */
++  grub_uint16_t pad1;         /* Unused */
++  grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */
++  grub_uint32_t initrd_addr_max;/* Highest address for initrd */
++  grub_uint32_t kernel_alignment;
++  grub_uint8_t relocatable_kernel;
++  grub_uint8_t pad2[3];
++  grub_uint32_t hardware_subarch;
++  grub_uint64_t hardware_subarch_data;
++} __attribute__ ((packed));
++
++/* Boot parameters for Linux based on 2.6.12. This is used by the setup
++   sectors of Linux, and must be simulated by GRUB on EFI, because
++   the setup sectors depend on BIOS.  */
++struct linux_kernel_params
++{
++  grub_uint8_t video_cursor_x;        /* 0 */
++  grub_uint8_t video_cursor_y;
++
++  grub_uint16_t ext_mem;      /* 2 */
++
++  grub_uint16_t video_page;   /* 4 */
++  grub_uint8_t video_mode;    /* 6 */
++  grub_uint8_t video_width;   /* 7 */
++
++  grub_uint8_t padding1[0xa - 0x8];
++
++  grub_uint16_t video_ega_bx; /* a */
++
++  grub_uint8_t padding2[0xe - 0xc];
++
++  grub_uint8_t video_height;  /* e */
++  grub_uint8_t have_vga;      /* f */
++  grub_uint16_t font_size;    /* 10 */
++
++  grub_uint16_t lfb_width;    /* 12 */
++  grub_uint16_t lfb_height;   /* 14 */
++  grub_uint16_t lfb_depth;    /* 16 */
++  grub_uint32_t lfb_base;     /* 18 */
++  grub_uint32_t lfb_size;     /* 1c */
++
++  grub_uint16_t cl_magic;     /* 20 */
++  grub_uint16_t cl_offset;
++
++  grub_uint16_t lfb_line_len; /* 24 */
++  grub_uint8_t red_mask_size; /* 26 */
++  grub_uint8_t red_field_pos;
++  grub_uint8_t green_mask_size;
++  grub_uint8_t green_field_pos;
++  grub_uint8_t blue_mask_size;
++  grub_uint8_t blue_field_pos;
++  grub_uint8_t reserved_mask_size;
++  grub_uint8_t reserved_field_pos;
++  grub_uint16_t vesapm_segment;       /* 2e */
++  grub_uint16_t vesapm_offset;        /* 30 */
++  grub_uint16_t lfb_pages;    /* 32 */
++  grub_uint16_t vesa_attrib;  /* 34 */
++
++  grub_uint8_t padding3[0x40 - 0x36];
++
++  grub_uint16_t apm_version;  /* 40 */
++  grub_uint16_t apm_code_segment;     /* 42 */
++  grub_uint32_t apm_entry;    /* 44 */
++  grub_uint16_t apm_16bit_code_segment;       /* 48 */
++  grub_uint16_t apm_data_segment;     /* 4a */
++  grub_uint16_t apm_flags;    /* 4c */
++  grub_uint32_t apm_code_len; /* 4e */
++  grub_uint16_t apm_data_len; /* 52 */
++
++  grub_uint8_t padding4[0x60 - 0x54];
++
++  grub_uint32_t ist_signature;        /* 60 */
++  grub_uint32_t ist_command;  /* 64 */
++  grub_uint32_t ist_event;    /* 68 */
++  grub_uint32_t ist_perf_level;       /* 6c */
++
++  grub_uint8_t padding5[0x80 - 0x70];
++
++  grub_uint8_t hd0_drive_info[0x10];  /* 80 */
++  grub_uint8_t hd1_drive_info[0x10];  /* 90 */
++  grub_uint16_t rom_config_len;       /* a0 */
++
++  grub_uint8_t padding6[0x1b8 - 0xa2];
++
++  union {
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++
++      grub_uint32_t efi_signature;    /* 1c0 */
++      grub_uint32_t efi_system_table; /* 1c4 */
++      grub_uint32_t efi_mem_desc_size;        /* 1c8 */
++      grub_uint32_t efi_mem_desc_version;     /* 1cc */
++      grub_uint32_t efi_mmap;      /* 1d0 */
++      grub_uint32_t efi_mmap_size;    /* 1d4 */
++      grub_uint32_t efi_system_table_hi;      /* 1d8 */
++      grub_uint32_t efi_mmap_hi;      /* 1dc */
++    } dunno;
++    struct {
++      grub_uint32_t efi_system_table; /* 1b8 */
++
++      grub_uint32_t padding7_1; /* 0x1bc */
++
++      grub_uint32_t efi_signature;    /* 1c0 */
++      grub_uint32_t efi_mem_desc_size;        /* 1c4 */
++      grub_uint32_t efi_mem_desc_version;     /* 1c8 */
++      grub_uint32_t efi_mmap_size;    /* 1cc */
++      grub_uint32_t efi_mmap; /* 1d0 */
++
++      grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
++    } version_0204;
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++      grub_uint32_t padding7_3; /* 0x1c0 */
++      grub_uint32_t efi_system_table; /* 0x1c4 */
++      grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
++      grub_uint32_t efi_mem_desc_version; /* 0x1cc */
++      grub_uint32_t efi_mmap; /* 0x1d0 */
++      grub_uint32_t efi_mmap_size; /* 0x1d4 */
++      grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
++    } version_0206;
++  };
++
++  grub_uint32_t alt_mem;      /* 1e0 */
++
++  grub_uint8_t padding8[0x1e8 - 0x1e4];       /* 1e4 */
++
++  grub_uint8_t e820_nr_map;   /* 1e8 */
++  grub_uint8_t eddbuf_entries;        /* 1e9 */
++  grub_uint8_t edd_mbr_sig_buf_entries;       /* 1ea */
++
++  grub_uint8_t padding9[0x1f1 - 0x1eb];
++
++  struct grub_linux_kernel_header hdr;        /* 0x1f1 */
++
++  grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
++
++  grub_uint8_t e820_map[2560];        /* 0x2d0 */
++
++  grub_uint8_t padding11[0x1000 - 0xcd0];
++} __attribute__ ((packed));
++#endif /* ! ASM_FILE */
++
++#endif /* ! GRUB_LINUX_MACHINE_HEADER */
+diff --git a/efi/grub/i386/types.h b/efi/grub/i386/types.h
+new file mode 100644
+index 0000000..ec4174e
+--- /dev/null
++++ b/efi/grub/i386/types.h
+@@ -0,0 +1,32 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_CPU_HEADER
++#define GRUB_TYPES_CPU_HEADER 1
++
++/* The size of void *.  */
++#define GRUB_TARGET_SIZEOF_VOID_P     4
++
++/* The size of long.  */
++#define GRUB_TARGET_SIZEOF_LONG               4
++
++/* x64_64 is little-endian.  */
++#undef GRUB_TARGET_WORDS_BIGENDIAN
++
++#endif /* ! GRUB_TYPES_CPU_HEADER */
+diff --git a/efi/grub/misc.h b/efi/grub/misc.h
+new file mode 100644
+index 0000000..5ef2226
+--- /dev/null
++++ b/efi/grub/misc.h
+@@ -0,0 +1,71 @@
++/* misc.h - prototypes for misc functions */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2003,2005,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_MISC_HEADER
++#define GRUB_MISC_HEADER      1
++
++#include <stdarg.h>
++#include <grub/types.h>
++
++#define grub_dprintf(condition, fmt, args...) \
++      grub_real_dprintf(__FILE__, __LINE__, condition, fmt, ## args)
++
++char *grub_stpcpy (char *dest, const char *src);
++void grub_real_dprintf (const char *file,
++                      const int line,
++                      const char *condition,
++                      const char *fmt, ...)
++  __attribute__ ((format (printf, 4, 5)));
++void grub_exit (void) __attribute__ ((noreturn));
++void grub_abort (void) __attribute__ ((noreturn));
++void grub_fatal (const char *fmt, ...) __attribute__ ((noreturn));
++grub_size_t grub_utf8_char_len(grub_uint8_t ch);
++grub_uint32_t grub_utf8_to_utf32(const grub_uint8_t *src, grub_size_t length);
++void grub_utf8_to_utf16(const grub_uint8_t *src, grub_size_t srclen,
++                      grub_uint16_t *dst, grub_size_t dstlen);
++grub_uint8_t *grub_utf16_to_utf8 (grub_uint8_t * dest,
++                                grub_uint16_t * src, grub_size_t size);
++
++void *grub_malloc (grub_size_t size);
++void grub_free (void *ptr);
++
++char *grub_strndup (const char *s, int n);
++#define strndup grub_strndup
++
++int safe_parse_maxulong (char **str_ptr, unsigned long *myulong_ptr);
++
++#define E820_RAM        1
++#define E820_RESERVED   2
++#define E820_ACPI       3
++#define E820_NVS        4
++#define E820_EXEC_CODE  5
++#define E820_MAX        128
++
++struct e820_entry
++{
++  grub_uint64_t addr;    /* start of memory segment */
++  grub_uint64_t size;    /* size of memory segment */
++  grub_uint32_t type;    /* type of memory segment */
++} __attribute__ ((packed));
++
++int grub_load_linux (char *kernel, char *arg);
++int grub_load_initrd (char *initrd);
++
++#endif /* ! GRUB_MISC_HEADER */
+diff --git a/efi/grub/symbol.h b/efi/grub/symbol.h
+new file mode 100644
+index 0000000..5204c54
+--- /dev/null
++++ b/efi/grub/symbol.h
+@@ -0,0 +1,34 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_SYMBOL_HEADER
++#define GRUB_SYMBOL_HEADER    1
++
++#include <config.h>
++
++/* Add an underscore to a C symbol in assembler code if needed. */
++#ifdef HAVE_ASM_USCORE
++# define EXT_C(sym)   _ ## sym
++#else
++# define EXT_C(sym)   sym
++#endif
++
++#define FUNCTION(x)   .globl EXT_C(x) ; .type EXT_C(x), "function" ; EXT_C(x):
++
++#endif /* ! GRUB_SYMBOL_HEADER */
+diff --git a/efi/grub/types.h b/efi/grub/types.h
+new file mode 100644
+index 0000000..173adb4
+--- /dev/null
++++ b/efi/grub/types.h
+@@ -0,0 +1,158 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2005,2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_HEADER
++#define GRUB_TYPES_HEADER     1
++
++#include <config.h>
++#include <grub/cpu/types.h>
++
++#define UNUSED __attribute__ ((unused))
++
++#ifdef GRUB_UTIL
++# define GRUB_CPU_SIZEOF_VOID_P       SIZEOF_VOID_P
++# define GRUB_CPU_SIZEOF_LONG SIZEOF_LONG
++# ifdef WORDS_BIGENDIAN
++#  define GRUB_CPU_WORDS_BIGENDIAN    1
++# else
++#  undef GRUB_CPU_WORDS_BIGENDIAN
++# endif
++#else /* ! GRUB_UTIL */
++# define GRUB_CPU_SIZEOF_VOID_P       GRUB_TARGET_SIZEOF_VOID_P
++# define GRUB_CPU_SIZEOF_LONG GRUB_TARGET_SIZEOF_LONG
++# ifdef GRUB_TARGET_WORDS_BIGENDIAN
++#  define GRUB_CPU_WORDS_BIGENDIAN    1
++# else
++#  undef GRUB_CPU_WORDS_BIGENDIAN
++# endif
++#endif /* ! GRUB_UTIL */
++
++#if GRUB_CPU_SIZEOF_VOID_P != GRUB_CPU_SIZEOF_LONG
++# error "This architecture is not supported because sizeof(void *) != sizeof(long)"
++#endif
++
++#if GRUB_CPU_SIZEOF_VOID_P != 4 && GRUB_CPU_SIZEOF_VOID_P != 8
++# error "This architecture is not supported because sizeof(void *) != 4 and sizeof(void *) != 8"
++#endif
++
++/* Define various wide integers.  */
++typedef signed char           grub_int8_t;
++typedef short                 grub_int16_t;
++typedef int                   grub_int32_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef long                  grub_int64_t;
++#else
++typedef long long             grub_int64_t;
++#endif
++
++typedef unsigned char         grub_uint8_t;
++typedef unsigned short                grub_uint16_t;
++typedef unsigned              grub_uint32_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef unsigned long         grub_uint64_t;
++#else
++typedef unsigned long long    grub_uint64_t;
++#endif
++
++/* Misc types.  */
++#if GRUB_TARGET_SIZEOF_VOID_P == 8
++typedef grub_uint64_t grub_target_addr_t;
++typedef grub_uint64_t grub_target_off_t;
++typedef grub_uint64_t grub_target_size_t;
++typedef grub_int64_t  grub_target_ssize_t;
++#else
++typedef grub_uint32_t grub_target_addr_t;
++typedef grub_uint32_t grub_target_off_t;
++typedef grub_uint32_t grub_target_size_t;
++typedef grub_int32_t  grub_target_ssize_t;
++#endif
++
++typedef unsigned long   grub_addr_t;
++#if GRUB_CPU_SIZEOF_VOID_P == 8
++typedef grub_uint64_t grub_size_t;
++typedef grub_int64_t  grub_ssize_t;
++#else
++typedef grub_uint32_t grub_size_t;
++typedef grub_int32_t  grub_ssize_t;
++#endif
++
++/* The type for representing a file offset.  */
++typedef grub_uint64_t grub_off_t;
++
++/* The type for representing a disk block address.  */
++typedef grub_uint64_t grub_disk_addr_t;
++
++/* Byte-orders.  */
++#define grub_swap_bytes16(x)  \
++({ \
++   grub_uint16_t _x = (x); \
++   (grub_uint16_t) ((_x << 8) | (_x >> 8)); \
++})
++
++#define grub_swap_bytes32(x)  \
++({ \
++   grub_uint32_t _x = (x); \
++   (grub_uint32_t) ((_x << 24) \
++                    | ((_x & (grub_uint32_t) 0xFF00UL) << 8) \
++                    | ((_x & (grub_uint32_t) 0xFF0000UL) >> 8) \
++                    | (_x >> 24)); \
++})
++
++#define grub_swap_bytes64(x)  \
++({ \
++   grub_uint64_t _x = (x); \
++   (grub_uint64_t) ((_x << 56) \
++                    | ((_x & (grub_uint64_t) 0xFF00ULL) << 40) \
++                    | ((_x & (grub_uint64_t) 0xFF0000ULL) << 24) \
++                    | ((_x & (grub_uint64_t) 0xFF000000ULL) << 8) \
++                    | ((_x & (grub_uint64_t) 0xFF00000000ULL) >> 8) \
++                    | ((_x & (grub_uint64_t) 0xFF0000000000ULL) >> 24) \
++                    | ((_x & (grub_uint64_t) 0xFF000000000000ULL) >> 40) \
++                    | (_x >> 56)); \
++})
++
++#ifdef GRUB_CPU_WORDS_BIGENDIAN
++# define grub_cpu_to_le16(x)  grub_swap_bytes16(x)
++# define grub_cpu_to_le32(x)  grub_swap_bytes32(x)
++# define grub_cpu_to_le64(x)  grub_swap_bytes64(x)
++# define grub_le_to_cpu16(x)  grub_swap_bytes16(x)
++# define grub_le_to_cpu32(x)  grub_swap_bytes32(x)
++# define grub_le_to_cpu64(x)  grub_swap_bytes64(x)
++# define grub_cpu_to_be16(x)  ((grub_uint16_t) (x))
++# define grub_cpu_to_be32(x)  ((grub_uint32_t) (x))
++# define grub_cpu_to_be64(x)  ((grub_uint64_t) (x))
++# define grub_be_to_cpu16(x)  ((grub_uint16_t) (x))
++# define grub_be_to_cpu32(x)  ((grub_uint32_t) (x))
++# define grub_be_to_cpu64(x)  ((grub_uint64_t) (x))
++#else /* ! WORDS_BIGENDIAN */
++# define grub_cpu_to_le16(x)  ((grub_uint16_t) (x))
++# define grub_cpu_to_le32(x)  ((grub_uint32_t) (x))
++# define grub_cpu_to_le64(x)  ((grub_uint64_t) (x))
++# define grub_le_to_cpu16(x)  ((grub_uint16_t) (x))
++# define grub_le_to_cpu32(x)  ((grub_uint32_t) (x))
++# define grub_le_to_cpu64(x)  ((grub_uint64_t) (x))
++# define grub_cpu_to_be16(x)  grub_swap_bytes16(x)
++# define grub_cpu_to_be32(x)  grub_swap_bytes32(x)
++# define grub_cpu_to_be64(x)  grub_swap_bytes64(x)
++# define grub_be_to_cpu16(x)  grub_swap_bytes16(x)
++# define grub_be_to_cpu32(x)  grub_swap_bytes32(x)
++# define grub_be_to_cpu64(x)  grub_swap_bytes64(x)
++#endif /* ! WORDS_BIGENDIAN */
++
++#endif /* ! GRUB_TYPES_HEADER */
+diff --git a/efi/grub/x86_64/linux.h b/efi/grub/x86_64/linux.h
+new file mode 100644
+index 0000000..4e81ca6
+--- /dev/null
++++ b/efi/grub/x86_64/linux.h
+@@ -0,0 +1,234 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_LINUX_MACHINE_HEADER
++#define GRUB_LINUX_MACHINE_HEADER     1
++
++#define GRUB_LINUX_MAGIC_SIGNATURE    0x53726448      /* "HdrS" */
++#define GRUB_LINUX_DEFAULT_SETUP_SECTS        4
++#define GRUB_LINUX_FLAG_CAN_USE_HEAP  0x80
++#define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF
++#define GRUB_LINUX_MAX_SETUP_SECTS    64
++#define GRUB_LINUX_BOOT_LOADER_TYPE   0x72
++#define GRUB_LINUX_HEAP_END_OFFSET    (0x9000 - 0x200)
++
++#define GRUB_LINUX_BZIMAGE_ADDR               0x100000
++#define GRUB_LINUX_ZIMAGE_ADDR                0x10000
++#define GRUB_LINUX_OLD_REAL_MODE_ADDR 0x90000
++#define GRUB_LINUX_SETUP_STACK                0x9000
++
++#define GRUB_LINUX_FLAG_BIG_KERNEL    0x1
++
++/* Linux's video mode selection support. Actually I hate it!  */
++#define GRUB_LINUX_VID_MODE_NORMAL    0xFFFF
++#define GRUB_LINUX_VID_MODE_EXTENDED  0xFFFE
++#define GRUB_LINUX_VID_MODE_ASK               0xFFFD
++
++#define GRUB_LINUX_CL_OFFSET          0x9000
++#define GRUB_LINUX_CL_END_OFFSET      0x90FF
++#define GRUB_LINUX_SETUP_MOVE_SIZE    0x9100
++#define GRUB_LINUX_CL_MAGIC           0xA33F
++
++#if 0 
++#define GRUB_LINUX_EFI_SIGNATURE_X64  \
++  ('4' << 24 | '6' << 16 | 'L' << 8 | 'E')
++#else
++#define GRUB_LINUX_EFI_SIGNATURE_X64  \
++  ('L' << 24 | 'I' << 16 | 'F' << 8 | 'E')
++#endif
++
++#ifndef ASM_FILE
++
++/* For the Linux/i386 boot protocol version 2.07.  */
++struct grub_linux_kernel_header
++{
++  grub_uint8_t setup_sects;   /* The size of the setup in sectors */
++  grub_uint16_t root_flags;   /* If the root is mounted readonly */
++  grub_uint32_t syssize;      /* obsolete */
++  grub_uint16_t ram_size;     /* obsolete */
++  grub_uint16_t vid_mode;     /* Video mode control */
++  grub_uint16_t root_dev;     /* Default root device number */
++  grub_uint16_t boot_flag;    /* 0xAA55 magic number */
++  grub_uint8_t jump_ins;      /* Jump instruction */
++  grub_uint8_t jump_off;      /* Jump offset */
++  grub_uint32_t header;               /* Magic signature "HdrS" */
++  grub_uint16_t version;      /* Boot protocol version supported */
++  grub_uint32_t realmode_swtch;       /* Boot loader hook */
++  grub_uint16_t start_sys;    /* The load-low segment (obsolete) */
++  grub_uint16_t kernel_version;       /* Points to kernel version string */
++  grub_uint8_t type_of_loader;        /* Boot loader identifier */
++  grub_uint8_t loadflags;     /* Boot protocol option flags */
++  grub_uint16_t setup_move_size;/* Move to high memory size */
++  grub_uint32_t code32_start; /* Boot loader hook */
++  grub_uint32_t ramdisk_image;        /* initrd load address */
++  grub_uint32_t ramdisk_size; /* initrd size */
++  grub_uint32_t bootsect_kludge;/* obsolete */
++  grub_uint16_t heap_end_ptr; /* Free memory after setup end */
++  grub_uint16_t pad1;         /* Unused */
++  grub_uint32_t cmd_line_ptr; /* Points to the kernel command line */
++  grub_uint32_t initrd_addr_max;/* Highest address for initrd */
++  grub_uint32_t kernel_alignment;
++  grub_uint8_t relocatable_kernel;
++  grub_uint8_t min_alignment;
++  grub_uint8_t pad2[2];
++  grub_uint32_t cmdline_size;
++  grub_uint32_t hardware_subarch;
++  grub_uint64_t hardware_subarch_data;
++  grub_uint32_t payload_offset;
++  grub_uint32_t payload_length;
++  grub_uint64_t setup_data;
++  grub_uint64_t pref_address;
++  grub_uint32_t init_size;
++} __attribute__ ((packed));
++
++/* Boot parameters for Linux based on 2.6.12. This is used by the setup
++   sectors of Linux, and must be simulated by GRUB on EFI, because
++   the setup sectors depend on BIOS.  */
++struct linux_kernel_params
++{
++  grub_uint8_t video_cursor_x;        /* 0 */
++  grub_uint8_t video_cursor_y;
++
++  grub_uint16_t ext_mem;      /* 2 */
++
++  grub_uint16_t video_page;   /* 4 */
++  grub_uint8_t video_mode;    /* 6 */
++  grub_uint8_t video_width;   /* 7 */
++
++  grub_uint8_t padding1[0xa - 0x8];
++
++  grub_uint16_t video_ega_bx; /* a */
++
++  grub_uint8_t padding2[0xe - 0xc];
++
++  grub_uint8_t video_height;  /* e */
++  grub_uint8_t have_vga;      /* f */
++  grub_uint16_t font_size;    /* 10 */
++
++  grub_uint16_t lfb_width;    /* 12 */
++  grub_uint16_t lfb_height;   /* 14 */
++  grub_uint16_t lfb_depth;    /* 16 */
++  grub_uint32_t lfb_base;     /* 18 */
++  grub_uint32_t lfb_size;     /* 1c */
++
++  grub_uint16_t cl_magic;     /* 20 */
++  grub_uint16_t cl_offset;
++
++  grub_uint16_t lfb_line_len; /* 24 */
++  grub_uint8_t red_mask_size; /* 26 */
++  grub_uint8_t red_field_pos;
++  grub_uint8_t green_mask_size;
++  grub_uint8_t green_field_pos;
++  grub_uint8_t blue_mask_size;
++  grub_uint8_t blue_field_pos;
++  grub_uint8_t reserved_mask_size;
++  grub_uint8_t reserved_field_pos;
++  grub_uint16_t vesapm_segment;       /* 2e */
++  grub_uint16_t vesapm_offset;        /* 30 */
++  grub_uint16_t lfb_pages;    /* 32 */
++  grub_uint16_t vesa_attrib;  /* 34 */
++  grub_uint32_t capabilities;   /* 36 */
++
++  grub_uint8_t padding3[0x40 - 0x3a];
++
++  grub_uint16_t apm_version;  /* 40 */
++  grub_uint16_t apm_code_segment;     /* 42 */
++  grub_uint32_t apm_entry;    /* 44 */
++  grub_uint16_t apm_16bit_code_segment;       /* 48 */
++  grub_uint16_t apm_data_segment;     /* 4a */
++  grub_uint16_t apm_flags;    /* 4c */
++  grub_uint32_t apm_code_len; /* 4e */
++  grub_uint16_t apm_data_len; /* 52 */
++
++  grub_uint8_t padding4[0x60 - 0x54];
++
++  grub_uint32_t ist_signature;        /* 60 */
++  grub_uint32_t ist_command;  /* 64 */
++  grub_uint32_t ist_event;    /* 68 */
++  grub_uint32_t ist_perf_level;       /* 6c */
++
++  grub_uint8_t padding5[0x80 - 0x70];
++
++  grub_uint8_t hd0_drive_info[0x10];  /* 80 */
++  grub_uint8_t hd1_drive_info[0x10];  /* 90 */
++  grub_uint16_t rom_config_len;       /* a0 */
++
++  grub_uint8_t padding6[0x1b8 - 0xa2];
++
++  union {
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++
++      grub_uint32_t efi_signature;    /* 1c0 */
++      grub_uint32_t efi_system_table; /* 1c4 */
++      grub_uint32_t efi_mem_desc_size;        /* 1c8 */
++      grub_uint32_t efi_mem_desc_version;     /* 1cc */
++      grub_uint32_t efi_mmap;      /* 1d0 */
++      grub_uint32_t efi_mmap_size;    /* 1d4 */
++      grub_uint32_t efi_system_table_hi;      /* 1d8 */
++      grub_uint32_t efi_mmap_hi;      /* 1dc */
++    } dunno;
++    struct {
++      grub_uint32_t efi_system_table; /* 1b8 */
++
++      grub_uint32_t padding7_1; /* 0x1bc */
++
++      grub_uint32_t efi_signature;    /* 1c0 */
++      grub_uint32_t efi_mem_desc_size;        /* 1c4 */
++      grub_uint32_t efi_mem_desc_version;     /* 1c8 */
++      grub_uint32_t efi_mmap_size;    /* 1cc */
++      grub_uint32_t efi_mmap; /* 1d0 */
++
++      grub_uint8_t padding7_2[0x1e0 - 0x1d4]; /* 1d4 */
++    } version_0204;
++    struct {
++      grub_uint32_t padding7_1; /* 0x1b8 */
++      grub_uint32_t padding7_2; /* 0x1bc */
++      grub_uint32_t padding7_3; /* 0x1c0 */
++      grub_uint32_t efi_system_table; /* 0x1c4 */
++      grub_uint32_t efi_mem_desc_size; /* 0x1c8 */
++      grub_uint32_t efi_mem_desc_version; /* 0x1cc */
++      grub_uint32_t efi_mmap; /* 0x1d0 */
++      grub_uint32_t efi_mmap_size; /* 0x1d4 */
++      grub_uint8_t padding7_4[0x1e0 - 0x1d8]; /* 0x1d8 */
++    } version_0206;
++  };
++
++  grub_uint32_t alt_mem;      /* 1e0 */
++
++  grub_uint8_t padding8[0x1e8 - 0x1e4];       /* 1e4 */
++
++  grub_uint8_t e820_nr_map;   /* 1e8 */
++  grub_uint8_t eddbuf_entries;        /* 1e9 */
++  grub_uint8_t edd_mbr_sig_buf_entries;       /* 1ea */
++
++  grub_uint8_t padding9[0x1f1 - 0x1eb];
++
++  struct grub_linux_kernel_header hdr;        /* 0x1f1 */
++
++  grub_uint8_t padding10[0x2d0-0x1f1-sizeof(struct grub_linux_kernel_header)];
++
++  grub_uint8_t e820_map[2560];        /* 0x2d0 */
++
++  grub_uint8_t padding11[0x1000 - 0xcd0];
++} __attribute__ ((packed));
++#endif /* ! ASM_FILE */
++
++#endif /* ! GRUB_LINUX_MACHINE_HEADER */
+diff --git a/efi/grub/x86_64/types.h b/efi/grub/x86_64/types.h
+new file mode 100644
+index 0000000..0c077f6
+--- /dev/null
++++ b/efi/grub/x86_64/types.h
+@@ -0,0 +1,32 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2006  Free Software Foundation, Inc.
++ *
++ *  GRUB is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with GRUB; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRUB_TYPES_CPU_HEADER
++#define GRUB_TYPES_CPU_HEADER 1
++
++/* The size of void *.  */
++#define GRUB_TARGET_SIZEOF_VOID_P     8
++
++/* The size of long.  */
++#define GRUB_TARGET_SIZEOF_LONG               8
++
++/* x64_64 is little-endian.  */
++#undef GRUB_TARGET_WORDS_BIGENDIAN
++
++#endif /* ! GRUB_TYPES_CPU_HEADER */
+diff --git a/efi/ia32/callwrap.S b/efi/ia32/callwrap.S
+new file mode 100644
+index 0000000..50d737f
+--- /dev/null
++++ b/efi/ia32/callwrap.S
+@@ -0,0 +1 @@
++/* This file is a stub for ia32 building */
+diff --git a/efi/ia32/callwrap.c b/efi/ia32/callwrap.c
+new file mode 100644
+index 0000000..56df899
+--- /dev/null
++++ b/efi/ia32/callwrap.c
+@@ -0,0 +1,131 @@
++
++#define ENTRY(name)           \
++      ".globl " #name ";"     \
++      ".align 16;"            \
++      #name ":"
++
++asm(
++ENTRY(i386_call0)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $8, %esp        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call1)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $20, %esp       \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call2)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $16, %esp       \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call3)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $12, %esp       \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call4)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $8, %esp        \n"
++      "pushl  24(%ebp)        \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call5)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $20, %esp       \n"
++      "pushl  28(%ebp)        \n"
++      "pushl  24(%ebp)        \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_64_call5)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $12, %esp       \n"
++      "pushl  36(%ebp)        \n"
++      "pushl  32(%ebp)        \n"
++      "pushl  28(%ebp)        \n"
++      "pushl  24(%ebp)        \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++
++asm(
++ENTRY(i386_call6)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $16, %esp       \n"
++      "pushl  32(%ebp)        \n"
++      "pushl  28(%ebp)        \n"
++      "pushl  24(%ebp)        \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
++
++asm(
++ENTRY(i386_call7)
++      "pushl  %ebp            \n"
++      "movl   %esp,%ebp       \n"
++      "subl   $12, %esp       \n"
++      "pushl  36(%ebp)        \n"
++      "pushl  32(%ebp)        \n"
++      "pushl  28(%ebp)        \n"
++      "pushl  24(%ebp)        \n"
++      "pushl  20(%ebp)        \n"
++      "pushl  16(%ebp)        \n"
++      "pushl  12(%ebp)        \n"
++      "call   *8(%ebp)        \n"
++      "leave                  \n"
++      "ret                    \n"
++      );
+diff --git a/efi/ia32/loader/bin_to_h.c b/efi/ia32/loader/bin_to_h.c
+new file mode 100644
+index 0000000..4cff104
+--- /dev/null
++++ b/efi/ia32/loader/bin_to_h.c
+@@ -0,0 +1,29 @@
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main (void)
++{
++  unsigned n = 0;
++  int c;
++
++  printf ("unsigned char switch_image[] = {\n");
++
++  while ((c = getchar ()) != EOF)
++    {
++      printf("0x%02x,%s",
++           c & 0xFF,
++           (++n & 0x07) ? " " : "\n");
++    }
++
++  if (n & 0x07)
++    {
++      printf("\n");
++    }
++
++  printf("};\n"
++       "int switch_size = sizeof switch_image;\n");
++
++  return 0;
++}
++
+diff --git a/efi/ia32/loader/linux.c b/efi/ia32/loader/linux.c
+new file mode 100644
+index 0000000..d795d28
+--- /dev/null
++++ b/efi/ia32/loader/linux.c
+@@ -0,0 +1,648 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include "switch.h"
++
++#include <shared.h>
++
++#include "graphics.h"
++
++#define grub_file_size()    filemax
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)      \
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
++
++#ifndef SECTOR_SIZE
++#define SECTOR_SIZE 0x200
++#endif /* defined(SECTOR_SIZE) */
++#ifndef SECTOR_BITS
++#define SECTOR_BITS 9
++#endif /* defined(SECTOR_BITS) */
++
++static unsigned long linux_mem_size;
++static int loaded;
++static void *real_mode_mem;
++static void *prot_mode_mem;
++static void *initrd_mem;
++static grub_efi_uintn_t real_mode_pages;
++static grub_efi_uintn_t prot_mode_pages;
++static grub_efi_uintn_t initrd_pages;
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++
++static inline grub_size_t
++page_align (grub_size_t size)
++{
++  return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
++}
++
++static void
++free_pages (void)
++{
++  if (real_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
++      real_mode_mem = 0;
++    }
++
++  if (prot_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) prot_mode_mem, prot_mode_pages);
++      prot_mode_mem = 0;
++    }
++
++  if (initrd_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
++      initrd_mem = 0;
++    }
++
++  if (mmap_buf)
++    {
++      grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++      mmap_buf = 0;
++    }
++}
++
++/* Allocate pages for the real mode code and the protected mode code
++   for linux as well as a memory map buffer.  */
++static int
++allocate_pages (grub_size_t real_size, grub_size_t prot_size)
++{
++  grub_efi_uintn_t desc_size;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_physical_address_t addr;
++
++  /* Make sure that each size is aligned to a page boundary.  */
++  real_size = page_align (real_size + SECTOR_SIZE);
++  prot_size = page_align (prot_size);
++
++  grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
++              (unsigned int) real_size, (unsigned int) prot_size,
++              (unsigned int) mmap_size);
++
++  /* Calculate the number of pages; Combine the real mode code with
++     the memory map buffer for simplicity.  */
++  real_mode_pages = (real_size >> 12);
++  prot_mode_pages = (prot_size >> 12);
++
++  /* Initialize the memory pointers with NULL for convenience.  */
++  real_mode_mem = 0;
++  prot_mode_mem = 0;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  /* First, find free pages for the real mode code
++     and the memory map buffer.  */
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
++        && desc->num_pages >= real_mode_pages)
++      {
++        grub_efi_physical_address_t physical_end;
++
++          physical_end = desc->physical_start + (desc->num_pages << 12);
++
++          grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
++                        (unsigned) desc->physical_start,
++                        (unsigned) physical_end);
++          addr = physical_end - real_size;
++          if (addr < 0x10000)
++            continue;
++
++          grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
++                        (unsigned) real_mode_pages, (unsigned) addr);
++          real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
++          if (! real_mode_mem)
++            grub_fatal ("cannot allocate pages");
++
++          desc->num_pages -= real_mode_pages;
++          break;
++      }
++    }
++
++  if (! real_mode_mem)
++    {
++      grub_printf ("cannot allocate real mode pages");
++      errnum = ERR_WONT_FIT;
++      goto fail;
++    }
++
++  /* Next, find free pages for the protected mode code.  */
++  /* XXX what happens if anything is using this address?  */
++  prot_mode_mem = grub_efi_allocate_pages (0x100000, prot_mode_pages);
++  if (! prot_mode_mem)
++      grub_fatal("Cannot allocate pages for VMLINUZ");
++
++  return 1;
++
++ fail:
++  free_pages ();
++  return 0;
++}
++
++/* do some funky stuff, then boot linux */
++void
++linux_boot (void)
++{
++  grub_printf ("zImage is not supported under EFI.\n");
++  for (;;);
++}
++
++#ifndef __x86_64__
++struct {
++    unsigned short limit;
++    unsigned int base;
++} __attribute__ ((packed)) 
++  gdt_addr = { 0x800, 0x94000 },
++  idt_addr = { 0, 0 };
++
++unsigned short init_gdt[] = {
++  /* gdt[0]: dummy */
++  0, 0, 0, 0,
++
++  /* gdt[1]: unused */
++  0, 0, 0, 0,
++
++  /* gdt[2]: code */
++  0xFFFF,         /* 4Gb - (0x100000*0x1000 = 4Gb) */
++  0x0000,         /* base address=0 */
++  0x9A00,         /* code read/exec */
++  0x00CF,         /* granularity=4096, 386 (+5th nibble of limit) */
++
++  /* gdt[3]: data */
++  0xFFFF,         /* 4Gb - (0x100000*0x1000 = 4Gb) */
++  0x0000,         /* base address=0 */
++  0x9200,         /* data read/write */
++  0x00CF,         /* granularity=4096, 386 (+5th nibble of limit) */
++};
++#endif
++
++void
++big_linux_boot (void)
++{
++  struct linux_kernel_params *params;
++  struct grub_linux_kernel_header *lh;
++  grub_efi_uintn_t map_key;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  int e820_nr_map;
++  int i;
++
++  params = real_mode_mem;
++
++  graphics_set_kernel_params (params);
++
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  /* Pass e820 memmap. */
++  e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
++                       mmap_buf, desc_size, mmap_size);
++  params->e820_nr_map = e820_nr_map;
++
++  grub_dprintf(__func__,"got to ExitBootServices...\n");
++  if (! grub_efi_exit_boot_services (map_key))
++    grub_fatal ("cannot exit boot services");
++  /* Note that no boot services are available from here.  */
++
++  lh = &params->hdr;
++  /* Pass EFI parameters.  */
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    params->version_0206.efi_mem_desc_size = desc_size;
++    params->version_0206.efi_mem_desc_version = desc_version;
++    params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0206.efi_mmap_size = mmap_size;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    params->version_0204.efi_mem_desc_size = desc_size;
++    params->version_0204.efi_mem_desc_version = desc_version;
++    params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0204.efi_mmap_size = mmap_size;
++  } else /* dunno */ {
++    params->dunno.efi_mem_desc_size = desc_size;
++    params->dunno.efi_mem_desc_version = desc_version;
++    params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->dunno.efi_mmap_size = mmap_size;
++    params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
++  }
++
++#ifdef __x86_64__
++  /* copy our real mode transition code to 0x700 */
++  memcpy ((void *) 0x700, switch_image, switch_size);
++  asm volatile ( "mov $0x700, %%rdi" : :);
++
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "jmp *%%rdi" : :);
++#else
++
++  asm volatile ( "cli" : : );
++
++  grub_memset((void *)gdt_addr.base, gdt_addr.limit, 0);
++  grub_memcpy((void *)gdt_addr.base, init_gdt, sizeof (init_gdt));
++
++  if (0) {
++    /* copy our real mode transition code to 0x7C00 */
++    memcpy ((void *) 0x7C00, switch_image, switch_size);
++    asm volatile ( "mov $0x7C00, %%ebx" : : );
++    asm volatile ( "jmp *%%ebx" : : );
++  } else {
++
++    /* load descriptor table pointers */
++    // asm volatile ( "lidt %0" : : "m" (idt_addr) );
++    asm volatile ( "lgdt %0" : : "m" (gdt_addr) );
++
++    /*
++     * ebx := 0  (%%TBD - do not know why, yet)
++     * ecx := kernel entry point
++     * esi := address of boot sector and setup data
++     */
++
++    asm volatile ( "movl %0, %%esi" : : "m" (real_mode_mem) );
++    asm volatile ( "movl %0, %%ecx" : : "m" (params->hdr.code32_start) );
++    asm volatile ( "xorl %%ebx, %%ebx" : : );
++
++    /*
++     * Jump to kernel entry point.
++     */
++
++    asm volatile ( "jmp *%%ecx" : : );
++  }
++#endif
++
++  /* Never reach here.  */
++  for (;;);
++}
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  struct grub_linux_kernel_header *lh;
++  struct linux_kernel_params *params;
++  static struct linux_kernel_params params_buf;
++  grub_uint8_t setup_sects;
++  grub_size_t real_size, prot_size;
++  grub_ssize_t len;
++  char *dest;
++
++  if (kernel == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("no kernel specified");
++      goto fail1;
++    }
++
++  if (! grub_open (kernel))
++    goto fail1;
++
++  if (grub_read ((char *) &params_buf, sizeof (params_buf))
++      != sizeof (params_buf))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_close();
++      grub_printf ("cannot read the linux header");
++      goto fail;
++    }
++
++  lh = &params_buf.hdr;
++
++  if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_close();
++      grub_printf ("invalid magic number: %x", lh->boot_flag);
++      goto fail;
++    }
++
++  /* EFI support is quite new, so reject old versions.  */
++  if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
++      || grub_le_to_cpu16 (lh->version) < 0x0203)
++    {
++      grub_close();
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("too old version");
++      goto fail;
++    }
++
++  /* I'm not sure how to support zImage on EFI.  */
++  if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("zImage is not supported");
++      goto fail;
++    }
++
++  setup_sects = lh->setup_sects;
++
++  real_size = 0x1000 + grub_strlen(arg);
++  prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
++
++  if (! allocate_pages (real_size, prot_size))
++    goto fail;
++
++  /* XXX Linux assumes that only elilo can boot Linux on EFI!!!  */
++  lh->type_of_loader = 0x50;
++
++  lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
++
++  lh->heap_end_ptr = LINUX_HEAP_END_OFFSET;
++  lh->loadflags |= LINUX_FLAG_CAN_USE_HEAP;
++
++  lh->ramdisk_image = 0;
++  lh->ramdisk_size = 0;
++
++  grub_memset(real_mode_mem, 0, real_size);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++
++  grub_memmove(&params->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
++
++  params->cl_magic = GRUB_LINUX_CL_MAGIC;
++  params->cl_offset = 0x1000;
++
++  /* These are not needed to be precise, because Linux uses these values
++     only to raise an error when the decompression code cannot find good
++     space.  */
++  params->ext_mem = ((32 * 0x100000) >> 10);
++  params->alt_mem = ((32 * 0x100000) >> 10);
++
++  /* No APM on EFI.  */
++  params->apm_version = 0;
++  params->apm_code_segment = 0;
++  params->apm_entry = 0;
++  params->apm_16bit_code_segment = 0;
++  params->apm_data_segment = 0;
++  params->apm_flags = 0;
++  params->apm_code_len = 0;
++  params->apm_data_len = 0;
++
++  /* XXX is there any way to use SpeedStep on EFI?  */
++  params->ist_signature = 0;
++  params->ist_command = 0;
++  params->ist_event = 0;
++  params->ist_perf_level = 0;
++
++  /* Let the kernel probe the information.  */
++  grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
++  grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
++
++  /* No MCA on EFI.  */
++  params->rom_config_len = 0;
++
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    grub_memcpy(&params->version_0204.efi_signature, "EL32", 4);
++    params->version_0206.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    grub_memcpy(&params->version_0204.efi_signature, "EFIL", 4);
++    params->version_0204.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else /* dunno */ {
++    params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
++    params->dunno.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++    params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
++  }
++  /* The other EFI parameters are filled when booting.  */
++
++  /* No EDD */
++  params->eddbuf_entries = 0;
++  params->edd_mbr_sig_buf_entries = 0;
++
++  /* XXX there is no way to know if the kernel really supports EFI.  */
++  grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
++             (unsigned int)prot_size);
++
++  /* Check the mem= option to limit memory used for initrd.  */
++  {
++    char *mem;
++
++    mem = grub_strstr (arg, "mem=");
++    if (mem)
++      {
++      char *value = mem + 4;
++
++      safe_parse_maxulong (&value, &linux_mem_size);
++      switch (errnum)
++        {
++        case ERR_NUMBER_OVERFLOW:
++          /* If an overflow occurs, use the maximum address for
++             initrd instead. This is good, because MAXINT is
++             greater than LINUX_INITRD_MAX_ADDRESS.  */
++          linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++          errnum = ERR_NONE;
++          break;
++
++        case ERR_NONE:
++          {
++            int shift = 0;
++
++            switch (grub_tolower (*value))
++              {
++              case 'g':
++                shift += 10;
++              case 'm':
++                shift += 10;
++              case 'k':
++                shift += 10;
++              default:
++                break;
++              }
++
++            /* Check an overflow.  */
++            if (linux_mem_size > (~0UL >> shift))
++              linux_mem_size = 0;
++            else
++              linux_mem_size <<= shift;
++          }
++          break;
++
++        default:
++          linux_mem_size = 0;
++          errnum = ERR_NONE;
++          break;
++        }
++      }
++    else
++      linux_mem_size = 0;
++  }
++
++  dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
++
++  grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
++  len = prot_size;
++  if (grub_read ((char *) GRUB_LINUX_BZIMAGE_ADDR, len) != len)
++    grub_printf ("Couldn't read file");
++
++  if (errnum == ERR_NONE)
++    {
++      loaded = 1;
++    }
++
++ fail:
++
++  grub_close ();
++
++ fail1:
++
++  if (errnum != ERR_NONE)
++    {
++      loaded = 0;
++    }
++  return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  grub_ssize_t size;
++  grub_addr_t addr_min, addr_max;
++  grub_addr_t addr;
++  grub_efi_uintn_t map_key;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_memory_descriptor_t tdesc;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  struct linux_kernel_params *params;
++
++  if (initrd == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("No module specified");
++      goto fail1;
++    }
++
++  if (! loaded)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("You need to load the kernel first.");
++      goto fail1;
++    }
++
++  if (! grub_open (initrd))
++    goto fail1;
++
++  size = grub_file_size ();
++  initrd_pages = (page_align (size) >> 12);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++  grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
++
++  addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
++  if (linux_mem_size != 0 && linux_mem_size < addr_max)
++    addr_max = linux_mem_size;
++  addr_max &= ~((1 << 12)-1);
++
++  /* Linux 2.3.xx has a bug in the memory range check, so avoid
++     the last page.
++     Linux 2.2.xx has a bug in the memory range check, which is
++     worse than that of Linux 2.3.xx, so avoid the last 64kb.  */
++  //addr_max -= 0x10000;
++
++  /* Usually, the compression ratio is about 50%.  */
++  addr_min = (grub_addr_t) prot_mode_mem + ((prot_mode_pages * 3) << 12);
++  grub_dprintf(__func__, "prot_mode_mem=%p prot_mode_pages=%lu\n", prot_mode_mem, prot_mode_pages);
++
++  /* Find the highest address to put the initrd.  */
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  addr = 0;
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
++        continue;
++      memcpy(&tdesc, desc, sizeof (tdesc));
++      if (tdesc.physical_start < addr_min
++              && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
++        {
++          tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
++          tdesc.physical_start = addr_min;
++        }
++
++      grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute);
++      if (tdesc.physical_start >= addr_min
++        && tdesc.physical_start + page_align (size) <= addr_max
++        && tdesc.num_pages >= initrd_pages)
++      {
++        grub_efi_physical_address_t physical_end;
++
++        physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
++        if (physical_end > addr_max)
++          physical_end = addr_max;
++
++        if (physical_end <= 0x7fffffffUL && physical_end > addr)
++          addr = physical_end - page_align (size);
++      }
++    }
++
++  if (addr == 0)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no free pages available");
++      goto fail;
++    }
++
++  initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
++  if (! initrd_mem)
++    grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
++              (unsigned)addr);
++
++  if (grub_read (initrd_mem, size) != size)
++    {
++      grub_printf ("Couldn't read file");
++      goto fail;
++    }
++
++  grub_printf ("   [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
++             (unsigned int) size);
++
++  params->hdr.ramdisk_image = addr;
++  params->hdr.ramdisk_size = size;
++
++ fail:
++  grub_close ();
++ fail1:
++  return !errnum;
++}
+diff --git a/efi/ia32/loader/switch.S b/efi/ia32/loader/switch.S
+new file mode 100644
+index 0000000..14142e9
+--- /dev/null
++++ b/efi/ia32/loader/switch.S
+@@ -0,0 +1,118 @@
++#
++# Switch from protected mode to real mode and jump to setup.S
++# image located at %cx:0.
++#
++# This module must be placed into physical memory at 0:7C00h.
++# EFI has some real mode thunking code at 2000:0h.
++#
++# Processor and non-maskable interrupts should be disabled
++# before control is passed to this module.
++#
++
++.global _start
++
++.code32
++.text
++_start:
++        #
++        # Load identity mapped GDT & real mode IDT.
++        # Add 7C00h to the addresses since this is linked to start
++        # at 0h and it is being placed at 7C00h.
++        #
++
++      lgdt    %cs:gdt_48 + 0x7C00
++      lidt    %cs:idt_48 + 0x7C00
++
++      #
++      # Turn off PG bit in CR0 and set CR3 to zero.
++      #
++
++      movl    %cr0, %eax
++      andl    $0x7FFFFFFF, %eax
++      movl    %eax, %cr0
++
++      xorl    %eax, %eax
++      movl    %eax, %cr3
++
++      #
++      # Reload CS.
++      # Now we add 7B00h because we need to force the segment
++      # address and selector to be the same.
++      #
++
++      .byte   0xEA
++      .long   pm_reload + 0x7B00
++      .word   0x10
++
++pm_reload:
++
++.code16
++
++      #
++      # Reload DS, ES, FS, GS & SS.
++      #
++
++      movw    $0x18, %ax
++      movw    %ax, %ds
++      movw    %ax, %es
++      movw    %ax, %fs
++      movw    %ax, %gs
++      movw    %ax, %ss
++
++      #
++      # Switch to real mode.  Clear PE bit in CR0.
++      #
++
++      movl    %cr0, %eax
++      andl    $0xFFFFFFFE, %eax
++      movl    %eax, %cr0
++
++      #
++      # Reload CS.
++      #
++
++      .byte   0xEA
++      .word   rm_reload + 0x7C00
++      .word   0
++
++rm_reload:
++
++      #
++      # Reload SS & SP.
++      #
++
++      xorw    %ax, %ax
++      movw    %ax, %ss
++      movw    $0x7BFE, %sp
++
++      #
++      # Start running setup.S
++      #
++
++      .byte   0xEA
++      .word   0
++      .word   0x9020
++
++      #
++      # GDT & IDT stuff for switching into real mode.
++      #
++
++gdt:  .word   0, 0, 0, 0              # unused (00h)
++      .word   0, 0, 0, 0              # dummy (08h)
++      .word   0xFFFF, 0x100           # code (10h)
++      .word   0x9A00, 0
++      .word   0xFFFF, 0x180           # data (18h)
++      .word   0x9200, 0
++
++gdt_48:       .word   0x08 * 0x400
++      .long   gdt + 0x7C00
++
++idt_48:       .word   0x400
++      .long   0
++
++      #
++      # Be careful not to exceed 1F0h or the the bootsect.S
++      # parameters will be lost!
++      #
++
++.end
+diff --git a/efi/ia32/loader/switch.h b/efi/ia32/loader/switch.h
+new file mode 100644
+index 0000000..4e18dde
+--- /dev/null
++++ b/efi/ia32/loader/switch.h
+@@ -0,0 +1,19 @@
++unsigned char switch_image[] = {
++0x2e, 0x0f, 0x01, 0x15, 0x6f, 0x7c, 0x00, 0x00,
++0x2e, 0x0f, 0x01, 0x1d, 0x75, 0x7c, 0x00, 0x00,
++0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff, 0x7f,
++0x0f, 0x22, 0xc0, 0x31, 0xc0, 0x0f, 0x22, 0xd8,
++0xea, 0x27, 0x7b, 0x00, 0x00, 0x10, 0x00, 0xb8,
++0x18, 0x00, 0x8e, 0xd8, 0x8e, 0xc0, 0x8e, 0xe0,
++0x8e, 0xe8, 0x8e, 0xd0, 0x0f, 0x20, 0xc0, 0x66,
++0x83, 0xe0, 0xfe, 0x0f, 0x22, 0xc0, 0xea, 0x43,
++0x7c, 0x00, 0x00, 0x31, 0xc0, 0x8e, 0xd0, 0xbc,
++0xfe, 0x7b, 0xea, 0x00, 0x00, 0x20, 0x90, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff,
++0xff, 0x00, 0x01, 0x00, 0x9a, 0x00, 0x00, 0xff,
++0xff, 0x80, 0x01, 0x00, 0x92, 0x00, 0x00, 0x00,
++0x20, 0x4f, 0x7c, 0x00, 0x00, 0x00, 0x04, 0x00,
++0x00, 0x00, 0x00, 
++};
++int switch_size = sizeof switch_image;
+diff --git a/efi/ia32/reloc.c b/efi/ia32/reloc.c
+new file mode 100644
+index 0000000..72db0f6
+--- /dev/null
++++ b/efi/ia32/reloc.c
+@@ -0,0 +1,79 @@
++/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
++   Copyright (C) 1999 Hewlett-Packard Co.
++      Contributed by David Mosberger <davidm@hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++      Contributed by Fenghua Yu <fenghua.yu@intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <link.h>
++
++grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
++                           grub_efi_handle_t image_handle,
++                           grub_efi_system_table_t *sys_tab)
++{
++      //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
++      long relsz = 0, relent = 0;
++      ElfW(Rel) *rel = 0;
++      unsigned long *addr;
++      int i;
++
++      for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
++              switch (dyn[i].d_tag) {
++                    case DT_REL:
++                      rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
++                      break;
++
++                    case DT_RELSZ:
++                      relsz = dyn[i].d_un.d_val;
++                      break;
++
++                    case DT_RELENT:
++                      relent = dyn[i].d_un.d_val;
++                      break;
++
++                    default:
++                        continue;
++              }
++      }
++
++      if (!rel || relent == 0){
++              return GRUB_EFI_LOAD_ERROR;
++      }
++      while (relsz > 0) {
++              /* apply the relocs */
++              switch (ELF64_R_TYPE (rel->r_info)) {
++                    case R_386_NONE:
++                      break;
++
++                    case R_386_RELATIVE:
++                       addr = (unsigned long *) (ldbase + rel->r_offset);
++                       *addr += ldbase;
++                       break;
++
++                    default:
++                      break;
++              }
++              rel = (ElfW(Rel)*) ((char *) rel + relent);
++              relsz -= relent;
++      }
++      return GRUB_EFI_SUCCESS;
++}
++
+diff --git a/efi/ia32/setjmp.S b/efi/ia32/setjmp.S
+new file mode 100644
+index 0000000..38c33af
+--- /dev/null
++++ b/efi/ia32/setjmp.S
+@@ -0,0 +1,86 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2000 Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++/* This is stolen from libc/x86/setjmp.S in the OSKit */
++/* 
++ * Mach Operating System
++ * Copyright (c) 1991,1990,1989 Carnegie Mellon University
++ * All Rights Reserved.
++ * 
++ * Permission to use, copy, modify and distribute this software and its
++ * documentation is hereby granted, provided that both the copyright
++ * notice and this permission notice appear in all copies of the
++ * software, derivative works or modified versions, and any portions
++ * thereof, and that both notices appear in supporting documentation.
++ * 
++ * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
++ * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
++ * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
++ * 
++ * Carnegie Mellon requests users of this software to return to
++ * 
++ *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
++ *  School of Computer Science
++ *  Carnegie Mellon University
++ *  Pittsburgh PA 15213-3890
++ * 
++ * any improvements or extensions that they make and grant Carnegie Mellon
++ * the rights to redistribute these changes.
++ */
++/*
++ * C library -- _setjmp, _longjmp
++ *
++ *      _longjmp(a,v)
++ * will generate a "return(v)" from
++ * the last call to
++ *      _setjmp(a)
++ * by restoring registers from the stack,
++ * The previous signal state is NOT restored.
++ *
++ */
++#include <grub/symbol.h>
++
++      .file   "setjmp.S"
++
++      .text
++      
++FUNCTION(grub_setjmp)
++      movl    4(%esp), %ecx           /* fetch buffer */
++      movl    %ebx, 0(%ecx)
++      movl    %esi, 4(%ecx)
++      movl    %edi, 8(%ecx)
++      movl    %ebp, 12(%ecx)          /* save frame pointer of caller */
++      popl    %edx
++      movl    %esp, 16(%ecx)          /* save stack pointer of caller */
++      movl    %edx, 20(%ecx)          /* save pc of caller */
++      xorl    %eax, %eax
++        jmp     *%edx
++
++FUNCTION(grub_longjmp)
++      movl    8(%esp), %eax           /* return(v) */
++      movl    4(%esp), %ecx           /* fetch buffer */
++      movl    0(%ecx), %ebx
++      movl    4(%ecx), %esi
++      movl    8(%ecx), %edi
++      movl    12(%ecx), %ebp
++      movl    16(%ecx), %esp
++      orl     %eax, %eax
++      jnz     0f
++      incl    %eax
++0:    jmp     *20(%ecx)               /* done, return.... */
+diff --git a/efi/pxe.c b/efi/pxe.c
+new file mode 100644
+index 0000000..59f0d0d
+--- /dev/null
++++ b/efi/pxe.c
+@@ -0,0 +1,460 @@
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <grub/efi/misc.h>
++#include <grub/misc.h>
++
++#include <shared.h>
++#include <stddef.h>
++
++#include "pxe.h"
++#include "dhcp.h"
++
++/* Search path is:
++ *
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/1902dcf5-7190-d811-bbd6-6ef21c690030
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/01-00-30-6e-f2-1c-69
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103437
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10343
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1034
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A103
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A10
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A1
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0A
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/0
++ * X86PC/UNDI/pxelinux/pxelinux.cfg/default
++ *
++ * The paths we get from uefi are like:
++ * .BootBootFile: X86PC/UNDI/pxelinux/bootx64.efi
++ * .BootCiAddr: 0.0.0.0
++ * .BootYiAddr: 10.16.52.158
++ * .BootSiAddr: 10.16.52.16
++ */
++
++typedef struct {
++      char *options;
++      EFI_DHCP4_PACKET_OPTION *current_option;
++} dhcp_option_parser;
++
++static void dhcp_option_parser_reset(dhcp_option_parser *parser,
++                              EFI_PXE_BASE_CODE_PACKET *packet)
++{
++      char *addr;
++
++      addr = (char *)packet;
++      addr += offsetof(EFI_PXE_BASE_CODE_DHCPV4_PACKET, DhcpOptions);
++      parser->current_option = (void *)addr;
++      parser->options = (void *)addr;
++}
++
++static int dhcp_option_parser_next(dhcp_option_parser *parser,
++                              EFI_DHCP4_PACKET_OPTION **option)
++{
++      char *current_option;
++      if (parser->current_option->OpCode == 255) {
++              *option = NULL;
++              return 0;
++      }
++      current_option = (char *)parser->current_option;
++      current_option += 2 + parser->current_option->Length;
++      parser->current_option = (EFI_DHCP4_PACKET_OPTION *)current_option;
++
++      *option = parser->current_option;
++      return 1;
++}
++
++#define DHCPMAGIK "\x63\x82\x53\x63"
++
++static int get_dhcp_client_id(EFI_PXE_BASE_CODE_PACKET *packet, uuid_t *uuid)
++{
++      dhcp_option_parser parser;
++      EFI_DHCP4_PACKET_OPTION *option;
++
++      dhcp_option_parser_reset(&parser, packet);
++
++      if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
++              return 0;
++
++      while (dhcp_option_parser_next(&parser, &option)) {
++              int i;
++              char data[option->Length];
++
++              if (option->OpCode != 97)
++                      continue;
++
++              if (option->Length != 17)
++                      continue;
++
++              memcpy(data, option->Data, option->Length);
++              if (data[0] != 0)
++                      continue;
++
++              /* 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
++               *                               ^^^^^^^^^^^^ uint8_t[]
++               *                             ^^ uint8_t
++               *                           ^^ uint8_t
++               *                       ^^^^ BE uint16_t
++               *                   ^^^^ BE uint16_t
++               *           ^^^^^^^^ BE uint32_t
++               *         ^^ "type".  0 means UUID.
++               */
++              memcpy(uuid, data+1, 16);
++              uuid->time_low = htonl(uuid->time_low);
++              uuid->time_mid = htons(uuid->time_mid);
++              uuid->time_hi_ver = htons(uuid->time_hi_ver);
++
++              return 1;
++      }
++      return 0;
++}
++
++#if 0
++static void grub_dump_dhcp_options(EFI_PXE_BASE_CODE_PACKET *packet)
++{
++      dhcp_option_parser parser;
++      EFI_DHCP4_PACKET_OPTION *option;
++      char hex[] = "0123456789abcdef";
++      int i;
++      int j = 0;
++
++      dhcp_option_parser_reset(&parser, packet);
++
++      if (memcmp((char *)&packet->Dhcpv4.DhcpMagik, DHCPMAGIK, 4))
++              return;
++
++      /* 54[4]: a0014301
++       * 51[4]: 00004506
++       * 1[4]: ffffff00
++       * 3[4]: a00143ef
++       * 6[8]: a001ff20a001ff30
++       * 15[48]: 96e6374716c6c6e226f637e2275646861647e236f6d60226f637e2275646861647e236f6d602275646861647e236f6d6
++       * 28[4]: a00143ff
++       * 40[10]: 275646861647e236f6d6
++       * 41[8]: a001ff20a001ff30
++       * 58[4]: 0000a203
++       * 59[4]: 0000944d
++       * this is the one we want:
++       * 97[17]: 009cfe245ed0c8bd45a79f54ea5fbd3d97
++       *                               ^^^^^^^^^^^^ in order
++       *                             ^^
++       *                           ^^
++       *                       ^^^^ out of order
++       *                   ^^^^ out of order
++       *           ^^^^^^^^ out of order
++       *         ^^ "type".  0 means UUID.
++       * 255[0]:
++       */
++      while (dhcp_option_parser_next(&parser, &option)) {
++              char data[option->Length + 1];
++
++              memcpy(data, option->Data, option->Length);
++              data[option->Length] = '\0';
++
++              grub_printf("%d[%d]: ", option->OpCode, option->Length);
++              for (i = 0; i < option->Length; i++) {
++                      grub_printf("%c%c", hex[data[i] & 0xf],
++                                      hex[(data[i] & 0xf0) >> 4]);
++              }
++              printf("\n");
++      }
++
++}
++
++void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image)
++{
++      EFI_PXE_BASE_CODE *pxe = NULL;
++      EFI_PXE_BASE_CODE_PACKET *packet;
++
++      grub_printf("got to %s\n", __func__);
++
++      pxe = grub_efi_locate_protocol(&PxeBaseCodeProtocol, NULL);
++      if (pxe == NULL)
++              return;
++
++      printf("DhcpDiscover options:\n");
++      packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpDiscover.Dhcpv4;
++      grub_dump_dhcp_options(packet);
++
++      printf("DhcpAck options:\n");
++      packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->DhcpAck.Dhcpv4;
++      grub_dump_dhcp_options(packet);
++
++      printf("PxeDiscover options:\n");
++      packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeDiscover.Dhcpv4;
++      grub_dump_dhcp_options(packet);
++
++      printf("PxeReply options:\n");
++      packet = (EFI_PXE_BASE_CODE_PACKET *)&pxe->Mode->PxeReply.Dhcpv4;
++      grub_dump_dhcp_options(packet);
++
++#if 0
++      printf("pxe->Mode->DhcpAck.Dhcpv4: \n");
++      printf("\t.BootSrvName: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpSrvName);
++      printf("\t.BootBootFile: %s\n", pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile);
++      printf("\t.BootCiAddr: %d.%d.%d.%d\n",
++              pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[0],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[1],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[2],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpCiAddr[3]);
++      printf("\t.BootYiAddr: %d.%d.%d.%d\n",
++              pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[0],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[1],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[2],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpYiAddr[3]);
++      printf("\t.BootSiAddr: %d.%d.%d.%d\n",
++              pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[0],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[1],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[2],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr[3]);
++      printf("\t.BootGiAddr: %d.%d.%d.%d\n",
++              pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[0],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[1],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[2],
++              pxe->Mode->DhcpAck.Dhcpv4.BootpGiAddr[3]);
++      }
++      printf("\n");
++#endif
++
++
++}
++#endif
++
++static void icmp_print_error(EFI_PXE_BASE_CODE *pxe)
++{
++      EFI_PXE_BASE_CODE_ICMP_ERROR *err = &pxe->Mode->IcmpError;
++      int i;
++      //char hex[] = "0123456789abcdef";
++
++      printf("icmp error\n");
++      printf("type: %d code: %d\n", err->Type, err->Code);
++      printf("data: \n");
++      for(i = 0; i < 464; i+=16) {
++              int x;
++              for (x = i; x < i+4; x++)
++                      printf("%02x ", err->Data[x]);
++              printf(" ");
++              for (x = i+4; x < i+8; x++)
++                      printf("%02x ", err->Data[x]);
++              printf(" ");
++              printf(" ");
++              for (x = i+8; x < i+12; x++)
++                      printf("%02x ", err->Data[x]);
++              printf(" ");
++              for (x = i+12; x < i+16; x++)
++                      printf("%02x ", err->Data[x]);
++              printf("\n");
++      }
++}
++
++static int grub_efi_pxe_check_for_file(
++      EFI_PXE_BASE_CODE *pxe,
++      EFI_IP_ADDRESS *ServerIp,
++      char *BootpBootFile,
++      char *configname,
++      char **returnpath)
++{
++      size_t bplen = strlen(BootpBootFile);
++      char *Filename = grub_malloc(24 + bplen + 40);
++      char *lastslash = Filename + bplen;
++      grub_efi_uintn_t size;
++      int i;
++      EFI_STATUS rc;
++      char Buffer[8192];
++
++      memcpy(Filename, BootpBootFile, bplen);
++
++      for (i = 0; i < bplen; i++) {
++              if (Filename[i] == '/')
++                      lastslash = Filename + i;
++      }
++      if (*lastslash) {
++              *lastslash++ = '/';
++              *lastslash = '\0';
++      }
++
++      sprintf(lastslash, configname);
++
++      printf("tftp://%d.%d.%d.%d/%s\n",
++              ServerIp->v4.Addr[0], ServerIp->v4.Addr[1],
++              ServerIp->v4.Addr[2], ServerIp->v4.Addr[3],
++              Filename);
++
++      rc = tftp_get_file_size(Filename, &size);
++      if (rc == GRUB_EFI_ICMP_ERROR)
++              icmp_print_error(pxe);
++
++      if (rc == GRUB_EFI_SUCCESS) {
++              *returnpath = Filename;
++              return size;
++      }
++      grub_free(Filename);
++      return 0;
++}
++
++static void get_pxe_server(EFI_PXE_BASE_CODE *pxe, EFI_IP_ADDRESS **Address)
++{
++      EFI_IP_ADDRESS *tmp = grub_malloc(sizeof *tmp);
++      if (tmp) {
++              memset(tmp, '\0', sizeof (*tmp));
++              memcpy(&tmp->Addr[0], pxe->Mode->DhcpAck.Dhcpv4.BootpSiAddr, 4);
++              *Address = tmp;
++      }
++}
++
++static char *get_pxe_file_dir(EFI_PXE_BASE_CODE *pxe)
++{
++      char *FileDir = NULL;
++      char *DirEnd = NULL;
++      char *BootpBootFile;
++      size_t bplen;
++
++      BootpBootFile = pxe->Mode->DhcpAck.Dhcpv4.BootpBootFile;
++      bplen = strlen(BootpBootFile);
++      FileDir = grub_malloc(bplen + 1);
++      memcpy(FileDir, BootpBootFile, bplen);
++      FileDir[bplen] = '\0';
++
++      DirEnd = grub_strrchr(FileDir, '/');
++      if (!DirEnd)
++              DirEnd = FileDir;
++
++      *DirEnd = '\0';
++
++      return FileDir;
++}
++
++static void set_pxe_info(grub_efi_loaded_image_t *LoadedImage,
++                      EFI_PXE_BASE_CODE *pxe)
++{
++      tftp_info.LoadedImage = LoadedImage;
++      tftp_info.Pxe = pxe;
++      get_pxe_server(pxe, &tftp_info.ServerIp);
++      tftp_info.BasePath = get_pxe_file_dir(pxe);
++}
++
++char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage)
++{
++      EFI_PXE_BASE_CODE *pxe = NULL;
++      EFI_IP_ADDRESS ServerIp;
++      char *FileName = NULL;
++      EFI_PXE_BASE_CODE_DHCPV4_PACKET *packet;
++      uuid_t uuid;
++      grub_efi_uintn_t FileSize = 0;
++      grub_efi_status_t rc = GRUB_EFI_SUCCESS;
++      char *ConfigPath = NULL;
++      char hex[] = "0123456789ABCDEF";
++      char hexip[9];
++      int hexiplen;
++
++      grub_efi_handle_t *handle, *handles;
++      grub_efi_uintn_t num_handles;
++
++      handles = grub_efi_locate_handle(GRUB_EFI_BY_PROTOCOL,
++                                      &PxeBaseCodeProtocol,
++                                      NULL, &num_handles);
++
++      if (!handles)
++        return NULL;
++
++      for (handle = handles; num_handles--; handle++) {
++              pxe = grub_efi_open_protocol(*handle, &PxeBaseCodeProtocol,
++                      GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++              if (!pxe || !pxe->Mode)
++                      continue;
++              if (pxe->Mode->Started && pxe->Mode->DhcpAckReceived)
++                      break;
++      }
++      grub_free(handles);
++
++      if (!pxe)
++              return NULL;
++
++      set_pxe_info(LoadedImage, pxe);
++
++      FileName = grub_malloc(strlen("1902dcf5-7190-d811-bbd6-6ef21c690030"));
++
++      packet = &pxe->Mode->DhcpDiscover.Dhcpv4;
++
++      if (get_dhcp_client_id((EFI_PXE_BASE_CODE_PACKET *)packet, &uuid)) {
++
++              uuid.time_mid = 0x0011;
++              sprintf(FileName,
++                      "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X",
++                      uuid.time_low, uuid.time_mid, uuid.time_hi_ver,
++                      uuid.clock_seq_hi, uuid.clock_seq_low,
++                      uuid.node[0], uuid.node[1], uuid.node[2],
++                      uuid.node[3], uuid.node[4], uuid.node[5]);
++
++              rc = tftp_get_file_size(FileName, &FileSize);
++              if (rc == GRUB_EFI_SUCCESS) {
++                      char *ReturnFile = grub_malloc(strlen("(nd)/") +
++                                              strlen(FileName) + 1);
++                      sprintf(ReturnFile, "(nd)/%s", FileName);
++                      grub_free(FileName);
++                      //sprintf(tftp_info.LastPath, FileName);
++                      return ReturnFile;
++              }
++      }
++
++      packet = &pxe->Mode->DhcpAck.Dhcpv4;
++
++      if (!memcmp(packet->BootpHwAddr + 6, "\x00\x00\x00\x00\x00"
++                                           "\x00\x00\x00\x00\x00", 10) &&
++                      memcmp(packet->BootpHwAddr, "\x00\x00\x00\x00\x00\x00",
++                              6)) {
++              char mac[21];
++              sprintf(mac, "01-%c%c-%c%c-%c%c-%c%c-%c%c-%c%c",
++                      hex[(packet->BootpHwAddr[0] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[0] & 0xf],
++                      hex[(packet->BootpHwAddr[1] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[1] & 0xf],
++                      hex[(packet->BootpHwAddr[2] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[2] & 0xf],
++                      hex[(packet->BootpHwAddr[3] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[3] & 0xf],
++                      hex[(packet->BootpHwAddr[4] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[4] & 0xf],
++                      hex[(packet->BootpHwAddr[5] & 0xf0) >> 4],
++                      hex[packet->BootpHwAddr[5] & 0xf]);
++
++              rc = tftp_get_file_size(mac, &FileSize);
++              if (rc == GRUB_EFI_SUCCESS) {
++                      char *ReturnFile = grub_malloc(strlen("(nd)/") +
++                                              strlen(mac) + 1);
++                      sprintf(ReturnFile, "(nd)/%s", mac);
++                      return ReturnFile;
++              }
++
++      }
++
++      sprintf(hexip, "%c%c%c%c%c%c%c%c",
++              hex[(packet->BootpYiAddr[0] & 0xf0) >> 4],
++              hex[packet->BootpYiAddr[0] & 0xf],
++              hex[(packet->BootpYiAddr[1] & 0xf0) >> 4],
++              hex[packet->BootpYiAddr[1] & 0xf],
++              hex[(packet->BootpYiAddr[2] & 0xf0) >> 4],
++              hex[packet->BootpYiAddr[2] & 0xf],
++              hex[(packet->BootpYiAddr[3] & 0xf0) >> 4],
++              hex[packet->BootpYiAddr[3] & 0xf]);
++
++      for (hexiplen = strlen(hexip); hexiplen > 0; hexiplen--)
++      {
++              hexip[hexiplen] = '\0';
++              rc = tftp_get_file_size(hexip, &FileSize);
++              if (rc == GRUB_EFI_SUCCESS) {
++                      char *ReturnFile = grub_malloc(strlen("(nd)/") +
++                                              strlen(hexip) + 1);
++                      sprintf(ReturnFile, "(nd)/%s", hexip);
++                      return ReturnFile;
++              }
++      }
++
++      rc = tftp_get_file_size("efidefault", &FileSize);
++      if (rc == GRUB_EFI_SUCCESS) {
++              char *ReturnFile = grub_malloc(strlen("(nd)/efidefault")+1);
++              sprintf(ReturnFile, "(nd)/efidefault");
++              return ReturnFile;
++      }
++
++      return NULL;
++}
+diff --git a/efi/pxe.h b/efi/pxe.h
+new file mode 100644
+index 0000000..0a68007
+--- /dev/null
++++ b/efi/pxe.h
+@@ -0,0 +1,237 @@
++#ifndef PXE_H
++#define PXE_H 1
++
++#include "byteswap.h"
++
++extern char *grub_efi_pxe_get_config_path(grub_efi_loaded_image_t *LoadedImage);
++extern void grub_print_dhcp_info(grub_efi_loaded_image_t *loaded_image);
++extern char *grub_efi_pxe_path_to_path_name(void);
++
++
++#define EFI_PXE_BASE_CODE_PROTOCOL \
++    { 0x03c4e603, 0xac28, 0x11d3, {0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
++static grub_efi_guid_t PxeBaseCodeProtocol = EFI_PXE_BASE_CODE_PROTOCOL;
++
++struct _EFI_PXE_BASE_CODE;
++
++typedef enum {
++      EFI_PXE_BASE_CODE_TFTP_FIRST,
++      EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE,
++      EFI_PXE_BASE_CODE_TFTP_READ_FILE,
++      EFI_PXE_BASE_CODE_TFTP_WRITE_FILE,
++      EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY,
++      EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE,
++      EFI_PXE_BASE_CODE_MTFTP_READ_FILE,
++      EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY,
++      EFI_PXE_BASE_CODE_MTFTP_LAST
++} EFI_PXE_BASE_CODE_TFTP_OPCODE;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[4];
++} EFI_IPv4_ADDRESS;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[16];
++} EFI_IPv6_ADDRESS;
++
++typedef struct {
++    grub_efi_uint8_t                   Addr[32];
++} EFI_MAC_ADDRESS;
++
++typedef union {
++    grub_efi_uint32_t      Addr[4];
++    EFI_IPv4_ADDRESS    v4;
++    EFI_IPv6_ADDRESS    v6;
++} EFI_IP_ADDRESS;
++
++typedef grub_efi_uint16_t EFI_PXE_BASE_CODE_UDP_PORT;
++
++typedef struct {
++      EFI_IP_ADDRESS MCastIp;
++      EFI_PXE_BASE_CODE_UDP_PORT CPort;
++      EFI_PXE_BASE_CODE_UDP_PORT SPort;
++      grub_efi_uint16_t ListenTimeout;
++      grub_efi_uint16_t TransmitTimeout;
++} EFI_PXE_BASE_CODE_MTFTP_INFO;
++
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_MTFTP)(
++      struct _EFI_PXE_BASE_CODE *This,
++      EFI_PXE_BASE_CODE_TFTP_OPCODE Operation,
++      void *BufferPtr,
++      grub_efi_boolean_t Overwrite,
++      grub_efi_uint64_t *BufferSize,
++      grub_efi_uintn_t *BlockSize,
++      EFI_IP_ADDRESS *ServerIp,
++      grub_efi_uint8_t *Filename,
++      EFI_PXE_BASE_CODE_MTFTP_INFO *Info,
++      grub_efi_boolean_t DontUseBuffer);
++
++typedef struct {
++    grub_efi_uint8_t                           BootpOpcode;
++    grub_efi_uint8_t                           BootpHwType;
++    grub_efi_uint8_t                           BootpHwAddrLen;
++    grub_efi_uint8_t                           BootpGateHops;
++    grub_efi_uint32_t                          BootpIdent;
++    grub_efi_uint16_t                          BootpSeconds;
++    grub_efi_uint16_t                          BootpFlags;
++    grub_efi_uint8_t                           BootpCiAddr[4];
++    grub_efi_uint8_t                           BootpYiAddr[4];
++    grub_efi_uint8_t                           BootpSiAddr[4];
++    grub_efi_uint8_t                           BootpGiAddr[4];
++    grub_efi_uint8_t                           BootpHwAddr[16];
++    grub_efi_uint8_t                           BootpSrvName[64];
++    grub_efi_uint8_t                           BootpBootFile[128];
++    grub_efi_uint32_t                          DhcpMagik;
++    grub_efi_uint8_t                           DhcpOptions[56];
++} EFI_PXE_BASE_CODE_DHCPV4_PACKET;
++
++// TBD in EFI v1.1
++//typedef struct {
++//    grub_efi_uint8_t                           reserved;
++//} EFI_PXE_BASE_CODE_DHCPV6_PACKET;
++
++typedef union {
++    grub_efi_uint8_t                               Raw[1472];
++    EFI_PXE_BASE_CODE_DHCPV4_PACKET     Dhcpv4;
++//    EFI_PXE_BASE_CODE_DHCPV6_PACKET     Dhcpv6;
++} EFI_PXE_BASE_CODE_PACKET;
++
++typedef struct {
++    grub_efi_uint8_t                   Type;
++    grub_efi_uint8_t                   Code;
++    grub_efi_uint16_t                  Checksum;
++    union {
++        grub_efi_uint32_t              reserved;
++        grub_efi_uint32_t              Mtu;
++        grub_efi_uint32_t              Pointer;
++        struct {
++            grub_efi_uint16_t          Identifier;
++            grub_efi_uint16_t          Sequence;
++        } Echo;
++    } u;
++    grub_efi_uint8_t                   Data[494];
++} EFI_PXE_BASE_CODE_ICMP_ERROR;
++
++typedef struct {
++    grub_efi_uint8_t                   ErrorCode;
++    grub_efi_char8_t                   ErrorString[127];
++} EFI_PXE_BASE_CODE_TFTP_ERROR;
++
++
++#define EFI_PXE_BASE_CODE_MAX_IPCNT             8
++typedef struct {
++    grub_efi_uint8_t                       Filters;
++    grub_efi_uint8_t                       IpCnt;
++    grub_efi_uint16_t                      reserved;
++    EFI_IP_ADDRESS              IpList[EFI_PXE_BASE_CODE_MAX_IPCNT];
++} EFI_PXE_BASE_CODE_IP_FILTER;
++
++#define EFI_PXE_BASE_CODE_IP_FILTER_STATION_IP             0x0001
++#define EFI_PXE_BASE_CODE_IP_FILTER_BROADCAST              0x0002
++#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS            0x0004
++#define EFI_PXE_BASE_CODE_IP_FILTER_PROMISCUOUS_MULTICAST  0x0008
++
++typedef struct {
++    EFI_IP_ADDRESS       IpAddr;
++    EFI_MAC_ADDRESS      MacAddr;
++} EFI_PXE_BASE_CODE_ARP_ENTRY;
++
++typedef struct {
++    EFI_IP_ADDRESS       IpAddr;
++    EFI_IP_ADDRESS       SubnetMask;
++    EFI_IP_ADDRESS       GwAddr;
++} EFI_PXE_BASE_CODE_ROUTE_ENTRY;
++
++#define EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES       8
++#define EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES     8
++
++typedef struct {
++    grub_efi_boolean_t                         Started;
++    grub_efi_boolean_t                         Ipv6Available;
++    grub_efi_boolean_t                         Ipv6Supported;
++    grub_efi_boolean_t                         UsingIpv6;
++    grub_efi_boolean_t                         BisSupported;
++    grub_efi_boolean_t                         BisDetected;
++    grub_efi_boolean_t                         AutoArp;
++    grub_efi_boolean_t                         SendGUID;
++    grub_efi_boolean_t                         DhcpDiscoverValid;
++    grub_efi_boolean_t                         DhcpAckReceived;
++    grub_efi_boolean_t                         ProxyOfferReceived;
++    grub_efi_boolean_t                         PxeDiscoverValid;
++    grub_efi_boolean_t                         PxeReplyReceived;
++    grub_efi_boolean_t                         PxeBisReplyReceived;
++    grub_efi_boolean_t                         IcmpErrorReceived;
++    grub_efi_boolean_t                         TftpErrorReceived;
++    grub_efi_boolean_t                         MakeCallbacks;
++    grub_efi_uint8_t                           TTL;
++    grub_efi_uint8_t                           ToS;
++    EFI_IP_ADDRESS                  StationIp;
++    EFI_IP_ADDRESS                  SubnetMask;
++    EFI_PXE_BASE_CODE_PACKET        DhcpDiscover;
++    EFI_PXE_BASE_CODE_PACKET        DhcpAck;
++    EFI_PXE_BASE_CODE_PACKET        ProxyOffer;
++    EFI_PXE_BASE_CODE_PACKET        PxeDiscover;
++    EFI_PXE_BASE_CODE_PACKET        PxeReply;
++    EFI_PXE_BASE_CODE_PACKET        PxeBisReply;
++    EFI_PXE_BASE_CODE_IP_FILTER     IpFilter;
++    grub_efi_uint32_t                          ArpCacheEntries;
++    EFI_PXE_BASE_CODE_ARP_ENTRY     ArpCache[EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES];
++    grub_efi_uint32_t                          RouteTableEntries;
++    EFI_PXE_BASE_CODE_ROUTE_ENTRY   RouteTable[EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES];
++    EFI_PXE_BASE_CODE_ICMP_ERROR    IcmpError;
++    EFI_PXE_BASE_CODE_TFTP_ERROR    TftpError;
++} EFI_PXE_BASE_CODE_MODE;
++
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_START)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_STOP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DHCP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_DISCOVER)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_WRITE)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_UDP_READ)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_IP_FILTER)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_ARP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PARAMETERS)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_STATION_IP)();
++typedef EFI_STATUS (*EFI_PXE_BASE_CODE_SET_PACKETS)();
++
++typedef struct _EFI_PXE_BASE_CODE{
++      grub_efi_uint64_t Revision;
++      EFI_PXE_BASE_CODE_START             Start;
++      EFI_PXE_BASE_CODE_STOP              Stop;
++      EFI_PXE_BASE_CODE_DHCP              Dhcp;
++      EFI_PXE_BASE_CODE_DISCOVER          Discover;
++      EFI_PXE_BASE_CODE_MTFTP             Mtftp;
++      EFI_PXE_BASE_CODE_UDP_WRITE         UdpWrite;
++      EFI_PXE_BASE_CODE_UDP_READ          UdpRead;
++      EFI_PXE_BASE_CODE_SET_IP_FILTER     SetIpFilter;
++      EFI_PXE_BASE_CODE_ARP               Arp;
++      EFI_PXE_BASE_CODE_SET_PARAMETERS    SetParameters;
++      EFI_PXE_BASE_CODE_SET_STATION_IP    SetStationIp;
++      EFI_PXE_BASE_CODE_SET_PACKETS       SetPackets;
++      EFI_PXE_BASE_CODE_MODE              *Mode;
++} EFI_PXE_BASE_CODE;
++
++typedef struct {
++      grub_efi_uint32_t time_low;
++      grub_efi_uint16_t time_mid;
++      grub_efi_uint16_t time_hi_ver;
++      grub_efi_uint8_t clock_seq_hi;
++      grub_efi_uint8_t clock_seq_low;
++      grub_efi_uint8_t node[6];
++} uuid_t;
++
++struct tftp_info {
++      grub_efi_loaded_image_t *LoadedImage;
++      EFI_PXE_BASE_CODE *Pxe;
++      EFI_IP_ADDRESS *ServerIp;
++      char *BasePath;
++      char *LastPath;
++      char *Buffer;
++};
++
++extern struct tftp_info tftp_info;
++extern grub_efi_status_t tftp_get_file_size(
++      char *Filename,
++      grub_efi_uintn_t *Size);
++
++#endif /* PXE_H */
+diff --git a/efi/ugadebug.h b/efi/ugadebug.h
+new file mode 100644
+index 0000000..f461c8b
+--- /dev/null
++++ b/efi/ugadebug.h
+@@ -0,0 +1,201 @@
++#ifndef UGA_DEBUG_H
++#define UGA_DEBUG_H
++
++extern void dc(char *file, int line);
++extern void gm(char *file, int line, char *fmt, ...);
++
++#ifdef UGA
++
++extern const unsigned char font8x16[];
++
++extern grub_efi_guid_t draw_guid;
++
++static void *tmp_term;
++
++#define SCREEN_WIDTH 80
++
++#define LINE_SIZE_X ( 8 * 100 )
++#define LINE_START_X(x) (1280 + (x))
++#define LINE_END_X(x) (LINE_START_X(0) + LINE_SIZE_X - 1)
++
++#define POS_X(x) (LINE_START_X(x) + (8 * (x)))
++
++#define LINE_SIZE_Y 16
++#define LINE_START_Y(y) ((y) * LINE_SIZE_Y)
++#define LINE_END_Y(y) ( (((y)+1) * LINE_SIZE_Y ) - 1)
++
++#define POS_Y(y) LINE_START_Y(y)
++
++#define FIRST_LINE 0
++#define LAST_LINE 75
++
++#define format_ascii(buf, val, is_hex, is_cap) ({                   \
++        int _n = sizeof ((buf)) - 2;                                \
++        typeof(val) _nval = (val);                                  \
++        int _negative = 0;                                          \
++        int _mult = is_hex ? 16 : 10;                               \
++        char _a = is_cap ? 'A' : 'a';                               \
++        grub_memset((buf), '\0', sizeof ((buf)));                        \
++        if (!(_nval > 0LL))                                         \
++            _negative = 1;                                          \
++        if (_nval == 0LL)                                           \
++            _negative = 0;                                          \
++        if (_negative)                                              \
++            _nval = (_nval ^ -1);                                   \
++        do {                                                        \
++            int _dig = _nval % _mult;                               \
++            (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
++        } while (_nval /= _mult);                                   \
++        if (_negative)                                              \
++            (buf)[_n--] = '-';                                      \
++        _mult = 0;                                                  \
++        _n++;                                                       \
++        while (_n < sizeof ((buf)))                                 \
++            (buf)[_mult++] = (buf)[_n++];                           \
++        if (_negative && _mult > 1)                                 \
++            ((buf)[_mult-2])++;                                     \
++    })
++
++static grub_efi_uga_draw_t *debug_draw_intf;
++static void debug_putchar(int i, int j, int ch)
++{
++    grub_efi_uga_pixel_t pixbuf[8 * 16];
++    grub_efi_uga_pixel_t black = { .red = 0x00, .green = 0x00, .blue = 0x00 },
++                         white = { .red = 0xff, .green = 0xff, .blue = 0xff };
++    const unsigned char *pat;
++    int x, y;
++
++    if (!debug_draw_intf)
++      debug_draw_intf = grub_efi_locate_protocol(&draw_guid, NULL);
++    if (!debug_draw_intf)
++        return;
++
++    pat = font8x16 + (ch << 4);
++
++    for (y = 0; y < 16; y++) {
++        for (x = 0; x < 8; x++) {
++            int bit = pat[y] & (1 << (7 - x));
++
++            grub_memmove(&pixbuf[x + y * 8], bit ? &white : &black,
++                    sizeof (pixbuf[0]));
++        }
++    }
++
++    Call_Service_10(debug_draw_intf->blt, debug_draw_intf, pixbuf,
++                  EfiUgaBltBufferToVideo,
++                    0, 0,
++                  POS_X(i), POS_Y(j),
++                    8, 16,
++                    0);
++
++}
++
++static void dputs(const char *s)
++{
++    static int row = -1;
++    int col = 89;
++    return;
++
++    if (s && *s) {
++        do {
++            if (col > 190) {
++                row++;
++                col = 89;
++            }
++            if (row > 50) {
++                row = 0;
++                col = 89;
++            }
++            col++;
++
++            if (*s == '\n') {
++                col = 1;
++                row++;
++            } else {
++                debug_putchar(col, row, *s);
++            }
++        } while (*(++s));
++    }
++    row++;
++}
++
++static int dbg_row = 0;
++static int dbg_col = 0;
++
++static void dbg_scroll(int new_dbg_col)
++{
++    grub_efi_uga_pixel_t black[1] ={{.red = 0x00, .green = 0x00, .blue = 0x00}};
++
++    if (dbg_row == LAST_LINE) {
++        dbg_col = new_dbg_col;
++        Call_Service_10(debug_draw_intf->blt, debug_draw_intf, NULL,
++                  EfiUgaVideoToVideo,
++                    640, LINE_START_Y(1),
++                    640, LINE_START_Y(0),
++                    LINE_SIZE_X, LINE_END_Y(LAST_LINE)+1,
++                    0);
++        Call_Service_10(debug_draw_intf->blt, debug_draw_intf, black,
++                  EfiUgaVideoFill,
++                    0, 0,
++                    640, LINE_START_Y(LAST_LINE),
++                    LINE_END_X(SCREEN_WIDTH)+1, LINE_END_Y(LAST_LINE)+1,
++                    0);
++    } else {
++        dbg_row++;
++        dbg_col = new_dbg_col;
++    }
++//    grub_efi_stall(1000000);
++}
++
++static void dc_backend(char *file, int line)
++{
++    char linebuf[9] = "        ";
++    int pos;
++
++    linebuf[8] = '\0';
++
++    format_ascii(linebuf, line, 0, 0);
++    for (dbg_col=0, pos=0; linebuf[pos]; dbg_col++, pos++)
++        debug_putchar(dbg_col, dbg_row, linebuf[pos]);
++
++    for (dbg_col=5, pos=0; file[pos]; dbg_col++, pos++) {
++        if (dbg_col > 15)
++            dbg_scroll(0);
++
++        debug_putchar(dbg_col, dbg_row, file[pos]);
++    }
++}
++
++void dc(char *file, int line)
++{
++      dc_backend(file, line);
++      dbg_scroll(0);
++}
++
++void
++gm(char *file, int line, char *fmt, ...)
++{
++    va_list ap;
++    char buf[1024]="";
++    int pos;
++
++    va_start(ap, fmt);
++    grub_vsprintf(buf, fmt, ap);
++    va_end(ap);
++
++    dc_backend(file, line);
++    for (dbg_col=16, pos=0; buf[pos]; dbg_col++, pos++) {
++        if (buf[pos] == '\n')
++            continue;
++        if (dbg_col > SCREEN_WIDTH-1)
++            dbg_scroll(16);
++        debug_putchar(dbg_col, dbg_row, buf[pos]);
++    }
++    dbg_scroll(0);
++}
++
++#define dm() ({ tmp_term = current_term; current_term = term_table; grub_dprintf(__func__, "got here\n"); current_term = tmp_term; })
++
++#endif
++
++#endif /* UGA_DEBUG_H */
+diff --git a/efi/x86_64/callwrap.S b/efi/x86_64/callwrap.S
+new file mode 100644
+index 0000000..f574ad0
+--- /dev/null
++++ b/efi/x86_64/callwrap.S
+@@ -0,0 +1,274 @@
++/*
++ * Function calling ABI conversion from Linux to EFI for x86_64
++ *
++ * Copyright (C) 2007 Intel Corp
++ *    Bibo Mao <bibo.mao@intel.com>
++ *    Huang Ying <ying.huang@intel.com>
++ */
++
++/*
++ * EFI calling conventions are documented at:
++ *   http://msdn.microsoft.com/en-us/library/ms235286%28v=vs.80%29.aspx
++ * ELF calling conventions are documented at:
++ *   http://www.x86-64.org/documentation/abi.pdf
++ *
++ * Basically here are the conversion rules:
++ * a) our function pointer is in %rdi
++ * b) ELF gives us 8-byte aligned %rsp, so we need to pad out to 16-byte
++ *    alignment.
++ * c) inside each call thunker, we can only adjust the stack by
++ *    multiples of 16 bytes. "offset" below refers to however much
++ *    we allocate inside a thunker.
++ * d) rsi through r8 (elf) aka rcx through r9 (ms) require stack space
++ *    on the MS side even though it's not getting used at all.
++ * e) arguments are as follows: (elf -> ms)
++ *   1) rdi -> rcx (32 saved)
++ *   2) rsi -> rdx (32 saved)
++ *   3) rdx -> r8 ( 32 saved)
++ *   4) rcx -> r9 (32 saved)
++ *   5) r8 -> 32(%rsp) (48 saved)
++ *   6) r9 -> 40(%rsp) (48 saved)
++ *   7) pad+offset+0(%rsp) -> 48(%rsp) (64 saved)
++ *   8) pad+offset+8(%rsp) -> 56(%rsp) (64 saved)
++ *   9) pad+offset+16(%rsp) -> 64(%rsp) (80 saved)
++ *  10) pad+offset+24(%rsp) -> 72(%rsp) (80 saved)
++ *  11) pad+offset+32(%rsp) -> 80(%rsp) (96 saved)
++ *  12) pad+offset+40(%rsp) -> 88(%rsp) (96 saved)
++ * f) because the first argument we recieve in a thunker is actually the
++ *    function to be called, arguments are offset as such:
++ *   0) rdi -> caller
++ *   1) rsi -> rcx (32 saved)
++ *   2) rdx -> rdx (32 saved)
++ *   3) rcx -> r8 (32 saved)
++ *   4) r8 -> r9 (32 saved)
++ *   5) r9 -> 32(%rsp) (48 saved)
++ *   6) pad+offset+0(%rsp) -> 40(%rsp) (48 saved)
++ *   7) pad+offset+8(%rsp) -> 48(%rsp) (64 saved)
++ *   8) pad+offset+16(%rsp) -> 56(%rsp) (64 saved)
++ *   9) pad+offset+24(%rsp) -> 64(%rsp) (80 saved)
++ *  10) pad+offset+32(%rsp) -> 72(%rsp) (80 saved)
++ *  11) pad+offset+40(%rsp) -> 80(%rsp) (96 saved)
++ *  12) pad+offset+48(%rsp) -> 88(%rsp) (96 saved)
++ * e) arguments need to be moved in opposite order to avoid clobbering
++ * f) pad_stack leaves the amount of padding it added in %r11 for functions
++ *    to use
++ * g) efi -> elf calls don't need to pad the stack, because the 16-byte
++ *    alignment is also always 8-byte aligned.
++ */
++
++#define ENTRY(name)   \
++      .globl name;    \
++      name:
++
++#define out(val)              \
++      push %rax ;             \
++      mov val, %rax ;         \
++      out %al, $128 ;         \
++      pop %rax
++
++#define pad_stack                                                     \
++      subq $8, %rsp ; /* must be a multiple of 16 - sizeof(%rip) */   \
++      /* stash some handy integers */                                 \
++      mov $0x8, %rax ;                                                \
++      mov $0x10, %r10 ;                                               \
++      /* see if we need padding */                                    \
++      and %rsp, %rax ;                                                \
++      /* store the pad amount in %r11 */                              \
++      cmovnz %rax, %r11 ;                                             \
++      cmovz %r10, %r11 ;                                              \
++      /* insert the padding */                                        \
++      subq %r11, %rsp ;                                               \
++      /* add the $8 we saved above in %r11 */                         \
++      addq $8, %r11 ;                                                 \
++      /* store the pad amount */                                      \
++      mov %r11, (%rsp) ;                                              \
++      /* compensate for %rip being stored on the stack by call */     \
++      addq $8, %r11
++
++#define unpad_stack                                                   \
++      /* fetch the pad amount we saved (%r11 has been clobbered) */   \
++      mov (%rsp), %r11 ;                                              \
++      /* remove the padding */                                        \
++      addq %r11, %rsp
++
++ENTRY(x64_call0)
++      pad_stack
++      subq $32, %rsp
++      call *%rdi
++      addq $32, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call1)
++      pad_stack
++      subq $32, %rsp
++      mov  %rsi, %rcx
++      call *%rdi
++      addq $32, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call2)
++      pad_stack
++      subq $32, %rsp
++      /* mov %rdx, %rdx */
++      mov  %rsi, %rcx
++      call *%rdi
++      addq $32, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call3)
++      pad_stack
++      subq $32, %rsp
++      mov  %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov  %rsi, %rcx
++      call *%rdi
++      addq $32, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call4)
++      pad_stack
++      subq $32, %rsp
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $32, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call5)
++      pad_stack
++      subq $48, %rsp
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $48, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call6)
++      pad_stack
++      subq $48, %rsp
++      addq $48, %r11
++      addq %rsp, %r11
++      mov (%r11), %rax
++      mov %rax, 40(%rsp)
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $48, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call7)
++      pad_stack
++      subq $64, %rsp
++      addq $64, %r11
++      addq $8, %r11
++      addq %rsp, %r11
++      mov (%r11), %rax
++      mov %rax, 48(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 40(%rsp)
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $64, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call8)
++      pad_stack
++      subq $64, %rsp
++      addq $64, %r11
++      addq $16, %r11
++      addq %rsp, %r11
++      mov (%r11), %rax
++      mov %rax, 56(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 48(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 40(%rsp)
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $64, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call9)
++      pad_stack
++      subq $80, %rsp
++      addq $80, %r11
++      addq $24, %r11
++      addq %rsp, %r11
++      mov (%r11), %rax
++      mov %rax, 64(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 56(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 48(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 40(%rsp)
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $80, %rsp
++      unpad_stack
++      ret
++
++ENTRY(x64_call10)
++      pad_stack
++      subq $80, %rsp
++      addq $80, %r11
++      addq $32, %r11
++      addq %rsp, %r11
++      mov (%r11), %rax
++      mov %rax, 72(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 64(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 56(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 48(%rsp)
++      subq $8, %r11
++      mov (%r11), %rax
++      mov %rax, 40(%rsp)
++      mov %r9, 32(%rsp)
++      mov %r8, %r9
++      mov %rcx, %r8
++      /* mov %rdx, %rdx */
++      mov %rsi, %rcx
++      call *%rdi
++      addq $80, %rsp
++      unpad_stack
++      ret
+diff --git a/efi/x86_64/crt0-efi.S b/efi/x86_64/crt0-efi.S
+new file mode 100644
+index 0000000..8667694
+--- /dev/null
++++ b/efi/x86_64/crt0-efi.S
+@@ -0,0 +1,63 @@
++/* crt0-efi-x86_64.S - x86_64 EFI startup code.
++   Copyright (C) 1999 Hewlett-Packard Co.
++      Contributed by David Mosberger <davidm@hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++      Contributed by Fenghua Yu <fenghua.yu@intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++      .text
++      .align 4
++
++      .globl _start
++_start:
++      subq $8, %rsp
++      pushq %rcx
++      pushq %rdx
++
++0:
++      lea ImageBase(%rip), %rdi
++      lea _DYNAMIC(%rip), %rsi
++
++      popq %rcx
++      popq %rdx
++      pushq %rcx
++      pushq %rdx
++      call _relocate
++
++      popq %rdi
++      popq %rsi
++
++      call efi_main
++      addq $8, %rsp
++
++.exit:
++      ret
++
++      // hand-craft a dummy .reloc section so EFI knows it's a relocatable executable:
++
++      .data
++dummy:        .long   0
++
++#define IMAGE_REL_ABSOLUTE    0
++      .section .reloc, "a"
++label1:
++      .long   dummy-label1                            // Page RVA
++      .long   10                                      // Block Size (2*4+2)
++      .word   (IMAGE_REL_ABSOLUTE<<12) +  0           // reloc for dummy
++
+diff --git a/efi/x86_64/elf_efi.lds b/efi/x86_64/elf_efi.lds
+new file mode 100644
+index 0000000..18a9ab9
+--- /dev/null
++++ b/efi/x86_64/elf_efi.lds
+@@ -0,0 +1,58 @@
++OUTPUT_FORMAT("elf64-x86-64", "elf64-x86-64", "elf64-x86-64")
++OUTPUT_ARCH(i386:x86-64)
++ENTRY(_start)
++SECTIONS
++{
++  . = 0;
++  ImageBase = .;
++  .hash : { *(.hash) }        /* this MUST come first! */
++  . = ALIGN(4096);
++  .eh_frame :
++  {
++    *(.eh_frame)
++  }
++  . = ALIGN(4096);
++  .text :
++  {
++   *(.text)
++  }
++  .reloc :
++  {
++   *(.reloc)
++  }
++  . = ALIGN(4096);
++  .data :
++  {
++   *(.rodata*)
++   *(.got.plt)
++   *(.got)
++   *(.data*)
++   *(.sdata)
++   /* the EFI loader doesn't seem to like a .bss section, so we stick
++      it all into .data: */
++   *(.sbss)
++   *(.scommon)
++   *(.dynbss)
++   *(.bss)
++   *(COMMON)
++   *(.rel.local)
++  }
++  . = ALIGN(4096);
++  .dynamic  : { *(.dynamic) }
++  . = ALIGN(4096);
++  .rela :
++  {
++    *(.rela.data*)
++    *(.rela.got)
++    *(.rela.stab)
++  }
++  . = ALIGN(4096);
++  .dynsym   : { *(.dynsym) }
++  . = ALIGN(4096);
++  .dynstr   : { *(.dynstr) }
++  . = ALIGN(4096);
++  .ignored.reloc :
++  {
++    *(.rela.reloc)
++  }
++}
+diff --git a/efi/x86_64/loader/Makefile b/efi/x86_64/loader/Makefile
+new file mode 100644
+index 0000000..0d8b888
+--- /dev/null
++++ b/efi/x86_64/loader/Makefile
+@@ -0,0 +1,20 @@
++
++all : switch.h
++
++bin_to_h: bin_to_h.c
++      $(CC) $(CFLAGS) -o $@ $<
++
++switch.h : switch.bin bin_to_h
++      ./bin_to_h < $< > $@
++
++switch.bin : switch
++      objcopy -O binary $< $@
++
++switch : switch.o
++      ld.bfd -Ttext-segment=0x688 --init _start -o $@ $<
++
++switch.o : switch.S
++      as -march=generic64 -defsym _start=0 -o $@ $<
++
++clean :
++      @rm -vf switch.o switch switch.bin switch.h bin_to_h
+diff --git a/efi/x86_64/loader/bin_to_h.c b/efi/x86_64/loader/bin_to_h.c
+new file mode 100644
+index 0000000..4cff104
+--- /dev/null
++++ b/efi/x86_64/loader/bin_to_h.c
+@@ -0,0 +1,29 @@
++#include <stdio.h>
++#include <stdlib.h>
++
++int
++main (void)
++{
++  unsigned n = 0;
++  int c;
++
++  printf ("unsigned char switch_image[] = {\n");
++
++  while ((c = getchar ()) != EOF)
++    {
++      printf("0x%02x,%s",
++           c & 0xFF,
++           (++n & 0x07) ? " " : "\n");
++    }
++
++  if (n & 0x07)
++    {
++      printf("\n");
++    }
++
++  printf("};\n"
++       "int switch_size = sizeof switch_image;\n");
++
++  return 0;
++}
++
+diff --git a/efi/x86_64/loader/linux.c b/efi/x86_64/loader/linux.c
+new file mode 100644
+index 0000000..49a668e
+--- /dev/null
++++ b/efi/x86_64/loader/linux.c
+@@ -0,0 +1,760 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2006  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/misc.h>
++#include <grub/types.h>
++#include <grub/cpu/linux.h>
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++
++#include "switch.h"
++
++#include <shared.h>
++
++#include "graphics.h"
++
++#define grub_file_size()    filemax
++
++#define NEXT_MEMORY_DESCRIPTOR(desc, size)      \
++  ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size)))
++
++#define PTR_HI(x) ((grub_uint32_t) ((unsigned long long)((unsigned long)(x)) >> 32))
++
++#ifndef SECTOR_SIZE
++#define SECTOR_SIZE 0x200
++#endif /* defined(SECTOR_SIZE) */
++#ifndef SECTOR_BITS
++#define SECTOR_BITS 9
++#endif /* defined(SECTOR_BITS) */
++
++static unsigned long linux_mem_size;
++static int loaded;
++static void *real_mode_mem;
++static void *prot_mode_mem;
++static grub_size_t prot_kernel_size;
++static void *initrd_mem;
++static grub_efi_uintn_t real_mode_pages;
++static grub_efi_uintn_t prot_mode_pages;
++static grub_efi_uintn_t initrd_pages;
++static grub_efi_guid_t graphics_output_guid = GRUB_EFI_GRAPHICS_OUTPUT_GUID;
++
++static inline grub_size_t
++page_align (grub_size_t size)
++{
++  return (size + (1 << 12) - 1) & (~((1 << 12) - 1));
++}
++
++static void
++free_pages (void)
++{
++  if (real_mode_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) real_mode_mem, real_mode_pages);
++      real_mode_mem = 0;
++    }
++
++  if (initrd_mem)
++    {
++      grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages);
++      initrd_mem = 0;
++    }
++
++  if (mmap_buf)
++    {
++      grub_efi_free_pages ((grub_addr_t) mmap_buf, mmap_pages);
++      mmap_buf = 0;
++    }
++}
++
++/* Allocate pages for the real mode code and the protected mode code
++   for linux as well as a memory map buffer.  */
++static int
++allocate_pages (grub_size_t real_size, grub_size_t prot_size)
++{
++  grub_efi_uintn_t desc_size;
++  grub_efi_memory_descriptor_t *mmap_end;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_physical_address_t addr;
++
++  /* Make sure that each size is aligned to a page boundary.  */
++  real_size = page_align (real_size + SECTOR_SIZE);
++  prot_size = page_align (prot_size);
++
++  grub_dprintf ("linux", "real_size = %x, prot_size = %x, mmap_size = %x\n",
++              (unsigned int) real_size, (unsigned int) prot_size,
++              (unsigned int) mmap_size);
++
++  /* Calculate the number of pages; Combine the real mode code with
++     the memory map buffer for simplicity.  */
++  real_mode_pages = (real_size >> 12);
++  prot_mode_pages = (prot_size >> 12);
++
++  /* Initialize the memory pointers with NULL for convenience.  */
++  real_mode_mem = 0;
++  prot_mode_mem = 0;
++
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++  /* First, find free pages for the real mode code
++     and the memory map buffer.  */
++  for (desc = mmap_buf;
++       desc < mmap_end;
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type == GRUB_EFI_CONVENTIONAL_MEMORY
++        && desc->num_pages >= real_mode_pages)
++      {
++        grub_efi_physical_address_t physical_end;
++
++          physical_end = desc->physical_start + (desc->num_pages << 12);
++
++          grub_dprintf ("linux", "physical_start = %x, physical_end = %x\n",
++                        (unsigned) desc->physical_start,
++                        (unsigned) physical_end);
++          addr = physical_end - real_size;
++          if (addr < 0x100000)
++            continue;
++
++          /* the kernel wants this address to be under 1 gig.*/
++          if (desc->physical_start > 0x40000000 - real_size)
++            continue;
++
++          if (addr > 0x40000000 - real_size)
++            addr = 0x40000000 - real_size;
++
++          grub_dprintf ("linux", "trying to allocate %u pages at %x\n",
++                        (unsigned) real_mode_pages, (unsigned) addr);
++          real_mode_mem = grub_efi_allocate_pages (addr, real_mode_pages);
++          if (! real_mode_mem)
++            grub_fatal ("cannot allocate pages");
++
++          desc->num_pages -= real_mode_pages;
++          break;
++      }
++    }
++
++  if (! real_mode_mem)
++    {
++      grub_printf ("cannot allocate real mode pages");
++      errnum = ERR_WONT_FIT;
++      goto fail;
++    }
++
++  grub_printf("Trying to allocate %u pages for VMLINUZ\n",
++              (unsigned) prot_mode_pages);
++  prot_mode_mem = grub_efi_allocate_anypages(prot_mode_pages);
++
++  if (!prot_mode_mem)
++      grub_fatal("Cannot allocate pages for VMLINUZ");
++  grub_printf("Got pages at %p\n", prot_mode_mem);
++ 
++  return 1;
++
++ fail:
++  free_pages ();
++  return 0;
++}
++
++/* do some funky stuff, then boot linux */
++void
++linux_boot (void)
++{
++  grub_printf ("zImage is not supported under EFI.\n");
++  for (;;);
++}
++
++static void
++grub_efi_disable_network (void)
++{
++  grub_efi_guid_t pci_io_guid = GRUB_EFI_PCI_IO_GUID;
++  grub_efi_pci_io_t *pci_proto;
++  grub_efi_uintn_t num_handles;
++  grub_efi_handle_t *handle, *handles;
++
++  handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL,
++                                        &pci_io_guid,
++                                        NULL, &num_handles);
++  if (!handles || !num_handles)
++    return;
++
++  for (handle = handles; num_handles--; handle++)
++    {
++      grub_efi_uint8_t class, pos, id, pm = 0;
++      grub_efi_uint16_t pm_state, vendor;
++      int ttl = 48;
++
++      pci_proto = grub_efi_open_protocol (*handle, &pci_io_guid,
++                                        GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++      if (!pci_proto)
++      continue;
++
++      Call_Service_5 (pci_proto->pci.read, pci_proto,
++                    grub_efi_pci_io_width_uint8, 0x0b, 1, &class);
++
++      /* Not a network device */
++      if (class != 0x02)
++      continue;
++
++      Call_Service_5 (pci_proto->pci.read, pci_proto,
++                    grub_efi_pci_io_width_uint16, 0x00, 1, &vendor);
++
++      /* Not a Broadcom */
++      if (vendor != 0x14e4)
++      continue;
++
++      Call_Service_5 (pci_proto->pci.read, pci_proto,
++                    grub_efi_pci_io_width_uint16, 0x2c, 1, &vendor);
++
++      /* Not an Apple */
++      if (vendor != 0x106b)
++      continue;
++
++      pos = 0x34;
++
++      /* Find the power management registers */
++      while (ttl--)
++      {
++        Call_Service_5 (pci_proto->pci.read, pci_proto,
++                        grub_efi_pci_io_width_uint8, pos, 1, &pos);
++
++        if (pos < 0x40)
++          break;
++
++        pos &= ~3;
++
++        Call_Service_5 (pci_proto->pci.read, pci_proto,
++                        grub_efi_pci_io_width_uint8, pos, 1, &id);
++
++        if (id == 0xff)
++          break;
++
++        if (id == 0x01)
++          {
++            pm = pos;
++            break;
++          }
++
++        pos += 1;
++      }
++
++      if (pm)
++      {
++        Call_Service_5 (pci_proto->pci.read, pci_proto,
++                        grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state);
++
++        pm_state &= ~0x03;
++        pm_state |= 0x03;
++
++        /* Set to D3 */
++
++        Call_Service_5 (pci_proto->pci.write, pci_proto,
++                        grub_efi_pci_io_width_uint16, pm + 4, 1, &pm_state);
++
++        Call_Service_5 (pci_proto->pci.read, pci_proto,
++                        grub_efi_pci_io_width_uint16, pm + 4, 1,
++                        &pm_state);
++      }
++    }
++}
++
++void
++big_linux_boot (void)
++{
++  struct linux_kernel_params *params;
++  struct grub_linux_kernel_header *lh;
++  grub_efi_uintn_t map_key;
++  grub_efi_uintn_t desc_size;
++  grub_efi_uint32_t desc_version;
++  int e820_nr_map;
++
++  params = real_mode_mem;
++
++  graphics_set_kernel_params (params);
++
++  if (grub_efi_get_memory_map (&map_key, &desc_size, &desc_version) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  /* Pass e820 memmap. */
++  e820_map_from_efi_map ((struct e820_entry *) params->e820_map, &e820_nr_map,
++                       mmap_buf, desc_size, mmap_size);
++  params->e820_nr_map = e820_nr_map;
++
++  grub_efi_disable_network();
++
++  if (! grub_efi_exit_boot_services (map_key))
++    grub_fatal ("cannot exit boot services");
++
++  /* Note that no boot services are available from here.  */
++
++  /* copy vmlinuz image to hdr.code32_start */
++  memcpy ((char *)(unsigned long)(params->hdr.code32_start), (char *)prot_mode_mem,
++        prot_kernel_size);
++  /* copy switch image */
++  memcpy ((void *) 0x700, switch_image, switch_size);
++
++  lh = &params->hdr;
++  /* Pass EFI parameters.  */
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    params->version_0206.efi_mem_desc_size = desc_size;
++    params->version_0206.efi_mem_desc_version = desc_version;
++    params->version_0206.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0206.efi_mmap_size = mmap_size;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    params->version_0204.efi_mem_desc_size = desc_size;
++    params->version_0204.efi_mem_desc_version = desc_version;
++    params->version_0204.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->version_0204.efi_mmap_size = mmap_size;
++  } else /* dunno */ {
++    params->dunno.efi_mem_desc_size = desc_size;
++    params->dunno.efi_mem_desc_version = desc_version;
++    params->dunno.efi_mmap = (grub_uint32_t) (unsigned long) mmap_buf;
++    params->dunno.efi_mmap_size = mmap_size;
++    params->dunno.efi_mmap_hi = PTR_HI(mmap_buf);
++  }
++
++#ifdef __x86_64__
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%rsi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "mov $0x700, %%rdi" : :);
++  asm volatile ( "jmp *%%rdi" : :);
++#else
++  /* Pass parameters.  */
++  asm volatile ("mov %0, %%esi" : : "m" (real_mode_mem));
++  asm volatile ("movl %0, %%ebx" : : "m" (params->hdr.code32_start));
++
++  /* Enter Linux, switch from 64-bit long mode
++   * to 32-bit protect mode, this code end address
++   * must not exceed 0x1000, because linux kernel bootstrap
++   * code will flush this area
++   */
++  asm volatile ( "mov $0x700, %%edi" : :);
++  asm volatile ( "jmp *%%edi" : :);
++#endif
++
++  /* Never reach here.  */
++  for (;;);
++}
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  struct grub_linux_kernel_header *lh;
++  struct linux_kernel_params *params;
++  static struct linux_kernel_params params_buf;
++  grub_uint8_t setup_sects;
++  grub_size_t real_size, prot_size;
++  grub_uint64_t kernel_base, kernel_length, kernel_pages;
++  grub_ssize_t len;
++  char *dest;
++  int align, min_alignment;
++  int relocatable = 0;
++
++  if (kernel == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("no kernel specified");
++      goto fail1;
++    }
++
++  if (! grub_open (kernel))
++    goto fail1;
++
++  if (grub_read ((char *) &params_buf, sizeof (params_buf))
++      != sizeof (params_buf))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("cannot read the linux header");
++      goto fail;
++    }
++
++  lh = &params_buf.hdr;
++
++  if (lh->boot_flag != grub_cpu_to_le16 (0xaa55))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("invalid magic number: %x", lh->boot_flag);
++      goto fail;
++    }
++
++  /* EFI support is quite new, so reject old versions.  */
++  if (lh->header != grub_cpu_to_le32 (GRUB_LINUX_MAGIC_SIGNATURE)
++      || grub_le_to_cpu16 (lh->version) < 0x0203)
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("too old version");
++      goto fail;
++    }
++
++  /* I'm not sure how to support zImage on EFI.  */
++  if (! (lh->loadflags & GRUB_LINUX_FLAG_BIG_KERNEL))
++    {
++      errnum = ERR_EXEC_FORMAT;
++      grub_printf ("zImage is not supported");
++      goto fail;
++    }
++
++  setup_sects = lh->setup_sects;
++
++  real_size = 0x1000 + grub_strlen(arg);
++  prot_size = grub_file_size () - (setup_sects << SECTOR_BITS) - SECTOR_SIZE;
++  prot_kernel_size = prot_size;
++
++  if (! allocate_pages (real_size, prot_size))
++    goto fail;
++
++  /* XXX Linux assumes that only elilo can boot Linux on EFI!!!  */
++  lh->type_of_loader = 0x50;
++
++  lh->cmd_line_ptr = (grub_uint32_t) (unsigned long) real_mode_mem + 0x1000;
++  lh->ramdisk_image = 0;
++  lh->ramdisk_size = 0;
++
++  grub_memset(real_mode_mem, 0, real_size);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++
++  grub_memmove(&params->hdr, lh, 0x202 + lh->jump_off - 0x1f1);
++
++  params->cl_magic = GRUB_LINUX_CL_MAGIC;
++  params->cl_offset = 0x1000;
++
++  /* These are not needed to be precise, because Linux uses these values
++     only to raise an error when the decompression code cannot find good
++     space.  */
++  params->ext_mem = ((32 * 0x100000) >> 10);
++  params->alt_mem = ((32 * 0x100000) >> 10);
++
++  /* No APM on EFI.  */
++  params->apm_version = 0;
++  params->apm_code_segment = 0;
++  params->apm_entry = 0;
++  params->apm_16bit_code_segment = 0;
++  params->apm_data_segment = 0;
++  params->apm_flags = 0;
++  params->apm_code_len = 0;
++  params->apm_data_len = 0;
++
++  /* XXX is there any way to use SpeedStep on EFI?  */
++  params->ist_signature = 0;
++  params->ist_command = 0;
++  params->ist_event = 0;
++  params->ist_perf_level = 0;
++
++  /* Let the kernel probe the information.  */
++  grub_memset (params->hd0_drive_info, 0, sizeof (params->hd0_drive_info));
++  grub_memset (params->hd1_drive_info, 0, sizeof (params->hd1_drive_info));
++
++  /* No MCA on EFI.  */
++  params->rom_config_len = 0;
++
++  if (grub_le_to_cpu16 (lh->version) >= 0x0206) {
++    grub_memcpy(&params->version_0204.efi_signature, "EL64", 4);
++    params->version_0206.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else if (grub_le_to_cpu16 (lh->version) >= 0x0204) {
++    grub_memcpy(&params->version_0204.efi_signature, "EFIL", 4);
++    params->version_0204.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++  } else /* dunno */ {
++    params->dunno.efi_signature = GRUB_LINUX_EFI_SIGNATURE_X64;
++    params->dunno.efi_system_table = \
++                        (grub_uint32_t) (unsigned long) grub_efi_system_table;
++    params->dunno.efi_system_table_hi = PTR_HI(grub_efi_system_table);
++  }
++  /* The other EFI parameters are filled when booting.  */
++
++  /* No EDD */
++  params->eddbuf_entries = 0;
++  params->edd_mbr_sig_buf_entries = 0;
++
++  /* XXX there is no way to know if the kernel really supports EFI.  */
++  grub_printf ("[Linux-EFI, setup=0x%x, size=0x%x]\n", (unsigned int)real_size,
++             (unsigned int)prot_size);
++
++  /* Check the mem= option to limit memory used for initrd.  */
++  {
++    char *mem;
++
++    mem = grub_strstr (arg, "mem=");
++    if (mem)
++      {
++      char *value = mem + 4;
++
++      safe_parse_maxulong (&value, &linux_mem_size);
++      switch (errnum)
++        {
++        case ERR_NUMBER_OVERFLOW:
++          /* If an overflow occurs, use the maximum address for
++             initrd instead. This is good, because MAXINT is
++             greater than LINUX_INITRD_MAX_ADDRESS.  */
++          linux_mem_size = LINUX_INITRD_MAX_ADDRESS;
++          errnum = ERR_NONE;
++          break;
++
++        case ERR_NONE:
++          {
++            int shift = 0;
++
++            switch (grub_tolower (*value))
++              {
++              case 'g':
++                shift += 10;
++              case 'm':
++                shift += 10;
++              case 'k':
++                shift += 10;
++              default:
++                break;
++              }
++
++            /* Check an overflow.  */
++            if (linux_mem_size > (~0UL >> shift))
++              linux_mem_size = 0;
++            else
++              linux_mem_size <<= shift;
++          }
++          break;
++
++        default:
++          linux_mem_size = 0;
++          errnum = ERR_NONE;
++          break;
++        }
++      }
++    else
++      linux_mem_size = 0;
++  }
++
++  dest = grub_stpcpy ((char *) real_mode_mem + 0x1000, skip_to(0, arg));
++
++  grub_seek ((setup_sects << SECTOR_BITS) + SECTOR_SIZE);
++  len = prot_size;
++  if (grub_read ((char *)prot_mode_mem, len) != len)
++    grub_printf ("Couldn't read file");
++
++  if (lh->version >= 0x205) {
++    for (align = lh->min_alignment; align < 32; align++) {
++      if (lh->kernel_alignment & (1 << align)) {
++      break;
++      }
++    }
++    relocatable = lh->relocatable_kernel;
++  }
++
++  if (lh->version >= 0x20a) {
++    kernel_base = lh->pref_address;
++    kernel_length = lh->init_size;
++    min_alignment = lh->min_alignment;
++  } else {
++    kernel_base = lh->code32_start;
++    kernel_length = prot_kernel_size;
++    min_alignment = 0;
++  }
++
++  kernel_pages = (kernel_length + 4095) >> 12;
++
++  /* Attempt to allocate address space for the kernel */
++  kernel_base = (grub_uint64_t)grub_efi_allocate_pages(kernel_base, kernel_pages);
++
++  if (!kernel_base && relocatable) {
++    grub_efi_memory_descriptor_t *desc;
++    grub_efi_memory_descriptor_t tdesc;
++    grub_efi_uintn_t desc_size;
++
++    if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++      grub_fatal ("cannot get memory map");
++
++    while (align >= min_alignment) {
++      for (desc = mmap_buf;
++         desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++         desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++      {
++        grub_uint64_t addr;
++        grub_uint64_t alignval = (1 << align) - 1;
++
++        if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
++          continue;
++
++        memcpy(&tdesc, desc, sizeof(tdesc));
++
++        addr = (tdesc.physical_start + alignval) & ~(alignval);
++
++        if ((addr + kernel_length) >
++            (tdesc.physical_start + (tdesc.num_pages << 12)))
++          continue;
++
++        kernel_base = (grub_uint64_t)grub_efi_allocate_pages(addr, kernel_pages);
++
++        if (kernel_base) {
++          lh->kernel_alignment = 1 << align;
++          break;
++        }
++      }
++      align--;
++      if (kernel_base)
++      break;
++    }
++  }
++
++  if (!kernel_base) {
++    grub_printf("Failed to allocate kernel memory");
++    errnum = ERR_UNRECOGNIZED;
++    goto fail;
++  }
++
++  lh->code32_start = kernel_base;
++
++  if (errnum == ERR_NONE)
++    {
++      loaded = 1;
++    }
++
++ fail:
++
++  grub_close ();
++
++ fail1:
++
++  if (errnum != ERR_NONE)
++    {
++      loaded = 0;
++    }
++  return errnum ? KERNEL_TYPE_NONE : KERNEL_TYPE_BIG_LINUX;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  grub_ssize_t size;
++  grub_addr_t addr_min, addr_max;
++  grub_addr_t addr;
++  grub_efi_memory_descriptor_t *desc;
++  grub_efi_memory_descriptor_t tdesc;
++  grub_efi_uintn_t desc_size;
++  struct linux_kernel_params *params;
++
++  if (initrd == NULL)
++    {
++      errnum = ERR_BAD_FILENAME;
++      grub_printf ("No module specified");
++      goto fail1;
++    }
++
++  if (! loaded)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("You need to load the kernel first.");
++      goto fail1;
++    }
++
++  if (! grub_open (initrd))
++    goto fail1;
++
++  size = grub_file_size ();
++  initrd_pages = (page_align (size) >> 12);
++
++  params = (struct linux_kernel_params *) real_mode_mem;
++  grub_dprintf(__func__, "initrd_pages: %lu\n", initrd_pages);
++
++  addr_max = grub_cpu_to_le32 (params->hdr.initrd_addr_max);
++  if (linux_mem_size != 0 && linux_mem_size < addr_max)
++    addr_max = linux_mem_size;
++  addr_max &= ~((1 << 12)-1);
++
++  /* Usually, the compression ratio is about 50%.  */
++  addr_min = 0;
++
++  /* Find the highest address to put the initrd.  */
++  grub_dprintf(__func__, "addr_min: 0x%lx addr_max: 0x%lx mmap_size: %lu\n", addr_min, addr_max, mmap_size);
++  if (grub_efi_get_memory_map (0, &desc_size, 0) <= 0)
++    grub_fatal ("cannot get memory map");
++
++  addr = 0;
++  for (desc = mmap_buf;
++       desc < NEXT_MEMORY_DESCRIPTOR (mmap_buf, mmap_size);
++       desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size))
++    {
++      if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY)
++        continue;
++      memcpy(&tdesc, desc, sizeof (tdesc));
++      if (tdesc.physical_start < addr_min
++              && tdesc.num_pages > ((addr_min - tdesc.physical_start) >> 12))
++        {
++          tdesc.num_pages -= ((addr_min - tdesc.physical_start) >> 12);
++          tdesc.physical_start = addr_min;
++        }
++
++      grub_dprintf(__func__, "desc = {type=%d,ps=0x%llx,vs=0x%llx,sz=%llu,attr=%llu}\n", desc->type, (unsigned long long)desc->physical_start, (unsigned long long)desc->virtual_start, (unsigned long long)desc->num_pages, (unsigned long long)desc->attribute);
++      if (tdesc.physical_start >= addr_min
++        && tdesc.physical_start + page_align (size) <= addr_max
++        && tdesc.num_pages >= initrd_pages)
++      {
++        grub_efi_physical_address_t physical_end;
++
++        physical_end = tdesc.physical_start + (tdesc.num_pages << 12);
++        if (physical_end > addr_max)
++          physical_end = addr_max;
++
++        if (physical_end <= 0x7fffffffUL && physical_end > addr)
++          addr = physical_end - page_align (size);
++      }
++    }
++
++  if (addr == 0)
++    {
++      errnum = ERR_UNRECOGNIZED;
++      grub_printf ("no free pages available");
++      goto fail;
++    }
++
++  initrd_mem = grub_efi_allocate_pages (addr, initrd_pages);
++  if (! initrd_mem)
++    grub_fatal ("cannot allocate pages: %x@%x", (unsigned)initrd_pages,
++              (unsigned)addr);
++
++  if (grub_read (initrd_mem, size) != size)
++    {
++      grub_printf ("Couldn't read file");
++      goto fail;
++    }
++
++  grub_printf ("   [Initrd, addr=0x%x, size=0x%x]\n", (unsigned int) addr,
++             (unsigned int) size);
++
++  params->hdr.ramdisk_image = addr;
++  params->hdr.ramdisk_size = size;
++  params->hdr.root_dev = 0x0100; /* XXX */
++
++ fail:
++  grub_close ();
++ fail1:
++  return !errnum;
++}
+diff --git a/efi/x86_64/loader/switch.S b/efi/x86_64/loader/switch.S
+new file mode 100644
+index 0000000..d0d8dca
+--- /dev/null
++++ b/efi/x86_64/loader/switch.S
+@@ -0,0 +1,92 @@
++#
++# Switch from protected mode to real mode and jump to setup.S
++# image located at %cx:0.
++#
++# This module must be placed into physical memory at 0:7C00h.
++# EFI has some real mode thunking code at 2000:0h.
++#
++# Processor and non-maskable interrupts should be disabled
++# before control is passed to this module.
++#
++
++#define __KERNEL_CS 0x38
++#define MSR_EFER    0xc0000080
++#define _EFER_LME 8  /* Long mode enable */
++
++.global _start
++
++.text
++_start:
++        #
++        # Load identity mapped GDT & real mode IDT.
++        # Add 7C00h to the addresses since this is linked to start
++        # at 0h and it is being placed at 7C00h.
++        #
++
++        # fixme here EFI bios cs segment is 0x38
++        # switch to IA32e compatible mode
++      # esi point to kernel parameter
++      # ebx point to kernel entry point
++.code64
++      cli
++      cld
++        lgdt    gdt_64
++        lidt    idt_64
++      ljmp    *exit_ia32e
++
++      /* switch to IA32e compatible mode */
++.code32
++mode32:
++        #
++        # Turn off PG bit in CR0 and set CR3 to zero.
++        #
++        movl    %cr0, %eax
++        andl    $0x7FFFFFFF, %eax
++        movl    %eax, %cr0
++
++        /* Setup EFER (Extended Feature Enable Register) */
++      nop
++      nop
++        movl    $0xc0000080, %ecx
++        rdmsr
++        /* Enable Long Mode */
++        andl    $0xFFFFFEFF, %eax
++        /* Make changes effective */
++        wrmsr
++
++        /* Disable PAE */
++        xorl    %eax, %eax
++        movl    %eax, %cr4
++
++        jmp    2f
++2:
++              jmp     *%ebx
++//jmp to kernel entry
++
++.align 8
++exit_ia32e:
++        .long mode32
++        .long 0x10
++
++gdt_64: .word   0x08 * 9 -1
++        .quad   gdt
++
++      .word   0, 0, 0
++idt_64: .word   0
++        .quad   0
++        #
++        # GDT & IDT stuff for switching into 32 bit protected mode.
++        #
++      .word   0,0,0
++gdt:
++        .quad   0x0000000000000000      /* NULL descriptor 0*/
++        .quad   0x0                     /* unused 0x08 */
++        .quad   0x00cf9a000000ffff      /* __KERNEL_CS 0x10 */
++        .quad   0x00cf92000000ffff      /* __KERNEL_DS 0x18 */
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf92000000ffff
++        .quad   0x00cf9a000000ffff      /* __KERNEL32_CS 0x38*/
++        .quad   0                       /* unused */
++.end
++
+diff --git a/efi/x86_64/loader/switch.h b/efi/x86_64/loader/switch.h
+new file mode 100644
+index 0000000..b5dc39a
+--- /dev/null
++++ b/efi/x86_64/loader/switch.h
+@@ -0,0 +1,25 @@
++unsigned char switch_image[] = {
++0xfa, 0xfc, 0x0f, 0x01, 0x14, 0x25, 0x48, 0x07,
++0x00, 0x00, 0x0f, 0x01, 0x1c, 0x25, 0x58, 0x07,
++0x00, 0x00, 0xff, 0x2c, 0x25, 0x40, 0x07, 0x00,
++0x00, 0x0f, 0x20, 0xc0, 0x25, 0xff, 0xff, 0xff,
++0x7f, 0x0f, 0x22, 0xc0, 0x90, 0x90, 0xb9, 0x80,
++0x00, 0x00, 0xc0, 0x0f, 0x32, 0x25, 0xff, 0xfe,
++0xff, 0xff, 0x0f, 0x30, 0x31, 0xc0, 0x0f, 0x22,
++0xe0, 0xeb, 0x00, 0xff, 0xe3, 0x8d, 0x76, 0x00,
++0x19, 0x07, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
++0x47, 0x00, 0x68, 0x07, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x92, 0xcf, 0x00,
++0xff, 0xff, 0x00, 0x00, 0x00, 0x9a, 0xcf, 0x00,
++0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++};
++int switch_size = sizeof switch_image;
+diff --git a/efi/x86_64/reloc.c b/efi/x86_64/reloc.c
+new file mode 100644
+index 0000000..b53eb63
+--- /dev/null
++++ b/efi/x86_64/reloc.c
+@@ -0,0 +1,79 @@
++/* reloc_x86_64.c - position independent x86_64 ELF shared object relocator
++   Copyright (C) 1999 Hewlett-Packard Co.
++      Contributed by David Mosberger <davidm@hpl.hp.com>.
++   Copyright (C) 2005 Intel Co.
++      Contributed by Fenghua Yu <fenghua.yu@intel.com>.
++
++   This file is part of GNU-EFI, the GNU EFI development environment.
++
++   GNU EFI is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 2, or (at your option)
++   any later version.
++
++   GNU EFI is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with GNU EFI; see the file COPYING.  If not, write to the Free
++   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
++   02111-1307, USA. */
++
++#include <grub/efi/efi.h>
++#include <grub/efi/api.h>
++#include <link.h>
++
++grub_efi_status_t _relocate (long ldbase, ElfW(Dyn) *dyn,
++                           grub_efi_handle_t image_handle,
++                           grub_efi_system_table_t *sys_tab)
++{
++      //extern EFI_STATUS efi_main (EFI_HANDLE, EFI_SYSTEM_TABLE *);
++      long relsz = 0, relent = 0;
++      ElfW(Rel) *rel = 0;
++      unsigned long *addr;
++      int i;
++
++      for (i = 0; dyn[i].d_tag != DT_NULL; ++i) {
++              switch (dyn[i].d_tag) {
++                    case DT_RELA:
++                      rel = (ElfW(Rel)*) ((long) dyn[i].d_un.d_ptr + ldbase);
++                      break;
++
++                    case DT_RELASZ:
++                      relsz = dyn[i].d_un.d_val;
++                      break;
++
++                    case DT_RELAENT:
++                      relent = dyn[i].d_un.d_val;
++                      break;
++
++                    default:
++                      break;
++              }
++      }
++
++      if (!rel || relent == 0){
++              return GRUB_EFI_LOAD_ERROR;
++      }
++      while (relsz > 0) {
++              /* apply the relocs */
++              switch (ELF64_R_TYPE (rel->r_info)) {
++                    case R_X86_64_NONE:
++                      break;
++
++                    case R_X86_64_RELATIVE:
++                       addr = (unsigned long *) (ldbase + rel->r_offset);
++                       *addr += ldbase;
++                            break;
++
++                    default:
++                      break;
++              }
++              rel = (ElfW(Rel)*) ((char *) rel + relent);
++              relsz -= relent;
++      }
++      return GRUB_EFI_SUCCESS;
++}
++
+diff --git a/efi/x86_64/setjmp.S b/efi/x86_64/setjmp.S
+new file mode 100644
+index 0000000..e042a14
+--- /dev/null
++++ b/efi/x86_64/setjmp.S
+@@ -0,0 +1,56 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2003  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include <grub/symbol.h>
++
++      .file   "setjmp.S"
++
++      .text
++
++/*
++ * int grub_setjmp (grub_jmp_buf env)
++ */
++FUNCTION(grub_setjmp)
++      pop     %rsi            /* Return address, and adjust the stack */
++      xor     %rax, %rax
++      movq    %rbx, 0(%rdi)   /* RBX */
++      movq    %rsp, 8(%rdi)   /* RSP */
++      push    %rsi
++      movq    %rbp, 16(%rdi)  /* RBP */
++      movq    %r12, 24(%rdi)  /* R12 */
++      movq    %r13, 32(%rdi)  /* R13 */
++      movq    %r14, 40(%rdi)  /* R14 */
++      movq    %r15, 48(%rdi)  /* R15 */
++      movq    %rsi, 56(%rdi)  /* RSI */
++      ret
++
++/*
++ * int grub_longjmp (grub_jmp_buf env, int val)
++ */
++FUNCTION(grub_longjmp)
++      movl    %esi, %eax
++      movq    (%rdi), %rbx
++      movq    8(%rdi), %rsp
++      movq    16(%rdi), %rbp
++      movq    24(%rdi), %r12
++      movq    32(%rdi), %r13
++      movq    40(%rdi), %r14
++      movq    48(%rdi), %r15
++      jmp     *56(%rdi)
++
+diff --git a/efi/xpm.c b/efi/xpm.c
+new file mode 100644
+index 0000000..085a10c
+--- /dev/null
++++ b/efi/xpm.c
+@@ -0,0 +1,231 @@
++
++#if defined(SUPPORT_GRAPHICS) || defined(PLATFORM_EFI) || 1
++
++#include <grub/efi/api.h>
++#include <grub/efi/efi.h>
++#include <grub/misc.h>
++
++#include "xpm.h"
++
++unsigned char
++xpm_get_pixel_idx(struct xpm *xpm, int x, int y)
++{
++    if (x < 0 || x >= xpm->width)
++        return -1;
++    if (y < 0 || y >= xpm->width)
++        return -1;
++    return xpm->image[x + (y * xpm->width)];
++}
++
++void
++xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx)
++{
++    xpm->image[y * xpm->width + x] = idx;
++}
++
++void
++xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel)
++{
++    xpm_pixel_t *xpl;
++    if (!pixel)
++        return;
++    if (idx >= xpm->colors) {
++        pixel->red = pixel->green = pixel->blue = 0;
++        return;
++    }
++    xpl = &xpm->palette[idx];
++    memcpy(pixel, xpl, sizeof (*pixel));
++//    pixel->red = xpl->red;
++//    pixel->green = xpl->green;
++//    pixel->blue = xpl->blue;
++}
++
++int
++xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel)
++{
++    unsigned char idx;
++    idx = xpm_get_pixel_idx(xpm, x, y);
++    xpm_get_idx(xpm, idx, pixel);
++    return 1;
++}
++
++static int
++hex_to_int(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++struct xpm *
++xpm_open(char *path)
++{
++    char c, prev, target[]="/* XPM */\n", base;
++    char buf[32];
++    int pos = 0;
++    unsigned int i, idx, len, x, y;
++    unsigned char pal[XPM_MAX_COLORS];
++    struct xpm *xpm;
++
++    xpm = grub_malloc(sizeof (*xpm));
++    if (!xpm)
++        return NULL;
++
++    if (!grub_open(path)) {
++        grub_free(xpm);
++        grub_printf("grub_open(\"%s\") failed\n", path);
++        return NULL;
++    }
++
++    grub_memset(xpm, '\0', sizeof (*xpm));
++
++    prev = '\n';
++    c = 0;
++    do {
++        if (grub_read(&c, 1) != 1) {
++            grub_printf("grub_read() failed\n");
++            grub_free(xpm);
++            grub_close();
++            return NULL;
++        }
++        if ((pos == 0 && prev == '\n') || pos > 0) {
++            if (c == target[pos])
++                pos++;
++            else
++                pos = 0;
++        }
++        prev = c;
++    } while (target[pos]);
++
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    xpm->width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->width = xpm->width * 10 + c - '0';
++        else
++            break;
++    }
++    if (xpm->width > XPM_MAX_WIDTH) {
++        grub_printf("xpm->width (%d) was greater than XPM_MAX_WIDTH (%d)\n",
++                xpm->width, XPM_MAX_WIDTH);
++        grub_free(xpm);
++        grub_close();
++        return NULL;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    xpm->height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->height = xpm->height * 10 + c - '0';
++        else
++            break;
++    }
++    if (xpm->height > XPM_MAX_HEIGHT) {
++        grub_printf("xpm->height (%d) was greater than XPM_MAX_HEIGHT (%d)\n",
++                xpm->height, XPM_MAX_HEIGHT);
++        grub_free(xpm);
++        grub_close();
++        return NULL;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    xpm->colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            xpm->colors = xpm->colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < xpm->colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < xpm->colors) {
++            unsigned char r, g, b;
++            
++            r = (hex_to_int(buf[0]) << 4) | hex_to_int(buf[1]);
++            g = (hex_to_int(buf[2]) << 4) | hex_to_int(buf[3]);
++            b = (hex_to_int(buf[4]) << 4) | hex_to_int(buf[5]);
++
++            pal[idx] = base;
++            xpm->palette[idx].red = r;
++            xpm->palette[idx].green = g;
++            xpm->palette[idx].blue = b;
++            ++idx;
++        }
++    }
++
++    /* parse xpm data */
++    x = y = 0;
++    while (y < xpm->height) {
++        xpm_pixel_t *pixel = NULL;
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_printf("%s %s:%d grub_read() failed\n", __FILE__, __func__, __LINE__);
++                grub_free(xpm);
++                grub_close();
++                return NULL;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            unsigned char *iaddr = NULL;
++            for (i = 1; i < xpm->colors; i++)
++                if (pal[i] == c) {
++                    idx = i;
++                    break;
++                }
++
++            xpm_set_pixel_idx(xpm, x, y, idx);
++           
++            if (++x >= xpm->width) {
++                x = 0;
++
++                ++y;
++            }
++        }
++    }
++    grub_close();
++    return xpm;
++}
++
++void
++xpm_free(struct xpm *xpm)
++{
++    grub_free(xpm);
++}
++
++
++#endif /* SUPPORT_GRAPHICS || PLATFORM_EFI */
+diff --git a/efi/xpm.h b/efi/xpm.h
+new file mode 100644
+index 0000000..258abc1
+--- /dev/null
++++ b/efi/xpm.h
+@@ -0,0 +1,36 @@
++#ifndef GRUB_XPM_H
++#define GRUB_XPM_H
++
++#include <shared.h>
++
++#define XPM_MAX_COLORS 31
++#define XPM_MAX_WIDTH 640
++#define XPM_MAX_HEIGHT 480
++
++struct xpm_pixel {
++    unsigned char reserved;
++    unsigned char red;
++    unsigned char green;
++    unsigned char blue;
++};
++typedef struct xpm_pixel xpm_pixel_t;
++
++struct xpm {
++    int colors;
++    xpm_pixel_t palette[32];
++
++    int width;
++    int height;
++    unsigned char image[XPM_MAX_WIDTH * XPM_MAX_HEIGHT];
++};
++
++extern struct xpm *xpm_open(char *path);
++extern void xpm_free(struct xpm *xpm);
++
++extern unsigned char xpm_get_pixel_idx(struct xpm *xpm, int x, int y);
++extern void xpm_set_pixel_idx(struct xpm *xpm, int x, int y, unsigned char idx);
++extern int xpm_get_pixel(struct xpm *xpm, int x, int y, xpm_pixel_t *pixel);
++
++extern void xpm_get_idx(struct xpm *xpm, unsigned char idx, xpm_pixel_t *pixel);
++
++#endif /* GRUB_XPM_H */
+diff --git a/grub.spec b/grub.spec
+new file mode 100644
+index 0000000..7e5982d
+--- /dev/null
++++ b/grub.spec
+@@ -0,0 +1,438 @@
++Name: grub
++Version: 0.97
++Release: 20%{?dist}
++Summary: GRUB - the Grand Unified Boot Loader.
++Group: System Environment/Base
++License: GPLv2+
++
++ExclusiveArch: i386 x86_64
++BuildRequires: binutils >= 2.9.1.0.23, ncurses-devel, ncurses-static, texinfo
++BuildRequires: autoconf /usr/lib/crt1.o automake
++PreReq: /sbin/install-info
++Requires: mktemp
++Requires: /usr/bin/cmp
++Requires: system-logos
++BuildRoot: %{_tmppath}/%{name}-%{version}-root
++
++URL: http://www.gnu.org/software/%{name}/
++Source0: ftp://alpha.gnu.org/gnu/%{name}/%{name}-%{version}.tar.gz
++Patch0: grub-fedora-9.patch
++
++%description
++GRUB (Grand Unified Boot Loader) is an experimental boot loader
++capable of booting into most free operating systems - Linux, FreeBSD,
++NetBSD, GNU Mach, and others as well as most commercial operating
++systems.
++
++%prep
++%setup -q
++%patch0 -p1 -b .fedora-9
++
++%build
++autoreconf
++autoconf
++GCCVERS=$(gcc --version | head -1 | cut -d\  -f3 | cut -d. -f1)
++CFLAGS="-Os -g -fno-strict-aliasing -Wall -Werror -Wno-shadow -Wno-unused"
++if [ "$GCCVERS" == "4" ]; then
++      CFLAGS="$CFLAGS -Wno-pointer-sign"
++fi
++export CFLAGS
++%ifarch x86_64
++%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir} --with-platform=efi
++make
++rm -fr $RPM_BUILD_ROOT
++%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
++mv ${RPM_BUILD_ROOT}/sbin/grub ${RPM_BUILD_ROOT}/sbin/grub-efi
++make clean
++autoreconf
++autoconf
++CFLAGS="$CFLAGS -static" 
++export CFLAGS
++%endif
++%configure --sbindir=/sbin --disable-auto-linux-mem-opt --datarootdir=%{_datadir}
++make
++
++%install
++%makeinstall sbindir=${RPM_BUILD_ROOT}/sbin
++mkdir -p ${RPM_BUILD_ROOT}/boot/grub
++
++rm -f ${RPM_BUILD_ROOT}/%{_infodir}/dir
++
++%clean
++rm -fr $RPM_BUILD_ROOT
++
++%post
++if [ "$1" = 1 ]; then
++  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
++  /sbin/install-info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
++fi
++
++%preun
++if [ "$1" = 0 ] ;then
++  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/grub.info.gz || :
++  /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz || :
++fi
++
++%files
++%defattr(-,root,root)
++%doc AUTHORS ChangeLog NEWS README COPYING TODO docs/menu.lst
++/boot/grub
++/sbin/grub
++/sbin/grub-install
++/sbin/grub-terminfo
++/sbin/grub-md5-crypt
++%{_bindir}/mbchk
++%{_infodir}/grub*
++%{_infodir}/multiboot*
++%{_mandir}/man*/*
++%{_datadir}/grub
++%ifarch x86_64
++/sbin/grub-efi
++%endif
++
++%changelog
++* Mon Nov 05 2007 Peter Jones <pjones@redhat.com> - 0.97-20
++- Add EFI support from Intel on x86_64
++
++* Thu Sep 20 2007 Peter Jones <pjones@redhat.com> - 0.97-19
++- Fix dmraid detection on Intel (isw) controllers in grub-install .
++
++* Wed Aug 22 2007 Peter Jones <pjones@redhat.com> - 0.97-18
++- Fix license tag.
++
++* Mon Aug 20 2007 Peter Jones <pjones@redhat.com> - 0.97-17
++- Use --build-id=none instead of stripping out the build-id notes in the
++  first and second stage loaders.
++
++* Tue Aug 7 2007 Peter Jones <pjones@redhat.com> - 0.97-16
++- Add ext[23] large inode support (patch from Eric Sandeen)
++- Fix auto* breakage that happened when we switched from autoreconf to autoconf
++- Move to original tarball + patch generated from git
++
++* Mon Jul 16 2007 Peter Jones <pjones@redhat.com> - 0.97-15
++- Support booting from GPT
++
++* Fri Feb 23 2007 Bill Nottingham <notting@redhat.com> - 0.97-14
++- fix scriplet errors when installed with --nodocs
++- coax grub into building (-ltinfo, autoconf instead of autoreconf)
++
++* Sun Oct 01 2006 Jesse Keating <jkeating@redhat.com> - 0.97-13
++- rebuilt for unwind info generation, broken in gcc-4.1.1-21
++
++* Thu Sep 21 2006 Peter Jones <pjones@redhat.com> - 0.97-12
++- Reenable patch 505, which fixes #116311
++
++* Tue Aug 15 2006 Peter Jones <pjones@redhat.com> - 0.97-11
++- Disable patch 505 (#164497)
++
++* Wed Aug  2 2006 Peter Jones <pjones@redhat.com> - 0.97-10
++- Fix grub-install for multipath
++
++* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 0.97-9.1
++- rebuild
++
++* Fri Jul  7 2006 Peter Jones <pjones@redhat.com> - 0.97-9
++- fix broken error reporting from helper functions
++
++* Mon Jun 12 2006 Peter Jones <pjones@redhat.com> - 0.97-8
++- Fix BIOS keyboard handler to use extended keyboard interrupts, so the
++  Mac Mini works.
++
++* Mon Jun  5 2006 Jesse Keating <jkeating@redhat.com> - 0.97-7
++- Added BuildRequires on a 32bit library
++
++* Sat May 27 2006 Peter Jones <pjones@redhat.com> - 0.97-6
++- Fix mactel keyboard problems, patch from Juergen Keil, forwarded by Linus.
++
++* Mon Mar 13 2006 Peter Jones <pjones@redhat.com> - 0.97-5
++- Fix merge error for "bootonce" patch (broken in 0.95->0.97 update)
++- Get rid of the 0.97 "default" stuff, since it conflicts with our working
++  method.
++
++* Mon Mar  9 2006 Peter Jones <pjones@redhat.com> - 0.97-4
++- Fix running "install" multiple times on the same fs in the same invocation
++  of grub.  (bz #158426 , patch from lxo@redhat.com)
++
++* Mon Feb 13 2006 Peter Jones <pjones@redhat.com> - 0.97-3
++- fix partition names on dmraid
++
++* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 0.97-2.1
++- rebuilt for new gcc4.1 snapshot and glibc changes
++
++* Fri Jan 13 2006 Peter Jones <pjones@redhat.com> - 0.97-2
++- add dmraid support
++
++* Wed Dec 14 2005 Peter Jones <pjones@redhat.com> - 0.97-1
++- update to grub 0.97
++
++* Mon Dec  5 2005 Peter Jones <pjones@redhat.com> - 0.95-17
++- fix configure conftest.c bugs
++- add -Wno-unused to defeat gcc41 "unused" checking when there are aliases.
++
++* Mon Aug  1 2005 Peter Jones <pjones@redhat.com> - 0.95-16
++- minor fix to the --recheck fix.
++
++* Mon Jul 25 2005 Peter Jones <pjones@redhat.com> 0.95-15
++- Make "grub-install --recheck" warn the user about how bad it is,
++  and keep a backup file, which it reverts to upon detecting some errors.
++
++* Wed Jul  6 2005 Peter Jones <pjones@redhat.com> 0.95-14
++- Fix changelog to be UTF-8
++
++* Thu May 19 2005 Peter Jones <pjones@redhat.com> 0.95-13
++- Make the spec work with gcc3 and gcc4, so people can test on existing
++  installations.
++- don't treat i2o like a cciss device, since its partition names aren't done
++  that way. (#158158)
++
++* Wed Mar 16 2005 Peter Jones <pjones@redhat.com> 0.95-12
++- Make installing on a partition work again when not using raid
++
++* Thu Mar  3 2005 Peter Jones <pjones@redhat.com> 0.95-11
++- Make it build with gcc4
++
++* Sun Feb 20 2005 Peter Jones <pjones@redhat.com> 0.95-10
++- Always install in MBR for raid1 /boot/
++
++* Sun Feb 20 2005 Peter Jones <pjones@redhat.com> 0.95-9
++- Always use full path for mdadm in grub-install
++
++* Tue Feb  8 2005 Peter Jones <pjones@redhat.com> 0.95-8
++- Mark the simulation stack executable
++- Eliminate the use of inline functions in stage2/builtins.c
++
++* Wed Jan 11 2005 Peter Jones <pjones@redhat.com> 0.95-7
++- Make grub ignore everything before the XPM header in the splash image,
++  fixing #143879
++- If the boot splash image is missing, use console mode instead 
++  of graphics mode.
++- Don't print out errors using the graphics terminal code if we're not
++  actually in graphics mode.
++
++* Mon Jan  3 2005 Peter Jones <pjones@redhat.com> 0.95-6
++- reworked much of how the RAID1 support in grub-install works.  This version
++  does not require all the devices in the raid to be listed in device.map,
++  as long as you specify a physical device or partition rather than an md
++  device.  It should also work with a windows dual-boot on the first partition.
++
++* Fri Dec 17 2004 Peter Jones <pjones@redhat.com> 0.95-5
++- added support for RAID1 devices to grub-install, partly based on a
++  patch from David Knierim. (#114690)
++
++* Tue Nov 30 2004 Jeremy Katz <katzj@redhat.com> 0.95-4
++- add patch from upstream CVS to handle sparse files on ext[23]
++- make geometry detection a little bit more robust/correct
++- use O_DIRECT when reading/writing from devices.  use aligned buffers as 
++  needed for read/write (#125808)
++- actually apply the i2o patch
++- detect cciss/cpqarray devices better (#123249)
++
++* Thu Sep 30 2004 Jeremy Katz <katzj@redhat.com> - 0.95-3
++- don't act on the keypress for the menu (#134029)
++
++* Mon Jun 28 2004 Jeremy Katz <katzj@redhat.com> - 0.95-2
++- add patch from Nicholas Miell to make hiddenmenu work more 
++  nicely with splashimage mode (#126764)
++
++* Fri Jun 18 2004 Jeremy Katz <katzj@redhat.com> - 0.95-1
++- update to 0.95
++- drop emd patch, E-MD isn't making forward progress upstream
++- fix static build for x86_64 (#121095)
++
++* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
++- rebuilt
++
++* Wed Jun  9 2004 Jeremy Katz <katzj@redhat.com>
++- require system-logos (#120837)
++
++* Fri Jun  4 2004 Jeremy Katz <katzj@redhat.com>
++- buildrequire automake (#125326)
++
++* Thu May 06 2004 Warren Togami <wtogami@redhat.com> - 0.94-5
++- i2o patch from Markus Lidel
++
++* Wed Apr 14 2004 Jeremy Katz <katzj@redhat.com> - 0.94-4
++- read geometry off of the disk since HDIO_GETGEO doesn't actually 
++  return correct data with a 2.6 kernel
++
++* Fri Mar 12 2004 Jeremy Katz <katzj@redhat.com>
++- add texinfo buildrequires (#118146)
++
++* Wed Feb 25 2004 Jeremy Katz <katzj@redhat.com> 0.94-3
++- don't use initrd_max_address
++
++* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com> 0.94-2
++- rebuilt
++
++* Thu Feb 12 2004 Jeremy Katz <katzj@redhat.com> 0.94-1
++- update to 0.94, patch merging and updating as necessary
++
++* Sat Jan  3 2004 Jeremy Katz <katzj@redhat.com> 0.93-8
++- new bootonce patch from Padraig Brady so that you don't lose 
++  the old default (#112775)
++
++* Mon Nov 24 2003 Jeremy Katz <katzj@redhat.com>
++- add ncurses-devel as a buildrequires (#110732)
++
++* Tue Oct 14 2003 Jeremy Katz <katzj@redhat.com> 0.93-7
++- rebuild
++
++* Wed Jul  2 2003 Jeremy Katz <katzj@redhat.com> 
++- Requires: /usr/bin/cmp (#98325)
++
++* Thu May 22 2003 Jeremy Katz <katzj@redhat.com> 0.93-6
++- add patch from upstream to fix build with gcc 3.3
++
++* Wed Apr  2 2003 Jeremy Katz <katzj@redhat.com> 0.93-5
++- add patch to fix support for serial terminfo (#85595)
++
++* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
++- rebuilt
++
++* Fri Jan 17 2003 Jeremy Katz <katzj@redhat.com> 0.93-3
++- add patch from HJ Lu to support large disks (#80980, #63848)
++- add patch to make message when ending edit clearer (#53846)
++
++* Sun Dec 29 2002 Jeremy Katz <katzj@redhat.com> 0.93-2
++- add a patch to reset the terminal type to console before doing 'boot' from
++  the command line (#61069)
++
++* Sat Dec 28 2002 Jeremy Katz <katzj@redhat.com> 0.93-1
++- update to 0.93
++- update configfile patch
++- graphics patch rework to fit in as a terminal type as present in 0.93
++- use CFLAGS="-Os -g"
++- patch configure.in to allow building if host_cpu=x86_64, include -m32 in
++  CFLAGS if building on x86_64
++- link glibc static on x86_64 to not require glibc32
++- include multiboot info pages
++- drop obsolete patches, reorder remaining patches into some semblance of order
++
++* Thu Sep  5 2002 Jeremy Katz <katzj@redhat.com> 0.92-7
++- splashscreen is in redhat-logos now
++
++* Tue Sep  3 2002 Jeremy Katz <katzj@redhat.com> 0.92-6
++- update splashscreen again
++
++* Mon Sep  2 2002 Jeremy Katz <katzj@redhat.com> 0.92-5
++- update splashscreen
++
++* Fri Jun 21 2002 Tim Powers <timp@redhat.com> 0.92-4
++- automated rebuild
++
++* Thu May 23 2002 Tim Powers <timp@redhat.com> 0.92-3
++- automated rebuild
++
++* Fri May  3 2002 Jeremy Katz <katzj@redhat.com> 0.92-2
++- add patch from Grant Edwards to make vga16 + serial happier (#63491)
++
++* Wed May  1 2002 Jeremy Katz <katzj@redhat.com> 0.92-1
++- update to 0.92
++- back to autoreconf
++- make it work with automake 1.6/autoconf 2.53
++- use "-falign-jumps=1 -falign-loops=1 -falign-functions=1" instead of
++  "-malign-jumps=1 -malign-loops=1 -malign-functions=1"       to not use 
++  deprecated gcc options
++
++* Tue Apr  9 2002 Jeremy Katz <katzj@redhat.com> 0.91-4
++- new splash screen
++
++* Fri Mar  8 2002 Jeremy Katz <katzj@redhat.com> 0.91-3
++- include patch from Denis Kitzmen to fix typo causing several options to 
++  never be defined (in upstream CVS)
++- include patch from upstream CVS to make displaymem always use hex for 
++  consistency
++- add patch from GRUB mailing list from Keir Fraser to add a --once flag to
++  savedefault function so that you can have the equivalent of lilo -R 
++  functionality (use 'savedefault --default=N --once' from the grub shell)
++- back to autoconf
++
++* Sun Jan 27 2002 Jeremy Katz <katzj@redhat.com> 
++- change to use $grubdir instead of /boot/grub in the symlink patch (#58771)
++
++* Fri Jan 25 2002 Jeremy Katz <katzj@redhat.com> 0.91-2
++- don't ifdef out the auto memory passing, use the configure flag instead
++- add a patch so that grub respects mem= from the kernel command line when 
++  deciding where to place the initrd (#52558)
++
++* Mon Jan 21 2002 Jeremy Katz <katzj@redhat.com> 0.91-1
++- update to 0.91 final
++- add documentation on splashimage param (#51609)
++
++* Wed Jan  2 2002 Jeremy Katz <katzj@redhat.com> 0.91-0.20020102cvs
++- update to current CVS snapshot to fix some of the hangs on boot related
++  to LBA probing (#57503, #55868, and others)
++
++* Fri Dec 21 2001 Erik Troan <ewt@redhat.com> 0.90-14
++- fixed append patch to not require arguments to begin with
++- changed to autoreconf from autoconf
++
++* Wed Oct 31 2001 Jeremy Katz <katzj@redhat.com> 0.90-13
++- include additional patch from Erich to add sync calls in grub-install to 
++  work around updated images not being synced to disk
++- fix segfault in grub shell if 'password --md5' is used without specifying
++  a password (#55008)
++
++* Fri Oct 26 2001 Jeremy Katz <katzj@redhat.com> 0.90-12
++- Include Erich Boleyn <erich@uruk.org>'s patch to disconnect from the 
++  BIOS after APM operations.  Should fix #54375
++
++* Wed Sep 12 2001 Erik Troan <ewt@redhat.com>
++- added patch for 'a' option in grub boot menu
++
++* Wed Sep  5 2001 Jeremy Katz <katzj@redhat.com> 0.90-11
++- grub-install: if /boot/grub/grub.conf doesn't exist but /boot/grub/menu.lst 
++  does, create a symlink
++
++* Fri Aug 24 2001 Jeremy Katz <katzj@redhat.com>
++- pull in patch from upstream CVS to fix md5crypt in grub shell (#52220)
++- use mktemp in grub-install to avoid tmp races
++
++* Fri Aug  3 2001 Jeremy Katz <katzj@redhat.com>
++- link curses statically (#49519)
++
++* Thu Aug  2 2001 Jeremy Katz <katzj@redhat.com>
++- fix segfault with using the serial device before initialization (#50219)
++
++* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
++- add --copy-only flag to grub-install
++
++* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
++- copy files in grub-install prior to device probe
++
++* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
++- original images don't go in /boot and then grub-install does the right
++  thing
++
++* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
++- fix the previous patch
++- put the password prompt in the proper location
++
++* Thu Jul 19 2001 Jeremy Katz <katzj@redhat.com>
++- reset the screen when the countdown is cancelled so text will disappear 
++  in vga16 mode
++
++* Mon Jul 16 2001 Jeremy Katz <katzj@redhat.com>
++- change configfile defaults to grub.conf
++
++* Sun Jul 15 2001 Jeremy Katz <katzj@redhat.com>
++- updated to grub 0.90 final
++
++* Fri Jul  6 2001 Matt Wilson <msw@redhat.com>
++- modifed splash screen to a nice shade of blue
++
++* Tue Jul  3 2001 Matt Wilson <msw@redhat.com>
++- added a first cut at a splash screen
++
++* Sun Jul  1 2001 Nalin Dahyabhai <nalin@redhat.com>
++- fix datadir mismatch between build and install phases
++
++* Mon Jun 25 2001 Jeremy Katz <katzj@redhat.com>
++- update to current CVS 
++- forward port VGA16 patch from Paulo César Pereira de 
++  Andrade <pcpa@conectiva.com.br>
++- add patch for cciss, ida, and rd raid controllers
++- don't pass mem= to the kernel
++
++* Wed May 23 2001 Erik Troan <ewt@redhat.com>
++- initial build for Red Hat
+diff --git a/grub/.gitignore b/grub/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/grub/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/grub/Makefile.am b/grub/Makefile.am
+index 7eb2eaa..d4353f7 100644
+--- a/grub/Makefile.am
++++ b/grub/Makefile.am
+@@ -15,5 +15,5 @@ AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+ AM_CFLAGS = $(GRUB_CFLAGS)
+-grub_SOURCES = main.c asmstub.c
++grub_SOURCES = main.c asmstub.c efitftp.c
+ grub_LDADD = ../stage2/libgrub.a  ../lib/libcommon.a $(GRUB_LIBS)
+diff --git a/grub/Makefile.in b/grub/Makefile.in
+deleted file mode 100644
+index 136c38f..0000000
+--- a/grub/Makefile.in
++++ /dev/null
+@@ -1,445 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-SOURCES = $(grub_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-sbin_PROGRAMS = grub$(EXEEXT)
+-subdir = grub
+-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-am__installdirs = "$(DESTDIR)$(sbindir)"
+-sbinPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+-PROGRAMS = $(sbin_PROGRAMS)
+-am_grub_OBJECTS = main.$(OBJEXT) asmstub.$(OBJEXT)
+-grub_OBJECTS = $(am_grub_OBJECTS)
+-am__DEPENDENCIES_1 =
+-grub_DEPENDENCIES = ../stage2/libgrub.a ../lib/libcommon.a \
+-      $(am__DEPENDENCIES_1)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(grub_SOURCES)
+-DIST_SOURCES = $(grub_SOURCES)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-@SERIAL_SPEED_SIMULATION_FALSE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 
+-@SERIAL_SPEED_SIMULATION_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1 -DSIMULATE_SLOWNESS_OF_SERIAL=1
+-AM_CPPFLAGS = -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+-      -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+-      -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
+-      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_HERCULES=1 \
+-      $(SERIAL_FLAGS) -I$(top_srcdir)/stage2 \
+-      -I$(top_srcdir)/stage1 -I$(top_srcdir)/lib
+-
+-AM_CFLAGS = $(GRUB_CFLAGS)
+-grub_SOURCES = main.c asmstub.c
+-grub_LDADD = ../stage2/libgrub.a  ../lib/libcommon.a $(GRUB_LIBS)
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  grub/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  grub/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-install-sbinPROGRAMS: $(sbin_PROGRAMS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+-      @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+-        p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+-        if test -f $$p \
+-        ; then \
+-          f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-         echo " $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
+-         $(INSTALL_PROGRAM_ENV) $(sbinPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(sbindir)/$$f" || exit 1; \
+-        else :; fi; \
+-      done
+-
+-uninstall-sbinPROGRAMS:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(sbin_PROGRAMS)'; for p in $$list; do \
+-        f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-        echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
+-        rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+-      done
+-
+-clean-sbinPROGRAMS:
+-      -test -z "$(sbin_PROGRAMS)" || rm -f $(sbin_PROGRAMS)
+-grub$(EXEEXT): $(grub_OBJECTS) $(grub_DEPENDENCIES) 
+-      @rm -f grub$(EXEEXT)
+-      $(LINK) $(grub_LDFLAGS) $(grub_OBJECTS) $(grub_LDADD) $(LIBS)
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/asmstub.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/main.Po@am__quote@
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(PROGRAMS)
+-installdirs:
+-      for dir in "$(DESTDIR)$(sbindir)"; do \
+-        test -z "$$dir" || $(mkdir_p) "$$dir"; \
+-      done
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-generic clean-sbinPROGRAMS mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am: install-sbinPROGRAMS
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am uninstall-sbinPROGRAMS
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+-      clean-sbinPROGRAMS ctags distclean distclean-compile \
+-      distclean-generic distclean-tags distdir dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-sbinPROGRAMS install-strip \
+-      installcheck installcheck-am installdirs maintainer-clean \
+-      maintainer-clean-generic mostlyclean mostlyclean-compile \
+-      mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-      uninstall-am uninstall-info-am uninstall-sbinPROGRAMS
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/grub/asmstub.c b/grub/asmstub.c
+index ab95b4b..818be75 100644
+--- a/grub/asmstub.c
++++ b/grub/asmstub.c
+@@ -42,6 +42,7 @@ int grub_stage2 (void);
+ #include <sys/time.h>
+ #include <termios.h>
+ #include <signal.h>
++#include <sys/mman.h>
+ #ifdef __linux__
+ # include <sys/ioctl.h>               /* ioctl */
+@@ -53,6 +54,9 @@ int grub_stage2 (void);
+ # ifndef BLKFLSBUF
+ #  define BLKFLSBUF   _IO (0x12,97)   /* flush buffer cache */
+ # endif /* ! BLKFLSBUF */
++# ifndef O_DIRECT
++#   define O_DIRECT 040000
++# endif /* ! O_DIRECT */
+ #endif /* __linux__ */
+ /* We want to prevent any circularararity in our stubs, as well as
+@@ -71,7 +75,7 @@ unsigned long install_partition = 0x20000;
+ unsigned long boot_drive = 0;
+ int saved_entryno = 0;
+ char version_string[] = VERSION;
+-char config_file[128] = "/boot/grub/menu.lst"; /* FIXME: arbitrary */
++char config_file[128] = "/boot/grub/grub.conf"; /* FIXME: arbitrary */
+ unsigned long linux_text_len = 0;
+ char *linux_data_tmp_addr = 0;
+ char *linux_data_real_addr = 0;
+@@ -79,7 +83,7 @@ unsigned short io_map[IO_MAP_SIZE];
+ struct apm_info apm_bios_info;
+ /* Emulation requirements. */
+-char *grub_scratch_mem = 0;
++void *grub_scratch_mem = 0;
+ struct geometry *disks = 0;
+@@ -103,14 +107,73 @@ static char *serial_device = 0;
+ static unsigned int serial_speed;
+ #endif /* SIMULATE_SLOWNESS_OF_SERIAL */
++#ifdef GRUB_UTIL
++int get_sector_size (int drive)
++{
++  return 0x200;
++}
++int get_sector_bits (int drive)
++{
++  return 9;
++}
++#endif /* GRUB_UTIL */
++
++/* This allocates page-aligned storage of the specified size, which must be
++ * a multiple of the page size as determined by calling sysconf(_SC_PAGESIZE)
++ */
++#ifdef __linux__
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int mmap_flags = MAP_ANONYMOUS|MAP_PRIVATE|MAP_EXECUTABLE;
++
++#ifdef MAP_32BIT
++  mmap_flags |= MAP_32BIT;
++#endif
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  return mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC, mmap_flags, -1, 0);
++}
++#else /* !defined(__linux__) */
++static void *
++grub_mmap_alloc(size_t len)
++{
++  int fd = 0, offset = 0, ret = 0;
++  void *pa = MAP_FAILED; 
++  char template[] = "/tmp/grub_mmap_alloc_XXXXXX";
++  errno_t e;
++
++  fd = mkstemp(template);
++  if (fd < 0)
++    return pa;
++
++  unlink(template);
++
++  ret = ftruncate(fd, len);
++  if (ret < 0)
++    return pa;
++
++  /* Mark the simulated stack executable, as GCC uses stack trampolines
++   * to implement nested functions. */
++  pa = mmap(NULL, len, PROT_READ|PROT_WRITE|PROT_EXEC,
++                  MAP_PRIVATE|MAP_EXECUTABLE, fd, offset);
++
++  e = errno;
++  close(fd);
++  errno = e;
++  return pa;
++}
++#endif /* defined(__linux__) */
++
+ /* The main entry point into this mess. */
+ int
+ grub_stage2 (void)
+ {
+   /* These need to be static, because they survive our stack transitions. */
+   static int status = 0;
+-  static char *realstack;
+-  char *scratch, *simstack;
++  static void *realstack;
++  void *simstack_alloc_base, *simstack;
++  size_t simstack_size, page_size;
+   int i;
+   auto void doit (void);
+@@ -120,8 +183,13 @@ grub_stage2 (void)
+   void doit (void)
+     {
+       /* Make sure our stack lives in the simulated memory area. */
++#ifdef __x86_64
++      asm volatile ("movq %%rsp, %0\n\tmovq %1, %%rsp\n"
++                  : "=&r" (realstack) : "r" (simstack));
++#else
+       asm volatile ("movl %%esp, %0\n\tmovl %1, %%esp\n"
+                   : "=&r" (realstack) : "r" (simstack));
++#endif
+       
+       /* Do a setjmp here for the stop command.  */
+       if (! setjmp (env_for_exit))
+@@ -138,13 +206,43 @@ grub_stage2 (void)
+       }
+       
+       /* Replace our stack before we use any local variables. */
++#ifdef __x86_64
++      asm volatile ("movq %0, %%rsp\n" : : "r" (realstack));
++#else
+       asm volatile ("movl %0, %%esp\n" : : "r" (realstack));
++#endif
+     }
+   assert (grub_scratch_mem == 0);
+-  scratch = malloc (0x100000 + EXTENDED_MEMSIZE + 15);
+-  assert (scratch);
+-  grub_scratch_mem = (char *) ((((int) scratch) >> 4) << 4);
++
++  /* Allocate enough pages for 0x100000 + EXTENDED_SIZE + 15, and
++   * make sure the memory is aligned to a multiple of the system's
++   * page size */
++  page_size = sysconf (_SC_PAGESIZE);
++  simstack_size = ( 0x100000 + EXTENDED_MEMSIZE + 15);
++  if (simstack_size % page_size)
++    {
++      /* If we're not on a page_size boundary, round up to the next one */
++      simstack_size &= ~(page_size-1);
++      simstack_size += page_size;
++    }
++
++  /* Add one for a PROT_NONE boundary page at each end. */
++  simstack_size += 2 * page_size;
++
++  simstack_alloc_base = grub_mmap_alloc(simstack_size);
++  assert (simstack_alloc_base != MAP_FAILED);
++
++  /* mark pages above and below our simstack area as innaccessable.
++   * If the implementation we're using doesn't support that, then the
++   * new protection modes are undefined.  It's safe to just ignore
++   * them, though.  It'd be nice if we knew that we'd get a SEGV for
++   * touching the area, but that's all.  it'd be nice to have. */
++  mprotect (simstack_alloc_base, page_size, PROT_NONE);
++  mprotect ((void *)((unsigned long)simstack_alloc_base +
++                        simstack_size - page_size),  page_size, PROT_NONE);
++
++  grub_scratch_mem = (void *)((unsigned long)simstack_alloc_base + page_size);
+   /* FIXME: simulate the memory holes using mprot, if available. */
+@@ -217,7 +315,7 @@ grub_stage2 (void)
+   device_map = 0;
+   free (disks);
+   disks = 0;
+-  free (scratch);
++  munmap(simstack_alloc_base, simstack_size);
+   grub_scratch_mem = 0;
+   if (serial_device)
+@@ -699,6 +797,13 @@ console_getkey (void)
+   return console_translate_key (c);
+ }
++/* returns modifier status */
++int
++console_keystatus (void)
++{
++  return 0;
++}
++
+ /* returns packed values, LSB+1 is x, LSB is y */
+ int
+ console_getxy (void)
+@@ -766,7 +871,7 @@ get_diskinfo (int drive, struct geometry *geometry)
+     {
+       /* The unpartitioned device name: /dev/XdX */
+       char *devname = device_map[drive];
+-      char buf[512];
++      char * buf, * buf_unaligned;
+       if (! devname)
+       return -1;
+@@ -777,13 +882,13 @@ get_diskinfo (int drive, struct geometry *geometry)
+       /* Open read/write, or read-only if that failed. */
+       if (! read_only)
+-      disks[drive].flags = open (devname, O_RDWR);
++      disks[drive].flags = open (devname, O_RDWR | O_DIRECT);
+       if (disks[drive].flags == -1)
+       {
+         if (read_only || errno == EACCES || errno == EROFS || errno == EPERM)
+           {
+-            disks[drive].flags = open (devname, O_RDONLY);
++            disks[drive].flags = open (devname, O_RDONLY | O_DIRECT);
+             if (disks[drive].flags == -1)
+               {
+                 assign_device_name (drive, 0);
+@@ -797,6 +902,10 @@ get_diskinfo (int drive, struct geometry *geometry)
+           }
+       }
++      buf_unaligned = malloc((512 * sizeof(char)) + 4095);
++      buf = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                      (~(4096-1)));
++
+       /* Attempt to read the first sector.  */
+       if (read (disks[drive].flags, buf, 512) != 512)
+       {
+@@ -808,6 +917,7 @@ get_diskinfo (int drive, struct geometry *geometry)
+       if (disks[drive].flags != -1)
+       get_drive_geometry (&disks[drive], device_map, drive);
++      free(buf_unaligned);
+     }
+   if (disks[drive].flags == -1)
+@@ -829,24 +939,34 @@ static int
+ nread (int fd, char *buf, size_t len)
+ {
+   int size = len;
++  char * buf_unaligned, * buff, * obuff;
++  int ret;
++
++  buf_unaligned = malloc((len * sizeof(char)) + 4095);
++  obuff = buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                           (~(4096-1)));
++
+   while (len)
+     {
+-      int ret = read (fd, buf, len);
++      ret = read (fd, buff, len);
+       if (ret <= 0)
+       {
+         if (errno == EINTR)
+           continue;
+         else
+-          return ret;
++            break;
+       }
+       len -= ret;
+-      buf += ret;
++      buff += ret;
+     }
+-  return size;
++  if (!len) ret = size;
++
++  buf = memcpy(buf, obuff, size);
++  return ret;
+ }
+ /* Write LEN bytes from BUF to FD. Return less than or equal to zero if an
+@@ -855,10 +975,18 @@ static int
+ nwrite (int fd, char *buf, size_t len)
+ {
+   int size = len;
++  char * buf_unaligned, * buff;
++
++  buf_unaligned = malloc((len * sizeof(char)) + 4095);
++  buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                   (~(4096-1)));
+   while (len)
+     {
+-      int ret = write (fd, buf, len);
++      int ret;
++
++      memcpy(buff, buf, len);
++      ret = write (fd, buff, len);
+       if (ret <= 0)
+       {
+@@ -946,20 +1074,20 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+     _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
+              loff_t *, res, uint, wh);
+-    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
++    offset = (loff_t) sector * (loff_t) get_sector_size(drive);
+     if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
+       return -1;
+   }
+ #else
+   {
+-    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
++    off_t offset = (off_t) sector * (off_t) get_sector_size(drive);
+     if (lseek (fd, offset, SEEK_SET) != offset)
+       return -1;
+   }
+ #endif
+-  buf = (char *) (segment << 4);
++  buf = (char *) (unsigned long) (segment << 4);
+   switch (subfunc)
+     {
+@@ -971,13 +1099,13 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+            sectors that are read together with the MBR in one read.  It
+            should only remap the MBR, so we split the read in two 
+            parts. -jochen  */
+-        if (nread (fd, buf, SECTOR_SIZE) != SECTOR_SIZE)
++        if (nread (fd, buf, get_sector_size(drive)) != get_sector_size(drive))
+           return -1;
+-        buf += SECTOR_SIZE;
++        buf += get_sector_size(drive);
+         nsec--;
+       }
+ #endif
+-      if (nread (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++      if (nread (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
+       return -1;
+       break;
+@@ -987,10 +1115,10 @@ biosdisk (int subfunc, int drive, struct geometry *geometry,
+         grub_printf ("Write %d sectors starting from %d sector"
+                      " to drive 0x%x (%s)\n",
+                      nsec, sector, drive, device_map[drive]);
+-        hex_dump (buf, nsec * SECTOR_SIZE);
++        hex_dump (buf, nsec * get_sector_size(drive));
+       }
+       if (! read_only)
+-      if (nwrite (fd, buf, nsec * SECTOR_SIZE) != nsec * SECTOR_SIZE)
++      if (nwrite (fd, buf, nsec * get_sector_size(drive)) != nsec * get_sector_size(drive))
+         return -1;
+       break;
+@@ -1273,3 +1401,21 @@ hercules_setcursor (int on)
+ {
+   return 1;
+ }
++
++int
++grub_load_linux (char *kernel, char *arg)
++{
++  return 0;
++}
++
++int
++grub_load_initrd (char *initrd)
++{
++  return 0;
++}
++
++int
++grub_chainloader (char *filename)
++{
++  return 0;
++}
+diff --git a/grub/efitftp.c b/grub/efitftp.c
+new file mode 100644
+index 0000000..5355dec
+--- /dev/null
++++ b/grub/efitftp.c
+@@ -0,0 +1,34 @@
++#include <shared.h>
++#include <filesys.h>
++
++int efi_tftp_mount (void);
++int efi_tftp_read (char *buf, int len);
++int efi_tftp_dir (char *dirname);
++void efi_tftp_close (void);
++
++int
++efi_tftp_mount (void)
++{
++      grub_printf("non-efi efi_tftp_mount()\n");
++      return 0;
++}
++
++int
++efi_tftp_read (char *addr, int size)
++{
++      grub_printf ("non-efi efi_tftp_read (0x%x, %d)\n", (long) addr, size);
++      return 0;
++}
++
++int
++efi_tftp_dir (char *dirname)
++{
++      grub_printf ("non-efi efi_ftp_dir (%s)\n", dirname);
++      return 0;
++}
++
++void
++efi_tftp_close (void)
++{
++      grub_printf ("non-efi efi_tftp_close ()\n");
++}
+diff --git a/grub/main.c b/grub/main.c
+index dfe847e..6083641 100644
+--- a/grub/main.c
++++ b/grub/main.c
+@@ -140,7 +140,7 @@ main (int argc, char **argv)
+   program_name = argv[0];
+   default_boot_drive = boot_drive;
+   default_install_partition = install_partition;
+-  if (config_file)
++  if (config_file[0])
+     default_config_file = config_file;
+   else
+     default_config_file = "NONE";
+diff --git a/lib/.gitignore b/lib/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/lib/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/lib/Makefile.in b/lib/Makefile.in
+deleted file mode 100644
+index 3dae206..0000000
+--- a/lib/Makefile.in
++++ /dev/null
+@@ -1,416 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-SOURCES = $(libcommon_a_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-subdir = lib
+-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-LIBRARIES = $(noinst_LIBRARIES)
+-AR = ar
+-ARFLAGS = cru
+-libcommon_a_AR = $(AR) $(ARFLAGS)
+-libcommon_a_LIBADD =
+-am_libcommon_a_OBJECTS = getopt.$(OBJEXT) getopt1.$(OBJEXT) \
+-      device.$(OBJEXT)
+-libcommon_a_OBJECTS = $(am_libcommon_a_OBJECTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(libcommon_a_SOURCES)
+-DIST_SOURCES = $(libcommon_a_SOURCES)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-noinst_LIBRARIES = libcommon.a
+-AM_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/stage2 \
+-      -I$(top_srcdir)/stage1
+-
+-libcommon_a_SOURCES = getopt.c getopt1.c getopt.h device.c device.h
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  lib/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  lib/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-clean-noinstLIBRARIES:
+-      -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+-libcommon.a: $(libcommon_a_OBJECTS) $(libcommon_a_DEPENDENCIES) 
+-      -rm -f libcommon.a
+-      $(libcommon_a_AR) libcommon.a $(libcommon_a_OBJECTS) $(libcommon_a_LIBADD)
+-      $(RANLIB) libcommon.a
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/device.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getopt1.Po@am__quote@
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(LIBRARIES)
+-installdirs:
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am:
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+-      clean-noinstLIBRARIES ctags distclean distclean-compile \
+-      distclean-generic distclean-tags distdir dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-strip installcheck \
+-      installcheck-am installdirs maintainer-clean \
+-      maintainer-clean-generic mostlyclean mostlyclean-compile \
+-      mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-      uninstall-am uninstall-info-am
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/lib/device.c b/lib/device.c
+index d0663b3..50540bc 100644
+--- a/lib/device.c
++++ b/lib/device.c
+@@ -36,6 +36,9 @@
+ #include <limits.h>
+ #include <stdarg.h>
++#define SECTOR_SIZE 0x200
++#define SECTOR_BITS 9
++
+ #ifdef __linux__
+ # if !defined(__GLIBC__) || \
+         ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1)))
+@@ -131,6 +134,152 @@ get_kfreebsd_version ()
+ #include <shared.h>
+ #include <device.h>
++#if defined(__linux__)
++/* The 2.6 kernel has removed all of the geometry handling for IDE drives
++ * that did fixups for LBA, etc.  This means that the geometry we get
++ * with the ioctl has a good chance of being wrong.  So, we get to 
++ * also know about partition tables and try to read what the geometry
++ * is there. *grumble*   Very closely based on code from cfdisk
++ */
++static void get_kernel_geometry(int fd, long long *cyl, int *heads, int *sectors) {
++    struct hd_geometry hdg;
++    
++    if (ioctl (fd, HDIO_GETGEO, &hdg))
++        return;
++
++    *cyl = hdg.cylinders;
++    *heads = hdg.heads;
++    *sectors = hdg.sectors;
++}
++
++struct partition {
++        unsigned char boot_ind;         /* 0x80 - active */
++        unsigned char head;             /* starting head */
++        unsigned char sector;           /* starting sector */
++        unsigned char cyl;              /* starting cylinder */
++        unsigned char sys_ind;          /* What partition type */
++        unsigned char end_head;         /* end head */
++        unsigned char end_sector;       /* end sector */
++        unsigned char end_cyl;          /* end cylinder */
++        unsigned char start4[4];        /* starting sector counting from 0 */
++        unsigned char size4[4];         /* nr of sectors in partition */
++};
++
++#define ALIGNMENT 2
++typedef union {
++    struct {
++      unsigned char align[ALIGNMENT];
++      unsigned char b[SECTOR_SIZE];
++    } c;
++    struct {
++      unsigned char align[ALIGNMENT];
++      unsigned char buffer[0x1BE];
++      struct partition part[4];
++      unsigned char magicflag[2];
++    } p;
++} partition_table;
++
++#define PART_TABLE_FLAG0 0x55
++#define PART_TABLE_FLAG1 0xAA
++
++static void
++get_partition_table_geometry(partition_table *bufp, long long *cyl, int *heads, 
++                             int *sectors) {
++    struct partition *p;
++    int i,h,s,hh,ss;
++    int first = 1;
++    int bad = 0;
++
++    if (bufp->p.magicflag[0] != PART_TABLE_FLAG0 ||
++      bufp->p.magicflag[1] != PART_TABLE_FLAG1) {
++          /* Matthew Wilcox: slightly friendlier version of
++             fatal(_("Bad signature on partition table"), 3);
++          */
++            fprintf(stderr, "Unknown partition table signature\n");
++          return;
++    }
++
++    hh = ss = 0;
++    for (i=0; i<4; i++) {
++      p = &(bufp->p.part[i]);
++      if (p->sys_ind != 0) {
++          h = p->end_head + 1;
++          s = (p->end_sector & 077);
++          if (first) {
++              hh = h;
++              ss = s;
++              first = 0;
++          } else if (hh != h || ss != s)
++              bad = 1;
++      }
++    }
++
++    if (!first && !bad) {
++      *heads = hh;
++      *sectors = ss;
++    }
++}
++
++static long long my_lseek (unsigned int fd, long long offset, 
++                           unsigned int origin)
++{
++#if defined(__linux__) && (!defined(__GLIBC__) || \
++        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
++  /* Maybe libc doesn't have large file support.  */
++  loff_t offset, result;
++  static int _llseek (uint filedes, ulong hi, ulong lo,
++                      loff_t *res, uint wh);
++  _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
++             loff_t *, res, uint, wh);
++  
++  if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET) < 0)
++    return (long long) -1;
++  return result;
++#else
++  return lseek(fd, offset, SEEK_SET);
++#endif
++}
++
++static void get_linux_geometry (int fd, struct geometry *geom) {
++    long long kern_cyl = 0; int kern_head = 0, kern_sectors = 0;
++    long long pt_cyl = 0; int pt_head = 0, pt_sectors = 0;
++    partition_table bufp;
++    char *buff, *buf_unaligned;
++
++    buf_unaligned = malloc(sizeof(partition_table) + 4095);
++    buff = (char *) (((unsigned long)buf_unaligned + 4096 - 1) &
++                     (~(4096-1)));
++
++    get_kernel_geometry(fd, &kern_cyl, &kern_head, &kern_sectors);
++
++    if (my_lseek (fd, 0*SECTOR_SIZE, SEEK_SET) < 0) {
++        fprintf(stderr, "Unable to seek");
++    }
++
++    if (read(fd, buff, SECTOR_SIZE) == SECTOR_SIZE) {
++        memcpy(bufp.c.b, buff, SECTOR_SIZE);
++        get_partition_table_geometry(&bufp, &pt_cyl, &pt_head, &pt_sectors);
++    } else {
++        fprintf(stderr, "Unable to read partition table: %s\n", strerror(errno));
++    }
++
++    if (pt_head && pt_sectors) {
++        int cyl_size;
++
++        geom->heads = pt_head;
++        geom->sectors = pt_sectors;
++        cyl_size = pt_head * pt_sectors;
++        geom->cylinders = geom->total_sectors/cyl_size;
++    } else {
++        geom->heads = kern_head;
++        geom->sectors = kern_sectors;
++        geom->cylinders = kern_cyl;
++    }
++
++    return;
++}
++#endif
++
+ /* Get the geometry of a drive DRIVE.  */
+ void
+ get_drive_geometry (struct geometry *geom, char **map, int drive)
+@@ -151,21 +300,16 @@ get_drive_geometry (struct geometry *geom, char **map, int drive)
+ #if defined(__linux__)
+   /* Linux */
+   {
+-    struct hd_geometry hdg;
+     unsigned long nr;
+-    
+-    if (ioctl (fd, HDIO_GETGEO, &hdg))
+-      goto fail;
+     if (ioctl (fd, BLKGETSIZE, &nr))
+       goto fail;
+     
+     /* Got the geometry, so save it. */
+-    geom->cylinders = hdg.cylinders;
+-    geom->heads = hdg.heads;
+-    geom->sectors = hdg.sectors;
+     geom->total_sectors = nr;
+-    
++    get_linux_geometry(fd, geom);
++    if (!geom->heads && !geom->cylinders && !geom->sectors)
++        goto fail;
+     goto success;
+   }
+@@ -403,10 +547,27 @@ get_dac960_disk_name (char *name, int controller, int drive)
+ }
+ static void
++get_cciss_disk_name (char * name, int controller, int drive)
++{
++  sprintf (name, "/dev/cciss/c%dd%d", controller, drive);
++}
++
++static void
++get_cpqarray_disk_name (char * name, int controller, int drive)
++{
++  sprintf (name, "/dev/ida/c%dd%d", controller, drive);
++}
++static void
+ get_ataraid_disk_name (char *name, int unit)
+ {
+   sprintf (name, "/dev/ataraid/d%c", unit + '0');
+ }
++
++static void
++get_i2o_disk_name (char *name, int unit)
++{
++  sprintf (name, "/dev/i2o/hd%c", unit + 'a');
++}
+ #endif
+ /* Check if DEVICE can be read. If an error occurs, return zero,
+@@ -490,27 +651,24 @@ check_device (const char *device)
+ }
+ /* Read mapping information from FP, and write it to MAP.  */
++static void rdm_show_error (const char *map_file, int no, const char *msg)
++{
++  fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
++}
++
++static void rdm_show_warning (const char *map_file,int no, const char *msg, ...)
++{
++  va_list ap;
++  
++  va_start (ap, msg);
++  fprintf (stderr, "%s:%d: warning: ", map_file, no);
++  vfprintf (stderr, msg, ap);
++  va_end (ap);
++}
++
+ static int
+ read_device_map (FILE *fp, char **map, const char *map_file)
+ {
+-  auto void show_error (int no, const char *msg);
+-  auto void show_warning (int no, const char *msg, ...);
+-  
+-  auto void show_error (int no, const char *msg)
+-    {
+-      fprintf (stderr, "%s:%d: error: %s\n", map_file, no, msg);
+-    }
+-  
+-  auto void show_warning (int no, const char *msg, ...)
+-    {
+-      va_list ap;
+-      
+-      va_start (ap, msg);
+-      fprintf (stderr, "%s:%d: warning: ", map_file, no);
+-      vfprintf (stderr, msg, ap);
+-      va_end (ap);
+-    }
+-  
+   /* If there is the device map file, use the data in it instead of
+      probing devices.  */
+   char buf[1024];             /* XXX */
+@@ -540,14 +698,14 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (*ptr != '(')
+       {
+-        show_error (line_number, "No open parenthesis found");
++        rdm_show_error (map_file, line_number, "No open parenthesis found");
+         return 0;
+       }
+       
+       ptr++;
+       if ((*ptr != 'f' && *ptr != 'h') || *(ptr + 1) != 'd')
+       {
+-        show_error (line_number, "Bad drive name");
++        rdm_show_error (map_file, line_number, "Bad drive name");
+         return 0;
+       }
+       
+@@ -558,12 +716,12 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       drive = strtoul (ptr, &ptr, 10);
+       if (drive < 0)
+       {
+-        show_error (line_number, "Bad device number");
++        rdm_show_error (map_file, line_number, "Bad device number");
+         return 0;
+       }
+       else if (drive > 127)
+       {
+-        show_warning (line_number,
++        rdm_show_warning (map_file, line_number,
+                       "Ignoring %cd%d due to a BIOS limitation",
+                       is_floppy ? 'f' : 'h', drive);
+         continue;
+@@ -574,7 +732,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (*ptr != ')')
+       {
+-        show_error (line_number, "No close parenthesis found");
++        rdm_show_error (map_file, line_number, "No close parenthesis found");
+         return 0;
+       }
+       
+@@ -585,7 +743,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       
+       if (! *ptr)
+       {
+-        show_error (line_number, "No filename found");
++        rdm_show_error (map_file, line_number, "No filename found");
+         return 0;
+       }
+       
+@@ -598,7 +756,7 @@ read_device_map (FILE *fp, char **map, const char *map_file)
+       /* Multiple entries for a given drive is not allowed.  */
+       if (map[drive])
+       {
+-        show_error (line_number, "Duplicated entry found");
++        rdm_show_error (map_file, line_number, "Duplicated entry found");
+         return 0;
+       }
+       
+@@ -782,7 +940,7 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
+     
+     for (controller = 0; controller < 8; controller++)
+       {
+-      for (drive = 0; drive < 15; drive++)
++      for (drive = 0; drive < 32; drive++)
+         {
+           char name[24];
+           
+@@ -801,6 +959,90 @@ init_device_map (char ***map, const char *map_file, int floppy_disks)
+         }
+       }
+   }
++
++  /* I2O disks.  */
++  for (i = 0; i < 8; i++)
++    {
++      char name[16];
++      
++      get_i2o_disk_name (name, i);
++      if (check_device (name))
++      {
++        (*map)[num_hd + 0x80] = strdup (name);
++        assert ((*map)[num_hd + 0x80]);
++        
++        /* If the device map file is opened, write the map.  */
++        if (fp)
++          fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++        
++        num_hd++;
++      }
++    }
++  
++#endif /* __linux__ */
++
++#ifdef __linux__
++  /* This is for cciss - we have
++     /dev/cciss/c<controller>d<logical drive>p<partition>.
++     
++     cciss driver currently supports up to 8 controllers, 16 logical
++     drives, and 7 partitions.  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 8; controller++)
++      {
++      for (drive = 0; drive < 16; drive++)
++        {
++          char name[24];
++          
++          get_cciss_disk_name (name, controller, drive);
++          if (check_device (name))
++            {
++              (*map)[num_hd + 0x80] = strdup (name);
++              assert ((*map)[num_hd + 0x80]);
++              
++              /* If the device map file is opened, write the map.  */
++              if (fp)
++                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++              
++              num_hd++;
++            }
++        }
++      }
++  }
++#endif /* __linux__ */
++
++#ifdef __linux__
++  /* This is for cpqarray - we have
++     /dev/ida/c<controller>d<logical drive>p<partition>.
++     
++     cpqarray driver currently supports up to 8 controllers, 16 logical
++     drives, and 15 partitions.  */
++  {
++    int controller, drive;
++    
++    for (controller = 0; controller < 8; controller++)
++      {
++      for (drive = 0; drive < 15; drive++)
++        {
++          char name[24];
++          
++          get_cpqarray_disk_name (name, controller, drive);
++          if (check_device (name))
++            {
++              (*map)[num_hd + 0x80] = strdup (name);
++              assert ((*map)[num_hd + 0x80]);
++              
++              /* If the device map file is opened, write the map.  */
++              if (fp)
++                fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
++              
++              num_hd++;
++            }
++        }
++      }
++  }
+ #endif /* __linux__ */
+   
+   /* OK, close the device map file if opened.  */
+@@ -844,6 +1086,7 @@ write_to_partition (char **map, int drive, int partition,
+ {
+   char dev[PATH_MAX]; /* XXX */
+   int fd;
++  off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+   
+   if ((partition & 0x00FF00) != 0x00FF00)
+     {
+@@ -861,44 +1104,35 @@ write_to_partition (char **map, int drive, int partition,
+       if (strcmp (dev + strlen(dev) - 5, "/disc") == 0)
+       strcpy (dev + strlen(dev) - 5, "/part");
+     }
+-  sprintf (dev + strlen(dev), "%d", ((partition >> 16) & 0xFF) + 1);
++
++  sprintf (dev + strlen(dev), "%s%d", 
++         /* Compaq smart and others */
++         (strncmp(dev, "/dev/ida/", 9) == 0 ||
++          strncmp(dev, "/dev/ataraid/", 13) == 0 ||
++          strncmp(dev, "/dev/mapper/", 12) == 0 || 
++          strncmp(dev, "/dev/md", 7) == 0 ||
++          strncmp(dev, "/dev/cciss/", 11) == 0 ||
++          strncmp(dev, "/dev/rd/", 8) == 0) ? "p" : "",
++         ((partition >> 16) & 0xFF) + 1);
+   
+   /* Open the partition.  */
+   fd = open (dev, O_RDWR);
+   if (fd < 0)
+     {
++      /* No partition file, pass thru and not worry about
++       * cache inconsistency. */
++      if (errno == ENOENT)
++        return -1;
+       errnum = ERR_NO_PART;
+       return 0;
+     }
+-  
+-#if defined(__linux__) && (!defined(__GLIBC__) || \
+-        ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))))
+-  /* Maybe libc doesn't have large file support.  */
+-  {
+-    loff_t offset, result;
+-    static int _llseek (uint filedes, ulong hi, ulong lo,
+-                        loff_t *res, uint wh);
+-    _syscall5 (int, _llseek, uint, filedes, ulong, hi, ulong, lo,
+-               loff_t *, res, uint, wh);
+-
+-    offset = (loff_t) sector * (loff_t) SECTOR_SIZE;
+-    if (_llseek (fd, offset >> 32, offset & 0xffffffff, &result, SEEK_SET))
+-      {
+-      errnum = ERR_DEV_VALUES;
+-      return 0;
+-      }
+-  }
+-#else
+-  {
+-    off_t offset = (off_t) sector * (off_t) SECTOR_SIZE;
+-    if (lseek (fd, offset, SEEK_SET) != offset)
+-      {
+-      errnum = ERR_DEV_VALUES;
+-      return 0;
+-      }
+-  }
+-#endif
++
++  if (my_lseek(fd, offset, SEEK_SET) != offset)
++    {
++      errnum = ERR_DEV_VALUES;
++      return 0;
++    }
+   
+   if (write (fd, buf, size * SECTOR_SIZE) != (size * SECTOR_SIZE))
+     {
+diff --git a/makediff b/makediff
+new file mode 100755
+index 0000000..a82b448
+--- /dev/null
++++ b/makediff
+@@ -0,0 +1,21 @@
++#!/bin/bash
++(
++cat << EOF
++From: Peter Jones <pjones@redhat.com>" 
++Date: $(date)
++Subject: [PATCH] Changes from grub-0.97 to master
++
++This patch is a bundle of the changes between grub-0.97 and master.
++It can be reginerated from the git repository at:
++
++git://github.com/vathpela/grub-fedora.git
++
++Using the command:
++
++git diff grub-0.97 master
++
++EOF
++git diff grub-0.97 master | diffstat -p1
++echo
++git diff grub-0.97 master
++) | cat
+diff --git a/netboot/.gitignore b/netboot/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/netboot/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/netboot/Makefile.in b/netboot/Makefile.in
+deleted file mode 100644
+index 75ac299..0000000
+--- a/netboot/Makefile.in
++++ /dev/null
+@@ -1,1091 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-subdir = netboot
+-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-LIBRARIES = $(noinst_LIBRARIES)
+-AR = ar
+-ARFLAGS = cru
+-libdrivers_a_AR = $(AR) $(ARFLAGS)
+-am_libdrivers_a_OBJECTS = libdrivers_a-config.$(OBJEXT) \
+-      libdrivers_a-fsys_tftp.$(OBJEXT) libdrivers_a-main.$(OBJEXT) \
+-      libdrivers_a-misc.$(OBJEXT) libdrivers_a-pci.$(OBJEXT) \
+-      libdrivers_a-timer.$(OBJEXT)
+-libdrivers_a_OBJECTS = $(am_libdrivers_a_OBJECTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
+-DIST_SOURCES = $(libdrivers_a_SOURCES) $(EXTRA_libdrivers_a_SOURCES)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-
+-# For <shared.h> and <stage1.h>.
+-INCLUDES = -I$(top_srcdir)/stage2 -I$(top_srcdir)/stage1
+-@NETBOOT_SUPPORT_FALSE@LIBDRIVERS = 
+-
+-# Don't build the netboot support by default.
+-@NETBOOT_SUPPORT_TRUE@LIBDRIVERS = libdrivers.a
+-noinst_LIBRARIES = $(LIBDRIVERS)
+-libdrivers_a_SOURCES = cards.h config.c etherboot.h \
+-      fsys_tftp.c linux-asm-io.h linux-asm-string.h \
+-      main.c misc.c nic.h osdep.h pci.c pci.h timer.c timer.h
+-
+-EXTRA_libdrivers_a_SOURCES = 3c509.c 3c509.h 3c595.c 3c595.h 3c90x.c \
+-      cs89x0.c cs89x0.h davicom.c depca.c eepro.c eepro100.c \
+-      epic100.c epic100.h fa311.c i82586.c lance.c natsemi.c \
+-      ni5010.c ns8390.c ns8390.h otulip.c otulip.h rtl8139.c \
+-      sis900.c sis900.h sk_g16.c sk_g16.h smc9000.c smc9000.h \
+-      tiara.c tlan.c tulip.c via-rhine.c w89c840.c
+-
+-libdrivers_a_CFLAGS = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-      -DFSYS_TFTP=1 $(NET_CFLAGS) $(NET_EXTRAFLAGS)
+-
+-# Filled by configure.
+-libdrivers_a_LIBADD = @NETBOOT_DRIVERS@
+-libdrivers_a_DEPENDENCIES = $(libdrivers_a_LIBADD)
+-EXTRA_DIST = README.netboot 3c90x.txt cs89x0.txt sis900.txt tulip.txt
+-
+-# These below are several special rules for the device drivers.
+-# We cannot use a simple rule for them...
+-
+-# What objects are derived from a driver?
+-3c509_drivers = 3c509.o 3c529.o
+-3c595_drivers = 3c595.o
+-3c90x_drivers = 3c90x.o
+-cs89x0_drivers = cs89x0.o
+-davicom_drivers = davicom.o
+-depca_drivers = depca.o
+-eepro_drivers = eepro.o
+-eepro100_drivers = eepro100.o
+-epic100_drivers = epic100.o
+-#fa311_drivers = fa311.o
+-i82586_drivers = 3c507.o exos205.o ni5210.o
+-lance_drivers = lance.o ne2100.o ni6510.o
+-natsemi_drivers = natsemi.o
+-ni5010_drivers = ni5010.o
+-ns8390_drivers = 3c503.o ne.o ns8390.o wd.o
+-otulip_drivers = otulip.o
+-rtl8139_drivers = rtl8139.o
+-sis900_drivers = sis900.o
+-sk_g16_drivers = sk_g16.o
+-smc9000_drivers = smc9000.o
+-tiara_drivers = tiara.o
+-#tlan_drivers = tlan.o
+-tulip_drivers = tulip.o
+-via_rhine_drivers = via_rhine.o
+-w89c840_drivers = w89c840.o
+-
+-# Per-object flags.
+-3c509_o_CFLAGS = -DINCLUDE_3C509=1
+-3c529_o_CFLAGS = -DINCLUDE_3C529=1
+-3c595_o_CFLAGS = -DINCLUDE_3C595=1
+-3c90x_o_CFLAGS = -DINCLUDE_3C90X=1
+-cs89x0_o_CFLAGS = -DINCLUDE_CS89X0=1
+-davicom_o_CFLAGS = -DINCLUDE_DAVICOM=1
+-depca_o_CFLAGS = -DINCLUDE_DEPCA=1
+-eepro_o_CFLAGS = -DINCLUDE_EEPRO=1
+-eepro100_o_CFLAGS = -DINCLUDE_EEPRO100=1
+-epic100_o_CFLAGS = -DINCLUDE_EPIC100=1
+-#fa311_o_CFLAGS = -DINCLUDE_FA311=1
+-3c507_o_CFLAGS = -DINCLUDE_3C507=1
+-exos205_o_CFLAGS = -DINCLUDE_EXOS205=1
+-ni5210_o_CFLAGS = -DINCLUDE_NI5210=1
+-lance_o_CFLAGS = -DINCLUDE_LANCE=1
+-ne2100_o_CFLAGS = -DINCLUDE_NE2100=1
+-ni6510_o_CFLAGS = -DINCLUDE_NI6510=1
+-natsemi_o_CFLAGS = -DINCLUDE_NATSEMI=1
+-ni5010_o_CFLAGS = -DINCLUDE_NI5010=1
+-3c503_o_CFLAGS = -DINCLUDE_3C503=1
+-ne_o_CFLAGS = -DINCLUDE_NE=1
+-ns8390_o_CFLAGS = -DINCLUDE_NS8390=1
+-wd_o_CFLAGS = -DINCLUDE_WD=1
+-otulip_o_CFLAGS = -DINCLUDE_OTULIP=1
+-rtl8139_o_CFLAGS = -DINCLUDE_RTL8139=1
+-sis900_o_CFLAGS = -DINCLUDE_SIS900=1
+-sk_g16_o_CFLAGS = -DINCLUDE_SK_G16=1
+-smc9000_o_CFLAGS = -DINCLUDE_SMC9000=1
+-tiara_o_CFLAGS = -DINCLUDE_TIARA=1
+-#tlan_o_CFLAGS = -DINCLUDE_TLAN=1
+-tulip_o_CFLAGS = -DINCLUDE_TULIP=1
+-via_rhine_o_CFLAGS = -DINCLUDE_VIA_RHINE=1
+-w89c840_o_CFLAGS = -DINCLUDE_W89C840=1
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  netboot/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  netboot/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-clean-noinstLIBRARIES:
+-      -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+-libdrivers.a: $(libdrivers_a_OBJECTS) $(libdrivers_a_DEPENDENCIES) 
+-      -rm -f libdrivers.a
+-      $(libdrivers_a_AR) libdrivers.a $(libdrivers_a_OBJECTS) $(libdrivers_a_LIBADD)
+-      $(RANLIB) libdrivers.a
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c509.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c595.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-3c90x.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-config.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-cs89x0.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-davicom.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-depca.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-eepro100.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-epic100.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fa311.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-fsys_tftp.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-i82586.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-lance.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-main.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-misc.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-natsemi.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ni5010.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-ns8390.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-otulip.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-pci.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-rtl8139.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sis900.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-sk_g16.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-smc9000.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tiara.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-timer.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tlan.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-tulip.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-via-rhine.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libdrivers_a-w89c840.Po@am__quote@
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-libdrivers_a-config.o: config.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='config.c' object='libdrivers_a-config.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.o `test -f 'config.c' || echo '$(srcdir)/'`config.c
+-
+-libdrivers_a-config.obj: config.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-config.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-config.Tpo" -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-config.Tpo" "$(DEPDIR)/libdrivers_a-config.Po"; else rm -f "$(DEPDIR)/libdrivers_a-config.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='config.c' object='libdrivers_a-config.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-config.obj `if test -f 'config.c'; then $(CYGPATH_W) 'config.c'; else $(CYGPATH_W) '$(srcdir)/config.c'; fi`
+-
+-libdrivers_a-fsys_tftp.o: fsys_tftp.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.o `test -f 'fsys_tftp.c' || echo '$(srcdir)/'`fsys_tftp.c
+-
+-libdrivers_a-fsys_tftp.obj: fsys_tftp.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fsys_tftp.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo" "$(DEPDIR)/libdrivers_a-fsys_tftp.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fsys_tftp.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_tftp.c' object='libdrivers_a-fsys_tftp.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fsys_tftp.obj `if test -f 'fsys_tftp.c'; then $(CYGPATH_W) 'fsys_tftp.c'; else $(CYGPATH_W) '$(srcdir)/fsys_tftp.c'; fi`
+-
+-libdrivers_a-main.o: main.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='main.c' object='libdrivers_a-main.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.o `test -f 'main.c' || echo '$(srcdir)/'`main.c
+-
+-libdrivers_a-main.obj: main.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-main.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-main.Tpo" -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-main.Tpo" "$(DEPDIR)/libdrivers_a-main.Po"; else rm -f "$(DEPDIR)/libdrivers_a-main.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='main.c' object='libdrivers_a-main.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-main.obj `if test -f 'main.c'; then $(CYGPATH_W) 'main.c'; else $(CYGPATH_W) '$(srcdir)/main.c'; fi`
+-
+-libdrivers_a-misc.o: misc.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='misc.c' object='libdrivers_a-misc.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.o `test -f 'misc.c' || echo '$(srcdir)/'`misc.c
+-
+-libdrivers_a-misc.obj: misc.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-misc.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-misc.Tpo" -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-misc.Tpo" "$(DEPDIR)/libdrivers_a-misc.Po"; else rm -f "$(DEPDIR)/libdrivers_a-misc.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='misc.c' object='libdrivers_a-misc.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-misc.obj `if test -f 'misc.c'; then $(CYGPATH_W) 'misc.c'; else $(CYGPATH_W) '$(srcdir)/misc.c'; fi`
+-
+-libdrivers_a-pci.o: pci.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='pci.c' object='libdrivers_a-pci.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.o `test -f 'pci.c' || echo '$(srcdir)/'`pci.c
+-
+-libdrivers_a-pci.obj: pci.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-pci.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-pci.Tpo" -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-pci.Tpo" "$(DEPDIR)/libdrivers_a-pci.Po"; else rm -f "$(DEPDIR)/libdrivers_a-pci.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='pci.c' object='libdrivers_a-pci.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-pci.obj `if test -f 'pci.c'; then $(CYGPATH_W) 'pci.c'; else $(CYGPATH_W) '$(srcdir)/pci.c'; fi`
+-
+-libdrivers_a-timer.o: timer.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='timer.c' object='libdrivers_a-timer.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.o `test -f 'timer.c' || echo '$(srcdir)/'`timer.c
+-
+-libdrivers_a-timer.obj: timer.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-timer.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-timer.Tpo" -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-timer.Tpo" "$(DEPDIR)/libdrivers_a-timer.Po"; else rm -f "$(DEPDIR)/libdrivers_a-timer.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='timer.c' object='libdrivers_a-timer.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-timer.obj `if test -f 'timer.c'; then $(CYGPATH_W) 'timer.c'; else $(CYGPATH_W) '$(srcdir)/timer.c'; fi`
+-
+-libdrivers_a-3c509.o: 3c509.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c509.c' object='libdrivers_a-3c509.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.o `test -f '3c509.c' || echo '$(srcdir)/'`3c509.c
+-
+-libdrivers_a-3c509.obj: 3c509.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c509.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c509.Tpo" -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c509.Tpo" "$(DEPDIR)/libdrivers_a-3c509.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c509.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c509.c' object='libdrivers_a-3c509.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c509.obj `if test -f '3c509.c'; then $(CYGPATH_W) '3c509.c'; else $(CYGPATH_W) '$(srcdir)/3c509.c'; fi`
+-
+-libdrivers_a-3c595.o: 3c595.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c595.c' object='libdrivers_a-3c595.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.o `test -f '3c595.c' || echo '$(srcdir)/'`3c595.c
+-
+-libdrivers_a-3c595.obj: 3c595.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c595.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c595.Tpo" -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c595.Tpo" "$(DEPDIR)/libdrivers_a-3c595.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c595.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c595.c' object='libdrivers_a-3c595.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c595.obj `if test -f '3c595.c'; then $(CYGPATH_W) '3c595.c'; else $(CYGPATH_W) '$(srcdir)/3c595.c'; fi`
+-
+-libdrivers_a-3c90x.o: 3c90x.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c90x.c' object='libdrivers_a-3c90x.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.o `test -f '3c90x.c' || echo '$(srcdir)/'`3c90x.c
+-
+-libdrivers_a-3c90x.obj: 3c90x.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-3c90x.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-3c90x.Tpo" -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo" "$(DEPDIR)/libdrivers_a-3c90x.Po"; else rm -f "$(DEPDIR)/libdrivers_a-3c90x.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='3c90x.c' object='libdrivers_a-3c90x.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-3c90x.obj `if test -f '3c90x.c'; then $(CYGPATH_W) '3c90x.c'; else $(CYGPATH_W) '$(srcdir)/3c90x.c'; fi`
+-
+-libdrivers_a-cs89x0.o: cs89x0.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cs89x0.c' object='libdrivers_a-cs89x0.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.o `test -f 'cs89x0.c' || echo '$(srcdir)/'`cs89x0.c
+-
+-libdrivers_a-cs89x0.obj: cs89x0.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-cs89x0.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo" "$(DEPDIR)/libdrivers_a-cs89x0.Po"; else rm -f "$(DEPDIR)/libdrivers_a-cs89x0.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cs89x0.c' object='libdrivers_a-cs89x0.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-cs89x0.obj `if test -f 'cs89x0.c'; then $(CYGPATH_W) 'cs89x0.c'; else $(CYGPATH_W) '$(srcdir)/cs89x0.c'; fi`
+-
+-libdrivers_a-davicom.o: davicom.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='davicom.c' object='libdrivers_a-davicom.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.o `test -f 'davicom.c' || echo '$(srcdir)/'`davicom.c
+-
+-libdrivers_a-davicom.obj: davicom.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-davicom.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-davicom.Tpo" -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-davicom.Tpo" "$(DEPDIR)/libdrivers_a-davicom.Po"; else rm -f "$(DEPDIR)/libdrivers_a-davicom.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='davicom.c' object='libdrivers_a-davicom.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-davicom.obj `if test -f 'davicom.c'; then $(CYGPATH_W) 'davicom.c'; else $(CYGPATH_W) '$(srcdir)/davicom.c'; fi`
+-
+-libdrivers_a-depca.o: depca.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='depca.c' object='libdrivers_a-depca.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.o `test -f 'depca.c' || echo '$(srcdir)/'`depca.c
+-
+-libdrivers_a-depca.obj: depca.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-depca.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-depca.Tpo" -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-depca.Tpo" "$(DEPDIR)/libdrivers_a-depca.Po"; else rm -f "$(DEPDIR)/libdrivers_a-depca.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='depca.c' object='libdrivers_a-depca.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-depca.obj `if test -f 'depca.c'; then $(CYGPATH_W) 'depca.c'; else $(CYGPATH_W) '$(srcdir)/depca.c'; fi`
+-
+-libdrivers_a-eepro.o: eepro.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='eepro.c' object='libdrivers_a-eepro.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.o `test -f 'eepro.c' || echo '$(srcdir)/'`eepro.c
+-
+-libdrivers_a-eepro.obj: eepro.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro.Tpo" -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-eepro.Tpo" "$(DEPDIR)/libdrivers_a-eepro.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='eepro.c' object='libdrivers_a-eepro.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro.obj `if test -f 'eepro.c'; then $(CYGPATH_W) 'eepro.c'; else $(CYGPATH_W) '$(srcdir)/eepro.c'; fi`
+-
+-libdrivers_a-eepro100.o: eepro100.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='eepro100.c' object='libdrivers_a-eepro100.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.o `test -f 'eepro100.c' || echo '$(srcdir)/'`eepro100.c
+-
+-libdrivers_a-eepro100.obj: eepro100.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-eepro100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-eepro100.Tpo" -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo" "$(DEPDIR)/libdrivers_a-eepro100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-eepro100.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='eepro100.c' object='libdrivers_a-eepro100.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-eepro100.obj `if test -f 'eepro100.c'; then $(CYGPATH_W) 'eepro100.c'; else $(CYGPATH_W) '$(srcdir)/eepro100.c'; fi`
+-
+-libdrivers_a-epic100.o: epic100.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='epic100.c' object='libdrivers_a-epic100.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.o `test -f 'epic100.c' || echo '$(srcdir)/'`epic100.c
+-
+-libdrivers_a-epic100.obj: epic100.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-epic100.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-epic100.Tpo" -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-epic100.Tpo" "$(DEPDIR)/libdrivers_a-epic100.Po"; else rm -f "$(DEPDIR)/libdrivers_a-epic100.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='epic100.c' object='libdrivers_a-epic100.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-epic100.obj `if test -f 'epic100.c'; then $(CYGPATH_W) 'epic100.c'; else $(CYGPATH_W) '$(srcdir)/epic100.c'; fi`
+-
+-libdrivers_a-fa311.o: fa311.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fa311.c' object='libdrivers_a-fa311.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.o `test -f 'fa311.c' || echo '$(srcdir)/'`fa311.c
+-
+-libdrivers_a-fa311.obj: fa311.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-fa311.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-fa311.Tpo" -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-fa311.Tpo" "$(DEPDIR)/libdrivers_a-fa311.Po"; else rm -f "$(DEPDIR)/libdrivers_a-fa311.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fa311.c' object='libdrivers_a-fa311.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-fa311.obj `if test -f 'fa311.c'; then $(CYGPATH_W) 'fa311.c'; else $(CYGPATH_W) '$(srcdir)/fa311.c'; fi`
+-
+-libdrivers_a-i82586.o: i82586.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='i82586.c' object='libdrivers_a-i82586.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.o `test -f 'i82586.c' || echo '$(srcdir)/'`i82586.c
+-
+-libdrivers_a-i82586.obj: i82586.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-i82586.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-i82586.Tpo" -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-i82586.Tpo" "$(DEPDIR)/libdrivers_a-i82586.Po"; else rm -f "$(DEPDIR)/libdrivers_a-i82586.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='i82586.c' object='libdrivers_a-i82586.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-i82586.obj `if test -f 'i82586.c'; then $(CYGPATH_W) 'i82586.c'; else $(CYGPATH_W) '$(srcdir)/i82586.c'; fi`
+-
+-libdrivers_a-lance.o: lance.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='lance.c' object='libdrivers_a-lance.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.o `test -f 'lance.c' || echo '$(srcdir)/'`lance.c
+-
+-libdrivers_a-lance.obj: lance.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-lance.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-lance.Tpo" -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-lance.Tpo" "$(DEPDIR)/libdrivers_a-lance.Po"; else rm -f "$(DEPDIR)/libdrivers_a-lance.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='lance.c' object='libdrivers_a-lance.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-lance.obj `if test -f 'lance.c'; then $(CYGPATH_W) 'lance.c'; else $(CYGPATH_W) '$(srcdir)/lance.c'; fi`
+-
+-libdrivers_a-natsemi.o: natsemi.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='natsemi.c' object='libdrivers_a-natsemi.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.o `test -f 'natsemi.c' || echo '$(srcdir)/'`natsemi.c
+-
+-libdrivers_a-natsemi.obj: natsemi.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-natsemi.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-natsemi.Tpo" -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo" "$(DEPDIR)/libdrivers_a-natsemi.Po"; else rm -f "$(DEPDIR)/libdrivers_a-natsemi.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='natsemi.c' object='libdrivers_a-natsemi.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-natsemi.obj `if test -f 'natsemi.c'; then $(CYGPATH_W) 'natsemi.c'; else $(CYGPATH_W) '$(srcdir)/natsemi.c'; fi`
+-
+-libdrivers_a-ni5010.o: ni5010.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='ni5010.c' object='libdrivers_a-ni5010.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.o `test -f 'ni5010.c' || echo '$(srcdir)/'`ni5010.c
+-
+-libdrivers_a-ni5010.obj: ni5010.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ni5010.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ni5010.Tpo" -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo" "$(DEPDIR)/libdrivers_a-ni5010.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ni5010.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='ni5010.c' object='libdrivers_a-ni5010.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ni5010.obj `if test -f 'ni5010.c'; then $(CYGPATH_W) 'ni5010.c'; else $(CYGPATH_W) '$(srcdir)/ni5010.c'; fi`
+-
+-libdrivers_a-ns8390.o: ns8390.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='ns8390.c' object='libdrivers_a-ns8390.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.o `test -f 'ns8390.c' || echo '$(srcdir)/'`ns8390.c
+-
+-libdrivers_a-ns8390.obj: ns8390.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-ns8390.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-ns8390.Tpo" -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo" "$(DEPDIR)/libdrivers_a-ns8390.Po"; else rm -f "$(DEPDIR)/libdrivers_a-ns8390.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='ns8390.c' object='libdrivers_a-ns8390.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-ns8390.obj `if test -f 'ns8390.c'; then $(CYGPATH_W) 'ns8390.c'; else $(CYGPATH_W) '$(srcdir)/ns8390.c'; fi`
+-
+-libdrivers_a-otulip.o: otulip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='otulip.c' object='libdrivers_a-otulip.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.o `test -f 'otulip.c' || echo '$(srcdir)/'`otulip.c
+-
+-libdrivers_a-otulip.obj: otulip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-otulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-otulip.Tpo" -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-otulip.Tpo" "$(DEPDIR)/libdrivers_a-otulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-otulip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='otulip.c' object='libdrivers_a-otulip.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-otulip.obj `if test -f 'otulip.c'; then $(CYGPATH_W) 'otulip.c'; else $(CYGPATH_W) '$(srcdir)/otulip.c'; fi`
+-
+-libdrivers_a-rtl8139.o: rtl8139.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='rtl8139.c' object='libdrivers_a-rtl8139.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.o `test -f 'rtl8139.c' || echo '$(srcdir)/'`rtl8139.c
+-
+-libdrivers_a-rtl8139.obj: rtl8139.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-rtl8139.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo" "$(DEPDIR)/libdrivers_a-rtl8139.Po"; else rm -f "$(DEPDIR)/libdrivers_a-rtl8139.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='rtl8139.c' object='libdrivers_a-rtl8139.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-rtl8139.obj `if test -f 'rtl8139.c'; then $(CYGPATH_W) 'rtl8139.c'; else $(CYGPATH_W) '$(srcdir)/rtl8139.c'; fi`
+-
+-libdrivers_a-sis900.o: sis900.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sis900.c' object='libdrivers_a-sis900.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.o `test -f 'sis900.c' || echo '$(srcdir)/'`sis900.c
+-
+-libdrivers_a-sis900.obj: sis900.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sis900.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sis900.Tpo" -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-sis900.Tpo" "$(DEPDIR)/libdrivers_a-sis900.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sis900.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sis900.c' object='libdrivers_a-sis900.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sis900.obj `if test -f 'sis900.c'; then $(CYGPATH_W) 'sis900.c'; else $(CYGPATH_W) '$(srcdir)/sis900.c'; fi`
+-
+-libdrivers_a-sk_g16.o: sk_g16.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sk_g16.c' object='libdrivers_a-sk_g16.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.o `test -f 'sk_g16.c' || echo '$(srcdir)/'`sk_g16.c
+-
+-libdrivers_a-sk_g16.obj: sk_g16.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-sk_g16.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo" "$(DEPDIR)/libdrivers_a-sk_g16.Po"; else rm -f "$(DEPDIR)/libdrivers_a-sk_g16.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='sk_g16.c' object='libdrivers_a-sk_g16.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-sk_g16.obj `if test -f 'sk_g16.c'; then $(CYGPATH_W) 'sk_g16.c'; else $(CYGPATH_W) '$(srcdir)/sk_g16.c'; fi`
+-
+-libdrivers_a-smc9000.o: smc9000.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smc9000.c' object='libdrivers_a-smc9000.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.o `test -f 'smc9000.c' || echo '$(srcdir)/'`smc9000.c
+-
+-libdrivers_a-smc9000.obj: smc9000.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-smc9000.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-smc9000.Tpo" -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo" "$(DEPDIR)/libdrivers_a-smc9000.Po"; else rm -f "$(DEPDIR)/libdrivers_a-smc9000.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smc9000.c' object='libdrivers_a-smc9000.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-smc9000.obj `if test -f 'smc9000.c'; then $(CYGPATH_W) 'smc9000.c'; else $(CYGPATH_W) '$(srcdir)/smc9000.c'; fi`
+-
+-libdrivers_a-tiara.o: tiara.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tiara.c' object='libdrivers_a-tiara.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.o `test -f 'tiara.c' || echo '$(srcdir)/'`tiara.c
+-
+-libdrivers_a-tiara.obj: tiara.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tiara.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tiara.Tpo" -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tiara.Tpo" "$(DEPDIR)/libdrivers_a-tiara.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tiara.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tiara.c' object='libdrivers_a-tiara.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tiara.obj `if test -f 'tiara.c'; then $(CYGPATH_W) 'tiara.c'; else $(CYGPATH_W) '$(srcdir)/tiara.c'; fi`
+-
+-libdrivers_a-tlan.o: tlan.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tlan.c' object='libdrivers_a-tlan.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.o `test -f 'tlan.c' || echo '$(srcdir)/'`tlan.c
+-
+-libdrivers_a-tlan.obj: tlan.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tlan.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tlan.Tpo" -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tlan.Tpo" "$(DEPDIR)/libdrivers_a-tlan.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tlan.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tlan.c' object='libdrivers_a-tlan.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tlan.obj `if test -f 'tlan.c'; then $(CYGPATH_W) 'tlan.c'; else $(CYGPATH_W) '$(srcdir)/tlan.c'; fi`
+-
+-libdrivers_a-tulip.o: tulip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tulip.c' object='libdrivers_a-tulip.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.o `test -f 'tulip.c' || echo '$(srcdir)/'`tulip.c
+-
+-libdrivers_a-tulip.obj: tulip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-tulip.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-tulip.Tpo" -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-tulip.Tpo" "$(DEPDIR)/libdrivers_a-tulip.Po"; else rm -f "$(DEPDIR)/libdrivers_a-tulip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tulip.c' object='libdrivers_a-tulip.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-tulip.obj `if test -f 'tulip.c'; then $(CYGPATH_W) 'tulip.c'; else $(CYGPATH_W) '$(srcdir)/tulip.c'; fi`
+-
+-libdrivers_a-via-rhine.o: via-rhine.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='via-rhine.c' object='libdrivers_a-via-rhine.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.o `test -f 'via-rhine.c' || echo '$(srcdir)/'`via-rhine.c
+-
+-libdrivers_a-via-rhine.obj: via-rhine.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-via-rhine.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo" "$(DEPDIR)/libdrivers_a-via-rhine.Po"; else rm -f "$(DEPDIR)/libdrivers_a-via-rhine.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='via-rhine.c' object='libdrivers_a-via-rhine.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-via-rhine.obj `if test -f 'via-rhine.c'; then $(CYGPATH_W) 'via-rhine.c'; else $(CYGPATH_W) '$(srcdir)/via-rhine.c'; fi`
+-
+-libdrivers_a-w89c840.o: w89c840.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.o -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='w89c840.c' object='libdrivers_a-w89c840.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.o `test -f 'w89c840.c' || echo '$(srcdir)/'`w89c840.c
+-
+-libdrivers_a-w89c840.obj: w89c840.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -MT libdrivers_a-w89c840.obj -MD -MP -MF "$(DEPDIR)/libdrivers_a-w89c840.Tpo" -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo" "$(DEPDIR)/libdrivers_a-w89c840.Po"; else rm -f "$(DEPDIR)/libdrivers_a-w89c840.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='w89c840.c' object='libdrivers_a-w89c840.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libdrivers_a_CFLAGS) $(CFLAGS) -c -o libdrivers_a-w89c840.obj `if test -f 'w89c840.c'; then $(CYGPATH_W) 'w89c840.c'; else $(CYGPATH_W) '$(srcdir)/w89c840.c'; fi`
+-uninstall-info-am:
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(LIBRARIES)
+-installdirs:
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am:
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+-      clean-noinstLIBRARIES ctags distclean distclean-compile \
+-      distclean-generic distclean-tags distdir dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-strip installcheck \
+-      installcheck-am installdirs maintainer-clean \
+-      maintainer-clean-generic mostlyclean mostlyclean-compile \
+-      mostlyclean-generic pdf pdf-am ps ps-am tags uninstall \
+-      uninstall-am uninstall-info-am
+-
+-
+-# Is it really necessary to specify dependecies explicitly?
+-$(3c509_drivers): 3c509.c 3c509.h
+-$(3c509_drivers): %.o: 3c509.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(3c595_drivers): 3c595.c 3c595.h
+-$(3c595_drivers): %.o: 3c595.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(3c90x_drivers): 3c90x.c
+-$(3c90x_drivers): %.o: 3c90x.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(cs89x0_drivers): cs89x0.c cs89x0.h
+-$(cs89x0_drivers): %.o: cs89x0.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(davicom_drivers): davicom.c
+-$(davicom_drivers): %.o: davicom.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(depca_drivers): depca.c
+-$(depca_drivers): %.o: depca.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(eepro_drivers): eepro.c
+-$(eepro_drivers): %.o: eepro.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(eepro100_drivers): eepro100.c
+-$(eepro100_drivers): %.o: eepro100.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(epic100_drivers): epic100.c epic100.h
+-$(epic100_drivers): %.o: epic100.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-#$(fa311_drivers): fa311.c
+-#$(fa311_drivers): %.o: fa311.c
+-#     $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-#       $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(i82586_drivers): i82586.c
+-$(i82586_drivers): %.o: i82586.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(lance_drivers): lance.c
+-$(lance_drivers): %.o: lance.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(natsemi_drivers): natsemi.c
+-$(natsemi_drivers): %.o: natsemi.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(ni5010_drivers): ni5010.c
+-$(ni5010_drivers): %.o: ni5010.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(ns8390_drivers): ns8390.c ns8390.h
+-$(ns8390_drivers): %.o: ns8390.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(otulip_drivers): otulip.c otulip.h
+-$(otulip_drivers): %.o: otulip.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(rtl8139_drivers): rtl8139.c
+-$(rtl8139_drivers): %.o: rtl8139.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(sis900_drivers): sis900.c
+-$(sis900_drivers): %.o: sis900.c sis900.h
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(sk_g16_drivers): sk_g16.c sk_g16.h
+-$(sk_g16_drivers): %.o: sk_g16.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(smc9000_drivers): smc9000.c smc9000.h
+-$(smc9000_drivers): %.o: smc9000.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(tiara_drivers): tiara.c
+-$(tiara_drivers): %.o: tiara.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-#$(tlan_drivers): tlan.c
+-#$(tlan_drivers): %.o: tlan.c
+-#     $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-#       $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(tulip_drivers): tulip.c
+-$(tulip_drivers): %.o: tulip.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(via_rhine_drivers): via-rhine.c
+-$(via_rhine_drivers): %.o: via-rhine.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-
+-$(w89c840_drivers): w89c840.c
+-$(w89c840_drivers): %.o: w89c840.c
+-      $(COMPILE) $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-        $(NET_EXTRAFLAGS) $($(basename $@)_o_CFLAGS) -o $@ -c $<
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/netboot/etherboot.h b/netboot/etherboot.h
+index 74ca16f..9c02b25 100644
+--- a/netboot/etherboot.h
++++ b/netboot/etherboot.h
+@@ -246,7 +246,7 @@ Author: Martin Renters
+ typedef struct
+ {
+-  unsigned long       s_addr;
++  unsigned int        s_addr;
+ }
+ in_addr;
+@@ -302,7 +302,7 @@ struct bootp_t
+   char bp_htype;
+   char bp_hlen;
+   char bp_hops;
+-  unsigned long bp_xid;
++  unsigned int bp_xid;
+   unsigned short bp_secs;
+   unsigned short unused;
+   in_addr bp_ciaddr;
+@@ -411,25 +411,25 @@ struct rpc_t
+     
+     struct
+     {
+-      long id;
+-      long type;
+-      long rpcvers;
+-      long prog;
+-      long vers;
+-      long proc;
+-      long data[1];
++      int id;
++      int type;
++      int rpcvers;
++      int prog;
++      int vers;
++      int proc;
++      int data[1];
+     }
+     call;
+     
+     struct
+     {
+-      long id;
+-      long type;
+-      long rstatus;
+-      long verifier;
+-      long v2;
+-      long astatus;
+-      long data[1];
++      int id;
++      int type;
++      int rstatus;
++      int verifier;
++      int v2;
++      int astatus;
++      int data[1];
+     }
+     reply;
+   }
+@@ -531,9 +531,7 @@ extern int ip_abort;
+ extern int network_ready;
+ extern struct rom_info rom;
+ extern struct arptable_t arptable[MAX_ARP];
+-extern struct bootpd_t bootp_data;
+ #define       BOOTP_DATA_ADDR (&bootp_data)
+-extern unsigned char *end_of_rfc1533;
+ /* config.c */
+ extern struct nic nic;
+diff --git a/netboot/main.c b/netboot/main.c
+index 82759b6..b8ba920 100644
+--- a/netboot/main.c
++++ b/netboot/main.c
+@@ -53,9 +53,9 @@ int network_ready = 0;
+ struct rom_info rom;
+ static int vendorext_isvalid;
+-static unsigned long netmask;
++static unsigned int netmask;
+ static struct bootpd_t bootp_data;
+-static unsigned long xid;
++static unsigned int xid;
+ static unsigned char *end_of_rfc1533 = NULL;
+ #ifndef       NO_DHCP_SUPPORT
+@@ -773,7 +773,7 @@ await_reply (int type, int ival, void *ptr, int timeout)
+         if (nic.packetlen >= ETH_HLEN + sizeof (struct arprequest)
+             && ptype == ARP)
+           {
+-            unsigned long tmp;
++            unsigned int tmp;
+             arpreply = (struct arprequest *) &nic.packet[ETH_HLEN];
+             
+diff --git a/netboot/misc.c b/netboot/misc.c
+index 28614fd..6ea9a8e 100644
+--- a/netboot/misc.c
++++ b/netboot/misc.c
+@@ -21,6 +21,7 @@
+ #define GRUB  1
+ #include <etherboot.h>
++#include <stdarg.h>
+ void
+ sleep (int secs)
+@@ -71,9 +72,10 @@ PRINTF and friends
+       Note: width specification not supported
+ **************************************************************************/
+ static int
+-etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
++etherboot_vsprintf (char *buf, const char *fmt, va_list args)
+ {
+   char *p, *s;
++  int n;
+   
+   s = buf;
+   for ( ; *fmt != '\0'; ++fmt)
+@@ -86,7 +88,7 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+       
+       if (*++fmt == 's')
+       {
+-        for (p = (char *) *dp++; *p != '\0'; p++)
++        for (p = va_arg (args, char *); *p != '\0'; p++)
+           buf ? *s++ = *p : grub_putchar (*p);
+       }
+       else
+@@ -120,46 +122,44 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+          */
+         if ((*fmt | 0x20) == 'x')
+           {
+-            /* With x86 gcc, sizeof(long) == sizeof(int) */
+-            const long *lp = (const long *) dp;
+-            long h = *lp++;
+             int ncase = (*fmt & 0x20);
++
++            n = va_arg (args, int);
+             
+-            dp = (const int *) lp;
+             if (alt)
+               {
+                 *q++ = '0';
+                 *q++ = 'X' | ncase;
+               }
+             for (; shift >= 0; shift -= 4)
+-              *q++ = "0123456789ABCDEF"[(h >> shift) & 0xF] | ncase;
++              *q++ = "0123456789ABCDEF"[(n >> shift) & 0xF] | ncase;
+           }
+         else if (*fmt == 'd')
+           {
+-            int i = *dp++;
+             char *r;
+-            
+-            if (i < 0)
++
++            n = va_arg (args, int);
++            if (n < 0)
+               {
+                 *q++ = '-';
+-                i = -i;
++                n = -n;
+               }
+             
+             p = q;            /* save beginning of digits */
+             do
+               {
+-                *q++ = '0' + (i % 10);
+-                i /= 10;
++                *q++ = '0' + (n % 10);
++                n /= 10;
+               }
+-            while (i);
++            while (n);
+             
+             /* reverse digits, stop in middle */
+             r = q;            /* don't alter q */
+             while (--r > p)
+               {
+-                i = *r;
++                n = *r;
+                 *r = *p;
+-                *p++ = i;
++                *p++ = n;
+               }
+           }
+         else if (*fmt == '@')
+@@ -167,14 +167,12 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+             unsigned char *r;
+             union
+             {
+-              long            l;
++              int             l;
+               unsigned char   c[4];
+             }
+             u;
+-            const long *lp = (const long *) dp;
+             
+-            u.l = *lp++;
+-            dp = (const int *) lp;
++            u.l = va_arg (args, int);
+             
+             for (r = &u.c[0]; r < &u.c[4]; ++r)
+               q += etherboot_sprintf (q, "%d.", *r);
+@@ -184,15 +182,15 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+         else if (*fmt == '!')
+           {
+             char *r;
+-            p = (char *) *dp++;
+-            
++
++            p = va_arg (args, char *);
+             for (r = p + ETH_ALEN; p < r; ++p)
+               q += etherboot_sprintf (q, "%hhX:", *p);
+             
+             --q;
+           }
+         else if (*fmt == 'c')
+-          *q++ = *dp++;
++          *q++ = va_arg (args, int);
+         else
+           *q++ = *fmt;
+         
+@@ -211,13 +209,23 @@ etherboot_vsprintf (char *buf, const char *fmt, const int *dp)
+ int
+ etherboot_sprintf (char *buf, const char *fmt, ...)
+ {
+-  return etherboot_vsprintf (buf, fmt, ((const int *) &fmt) + 1);
++  va_list ap;
++  int ret;
++
++  va_start (ap, fmt);
++  ret = etherboot_vsprintf (buf, fmt, ap);
++  va_end (ap);
++  return ret;
+ }
+ void
+ etherboot_printf (const char *fmt, ...)
+ {
+-  (void) etherboot_vsprintf (0, fmt, ((const int *) &fmt) + 1);
++  va_list ap;
++
++  va_start (ap, fmt);
++  (void) etherboot_vsprintf (0, fmt, ap);
++  va_end (ap);
+ }
+ int
+diff --git a/netboot/osdep.h b/netboot/osdep.h
+index 57218bf..881141b 100644
+--- a/netboot/osdep.h
++++ b/netboot/osdep.h
+@@ -21,10 +21,10 @@
+ #elif defined(__LITTLE_ENDIAN)
+ #     if !defined(__constant_htonl)
+ #             define __constant_htonl(x) \
+-        ((unsigned long int)((((unsigned long int)(x) & 0x000000ffU) << 24) | \
+-                             (((unsigned long int)(x) & 0x0000ff00U) <<  8) | \
+-                             (((unsigned long int)(x) & 0x00ff0000U) >>  8) | \
+-                             (((unsigned long int)(x) & 0xff000000U) >> 24)))
++        ((unsigned int)((((unsigned int)(x) & 0x000000ffU) << 24) | \
++                        (((unsigned int)(x) & 0x0000ff00U) <<  8) | \
++                        (((unsigned int)(x) & 0x00ff0000U) >>  8) | \
++                        (((unsigned int)(x) & 0xff000000U) >> 24)))
+ #     endif
+ #     if !defined(__constant_htons)
+ #             define __constant_htons(x) \
+@@ -36,11 +36,11 @@
+ #endif
+ #define ntohl(x) \
+-(__builtin_constant_p(x) ? \
++(__builtin_constant_p((unsigned int)x) ? \
+  __constant_htonl((x)) : \
+  __swap32(x))
+ #define htonl(x) \
+-(__builtin_constant_p(x) ? \
++(__builtin_constant_p((unsigned int)x) ? \
+  __constant_htonl((x)) : \
+  __swap32(x))
+ #define ntohs(x) \
+@@ -52,21 +52,29 @@
+  __constant_htons((x)) : \
+  __swap16(x))
+-static inline unsigned long int __swap32(unsigned long int x)
++static inline unsigned int __swap32(unsigned int x)
+ {
++#ifdef PLATFORM_EFI
++      __asm__("bswapl %0" : "=r" (x) : "0" (x));
++#else
+       __asm__("xchgb %b0,%h0\n\t"
+               "rorl $16,%0\n\t"
+               "xchgb %b0,%h0"
+               : "=q" (x)
+               : "0" (x));
++#endif
+       return x;
+ }
+ static inline unsigned short int __swap16(unsigned short int x)
+ {
++#ifdef PLATFORM_EFI
++      return __constant_htons(x);
++#else
+       __asm__("xchgb %b0,%h0"
+               : "=q" (x)
+               : "0" (x));
++#endif
+       return x;
+ }
+@@ -76,7 +84,7 @@ static inline unsigned short int __swap16(unsigned short int x)
+ #include "linux-asm-io.h"
+-typedef       unsigned long Address;
++typedef       unsigned int Address;
+ /* ANSI prototyping macro */
+ #ifdef        __STDC__
+diff --git a/stage1/.gitignore b/stage1/.gitignore
+new file mode 100644
+index 0000000..5d89f6d
+--- /dev/null
++++ b/stage1/.gitignore
+@@ -0,0 +1,2 @@
++Makefile.in
++.deps
+diff --git a/stage1/Makefile.am b/stage1/Makefile.am
+index 0afc285..cbae397 100644
+--- a/stage1/Makefile.am
++++ b/stage1/Makefile.am
+@@ -1,11 +1,14 @@
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+-nodist_pkglib_DATA = stage1
+-
+-CLEANFILES = $(nodist_pkglib_DATA)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+ # We can't use builtins or standard includes.
+ AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
++LDFLAGS = $(LOADER_LDFLAGS) -nostdlib -Wl,-N,-Ttext,7C00
++
++if !PLATFORM_EFI
++
++nodist_pkgdata_DATA = stage1
++
++CLEANFILES = $(nodist_pkgdata_DATA)
+ noinst_PROGRAMS = stage1.exec
+ stage1_exec_SOURCES = stage1.S stage1.h
+@@ -13,3 +16,5 @@ stage1_exec_SOURCES = stage1.S stage1.h
+ SUFFIXES = .exec
+ .exec:
+       $(OBJCOPY) -O binary $< $@
++
++endif
+diff --git a/stage1/Makefile.in b/stage1/Makefile.in
+deleted file mode 100644
+index 7134bdf..0000000
+--- a/stage1/Makefile.in
++++ /dev/null
+@@ -1,433 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-
+-SOURCES = $(stage1_exec_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-noinst_PROGRAMS = stage1.exec$(EXEEXT)
+-subdir = stage1
+-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-PROGRAMS = $(noinst_PROGRAMS)
+-am_stage1_exec_OBJECTS = stage1.$(OBJEXT)
+-stage1_exec_OBJECTS = $(am_stage1_exec_OBJECTS)
+-stage1_exec_LDADD = $(LDADD)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(stage1_exec_SOURCES)
+-DIST_SOURCES = $(stage1_exec_SOURCES)
+-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+-am__vpath_adj = case $$p in \
+-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+-    *) f=$$p;; \
+-  esac;
+-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(pkglibdir)"
+-nodist_pkglibDATA_INSTALL = $(INSTALL_DATA)
+-DATA = $(nodist_pkglib_DATA)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = -nostdlib -Wl,-N,-Ttext,7C00
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-nodist_pkglib_DATA = stage1
+-CLEANFILES = $(nodist_pkglib_DATA)
+-
+-# We can't use builtins or standard includes.
+-AM_CCASFLAGS = $(STAGE1_CFLAGS) -fno-builtin -nostdinc
+-stage1_exec_SOURCES = stage1.S stage1.h
+-SUFFIXES = .exec
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .exec .S .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  stage1/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  stage1/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-clean-noinstPROGRAMS:
+-      -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+-stage1.exec$(EXEEXT): $(stage1_exec_OBJECTS) $(stage1_exec_DEPENDENCIES) 
+-      @rm -f stage1.exec$(EXEEXT)
+-      $(LINK) $(stage1_exec_LDFLAGS) $(stage1_exec_OBJECTS) $(stage1_exec_LDADD) $(LIBS)
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-.S.o:
+-      $(CCASCOMPILE) -c $<
+-
+-.S.obj:
+-      $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+-install-nodist_pkglibDATA: $(nodist_pkglib_DATA)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
+-      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
+-        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+-        f=$(am__strip_dir) \
+-        echo " $(nodist_pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-        $(nodist_pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+-      done
+-
+-uninstall-nodist_pkglibDATA:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(nodist_pkglib_DATA)'; for p in $$list; do \
+-        f=$(am__strip_dir) \
+-        echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-        rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+-      done
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(PROGRAMS) $(DATA)
+-installdirs:
+-      for dir in "$(DESTDIR)$(pkglibdir)"; do \
+-        test -z "$$dir" || $(mkdir_p) "$$dir"; \
+-      done
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-      -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-generic clean-noinstPROGRAMS mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am: install-nodist_pkglibDATA
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am uninstall-nodist_pkglibDATA
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+-      clean-noinstPROGRAMS ctags distclean distclean-compile \
+-      distclean-generic distclean-tags distdir dvi dvi-am html \
+-      html-am info info-am install install-am install-data \
+-      install-data-am install-exec install-exec-am install-info \
+-      install-info-am install-man install-nodist_pkglibDATA \
+-      install-strip installcheck installcheck-am installdirs \
+-      maintainer-clean maintainer-clean-generic mostlyclean \
+-      mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+-      tags uninstall uninstall-am uninstall-info-am \
+-      uninstall-nodist_pkglibDATA
+-
+-.exec:
+-      $(OBJCOPY) -O binary $< $@
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/stage1/stage1.S b/stage1/stage1.S
+index 985963d..3a896be 100644
+--- a/stage1/stage1.S
++++ b/stage1/stage1.S
+@@ -31,6 +31,8 @@
+       /* Print message string */
+ #define MSG(x)        movw $ABS(x), %si; call message
++      /* Print verbose message string */
++#define VMSG(x)
+       /* XXX: binutils-2.9.1.0.x doesn't produce a short opcode for this. */
+ #define       MOV_MEM_TO_AL(x)        .byte 0xa0;  .word x
+@@ -151,7 +153,7 @@ real_start:
+       pushw   %dx
+       /* print a notification message on the screen */
+-      MSG(notification_string)
++      VMSG(notification_string)
+       /* do not probe LBA if the drive is a floppy */
+       testb   $STAGE1_BIOS_HD_FLAG, %dl
+diff --git a/stage2/.gitignore b/stage2/.gitignore
+new file mode 100644
+index 0000000..e0480a0
+--- /dev/null
++++ b/stage2/.gitignore
+@@ -0,0 +1,5 @@
++Makefile.in
++Makefile
++.deps
++*.a
++*.o
+diff --git a/stage2/Makefile.am b/stage2/Makefile.am
+index f8e6d42..04ff165 100644
+--- a/stage2/Makefile.am
++++ b/stage2/Makefile.am
+@@ -7,19 +7,23 @@ noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+         fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+       imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+       nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
++      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h graphics.h gpt.h
+ EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+ # For <stage1.h>.
+-INCLUDES = -I$(top_srcdir)/stage1
++INCLUDES = -I$(top_srcdir)/stage1 -I$(top_srcdir)/efi
+ # The library for /sbin/grub.
++if PLATFORM_EFI
++noinst_LIBRARIES = libgrub.a libstage2.a
++else
+ noinst_LIBRARIES = libgrub.a
++endif
+ libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
+       disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+-      fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+-      fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-      terminfo.c tparm.c
++      fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \
++      fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \
++      sha512crypt.c stage2.c terminfo.c tparm.c graphics.c efistubs.c
+ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+       -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+       -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+@@ -27,12 +31,14 @@ libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+       -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
+ # Stage 2 and Stage 1.5's.
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++pkgdatadir = $(datadir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
++
++if !PLATFORM_EFI
+ EXTRA_PROGRAMS = nbloader.exec pxeloader.exec diskless.exec
+ if DISKLESS_SUPPORT
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
+       nbgrub pxegrub
+@@ -43,7 +49,7 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
+       reiserfs_stage1_5.exec ufs2_stage1_5.exec vstafs_stage1_5.exec \
+       xfs_stage1_5.exec nbloader.exec pxeloader.exec diskless.exec
+ else
+-pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
++pkgdata_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
+ noinst_DATA = pre_stage2 start start_eltorito
+@@ -55,11 +61,13 @@ noinst_PROGRAMS = pre_stage2.exec start.exec start_eltorito.exec \
+ endif
+ MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+-PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
+-START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
+-NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
+-PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
+-START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
++endif
++
++PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200 $(LOADER_LDFLAGS)
++START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000 $(LOADER_LDFLAGS)
++NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0 $(LOADER_LDFLAGS)
++PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
++START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00 $(LOADER_LDFLAGS)
+ if NETBOOT_SUPPORT
+ NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
+@@ -79,10 +87,25 @@ else
+ HERCULES_FLAGS =
+ endif
++if GRAPHICS_SUPPORT
++GRAPHICS_FLAGS = -DSUPPORT_GRAPHICS=1
++else
++GRAPHICS_FLAGS =
++endif
++
+ STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
++      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS) $(GRAPHICS_FLAGS)
++
++libstage2_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
++      disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
++      fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_uefi.c fsys_ufs2.c \
++      fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c sha256crypt.c \
++      sha512crypt.c stage2.c terminfo.c tparm.c efistubs.c
++libstage2_a_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+-STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
++if !PLATFORM_EFI
++
++STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000 $(LOADER_LDFLAGS)
+ STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+ # For stage2 target.
+@@ -90,13 +113,15 @@ pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
+       cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+       fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+       fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
++      hercules.c md5.c serial.c smp-imps.c sha256crypt.c sha512crypt.c \
++      stage2.c terminfo.c tparm.c graphics.c
+ pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+ pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
++pre_stage2_exec_LDADD = @LIBGCC@
+ if NETBOOT_SUPPORT
+-pre_stage2_exec_LDADD = ../netboot/libdrivers.a
++pre_stage2_exec_LDADD += ../netboot/libdrivers.a
+ endif
+ if DISKLESS_SUPPORT
+@@ -105,7 +130,7 @@ else
+ BUILT_SOURCES = stage2_size.h
+ endif
+-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
++CLEANFILES = $(pkgdata_DATA) $(noinst_DATA) $(BUILT_SOURCES)
+ stage2_size.h: pre_stage2
+       -rm -f stage2_size.h
+@@ -115,6 +140,7 @@ stage2_size.h: pre_stage2
+ start_exec_SOURCES = start.S
+ start_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_exec_LDFLAGS = $(START_LINK)
++start_exec_LDADD = @LIBGCC@
+ # XXX: automake doesn't provide a way to specify dependencies for object
+ # files explicitly, so we must write this by a general Makefile scheme.
+@@ -129,6 +155,7 @@ stage2: pre_stage2 start
+ start_eltorito_exec_SOURCES = start_eltorito.S
+ start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
+ start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
++start_eltorito_exec_LDADD = @LIBGCC@
+ start_eltorito_exec-start.$(OBJEXT): stage2_size.h
+@@ -144,6 +171,7 @@ e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+ e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+       -DNO_BLOCK_FILES=1
+ e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++e2fs_stage1_5_exec_LDADD = @LIBGCC@
+ # For fat_stage1_5 target.
+ fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -153,6 +181,7 @@ fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+ fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+       -DNO_BLOCK_FILES=1
+ fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++fat_stage1_5_exec_LDADD = @LIBGCC@
+ # For ffs_stage1_5 target.
+ ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -162,6 +191,7 @@ ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+ ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+       -DNO_BLOCK_FILES=1
+ ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++ffs_stage1_5_exec_LDADD = @LIBGCC@
+ # For ufs2_stage1_5 target.
+ ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -171,6 +201,7 @@ ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+ ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+       -DNO_BLOCK_FILES=1
+ ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++ufs2_stage1_5_exec_LDADD = @LIBGCC@
+ # For minix_stage1_5 target.
+ minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+@@ -180,6 +211,7 @@ minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+ minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+       -DNO_BLOCK_FILES=1
+ minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++minix_stage1_5_exec_LDADD = @LIBGCC@
+ # For reiserfs_stage1_5 target.
+ reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -189,6 +221,7 @@ reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+ reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+       -DNO_BLOCK_FILES=1
+ reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++reiserfs_stage1_5_exec_LDADD = @LIBGCC@
+ # For vstafs_stage1_5 target.
+ vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -198,6 +231,7 @@ vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+ vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+       -DNO_BLOCK_FILES=1
+ vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++vstafs_stage1_5_exec_LDADD = @LIBGCC@
+ # For jfs_stage1_5 target.
+ jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -207,6 +241,7 @@ jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+ jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+       -DNO_BLOCK_FILES=1
+ jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++jfs_stage1_5_exec_LDADD = @LIBGCC@
+ # For xfs_stage1_5 target.
+ xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+@@ -216,6 +251,7 @@ xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+ xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+       -DNO_BLOCK_FILES=1
+ xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++xfs_stage1_5_exec_LDADD = @LIBGCC@
+ # For iso9660_stage1_5 target.
+ iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
+@@ -225,6 +261,7 @@ iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+ iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+       -DNO_BLOCK_FILES=1
+ iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
++iso9660_stage1_5_exec_LDADD = @LIBGCC@
+ # For diskless target.
+ diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
+@@ -233,7 +270,7 @@ diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+ diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+       -DSUPPORT_DISKLESS=1
+ diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+-diskless_exec_LDADD = ../netboot/libdrivers.a
++diskless_exec_LDADD = ../netboot/libdrivers.a @LIBGCC@
+ diskless_size.h: diskless
+       -rm -f $@
+@@ -270,3 +307,5 @@ pxegrub: pxeloader diskless
+ SUFFIXES = .exec
+ .exec:
+       $(OBJCOPY) -O binary $< $@
++
++endif
+diff --git a/stage2/Makefile.in b/stage2/Makefile.in
+deleted file mode 100644
+index d0062bd..0000000
+--- a/stage2/Makefile.in
++++ /dev/null
+@@ -1,3250 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-
+-
+-
+-
+-SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) $(xfs_stage1_5_exec_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-EXTRA_PROGRAMS = nbloader.exec$(EXEEXT) pxeloader.exec$(EXEEXT) \
+-      diskless.exec$(EXEEXT)
+-@DISKLESS_SUPPORT_FALSE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      start.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      start_eltorito.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      e2fs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      fat_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      ffs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      iso9660_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      jfs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      minix_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      reiserfs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      ufs2_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      vstafs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_FALSE@      xfs_stage1_5.exec$(EXEEXT)
+-@DISKLESS_SUPPORT_TRUE@noinst_PROGRAMS = pre_stage2.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       start.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       start_eltorito.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       e2fs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       fat_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       ffs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       iso9660_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       jfs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       minix_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       ufs2_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       vstafs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       xfs_stage1_5.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       nbloader.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       pxeloader.exec$(EXEEXT) \
+-@DISKLESS_SUPPORT_TRUE@       diskless.exec$(EXEEXT)
+-subdir = stage2
+-DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \
+-      $(srcdir)/Makefile.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES =
+-LIBRARIES = $(noinst_LIBRARIES)
+-AR = ar
+-ARFLAGS = cru
+-libgrub_a_AR = $(AR) $(ARFLAGS)
+-libgrub_a_LIBADD =
+-am_libgrub_a_OBJECTS = libgrub_a-boot.$(OBJEXT) \
+-      libgrub_a-builtins.$(OBJEXT) libgrub_a-char_io.$(OBJEXT) \
+-      libgrub_a-cmdline.$(OBJEXT) libgrub_a-common.$(OBJEXT) \
+-      libgrub_a-disk_io.$(OBJEXT) libgrub_a-fsys_ext2fs.$(OBJEXT) \
+-      libgrub_a-fsys_fat.$(OBJEXT) libgrub_a-fsys_ffs.$(OBJEXT) \
+-      libgrub_a-fsys_iso9660.$(OBJEXT) libgrub_a-fsys_jfs.$(OBJEXT) \
+-      libgrub_a-fsys_minix.$(OBJEXT) \
+-      libgrub_a-fsys_reiserfs.$(OBJEXT) \
+-      libgrub_a-fsys_ufs2.$(OBJEXT) libgrub_a-fsys_vstafs.$(OBJEXT) \
+-      libgrub_a-fsys_xfs.$(OBJEXT) libgrub_a-gunzip.$(OBJEXT) \
+-      libgrub_a-md5.$(OBJEXT) libgrub_a-serial.$(OBJEXT) \
+-      libgrub_a-stage2.$(OBJEXT) libgrub_a-terminfo.$(OBJEXT) \
+-      libgrub_a-tparm.$(OBJEXT)
+-libgrub_a_OBJECTS = $(am_libgrub_a_OBJECTS)
+-PROGRAMS = $(noinst_PROGRAMS)
+-am__objects_1 = diskless_exec-asm.$(OBJEXT) \
+-      diskless_exec-bios.$(OBJEXT) diskless_exec-boot.$(OBJEXT) \
+-      diskless_exec-builtins.$(OBJEXT) \
+-      diskless_exec-char_io.$(OBJEXT) \
+-      diskless_exec-cmdline.$(OBJEXT) diskless_exec-common.$(OBJEXT) \
+-      diskless_exec-console.$(OBJEXT) \
+-      diskless_exec-disk_io.$(OBJEXT) \
+-      diskless_exec-fsys_ext2fs.$(OBJEXT) \
+-      diskless_exec-fsys_fat.$(OBJEXT) \
+-      diskless_exec-fsys_ffs.$(OBJEXT) \
+-      diskless_exec-fsys_iso9660.$(OBJEXT) \
+-      diskless_exec-fsys_jfs.$(OBJEXT) \
+-      diskless_exec-fsys_minix.$(OBJEXT) \
+-      diskless_exec-fsys_reiserfs.$(OBJEXT) \
+-      diskless_exec-fsys_ufs2.$(OBJEXT) \
+-      diskless_exec-fsys_vstafs.$(OBJEXT) \
+-      diskless_exec-fsys_xfs.$(OBJEXT) \
+-      diskless_exec-gunzip.$(OBJEXT) \
+-      diskless_exec-hercules.$(OBJEXT) diskless_exec-md5.$(OBJEXT) \
+-      diskless_exec-serial.$(OBJEXT) \
+-      diskless_exec-smp-imps.$(OBJEXT) \
+-      diskless_exec-stage2.$(OBJEXT) \
+-      diskless_exec-terminfo.$(OBJEXT) diskless_exec-tparm.$(OBJEXT)
+-am_diskless_exec_OBJECTS = $(am__objects_1)
+-diskless_exec_OBJECTS = $(am_diskless_exec_OBJECTS)
+-diskless_exec_DEPENDENCIES = ../netboot/libdrivers.a
+-am_e2fs_stage1_5_exec_OBJECTS = e2fs_stage1_5_exec-start.$(OBJEXT) \
+-      e2fs_stage1_5_exec-asm.$(OBJEXT) \
+-      e2fs_stage1_5_exec-common.$(OBJEXT) \
+-      e2fs_stage1_5_exec-char_io.$(OBJEXT) \
+-      e2fs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      e2fs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      e2fs_stage1_5_exec-fsys_ext2fs.$(OBJEXT) \
+-      e2fs_stage1_5_exec-bios.$(OBJEXT)
+-e2fs_stage1_5_exec_OBJECTS = $(am_e2fs_stage1_5_exec_OBJECTS)
+-e2fs_stage1_5_exec_LDADD = $(LDADD)
+-am_fat_stage1_5_exec_OBJECTS = fat_stage1_5_exec-start.$(OBJEXT) \
+-      fat_stage1_5_exec-asm.$(OBJEXT) \
+-      fat_stage1_5_exec-common.$(OBJEXT) \
+-      fat_stage1_5_exec-char_io.$(OBJEXT) \
+-      fat_stage1_5_exec-disk_io.$(OBJEXT) \
+-      fat_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      fat_stage1_5_exec-fsys_fat.$(OBJEXT) \
+-      fat_stage1_5_exec-bios.$(OBJEXT)
+-fat_stage1_5_exec_OBJECTS = $(am_fat_stage1_5_exec_OBJECTS)
+-fat_stage1_5_exec_LDADD = $(LDADD)
+-am_ffs_stage1_5_exec_OBJECTS = ffs_stage1_5_exec-start.$(OBJEXT) \
+-      ffs_stage1_5_exec-asm.$(OBJEXT) \
+-      ffs_stage1_5_exec-common.$(OBJEXT) \
+-      ffs_stage1_5_exec-char_io.$(OBJEXT) \
+-      ffs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      ffs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      ffs_stage1_5_exec-fsys_ffs.$(OBJEXT) \
+-      ffs_stage1_5_exec-bios.$(OBJEXT)
+-ffs_stage1_5_exec_OBJECTS = $(am_ffs_stage1_5_exec_OBJECTS)
+-ffs_stage1_5_exec_LDADD = $(LDADD)
+-am_iso9660_stage1_5_exec_OBJECTS =  \
+-      iso9660_stage1_5_exec-start_eltorito.$(OBJEXT) \
+-      iso9660_stage1_5_exec-asm.$(OBJEXT) \
+-      iso9660_stage1_5_exec-common.$(OBJEXT) \
+-      iso9660_stage1_5_exec-char_io.$(OBJEXT) \
+-      iso9660_stage1_5_exec-disk_io.$(OBJEXT) \
+-      iso9660_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      iso9660_stage1_5_exec-fsys_iso9660.$(OBJEXT) \
+-      iso9660_stage1_5_exec-bios.$(OBJEXT)
+-iso9660_stage1_5_exec_OBJECTS = $(am_iso9660_stage1_5_exec_OBJECTS)
+-iso9660_stage1_5_exec_LDADD = $(LDADD)
+-am_jfs_stage1_5_exec_OBJECTS = jfs_stage1_5_exec-start.$(OBJEXT) \
+-      jfs_stage1_5_exec-asm.$(OBJEXT) \
+-      jfs_stage1_5_exec-common.$(OBJEXT) \
+-      jfs_stage1_5_exec-char_io.$(OBJEXT) \
+-      jfs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      jfs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      jfs_stage1_5_exec-fsys_jfs.$(OBJEXT) \
+-      jfs_stage1_5_exec-bios.$(OBJEXT)
+-jfs_stage1_5_exec_OBJECTS = $(am_jfs_stage1_5_exec_OBJECTS)
+-jfs_stage1_5_exec_LDADD = $(LDADD)
+-am_minix_stage1_5_exec_OBJECTS = minix_stage1_5_exec-start.$(OBJEXT) \
+-      minix_stage1_5_exec-asm.$(OBJEXT) \
+-      minix_stage1_5_exec-common.$(OBJEXT) \
+-      minix_stage1_5_exec-char_io.$(OBJEXT) \
+-      minix_stage1_5_exec-disk_io.$(OBJEXT) \
+-      minix_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      minix_stage1_5_exec-fsys_minix.$(OBJEXT) \
+-      minix_stage1_5_exec-bios.$(OBJEXT)
+-minix_stage1_5_exec_OBJECTS = $(am_minix_stage1_5_exec_OBJECTS)
+-minix_stage1_5_exec_LDADD = $(LDADD)
+-am_nbloader_exec_OBJECTS = nbloader_exec-nbloader.$(OBJEXT)
+-nbloader_exec_OBJECTS = $(am_nbloader_exec_OBJECTS)
+-nbloader_exec_LDADD = $(LDADD)
+-am_pre_stage2_exec_OBJECTS = pre_stage2_exec-asm.$(OBJEXT) \
+-      pre_stage2_exec-bios.$(OBJEXT) pre_stage2_exec-boot.$(OBJEXT) \
+-      pre_stage2_exec-builtins.$(OBJEXT) \
+-      pre_stage2_exec-char_io.$(OBJEXT) \
+-      pre_stage2_exec-cmdline.$(OBJEXT) \
+-      pre_stage2_exec-common.$(OBJEXT) \
+-      pre_stage2_exec-console.$(OBJEXT) \
+-      pre_stage2_exec-disk_io.$(OBJEXT) \
+-      pre_stage2_exec-fsys_ext2fs.$(OBJEXT) \
+-      pre_stage2_exec-fsys_fat.$(OBJEXT) \
+-      pre_stage2_exec-fsys_ffs.$(OBJEXT) \
+-      pre_stage2_exec-fsys_iso9660.$(OBJEXT) \
+-      pre_stage2_exec-fsys_jfs.$(OBJEXT) \
+-      pre_stage2_exec-fsys_minix.$(OBJEXT) \
+-      pre_stage2_exec-fsys_reiserfs.$(OBJEXT) \
+-      pre_stage2_exec-fsys_ufs2.$(OBJEXT) \
+-      pre_stage2_exec-fsys_vstafs.$(OBJEXT) \
+-      pre_stage2_exec-fsys_xfs.$(OBJEXT) \
+-      pre_stage2_exec-gunzip.$(OBJEXT) \
+-      pre_stage2_exec-hercules.$(OBJEXT) \
+-      pre_stage2_exec-md5.$(OBJEXT) pre_stage2_exec-serial.$(OBJEXT) \
+-      pre_stage2_exec-smp-imps.$(OBJEXT) \
+-      pre_stage2_exec-stage2.$(OBJEXT) \
+-      pre_stage2_exec-terminfo.$(OBJEXT) \
+-      pre_stage2_exec-tparm.$(OBJEXT)
+-pre_stage2_exec_OBJECTS = $(am_pre_stage2_exec_OBJECTS)
+-@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_DEPENDENCIES =  \
+-@NETBOOT_SUPPORT_TRUE@        ../netboot/libdrivers.a
+-am_pxeloader_exec_OBJECTS = pxeloader_exec-pxeloader.$(OBJEXT)
+-pxeloader_exec_OBJECTS = $(am_pxeloader_exec_OBJECTS)
+-pxeloader_exec_LDADD = $(LDADD)
+-am_reiserfs_stage1_5_exec_OBJECTS =  \
+-      reiserfs_stage1_5_exec-start.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-asm.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-common.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-char_io.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-fsys_reiserfs.$(OBJEXT) \
+-      reiserfs_stage1_5_exec-bios.$(OBJEXT)
+-reiserfs_stage1_5_exec_OBJECTS = $(am_reiserfs_stage1_5_exec_OBJECTS)
+-reiserfs_stage1_5_exec_LDADD = $(LDADD)
+-am_start_exec_OBJECTS = start_exec-start.$(OBJEXT)
+-start_exec_OBJECTS = $(am_start_exec_OBJECTS)
+-start_exec_LDADD = $(LDADD)
+-am_start_eltorito_exec_OBJECTS =  \
+-      start_eltorito_exec-start_eltorito.$(OBJEXT)
+-start_eltorito_exec_OBJECTS = $(am_start_eltorito_exec_OBJECTS)
+-start_eltorito_exec_LDADD = $(LDADD)
+-am_ufs2_stage1_5_exec_OBJECTS = ufs2_stage1_5_exec-start.$(OBJEXT) \
+-      ufs2_stage1_5_exec-asm.$(OBJEXT) \
+-      ufs2_stage1_5_exec-common.$(OBJEXT) \
+-      ufs2_stage1_5_exec-char_io.$(OBJEXT) \
+-      ufs2_stage1_5_exec-disk_io.$(OBJEXT) \
+-      ufs2_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      ufs2_stage1_5_exec-fsys_ufs2.$(OBJEXT) \
+-      ufs2_stage1_5_exec-bios.$(OBJEXT)
+-ufs2_stage1_5_exec_OBJECTS = $(am_ufs2_stage1_5_exec_OBJECTS)
+-ufs2_stage1_5_exec_LDADD = $(LDADD)
+-am_vstafs_stage1_5_exec_OBJECTS =  \
+-      vstafs_stage1_5_exec-start.$(OBJEXT) \
+-      vstafs_stage1_5_exec-asm.$(OBJEXT) \
+-      vstafs_stage1_5_exec-common.$(OBJEXT) \
+-      vstafs_stage1_5_exec-char_io.$(OBJEXT) \
+-      vstafs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      vstafs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      vstafs_stage1_5_exec-fsys_vstafs.$(OBJEXT) \
+-      vstafs_stage1_5_exec-bios.$(OBJEXT)
+-vstafs_stage1_5_exec_OBJECTS = $(am_vstafs_stage1_5_exec_OBJECTS)
+-vstafs_stage1_5_exec_LDADD = $(LDADD)
+-am_xfs_stage1_5_exec_OBJECTS = xfs_stage1_5_exec-start.$(OBJEXT) \
+-      xfs_stage1_5_exec-asm.$(OBJEXT) \
+-      xfs_stage1_5_exec-common.$(OBJEXT) \
+-      xfs_stage1_5_exec-char_io.$(OBJEXT) \
+-      xfs_stage1_5_exec-disk_io.$(OBJEXT) \
+-      xfs_stage1_5_exec-stage1_5.$(OBJEXT) \
+-      xfs_stage1_5_exec-fsys_xfs.$(OBJEXT) \
+-      xfs_stage1_5_exec-bios.$(OBJEXT)
+-xfs_stage1_5_exec_OBJECTS = $(am_xfs_stage1_5_exec_OBJECTS)
+-xfs_stage1_5_exec_LDADD = $(LDADD)
+-SCRIPTS = $(noinst_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-CCASCOMPILE = $(CCAS) $(AM_CCASFLAGS) $(CCASFLAGS)
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
+-      $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
+-      $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
+-      $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
+-      $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
+-      $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
+-      $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) \
+-      $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \
+-      $(xfs_stage1_5_exec_SOURCES)
+-DIST_SOURCES = $(libgrub_a_SOURCES) $(diskless_exec_SOURCES) \
+-      $(e2fs_stage1_5_exec_SOURCES) $(fat_stage1_5_exec_SOURCES) \
+-      $(ffs_stage1_5_exec_SOURCES) $(iso9660_stage1_5_exec_SOURCES) \
+-      $(jfs_stage1_5_exec_SOURCES) $(minix_stage1_5_exec_SOURCES) \
+-      $(nbloader_exec_SOURCES) $(pre_stage2_exec_SOURCES) \
+-      $(pxeloader_exec_SOURCES) $(reiserfs_stage1_5_exec_SOURCES) \
+-      $(start_exec_SOURCES) $(start_eltorito_exec_SOURCES) \
+-      $(ufs2_stage1_5_exec_SOURCES) $(vstafs_stage1_5_exec_SOURCES) \
+-      $(xfs_stage1_5_exec_SOURCES)
+-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+-am__vpath_adj = case $$p in \
+-    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+-    *) f=$$p;; \
+-  esac;
+-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+-am__installdirs = "$(DESTDIR)$(pkglibdir)"
+-pkglibDATA_INSTALL = $(INSTALL_DATA)
+-DATA = $(noinst_DATA) $(pkglib_DATA)
+-HEADERS = $(noinst_HEADERS)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-
+-# Stage 2 and Stage 1.5's.
+-pkglibdir = $(libdir)/$(PACKAGE)/$(host_cpu)-$(host_vendor)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-
+-# For test target.
+-TESTS = size_test
+-noinst_SCRIPTS = $(TESTS)
+-
+-# For dist target.
+-noinst_HEADERS = apic.h defs.h dir.h disk_inode.h disk_inode_ffs.h \
+-        fat.h filesys.h freebsd.h fs.h hercules.h i386-elf.h \
+-      imgact_aout.h iso9660.h jfs.h mb_header.h mb_info.h md5.h \
+-      nbi.h pc_slice.h serial.h shared.h smp-imps.h term.h \
+-      terminfo.h tparm.h nbi.h ufs2.h vstafs.h xfs.h
+-
+-EXTRA_DIST = setjmp.S apm.S $(noinst_SCRIPTS)
+-
+-# For <stage1.h>.
+-INCLUDES = -I$(top_srcdir)/stage1
+-
+-# The library for /sbin/grub.
+-noinst_LIBRARIES = libgrub.a
+-libgrub_a_SOURCES = boot.c builtins.c char_io.c cmdline.c common.c \
+-      disk_io.c fsys_ext2fs.c fsys_fat.c fsys_ffs.c fsys_iso9660.c \
+-      fsys_jfs.c fsys_minix.c fsys_reiserfs.c fsys_ufs2.c \
+-      fsys_vstafs.c fsys_xfs.c gunzip.c md5.c serial.c stage2.c \
+-      terminfo.c tparm.c
+-
+-libgrub_a_CFLAGS = $(GRUB_CFLAGS) -I$(top_srcdir)/lib \
+-      -DGRUB_UTIL=1 -DFSYS_EXT2FS=1 -DFSYS_FAT=1 -DFSYS_FFS=1 \
+-      -DFSYS_ISO9660=1 -DFSYS_JFS=1 -DFSYS_MINIX=1 -DFSYS_REISERFS=1 \
+-      -DFSYS_UFS2=1 -DFSYS_VSTAFS=1 -DFSYS_XFS=1 \
+-      -DUSE_MD5_PASSWORDS=1 -DSUPPORT_SERIAL=1 -DSUPPORT_HERCULES=1
+-
+-@DISKLESS_SUPPORT_FALSE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+-@DISKLESS_SUPPORT_FALSE@      ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+-@DISKLESS_SUPPORT_FALSE@      reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5
+-
+-@DISKLESS_SUPPORT_TRUE@pkglib_DATA = stage2 stage2_eltorito e2fs_stage1_5 fat_stage1_5 \
+-@DISKLESS_SUPPORT_TRUE@       ffs_stage1_5 iso9660_stage1_5 jfs_stage1_5 minix_stage1_5 \
+-@DISKLESS_SUPPORT_TRUE@       reiserfs_stage1_5 ufs2_stage1_5 vstafs_stage1_5 xfs_stage1_5 \
+-@DISKLESS_SUPPORT_TRUE@       nbgrub pxegrub
+-
+-@DISKLESS_SUPPORT_FALSE@noinst_DATA = pre_stage2 start start_eltorito
+-@DISKLESS_SUPPORT_TRUE@noinst_DATA = pre_stage2 start start_eltorito nbloader pxeloader diskless
+-MOSTLYCLEANFILES = $(noinst_PROGRAMS)
+-PRE_STAGE2_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8200
+-START_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,8000
+-NBLOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,0
+-PXELOADER_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
+-START_ELTORITO_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,7C00
+-@NETBOOT_SUPPORT_FALSE@NETBOOT_FLAGS = 
+-@NETBOOT_SUPPORT_TRUE@NETBOOT_FLAGS = -I$(top_srcdir)/netboot -DSUPPORT_NETBOOT=1
+-@SERIAL_SUPPORT_FALSE@SERIAL_FLAGS = 
+-@SERIAL_SUPPORT_TRUE@SERIAL_FLAGS = -DSUPPORT_SERIAL=1
+-@HERCULES_SUPPORT_FALSE@HERCULES_FLAGS = 
+-@HERCULES_SUPPORT_TRUE@HERCULES_FLAGS = -DSUPPORT_HERCULES=1
+-STAGE2_COMPILE = $(STAGE2_CFLAGS) -fno-builtin -nostdinc \
+-      $(NETBOOT_FLAGS) $(SERIAL_FLAGS) $(HERCULES_FLAGS)
+-
+-STAGE1_5_LINK = -nostdlib -Wl,-N -Wl,-Ttext -Wl,2000
+-STAGE1_5_COMPILE = $(STAGE2_COMPILE) -DNO_DECOMPRESSION=1 -DSTAGE1_5=1
+-
+-# For stage2 target.
+-pre_stage2_exec_SOURCES = asm.S bios.c boot.c builtins.c char_io.c \
+-      cmdline.c common.c console.c disk_io.c fsys_ext2fs.c \
+-      fsys_fat.c fsys_ffs.c fsys_iso9660.c fsys_jfs.c fsys_minix.c \
+-      fsys_reiserfs.c fsys_ufs2.c fsys_vstafs.c fsys_xfs.c gunzip.c \
+-      hercules.c md5.c serial.c smp-imps.c stage2.c terminfo.c tparm.c
+-
+-pre_stage2_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+-pre_stage2_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS)
+-pre_stage2_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+-@NETBOOT_SUPPORT_TRUE@pre_stage2_exec_LDADD = ../netboot/libdrivers.a
+-@DISKLESS_SUPPORT_FALSE@BUILT_SOURCES = stage2_size.h
+-@DISKLESS_SUPPORT_TRUE@BUILT_SOURCES = stage2_size.h diskless_size.h
+-CLEANFILES = $(pkglib_DATA) $(noinst_DATA) $(BUILT_SOURCES)
+-start_exec_SOURCES = start.S
+-start_exec_CCASFLAGS = $(STAGE2_COMPILE)
+-start_exec_LDFLAGS = $(START_LINK)
+-start_eltorito_exec_SOURCES = start_eltorito.S
+-start_eltorito_exec_CCASFLAGS = $(STAGE2_COMPILE)
+-start_eltorito_exec_LDFLAGS = $(START_ELTORITO_LINK)
+-
+-# For e2fs_stage1_5 target.
+-e2fs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+-      stage1_5.c fsys_ext2fs.c bios.c
+-
+-e2fs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-e2fs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_EXT2FS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-e2fs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For fat_stage1_5 target.
+-fat_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+-      stage1_5.c fsys_fat.c bios.c
+-
+-fat_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-fat_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FAT=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-fat_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For ffs_stage1_5 target.
+-ffs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+-      stage1_5.c fsys_ffs.c bios.c
+-
+-ffs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-ffs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_FFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-ffs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For ufs2_stage1_5 target.
+-ufs2_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+-      stage1_5.c fsys_ufs2.c bios.c
+-
+-ufs2_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-ufs2_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_UFS2=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-ufs2_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For minix_stage1_5 target.
+-minix_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c disk_io.c \
+-      stage1_5.c fsys_minix.c bios.c
+-
+-minix_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-minix_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_MINIX=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-minix_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For reiserfs_stage1_5 target.
+-reiserfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+-      disk_io.c stage1_5.c fsys_reiserfs.c bios.c
+-
+-reiserfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-reiserfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_REISERFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-reiserfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For vstafs_stage1_5 target.
+-vstafs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+-      disk_io.c stage1_5.c fsys_vstafs.c bios.c
+-
+-vstafs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-vstafs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_VSTAFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-vstafs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For jfs_stage1_5 target.
+-jfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+-      disk_io.c stage1_5.c fsys_jfs.c bios.c
+-
+-jfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-jfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_JFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-jfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For xfs_stage1_5 target.
+-xfs_stage1_5_exec_SOURCES = start.S asm.S common.c char_io.c \
+-      disk_io.c stage1_5.c fsys_xfs.c bios.c
+-
+-xfs_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-xfs_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_XFS=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-xfs_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For iso9660_stage1_5 target.
+-iso9660_stage1_5_exec_SOURCES = start_eltorito.S asm.S common.c char_io.c \
+-      disk_io.c stage1_5.c fsys_iso9660.c bios.c
+-
+-iso9660_stage1_5_exec_CFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-iso9660_stage1_5_exec_CCASFLAGS = $(STAGE1_5_COMPILE) -DFSYS_ISO9660=1 \
+-      -DNO_BLOCK_FILES=1
+-
+-iso9660_stage1_5_exec_LDFLAGS = $(STAGE1_5_LINK)
+-
+-# For diskless target.
+-diskless_exec_SOURCES = $(pre_stage2_exec_SOURCES)
+-diskless_exec_CFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+-      -DSUPPORT_DISKLESS=1
+-
+-diskless_exec_CCASFLAGS = $(STAGE2_COMPILE) $(FSYS_CFLAGS) \
+-      -DSUPPORT_DISKLESS=1
+-
+-diskless_exec_LDFLAGS = $(PRE_STAGE2_LINK)
+-diskless_exec_LDADD = ../netboot/libdrivers.a
+-
+-# For nbloader target.
+-nbloader_exec_SOURCES = nbloader.S
+-nbloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
+-nbloader_exec_LDFLAGS = $(NBLOADER_LINK)
+-
+-# For pxeloader target.
+-pxeloader_exec_SOURCES = pxeloader.S
+-pxeloader_exec_CCASFLAGS = $(STAGE2_COMPILE)
+-pxeloader_exec_LDFLAGS = $(PXELOADER_LINK)
+-
+-# General rule for making a raw binary.
+-SUFFIXES = .exec
+-all: $(BUILT_SOURCES)
+-      $(MAKE) $(AM_MAKEFLAGS) all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .exec .S .c .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  stage2/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  stage2/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-clean-noinstLIBRARIES:
+-      -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
+-libgrub.a: $(libgrub_a_OBJECTS) $(libgrub_a_DEPENDENCIES) 
+-      -rm -f libgrub.a
+-      $(libgrub_a_AR) libgrub.a $(libgrub_a_OBJECTS) $(libgrub_a_LIBADD)
+-      $(RANLIB) libgrub.a
+-
+-clean-noinstPROGRAMS:
+-      -test -z "$(noinst_PROGRAMS)" || rm -f $(noinst_PROGRAMS)
+-diskless.exec$(EXEEXT): $(diskless_exec_OBJECTS) $(diskless_exec_DEPENDENCIES) 
+-      @rm -f diskless.exec$(EXEEXT)
+-      $(LINK) $(diskless_exec_LDFLAGS) $(diskless_exec_OBJECTS) $(diskless_exec_LDADD) $(LIBS)
+-e2fs_stage1_5.exec$(EXEEXT): $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f e2fs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(e2fs_stage1_5_exec_LDFLAGS) $(e2fs_stage1_5_exec_OBJECTS) $(e2fs_stage1_5_exec_LDADD) $(LIBS)
+-fat_stage1_5.exec$(EXEEXT): $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f fat_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(fat_stage1_5_exec_LDFLAGS) $(fat_stage1_5_exec_OBJECTS) $(fat_stage1_5_exec_LDADD) $(LIBS)
+-ffs_stage1_5.exec$(EXEEXT): $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f ffs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(ffs_stage1_5_exec_LDFLAGS) $(ffs_stage1_5_exec_OBJECTS) $(ffs_stage1_5_exec_LDADD) $(LIBS)
+-iso9660_stage1_5.exec$(EXEEXT): $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f iso9660_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(iso9660_stage1_5_exec_LDFLAGS) $(iso9660_stage1_5_exec_OBJECTS) $(iso9660_stage1_5_exec_LDADD) $(LIBS)
+-jfs_stage1_5.exec$(EXEEXT): $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f jfs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(jfs_stage1_5_exec_LDFLAGS) $(jfs_stage1_5_exec_OBJECTS) $(jfs_stage1_5_exec_LDADD) $(LIBS)
+-minix_stage1_5.exec$(EXEEXT): $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f minix_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(minix_stage1_5_exec_LDFLAGS) $(minix_stage1_5_exec_OBJECTS) $(minix_stage1_5_exec_LDADD) $(LIBS)
+-nbloader.exec$(EXEEXT): $(nbloader_exec_OBJECTS) $(nbloader_exec_DEPENDENCIES) 
+-      @rm -f nbloader.exec$(EXEEXT)
+-      $(LINK) $(nbloader_exec_LDFLAGS) $(nbloader_exec_OBJECTS) $(nbloader_exec_LDADD) $(LIBS)
+-pre_stage2.exec$(EXEEXT): $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_DEPENDENCIES) 
+-      @rm -f pre_stage2.exec$(EXEEXT)
+-      $(LINK) $(pre_stage2_exec_LDFLAGS) $(pre_stage2_exec_OBJECTS) $(pre_stage2_exec_LDADD) $(LIBS)
+-pxeloader.exec$(EXEEXT): $(pxeloader_exec_OBJECTS) $(pxeloader_exec_DEPENDENCIES) 
+-      @rm -f pxeloader.exec$(EXEEXT)
+-      $(LINK) $(pxeloader_exec_LDFLAGS) $(pxeloader_exec_OBJECTS) $(pxeloader_exec_LDADD) $(LIBS)
+-reiserfs_stage1_5.exec$(EXEEXT): $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f reiserfs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(reiserfs_stage1_5_exec_LDFLAGS) $(reiserfs_stage1_5_exec_OBJECTS) $(reiserfs_stage1_5_exec_LDADD) $(LIBS)
+-start.exec$(EXEEXT): $(start_exec_OBJECTS) $(start_exec_DEPENDENCIES) 
+-      @rm -f start.exec$(EXEEXT)
+-      $(LINK) $(start_exec_LDFLAGS) $(start_exec_OBJECTS) $(start_exec_LDADD) $(LIBS)
+-start_eltorito.exec$(EXEEXT): $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_DEPENDENCIES) 
+-      @rm -f start_eltorito.exec$(EXEEXT)
+-      $(LINK) $(start_eltorito_exec_LDFLAGS) $(start_eltorito_exec_OBJECTS) $(start_eltorito_exec_LDADD) $(LIBS)
+-ufs2_stage1_5.exec$(EXEEXT): $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f ufs2_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(ufs2_stage1_5_exec_LDFLAGS) $(ufs2_stage1_5_exec_OBJECTS) $(ufs2_stage1_5_exec_LDADD) $(LIBS)
+-vstafs_stage1_5.exec$(EXEEXT): $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f vstafs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(vstafs_stage1_5_exec_LDFLAGS) $(vstafs_stage1_5_exec_OBJECTS) $(vstafs_stage1_5_exec_LDADD) $(LIBS)
+-xfs_stage1_5.exec$(EXEEXT): $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_DEPENDENCIES) 
+-      @rm -f xfs_stage1_5.exec$(EXEEXT)
+-      $(LINK) $(xfs_stage1_5_exec_LDFLAGS) $(xfs_stage1_5_exec_OBJECTS) $(xfs_stage1_5_exec_LDADD) $(LIBS)
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-boot.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-builtins.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-cmdline.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-console.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ext2fs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_fat.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ffs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_iso9660.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_jfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_minix.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_reiserfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_ufs2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_vstafs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-fsys_xfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-gunzip.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-hercules.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-md5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-serial.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-smp-imps.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-stage2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-terminfo.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/diskless_exec-tparm.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-boot.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-builtins.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-cmdline.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ext2fs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_fat.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ffs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_iso9660.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_jfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_minix.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_reiserfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_ufs2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_vstafs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-fsys_xfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-gunzip.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-md5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-serial.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-stage2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-terminfo.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgrub_a-tparm.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-boot.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-builtins.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-cmdline.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-console.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_fat.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_minix.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-gunzip.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-hercules.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-md5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-serial.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-smp-imps.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-stage2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-terminfo.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pre_stage2_exec-tparm.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-bios.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-char_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-common.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po@am__quote@
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po@am__quote@
+-
+-.S.o:
+-      $(CCASCOMPILE) -c $<
+-
+-.S.obj:
+-      $(CCASCOMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-diskless_exec-asm.o: asm.S
+-      $(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-diskless_exec-asm.obj: asm.S
+-      $(CCAS) $(diskless_exec_CCASFLAGS) $(CCASFLAGS) -c -o diskless_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-e2fs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-e2fs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-e2fs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-e2fs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(e2fs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o e2fs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-fat_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-fat_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-fat_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-fat_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(fat_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o fat_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-ffs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-ffs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-ffs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-ffs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(ffs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ffs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-iso9660_stage1_5_exec-start_eltorito.o: start_eltorito.S
+-      $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
+-
+-iso9660_stage1_5_exec-start_eltorito.obj: start_eltorito.S
+-      $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
+-
+-iso9660_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-iso9660_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(iso9660_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o iso9660_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-jfs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-jfs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-jfs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-jfs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(jfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o jfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-minix_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-minix_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-minix_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-minix_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(minix_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o minix_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-nbloader_exec-nbloader.o: nbloader.S
+-      $(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.o `test -f 'nbloader.S' || echo '$(srcdir)/'`nbloader.S
+-
+-nbloader_exec-nbloader.obj: nbloader.S
+-      $(CCAS) $(nbloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o nbloader_exec-nbloader.obj `if test -f 'nbloader.S'; then $(CYGPATH_W) 'nbloader.S'; else $(CYGPATH_W) '$(srcdir)/nbloader.S'; fi`
+-
+-pre_stage2_exec-asm.o: asm.S
+-      $(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-pre_stage2_exec-asm.obj: asm.S
+-      $(CCAS) $(pre_stage2_exec_CCASFLAGS) $(CCASFLAGS) -c -o pre_stage2_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-pxeloader_exec-pxeloader.o: pxeloader.S
+-      $(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.o `test -f 'pxeloader.S' || echo '$(srcdir)/'`pxeloader.S
+-
+-pxeloader_exec-pxeloader.obj: pxeloader.S
+-      $(CCAS) $(pxeloader_exec_CCASFLAGS) $(CCASFLAGS) -c -o pxeloader_exec-pxeloader.obj `if test -f 'pxeloader.S'; then $(CYGPATH_W) 'pxeloader.S'; else $(CYGPATH_W) '$(srcdir)/pxeloader.S'; fi`
+-
+-reiserfs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-reiserfs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-reiserfs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-reiserfs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(reiserfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o reiserfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-start_exec-start.o: start.S
+-      $(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-start_exec-start.obj: start.S
+-      $(CCAS) $(start_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-start_eltorito_exec-start_eltorito.o: start_eltorito.S
+-      $(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.o `test -f 'start_eltorito.S' || echo '$(srcdir)/'`start_eltorito.S
+-
+-start_eltorito_exec-start_eltorito.obj: start_eltorito.S
+-      $(CCAS) $(start_eltorito_exec_CCASFLAGS) $(CCASFLAGS) -c -o start_eltorito_exec-start_eltorito.obj `if test -f 'start_eltorito.S'; then $(CYGPATH_W) 'start_eltorito.S'; else $(CYGPATH_W) '$(srcdir)/start_eltorito.S'; fi`
+-
+-ufs2_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-ufs2_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-ufs2_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-ufs2_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(ufs2_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o ufs2_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-vstafs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-vstafs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-vstafs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-vstafs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(vstafs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o vstafs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-xfs_stage1_5_exec-start.o: start.S
+-      $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.o `test -f 'start.S' || echo '$(srcdir)/'`start.S
+-
+-xfs_stage1_5_exec-start.obj: start.S
+-      $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-start.obj `if test -f 'start.S'; then $(CYGPATH_W) 'start.S'; else $(CYGPATH_W) '$(srcdir)/start.S'; fi`
+-
+-xfs_stage1_5_exec-asm.o: asm.S
+-      $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.o `test -f 'asm.S' || echo '$(srcdir)/'`asm.S
+-
+-xfs_stage1_5_exec-asm.obj: asm.S
+-      $(CCAS) $(xfs_stage1_5_exec_CCASFLAGS) $(CCASFLAGS) -c -o xfs_stage1_5_exec-asm.obj `if test -f 'asm.S'; then $(CYGPATH_W) 'asm.S'; else $(CYGPATH_W) '$(srcdir)/asm.S'; fi`
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-
+-libgrub_a-boot.o: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.o -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='libgrub_a-boot.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+-
+-libgrub_a-boot.obj: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-boot.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-boot.Tpo" -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-boot.Tpo" "$(DEPDIR)/libgrub_a-boot.Po"; else rm -f "$(DEPDIR)/libgrub_a-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='libgrub_a-boot.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+-
+-libgrub_a-builtins.o: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.o -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='libgrub_a-builtins.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+-
+-libgrub_a-builtins.obj: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-builtins.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-builtins.Tpo" -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-builtins.Tpo" "$(DEPDIR)/libgrub_a-builtins.Po"; else rm -f "$(DEPDIR)/libgrub_a-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='libgrub_a-builtins.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+-
+-libgrub_a-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='libgrub_a-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-libgrub_a-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-char_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-char_io.Tpo" -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-char_io.Tpo" "$(DEPDIR)/libgrub_a-char_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='libgrub_a-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-libgrub_a-cmdline.o: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.o -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='libgrub_a-cmdline.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+-
+-libgrub_a-cmdline.obj: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-cmdline.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-cmdline.Tpo" -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-cmdline.Tpo" "$(DEPDIR)/libgrub_a-cmdline.Po"; else rm -f "$(DEPDIR)/libgrub_a-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='libgrub_a-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+-
+-libgrub_a-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.o -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='libgrub_a-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-libgrub_a-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-common.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-common.Tpo" -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-common.Tpo" "$(DEPDIR)/libgrub_a-common.Po"; else rm -f "$(DEPDIR)/libgrub_a-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='libgrub_a-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-libgrub_a-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.o -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='libgrub_a-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-libgrub_a-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-disk_io.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-disk_io.Tpo" -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-disk_io.Tpo" "$(DEPDIR)/libgrub_a-disk_io.Po"; else rm -f "$(DEPDIR)/libgrub_a-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='libgrub_a-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-libgrub_a-fsys_ext2fs.o: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+-
+-libgrub_a-fsys_ext2fs.obj: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='libgrub_a-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+-
+-libgrub_a-fsys_fat.o: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='libgrub_a-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+-
+-libgrub_a-fsys_fat.obj: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo" "$(DEPDIR)/libgrub_a-fsys_fat.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='libgrub_a-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+-
+-libgrub_a-fsys_ffs.o: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='libgrub_a-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+-
+-libgrub_a-fsys_ffs.obj: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo" "$(DEPDIR)/libgrub_a-fsys_ffs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='libgrub_a-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+-
+-libgrub_a-fsys_iso9660.o: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+-
+-libgrub_a-fsys_iso9660.obj: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo" "$(DEPDIR)/libgrub_a-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='libgrub_a-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+-
+-libgrub_a-fsys_jfs.o: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='libgrub_a-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+-
+-libgrub_a-fsys_jfs.obj: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_jfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='libgrub_a-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+-
+-libgrub_a-fsys_minix.o: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='libgrub_a-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+-
+-libgrub_a-fsys_minix.obj: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo" "$(DEPDIR)/libgrub_a-fsys_minix.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='libgrub_a-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+-
+-libgrub_a-fsys_reiserfs.o: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+-
+-libgrub_a-fsys_reiserfs.obj: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='libgrub_a-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+-
+-libgrub_a-fsys_ufs2.o: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+-
+-libgrub_a-fsys_ufs2.obj: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo" "$(DEPDIR)/libgrub_a-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='libgrub_a-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+-
+-libgrub_a-fsys_vstafs.o: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+-
+-libgrub_a-fsys_vstafs.obj: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo" "$(DEPDIR)/libgrub_a-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='libgrub_a-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+-
+-libgrub_a-fsys_xfs.o: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='libgrub_a-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+-
+-libgrub_a-fsys_xfs.obj: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo" "$(DEPDIR)/libgrub_a-fsys_xfs.Po"; else rm -f "$(DEPDIR)/libgrub_a-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='libgrub_a-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+-
+-libgrub_a-gunzip.o: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.o -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='libgrub_a-gunzip.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+-
+-libgrub_a-gunzip.obj: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-gunzip.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-gunzip.Tpo" -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-gunzip.Tpo" "$(DEPDIR)/libgrub_a-gunzip.Po"; else rm -f "$(DEPDIR)/libgrub_a-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='libgrub_a-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+-
+-libgrub_a-md5.o: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.o -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='libgrub_a-md5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+-
+-libgrub_a-md5.obj: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-md5.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-md5.Tpo" -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-md5.Tpo" "$(DEPDIR)/libgrub_a-md5.Po"; else rm -f "$(DEPDIR)/libgrub_a-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='libgrub_a-md5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+-
+-libgrub_a-serial.o: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.o -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='libgrub_a-serial.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+-
+-libgrub_a-serial.obj: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-serial.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-serial.Tpo" -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-serial.Tpo" "$(DEPDIR)/libgrub_a-serial.Po"; else rm -f "$(DEPDIR)/libgrub_a-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='libgrub_a-serial.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+-
+-libgrub_a-stage2.o: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.o -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='libgrub_a-stage2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+-
+-libgrub_a-stage2.obj: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-stage2.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-stage2.Tpo" -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-stage2.Tpo" "$(DEPDIR)/libgrub_a-stage2.Po"; else rm -f "$(DEPDIR)/libgrub_a-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='libgrub_a-stage2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+-
+-libgrub_a-terminfo.o: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.o -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='libgrub_a-terminfo.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+-
+-libgrub_a-terminfo.obj: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-terminfo.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-terminfo.Tpo" -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-terminfo.Tpo" "$(DEPDIR)/libgrub_a-terminfo.Po"; else rm -f "$(DEPDIR)/libgrub_a-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='libgrub_a-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+-
+-libgrub_a-tparm.o: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.o -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='libgrub_a-tparm.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+-
+-libgrub_a-tparm.obj: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -MT libgrub_a-tparm.obj -MD -MP -MF "$(DEPDIR)/libgrub_a-tparm.Tpo" -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/libgrub_a-tparm.Tpo" "$(DEPDIR)/libgrub_a-tparm.Po"; else rm -f "$(DEPDIR)/libgrub_a-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='libgrub_a-tparm.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgrub_a_CFLAGS) $(CFLAGS) -c -o libgrub_a-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+-
+-diskless_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.o -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='diskless_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-diskless_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-bios.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-bios.Tpo" -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-bios.Tpo" "$(DEPDIR)/diskless_exec-bios.Po"; else rm -f "$(DEPDIR)/diskless_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='diskless_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-diskless_exec-boot.o: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.o -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='diskless_exec-boot.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+-
+-diskless_exec-boot.obj: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-boot.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-boot.Tpo" -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-boot.Tpo" "$(DEPDIR)/diskless_exec-boot.Po"; else rm -f "$(DEPDIR)/diskless_exec-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='diskless_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+-
+-diskless_exec-builtins.o: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.o -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='diskless_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+-
+-diskless_exec-builtins.obj: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-builtins.Tpo" -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-builtins.Tpo" "$(DEPDIR)/diskless_exec-builtins.Po"; else rm -f "$(DEPDIR)/diskless_exec-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='diskless_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+-
+-diskless_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='diskless_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-diskless_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-char_io.Tpo" -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-char_io.Tpo" "$(DEPDIR)/diskless_exec-char_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='diskless_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-diskless_exec-cmdline.o: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='diskless_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+-
+-diskless_exec-cmdline.obj: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-cmdline.Tpo" -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-cmdline.Tpo" "$(DEPDIR)/diskless_exec-cmdline.Po"; else rm -f "$(DEPDIR)/diskless_exec-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='diskless_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+-
+-diskless_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.o -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='diskless_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-diskless_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-common.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-common.Tpo" -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-common.Tpo" "$(DEPDIR)/diskless_exec-common.Po"; else rm -f "$(DEPDIR)/diskless_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='diskless_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-diskless_exec-console.o: console.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.o -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='console.c' object='diskless_exec-console.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
+-
+-diskless_exec-console.obj: console.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-console.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-console.Tpo" -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-console.Tpo" "$(DEPDIR)/diskless_exec-console.Po"; else rm -f "$(DEPDIR)/diskless_exec-console.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='console.c' object='diskless_exec-console.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
+-
+-diskless_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='diskless_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-diskless_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-disk_io.Tpo" -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-disk_io.Tpo" "$(DEPDIR)/diskless_exec-disk_io.Po"; else rm -f "$(DEPDIR)/diskless_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='diskless_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-diskless_exec-fsys_ext2fs.o: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+-
+-diskless_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='diskless_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+-
+-diskless_exec-fsys_fat.o: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='diskless_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+-
+-diskless_exec-fsys_fat.obj: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo" "$(DEPDIR)/diskless_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='diskless_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+-
+-diskless_exec-fsys_ffs.o: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='diskless_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+-
+-diskless_exec-fsys_ffs.obj: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo" "$(DEPDIR)/diskless_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='diskless_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+-
+-diskless_exec-fsys_iso9660.o: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+-
+-diskless_exec-fsys_iso9660.obj: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo" "$(DEPDIR)/diskless_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='diskless_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+-
+-diskless_exec-fsys_jfs.o: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='diskless_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+-
+-diskless_exec-fsys_jfs.obj: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='diskless_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+-
+-diskless_exec-fsys_minix.o: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='diskless_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+-
+-diskless_exec-fsys_minix.obj: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo" "$(DEPDIR)/diskless_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='diskless_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+-
+-diskless_exec-fsys_reiserfs.o: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+-
+-diskless_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='diskless_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+-
+-diskless_exec-fsys_ufs2.o: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+-
+-diskless_exec-fsys_ufs2.obj: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo" "$(DEPDIR)/diskless_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='diskless_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+-
+-diskless_exec-fsys_vstafs.o: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+-
+-diskless_exec-fsys_vstafs.obj: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo" "$(DEPDIR)/diskless_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='diskless_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+-
+-diskless_exec-fsys_xfs.o: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='diskless_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+-
+-diskless_exec-fsys_xfs.obj: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo" "$(DEPDIR)/diskless_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/diskless_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='diskless_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+-
+-diskless_exec-gunzip.o: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='diskless_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+-
+-diskless_exec-gunzip.obj: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-gunzip.Tpo" -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-gunzip.Tpo" "$(DEPDIR)/diskless_exec-gunzip.Po"; else rm -f "$(DEPDIR)/diskless_exec-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='diskless_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+-
+-diskless_exec-hercules.o: hercules.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.o -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='hercules.c' object='diskless_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
+-
+-diskless_exec-hercules.obj: hercules.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-hercules.Tpo" -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-hercules.Tpo" "$(DEPDIR)/diskless_exec-hercules.Po"; else rm -f "$(DEPDIR)/diskless_exec-hercules.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='hercules.c' object='diskless_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
+-
+-diskless_exec-md5.o: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.o -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='diskless_exec-md5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+-
+-diskless_exec-md5.obj: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-md5.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-md5.Tpo" -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-md5.Tpo" "$(DEPDIR)/diskless_exec-md5.Po"; else rm -f "$(DEPDIR)/diskless_exec-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='diskless_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+-
+-diskless_exec-serial.o: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.o -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='diskless_exec-serial.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+-
+-diskless_exec-serial.obj: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-serial.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-serial.Tpo" -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-serial.Tpo" "$(DEPDIR)/diskless_exec-serial.Po"; else rm -f "$(DEPDIR)/diskless_exec-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='diskless_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+-
+-diskless_exec-smp-imps.o: smp-imps.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smp-imps.c' object='diskless_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
+-
+-diskless_exec-smp-imps.obj: smp-imps.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-smp-imps.Tpo" -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo" "$(DEPDIR)/diskless_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/diskless_exec-smp-imps.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smp-imps.c' object='diskless_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
+-
+-diskless_exec-stage2.o: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.o -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='diskless_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+-
+-diskless_exec-stage2.obj: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-stage2.Tpo" -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-stage2.Tpo" "$(DEPDIR)/diskless_exec-stage2.Po"; else rm -f "$(DEPDIR)/diskless_exec-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='diskless_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+-
+-diskless_exec-terminfo.o: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='diskless_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+-
+-diskless_exec-terminfo.obj: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-terminfo.Tpo" -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-terminfo.Tpo" "$(DEPDIR)/diskless_exec-terminfo.Po"; else rm -f "$(DEPDIR)/diskless_exec-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='diskless_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+-
+-diskless_exec-tparm.o: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.o -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='diskless_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+-
+-diskless_exec-tparm.obj: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -MT diskless_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/diskless_exec-tparm.Tpo" -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/diskless_exec-tparm.Tpo" "$(DEPDIR)/diskless_exec-tparm.Po"; else rm -f "$(DEPDIR)/diskless_exec-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='diskless_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(diskless_exec_CFLAGS) $(CFLAGS) -c -o diskless_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+-
+-e2fs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='e2fs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-e2fs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='e2fs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-e2fs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='e2fs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-e2fs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" -c -o e2fs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='e2fs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-e2fs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-e2fs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" -c -o e2fs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='e2fs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-e2fs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-e2fs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" -c -o e2fs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='e2fs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-e2fs_stage1_5_exec-fsys_ext2fs.o: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+-
+-e2fs_stage1_5_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='e2fs_stage1_5_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+-
+-e2fs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='e2fs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-e2fs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT e2fs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/e2fs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/e2fs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='e2fs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(e2fs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o e2fs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-fat_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='fat_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-fat_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo" "$(DEPDIR)/fat_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='fat_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-fat_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='fat_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-fat_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" -c -o fat_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='fat_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-fat_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='fat_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-fat_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" -c -o fat_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/fat_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='fat_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-fat_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-fat_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" -c -o fat_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='fat_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-fat_stage1_5_exec-fsys_fat.o: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+-
+-fat_stage1_5_exec-fsys_fat.obj: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo" "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='fat_stage1_5_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+-
+-fat_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='fat_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-fat_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -MT fat_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo" "$(DEPDIR)/fat_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/fat_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='fat_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(fat_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o fat_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-ffs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='ffs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-ffs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" -c -o ffs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='ffs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-ffs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='ffs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-ffs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" -c -o ffs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='ffs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-ffs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='ffs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-ffs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" -c -o ffs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='ffs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-ffs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-ffs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" -c -o ffs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='ffs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-ffs_stage1_5_exec-fsys_ffs.o: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+-
+-ffs_stage1_5_exec-fsys_ffs.obj: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" -c -o ffs_stage1_5_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='ffs_stage1_5_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+-
+-ffs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='ffs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-ffs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ffs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ffs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ffs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='ffs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ffs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ffs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-iso9660_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='iso9660_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-iso9660_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='iso9660_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-iso9660_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='iso9660_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-iso9660_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='iso9660_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-iso9660_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-iso9660_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='iso9660_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-iso9660_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-iso9660_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='iso9660_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-iso9660_stage1_5_exec-fsys_iso9660.o: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+-
+-iso9660_stage1_5_exec-fsys_iso9660.obj: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='iso9660_stage1_5_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+-
+-iso9660_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='iso9660_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-iso9660_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -MT iso9660_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo" "$(DEPDIR)/iso9660_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/iso9660_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='iso9660_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(iso9660_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o iso9660_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-jfs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='jfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-jfs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='jfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-jfs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='jfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-jfs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" -c -o jfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='jfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-jfs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='jfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-jfs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" -c -o jfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='jfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-jfs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-jfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" -c -o jfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='jfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-jfs_stage1_5_exec-fsys_jfs.o: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+-
+-jfs_stage1_5_exec-fsys_jfs.obj: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='jfs_stage1_5_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+-
+-jfs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='jfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-jfs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT jfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/jfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/jfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='jfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(jfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o jfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-minix_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='minix_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-minix_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo" "$(DEPDIR)/minix_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='minix_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-minix_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='minix_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-minix_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" -c -o minix_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='minix_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-minix_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='minix_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-minix_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" -c -o minix_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/minix_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='minix_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-minix_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-minix_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" -c -o minix_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='minix_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-minix_stage1_5_exec-fsys_minix.o: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+-
+-minix_stage1_5_exec-fsys_minix.obj: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo" "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='minix_stage1_5_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+-
+-minix_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='minix_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-minix_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -MT minix_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo" "$(DEPDIR)/minix_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/minix_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='minix_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(minix_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o minix_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-pre_stage2_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='pre_stage2_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-pre_stage2_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-bios.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-bios.Tpo" -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo" "$(DEPDIR)/pre_stage2_exec-bios.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='pre_stage2_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-pre_stage2_exec-boot.o: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='pre_stage2_exec-boot.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.o `test -f 'boot.c' || echo '$(srcdir)/'`boot.c
+-
+-pre_stage2_exec-boot.obj: boot.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-boot.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-boot.Tpo" -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo" "$(DEPDIR)/pre_stage2_exec-boot.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-boot.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='boot.c' object='pre_stage2_exec-boot.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-boot.obj `if test -f 'boot.c'; then $(CYGPATH_W) 'boot.c'; else $(CYGPATH_W) '$(srcdir)/boot.c'; fi`
+-
+-pre_stage2_exec-builtins.o: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='pre_stage2_exec-builtins.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.o `test -f 'builtins.c' || echo '$(srcdir)/'`builtins.c
+-
+-pre_stage2_exec-builtins.obj: builtins.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-builtins.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo" "$(DEPDIR)/pre_stage2_exec-builtins.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-builtins.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='builtins.c' object='pre_stage2_exec-builtins.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-builtins.obj `if test -f 'builtins.c'; then $(CYGPATH_W) 'builtins.c'; else $(CYGPATH_W) '$(srcdir)/builtins.c'; fi`
+-
+-pre_stage2_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='pre_stage2_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-pre_stage2_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo" "$(DEPDIR)/pre_stage2_exec-char_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='pre_stage2_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-pre_stage2_exec-cmdline.o: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='pre_stage2_exec-cmdline.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.o `test -f 'cmdline.c' || echo '$(srcdir)/'`cmdline.c
+-
+-pre_stage2_exec-cmdline.obj: cmdline.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-cmdline.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo" "$(DEPDIR)/pre_stage2_exec-cmdline.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-cmdline.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='cmdline.c' object='pre_stage2_exec-cmdline.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-cmdline.obj `if test -f 'cmdline.c'; then $(CYGPATH_W) 'cmdline.c'; else $(CYGPATH_W) '$(srcdir)/cmdline.c'; fi`
+-
+-pre_stage2_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='pre_stage2_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-pre_stage2_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-common.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-common.Tpo" -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-common.Tpo" "$(DEPDIR)/pre_stage2_exec-common.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='pre_stage2_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-pre_stage2_exec-console.o: console.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='console.c' object='pre_stage2_exec-console.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.o `test -f 'console.c' || echo '$(srcdir)/'`console.c
+-
+-pre_stage2_exec-console.obj: console.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-console.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-console.Tpo" -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-console.Tpo" "$(DEPDIR)/pre_stage2_exec-console.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-console.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='console.c' object='pre_stage2_exec-console.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-console.obj `if test -f 'console.c'; then $(CYGPATH_W) 'console.c'; else $(CYGPATH_W) '$(srcdir)/console.c'; fi`
+-
+-pre_stage2_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='pre_stage2_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-pre_stage2_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo" "$(DEPDIR)/pre_stage2_exec-disk_io.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='pre_stage2_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-pre_stage2_exec-fsys_ext2fs.o: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ext2fs.o `test -f 'fsys_ext2fs.c' || echo '$(srcdir)/'`fsys_ext2fs.c
+-
+-pre_stage2_exec-fsys_ext2fs.obj: fsys_ext2fs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ext2fs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ext2fs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ext2fs.c' object='pre_stage2_exec-fsys_ext2fs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ext2fs.obj `if test -f 'fsys_ext2fs.c'; then $(CYGPATH_W) 'fsys_ext2fs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ext2fs.c'; fi`
+-
+-pre_stage2_exec-fsys_fat.o: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_fat.o `test -f 'fsys_fat.c' || echo '$(srcdir)/'`fsys_fat.c
+-
+-pre_stage2_exec-fsys_fat.obj: fsys_fat.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_fat.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_fat.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_fat.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_fat.c' object='pre_stage2_exec-fsys_fat.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_fat.obj `if test -f 'fsys_fat.c'; then $(CYGPATH_W) 'fsys_fat.c'; else $(CYGPATH_W) '$(srcdir)/fsys_fat.c'; fi`
+-
+-pre_stage2_exec-fsys_ffs.o: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.o `test -f 'fsys_ffs.c' || echo '$(srcdir)/'`fsys_ffs.c
+-
+-pre_stage2_exec-fsys_ffs.obj: fsys_ffs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ffs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ffs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ffs.c' object='pre_stage2_exec-fsys_ffs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ffs.obj `if test -f 'fsys_ffs.c'; then $(CYGPATH_W) 'fsys_ffs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ffs.c'; fi`
+-
+-pre_stage2_exec-fsys_iso9660.o: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.o `test -f 'fsys_iso9660.c' || echo '$(srcdir)/'`fsys_iso9660.c
+-
+-pre_stage2_exec-fsys_iso9660.obj: fsys_iso9660.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_iso9660.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_iso9660.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_iso9660.c' object='pre_stage2_exec-fsys_iso9660.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_iso9660.obj `if test -f 'fsys_iso9660.c'; then $(CYGPATH_W) 'fsys_iso9660.c'; else $(CYGPATH_W) '$(srcdir)/fsys_iso9660.c'; fi`
+-
+-pre_stage2_exec-fsys_jfs.o: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.o `test -f 'fsys_jfs.c' || echo '$(srcdir)/'`fsys_jfs.c
+-
+-pre_stage2_exec-fsys_jfs.obj: fsys_jfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_jfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_jfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_jfs.c' object='pre_stage2_exec-fsys_jfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_jfs.obj `if test -f 'fsys_jfs.c'; then $(CYGPATH_W) 'fsys_jfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_jfs.c'; fi`
+-
+-pre_stage2_exec-fsys_minix.o: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_minix.o `test -f 'fsys_minix.c' || echo '$(srcdir)/'`fsys_minix.c
+-
+-pre_stage2_exec-fsys_minix.obj: fsys_minix.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_minix.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_minix.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_minix.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_minix.c' object='pre_stage2_exec-fsys_minix.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_minix.obj `if test -f 'fsys_minix.c'; then $(CYGPATH_W) 'fsys_minix.c'; else $(CYGPATH_W) '$(srcdir)/fsys_minix.c'; fi`
+-
+-pre_stage2_exec-fsys_reiserfs.o: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+-
+-pre_stage2_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='pre_stage2_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+-
+-pre_stage2_exec-fsys_ufs2.o: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+-
+-pre_stage2_exec-fsys_ufs2.obj: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='pre_stage2_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+-
+-pre_stage2_exec-fsys_vstafs.o: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+-
+-pre_stage2_exec-fsys_vstafs.obj: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='pre_stage2_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+-
+-pre_stage2_exec-fsys_xfs.o: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+-
+-pre_stage2_exec-fsys_xfs.obj: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo" "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='pre_stage2_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+-
+-pre_stage2_exec-gunzip.o: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='pre_stage2_exec-gunzip.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.o `test -f 'gunzip.c' || echo '$(srcdir)/'`gunzip.c
+-
+-pre_stage2_exec-gunzip.obj: gunzip.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-gunzip.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo" "$(DEPDIR)/pre_stage2_exec-gunzip.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-gunzip.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='gunzip.c' object='pre_stage2_exec-gunzip.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-gunzip.obj `if test -f 'gunzip.c'; then $(CYGPATH_W) 'gunzip.c'; else $(CYGPATH_W) '$(srcdir)/gunzip.c'; fi`
+-
+-pre_stage2_exec-hercules.o: hercules.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='hercules.c' object='pre_stage2_exec-hercules.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.o `test -f 'hercules.c' || echo '$(srcdir)/'`hercules.c
+-
+-pre_stage2_exec-hercules.obj: hercules.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-hercules.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo" "$(DEPDIR)/pre_stage2_exec-hercules.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-hercules.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='hercules.c' object='pre_stage2_exec-hercules.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-hercules.obj `if test -f 'hercules.c'; then $(CYGPATH_W) 'hercules.c'; else $(CYGPATH_W) '$(srcdir)/hercules.c'; fi`
+-
+-pre_stage2_exec-md5.o: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='pre_stage2_exec-md5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.o `test -f 'md5.c' || echo '$(srcdir)/'`md5.c
+-
+-pre_stage2_exec-md5.obj: md5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-md5.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-md5.Tpo" -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo" "$(DEPDIR)/pre_stage2_exec-md5.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-md5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='md5.c' object='pre_stage2_exec-md5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-md5.obj `if test -f 'md5.c'; then $(CYGPATH_W) 'md5.c'; else $(CYGPATH_W) '$(srcdir)/md5.c'; fi`
+-
+-pre_stage2_exec-serial.o: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='pre_stage2_exec-serial.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.o `test -f 'serial.c' || echo '$(srcdir)/'`serial.c
+-
+-pre_stage2_exec-serial.obj: serial.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-serial.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-serial.Tpo" -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo" "$(DEPDIR)/pre_stage2_exec-serial.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-serial.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='serial.c' object='pre_stage2_exec-serial.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-serial.obj `if test -f 'serial.c'; then $(CYGPATH_W) 'serial.c'; else $(CYGPATH_W) '$(srcdir)/serial.c'; fi`
+-
+-pre_stage2_exec-smp-imps.o: smp-imps.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smp-imps.c' object='pre_stage2_exec-smp-imps.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.o `test -f 'smp-imps.c' || echo '$(srcdir)/'`smp-imps.c
+-
+-pre_stage2_exec-smp-imps.obj: smp-imps.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-smp-imps.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo" "$(DEPDIR)/pre_stage2_exec-smp-imps.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-smp-imps.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='smp-imps.c' object='pre_stage2_exec-smp-imps.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-smp-imps.obj `if test -f 'smp-imps.c'; then $(CYGPATH_W) 'smp-imps.c'; else $(CYGPATH_W) '$(srcdir)/smp-imps.c'; fi`
+-
+-pre_stage2_exec-stage2.o: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='pre_stage2_exec-stage2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.o `test -f 'stage2.c' || echo '$(srcdir)/'`stage2.c
+-
+-pre_stage2_exec-stage2.obj: stage2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-stage2.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo" "$(DEPDIR)/pre_stage2_exec-stage2.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-stage2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage2.c' object='pre_stage2_exec-stage2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-stage2.obj `if test -f 'stage2.c'; then $(CYGPATH_W) 'stage2.c'; else $(CYGPATH_W) '$(srcdir)/stage2.c'; fi`
+-
+-pre_stage2_exec-terminfo.o: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='pre_stage2_exec-terminfo.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.o `test -f 'terminfo.c' || echo '$(srcdir)/'`terminfo.c
+-
+-pre_stage2_exec-terminfo.obj: terminfo.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-terminfo.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo" "$(DEPDIR)/pre_stage2_exec-terminfo.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-terminfo.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='terminfo.c' object='pre_stage2_exec-terminfo.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-terminfo.obj `if test -f 'terminfo.c'; then $(CYGPATH_W) 'terminfo.c'; else $(CYGPATH_W) '$(srcdir)/terminfo.c'; fi`
+-
+-pre_stage2_exec-tparm.o: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.o -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='pre_stage2_exec-tparm.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.o `test -f 'tparm.c' || echo '$(srcdir)/'`tparm.c
+-
+-pre_stage2_exec-tparm.obj: tparm.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -MT pre_stage2_exec-tparm.obj -MD -MP -MF "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo" "$(DEPDIR)/pre_stage2_exec-tparm.Po"; else rm -f "$(DEPDIR)/pre_stage2_exec-tparm.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='tparm.c' object='pre_stage2_exec-tparm.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(pre_stage2_exec_CFLAGS) $(CFLAGS) -c -o pre_stage2_exec-tparm.obj `if test -f 'tparm.c'; then $(CYGPATH_W) 'tparm.c'; else $(CYGPATH_W) '$(srcdir)/tparm.c'; fi`
+-
+-reiserfs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='reiserfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-reiserfs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='reiserfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-reiserfs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='reiserfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-reiserfs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" -c -o reiserfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='reiserfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-reiserfs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-reiserfs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" -c -o reiserfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='reiserfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-reiserfs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-reiserfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" -c -o reiserfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='reiserfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-reiserfs_stage1_5_exec-fsys_reiserfs.o: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.o `test -f 'fsys_reiserfs.c' || echo '$(srcdir)/'`fsys_reiserfs.c
+-
+-reiserfs_stage1_5_exec-fsys_reiserfs.obj: fsys_reiserfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-fsys_reiserfs.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-fsys_reiserfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_reiserfs.c' object='reiserfs_stage1_5_exec-fsys_reiserfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-fsys_reiserfs.obj `if test -f 'fsys_reiserfs.c'; then $(CYGPATH_W) 'fsys_reiserfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_reiserfs.c'; fi`
+-
+-reiserfs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='reiserfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-reiserfs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT reiserfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/reiserfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='reiserfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(reiserfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o reiserfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-ufs2_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='ufs2_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-ufs2_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='ufs2_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-ufs2_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='ufs2_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-ufs2_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" -c -o ufs2_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='ufs2_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-ufs2_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-ufs2_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" -c -o ufs2_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='ufs2_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-ufs2_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-ufs2_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" -c -o ufs2_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='ufs2_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-ufs2_stage1_5_exec-fsys_ufs2.o: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.o `test -f 'fsys_ufs2.c' || echo '$(srcdir)/'`fsys_ufs2.c
+-
+-ufs2_stage1_5_exec-fsys_ufs2.obj: fsys_ufs2.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-fsys_ufs2.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-fsys_ufs2.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_ufs2.c' object='ufs2_stage1_5_exec-fsys_ufs2.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-fsys_ufs2.obj `if test -f 'fsys_ufs2.c'; then $(CYGPATH_W) 'fsys_ufs2.c'; else $(CYGPATH_W) '$(srcdir)/fsys_ufs2.c'; fi`
+-
+-ufs2_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='ufs2_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-ufs2_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -MT ufs2_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo" "$(DEPDIR)/ufs2_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/ufs2_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='ufs2_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(ufs2_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o ufs2_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-vstafs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='vstafs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-vstafs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='vstafs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-vstafs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='vstafs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-vstafs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" -c -o vstafs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='vstafs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-vstafs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-vstafs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" -c -o vstafs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='vstafs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-vstafs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-vstafs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" -c -o vstafs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='vstafs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-vstafs_stage1_5_exec-fsys_vstafs.o: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.o `test -f 'fsys_vstafs.c' || echo '$(srcdir)/'`fsys_vstafs.c
+-
+-vstafs_stage1_5_exec-fsys_vstafs.obj: fsys_vstafs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-fsys_vstafs.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-fsys_vstafs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_vstafs.c' object='vstafs_stage1_5_exec-fsys_vstafs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-fsys_vstafs.obj `if test -f 'fsys_vstafs.c'; then $(CYGPATH_W) 'fsys_vstafs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_vstafs.c'; fi`
+-
+-vstafs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='vstafs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-vstafs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT vstafs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/vstafs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/vstafs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='vstafs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(vstafs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o vstafs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-
+-xfs_stage1_5_exec-common.o: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='xfs_stage1_5_exec-common.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.o `test -f 'common.c' || echo '$(srcdir)/'`common.c
+-
+-xfs_stage1_5_exec-common.obj: common.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-common.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-common.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-common.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='common.c' object='xfs_stage1_5_exec-common.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-common.obj `if test -f 'common.c'; then $(CYGPATH_W) 'common.c'; else $(CYGPATH_W) '$(srcdir)/common.c'; fi`
+-
+-xfs_stage1_5_exec-char_io.o: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='xfs_stage1_5_exec-char_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.o `test -f 'char_io.c' || echo '$(srcdir)/'`char_io.c
+-
+-xfs_stage1_5_exec-char_io.obj: char_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-char_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" -c -o xfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-char_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-char_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='char_io.c' object='xfs_stage1_5_exec-char_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-char_io.obj `if test -f 'char_io.c'; then $(CYGPATH_W) 'char_io.c'; else $(CYGPATH_W) '$(srcdir)/char_io.c'; fi`
+-
+-xfs_stage1_5_exec-disk_io.o: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='xfs_stage1_5_exec-disk_io.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.o `test -f 'disk_io.c' || echo '$(srcdir)/'`disk_io.c
+-
+-xfs_stage1_5_exec-disk_io.obj: disk_io.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-disk_io.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" -c -o xfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-disk_io.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='disk_io.c' object='xfs_stage1_5_exec-disk_io.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-disk_io.obj `if test -f 'disk_io.c'; then $(CYGPATH_W) 'disk_io.c'; else $(CYGPATH_W) '$(srcdir)/disk_io.c'; fi`
+-
+-xfs_stage1_5_exec-stage1_5.o: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.o `test -f 'stage1_5.c' || echo '$(srcdir)/'`stage1_5.c
+-
+-xfs_stage1_5_exec-stage1_5.obj: stage1_5.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-stage1_5.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" -c -o xfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-stage1_5.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='stage1_5.c' object='xfs_stage1_5_exec-stage1_5.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-stage1_5.obj `if test -f 'stage1_5.c'; then $(CYGPATH_W) 'stage1_5.c'; else $(CYGPATH_W) '$(srcdir)/stage1_5.c'; fi`
+-
+-xfs_stage1_5_exec-fsys_xfs.o: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.o `test -f 'fsys_xfs.c' || echo '$(srcdir)/'`fsys_xfs.c
+-
+-xfs_stage1_5_exec-fsys_xfs.obj: fsys_xfs.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-fsys_xfs.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-fsys_xfs.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='fsys_xfs.c' object='xfs_stage1_5_exec-fsys_xfs.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-fsys_xfs.obj `if test -f 'fsys_xfs.c'; then $(CYGPATH_W) 'fsys_xfs.c'; else $(CYGPATH_W) '$(srcdir)/fsys_xfs.c'; fi`
+-
+-xfs_stage1_5_exec-bios.o: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.o -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='xfs_stage1_5_exec-bios.o' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.o `test -f 'bios.c' || echo '$(srcdir)/'`bios.c
+-
+-xfs_stage1_5_exec-bios.obj: bios.c
+-@am__fastdepCC_TRUE@  if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -MT xfs_stage1_5_exec-bios.obj -MD -MP -MF "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo" "$(DEPDIR)/xfs_stage1_5_exec-bios.Po"; else rm -f "$(DEPDIR)/xfs_stage1_5_exec-bios.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='bios.c' object='xfs_stage1_5_exec-bios.obj' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(xfs_stage1_5_exec_CFLAGS) $(CFLAGS) -c -o xfs_stage1_5_exec-bios.obj `if test -f 'bios.c'; then $(CYGPATH_W) 'bios.c'; else $(CYGPATH_W) '$(srcdir)/bios.c'; fi`
+-uninstall-info-am:
+-install-pkglibDATA: $(pkglib_DATA)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(pkglibdir)" || $(mkdir_p) "$(DESTDIR)$(pkglibdir)"
+-      @list='$(pkglib_DATA)'; for p in $$list; do \
+-        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+-        f=$(am__strip_dir) \
+-        echo " $(pkglibDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-        $(pkglibDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkglibdir)/$$f"; \
+-      done
+-
+-uninstall-pkglibDATA:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(pkglib_DATA)'; for p in $$list; do \
+-        f=$(am__strip_dir) \
+-        echo " rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
+-        rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
+-      done
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-check-TESTS: $(TESTS)
+-      @failed=0; all=0; xfail=0; xpass=0; skip=0; \
+-      srcdir=$(srcdir); export srcdir; \
+-      list='$(TESTS)'; \
+-      if test -n "$$list"; then \
+-        for tst in $$list; do \
+-          if test -f ./$$tst; then dir=./; \
+-          elif test -f $$tst; then dir=; \
+-          else dir="$(srcdir)/"; fi; \
+-          if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
+-            all=`expr $$all + 1`; \
+-            case " $(XFAIL_TESTS) " in \
+-            *" $$tst "*) \
+-              xpass=`expr $$xpass + 1`; \
+-              failed=`expr $$failed + 1`; \
+-              echo "XPASS: $$tst"; \
+-            ;; \
+-            *) \
+-              echo "PASS: $$tst"; \
+-            ;; \
+-            esac; \
+-          elif test $$? -ne 77; then \
+-            all=`expr $$all + 1`; \
+-            case " $(XFAIL_TESTS) " in \
+-            *" $$tst "*) \
+-              xfail=`expr $$xfail + 1`; \
+-              echo "XFAIL: $$tst"; \
+-            ;; \
+-            *) \
+-              failed=`expr $$failed + 1`; \
+-              echo "FAIL: $$tst"; \
+-            ;; \
+-            esac; \
+-          else \
+-            skip=`expr $$skip + 1`; \
+-            echo "SKIP: $$tst"; \
+-          fi; \
+-        done; \
+-        if test "$$failed" -eq 0; then \
+-          if test "$$xfail" -eq 0; then \
+-            banner="All $$all tests passed"; \
+-          else \
+-            banner="All $$all tests behaved as expected ($$xfail expected failures)"; \
+-          fi; \
+-        else \
+-          if test "$$xpass" -eq 0; then \
+-            banner="$$failed of $$all tests failed"; \
+-          else \
+-            banner="$$failed of $$all tests did not behave as expected ($$xpass unexpected passes)"; \
+-          fi; \
+-        fi; \
+-        dashes="$$banner"; \
+-        skipped=""; \
+-        if test "$$skip" -ne 0; then \
+-          skipped="($$skip tests were not run)"; \
+-          test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
+-            dashes="$$skipped"; \
+-        fi; \
+-        report=""; \
+-        if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
+-          report="Please report to $(PACKAGE_BUGREPORT)"; \
+-          test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
+-            dashes="$$report"; \
+-        fi; \
+-        dashes=`echo "$$dashes" | sed s/./=/g`; \
+-        echo "$$dashes"; \
+-        echo "$$banner"; \
+-        test -z "$$skipped" || echo "$$skipped"; \
+-        test -z "$$report" || echo "$$report"; \
+-        echo "$$dashes"; \
+-        test "$$failed" -eq 0; \
+-      else :; fi
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-      $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+-check: $(BUILT_SOURCES)
+-      $(MAKE) $(AM_MAKEFLAGS) check-am
+-all-am: Makefile $(LIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \
+-              $(HEADERS)
+-installdirs:
+-      for dir in "$(DESTDIR)$(pkglibdir)"; do \
+-        test -z "$$dir" || $(mkdir_p) "$$dir"; \
+-      done
+-install: $(BUILT_SOURCES)
+-      $(MAKE) $(AM_MAKEFLAGS) install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-      -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+-
+-clean-generic:
+-      -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-      -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+-clean: clean-am
+-
+-clean-am: clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS \
+-      mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am: install-pkglibDATA
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-info-am uninstall-pkglibDATA
+-
+-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
+-      clean-generic clean-noinstLIBRARIES clean-noinstPROGRAMS ctags \
+-      distclean distclean-compile distclean-generic distclean-tags \
+-      distdir dvi dvi-am html html-am info info-am install \
+-      install-am install-data install-data-am install-exec \
+-      install-exec-am install-info install-info-am install-man \
+-      install-pkglibDATA install-strip installcheck installcheck-am \
+-      installdirs maintainer-clean maintainer-clean-generic \
+-      mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \
+-      ps ps-am tags uninstall uninstall-am uninstall-info-am \
+-      uninstall-pkglibDATA
+-
+-
+-stage2_size.h: pre_stage2
+-      -rm -f stage2_size.h
+-      set dummy `ls -l pre_stage2`; \
+-      echo "#define STAGE2_SIZE $$6" > stage2_size.h
+-
+-# XXX: automake doesn't provide a way to specify dependencies for object
+-# files explicitly, so we must write this by a general Makefile scheme.
+-# If automake change the naming scheme for per-executable objects, this
+-# will be broken.
+-start_exec-start.$(OBJEXT): stage2_size.h
+-
+-stage2: pre_stage2 start
+-      -rm -f stage2
+-      cat start pre_stage2 > stage2
+-
+-start_eltorito_exec-start.$(OBJEXT): stage2_size.h
+-
+-stage2_eltorito: pre_stage2 start_eltorito
+-      -rm -f stage2_eltorito
+-      cat start_eltorito pre_stage2 > stage2_eltorito
+-
+-diskless_size.h: diskless
+-      -rm -f $@
+-      set dummy `ls -l $^`; \
+-      echo "#define DISKLESS_SIZE $$6" > $@
+-
+-# XXX: See the comment for start_exec-start.o.
+-nbloader_exec-nbloader.$(OBJEXT): diskless_size.h
+-
+-# For nbgrub target.
+-nbgrub: nbloader diskless
+-      -rm -f $@
+-      cat $^ > $@
+-
+-# XXX: See the comment for start_exec-start.o.
+-pxeloader_exec-pxeloader.$(OBJEXT): diskless_size.h
+-
+-# For pxegrub target.
+-pxegrub: pxeloader diskless
+-      -rm -f $@
+-      cat $^ > $@
+-.exec:
+-      $(OBJCOPY) -O binary $< $@
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/stage2/asm.S b/stage2/asm.S
+index 34b6e7d..5c4dd5e 100644
+--- a/stage2/asm.S
++++ b/stage2/asm.S
+@@ -98,7 +98,7 @@ VARIABLE(version_string)
+       .string VERSION
+ VARIABLE(config_file)
+ #ifndef STAGE1_5
+-      .string "/boot/grub/menu.lst"
++      .string "/boot/grub/grub.conf"
+ #else   /* STAGE1_5 */
+       .long   0xffffffff
+       .string "/boot/grub/stage2"
+@@ -1622,36 +1622,78 @@ ENTRY(set_vbe_mode)
+  */
+ ENTRY(gateA20)
++      pushl   %ebx
++      pushl   %edx
++      call    testA20
++      jnz     1f
++      call    A20_BIOS
++      call    testA20
++      jnz     1f
++      call    A20_PORT92
++      call    testA20
++      jnz     1f
++      call    A20_KBDCTL
++      call    testA20
++      jnz     1f
++      movl    $0,%eax
++      jmp     2f
++1:
++      movl    $-1,%eax
++2:
++      popl    %edx
++      popl    %ebx
++      ret
++
++testA20:
++      movl    0x500,%eax
++      movl    0x100500,%ebx
++      notl    %eax
++      movl    %eax,0x100500
++      cmpl    %eax,0x500
++      pushfl
++      movl    %ebx,0x100500
++      notl    %eax
++      movl    %eax,0x500
++      popfl
++      ret
++
++A20_BIOS:
+       /* first, try a BIOS call */
+-      pushl   %ebp
+-      movl    8(%esp), %edx
+       
+       call    EXT_C(prot_to_real)
+       
+       .code16
+-      movw    $0x2400, %ax
+-      testw   %dx, %dx
+-      jz      1f
+-      incw    %ax
++      movw    $0x2401, %ax
+ 1:    stc
+       int     $0x15
+-      jnc     2f
+-
+-      /* set non-zero if failed */
+-      movb    $1, %ah
+-
+-      /* save the status */
+-2:    movb    %ah, %dl
+       DATA32  call    EXT_C(real_to_prot)
+       .code32
++      ret
+-      popl    %ebp
+-      testb   %dl, %dl
+-      jnz     3f
++A20_PORT92:
++      /*
++      * try to switch gateA20 using PORT92, the "Fast A20 and Init"
++      * register
++      */
++      mov     $0x92, %dx
++      inb     %dx, %al
++      /* skip the port92 code if it's unimplemented (read returns 0xff) */
++      cmpb    $0xff, %al
++      jz      6f
++
++      /* set bit1, the ALT_A20_GATE bit */
++      orb     $2, %al
++      /*      and     $0xfd, %al */
++
++      /* clear the INIT_NOW bit; don't accidently reset the machine */
++      and     $0xfe, %al
++      outb    %al, %dx
++6:
+       ret
+-3:    /* use keyboard controller */
++A20_KBDCTL:
++      /* use keyboard controller */
+       pushl   %eax
+       call    gloop1
+@@ -1665,11 +1707,7 @@ gloopint1:
+       jnz     gloopint1
+       movb    $KB_OUTPUT_MASK, %al
+-      cmpb    $0, 0x8(%esp)
+-      jz      gdoit
+-
+       orb     $KB_A20_ENABLE, %al
+-gdoit:
+       outb    $K_RDWR
+       call    gloop1
+@@ -1994,8 +2032,25 @@ ENTRY(console_getkey)
+       call    EXT_C(prot_to_real)
+       .code16
++.again:
++      mov     $0x11, %ah              /* poll kbd */
+       int     $0x16
++      jz      .again
++#if 0
++/* XXX handle serial here? -- pj */
++      jnz     .kbd
++#endif
++.kbd:
++      mov     $0x10, %ah
++      int     $0x16
++      cmp     $0xe0, %al
++      jnz     .not_ext
++      xor     %al, %al
++.not_ext:
++      and     %al, %al
++      jz      .func_key
++.func_key:
+       movw    %ax, %dx                /* real_to_prot uses %eax */
+       call    translate_keycode
+       call    remap_ascii_char
+@@ -2003,7 +2058,7 @@ ENTRY(console_getkey)
+       DATA32  call    EXT_C(real_to_prot)
+       .code32
+-      movw    %dx, %ax
++      mov     %dx, %ax
+       pop     %ebp
+       ret
+@@ -2029,7 +2084,7 @@ ENTRY(console_checkkey)
+       call    EXT_C(prot_to_real)     /* enter real mode */
+       .code16
+-      movb    $0x1, %ah
++      movb    $0x11, %ah
+       int     $0x16
+       DATA32  jz      notpending
+@@ -2051,6 +2106,37 @@ pending:
+       pop     %ebp
+       ret
++
++/*
++ * int console_keystatus (void)
++ * BIOS call "INT 16H Function 02H" to get keyboard modifier status
++ *    Call with       %ah = 0x2
++ *    Return:         %al = keyboard state:
++ *                            bit 3: alt key down
++ *                            bit 2: ctrl key down
++ *                            bit 1: left shift key down
++ *                            bit 0: right shift key down
++ */
++ENTRY(console_keystatus)
++      push    %ebp
++
++      call    EXT_C(prot_to_real)
++      .code16
++      
++      movb    $0x12, %ah
++      int     $0x16
++      movw    %ax, %dx
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      movw    %dx, %ax
++      
++      /* Mask out numlock, capslock and insert state. */
++      andl    $0x0f0f, %eax
++      pop     %ebp
++      ret
++      
+       
+ /*
+  * int console_getxy (void)
+@@ -2216,6 +2302,156 @@ ENTRY(console_setcursor)
+       pop     %ebx
+       pop     %ebp
+       ret
++
++/* graphics mode functions */
++#ifdef SUPPORT_GRAPHICS
++VARIABLE(cursorX)
++.word 0
++VARIABLE(cursorY)
++.word 0
++VARIABLE(cursorCount)
++.word 0
++VARIABLE(cursorBuf)
++.byte 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
++
++      
++/*
++ * int set_videomode(mode)
++ * BIOS call "INT 10H Function 0h" to set video mode
++ *    Call with       %ah = 0x0
++ *                    %al = video mode
++ *      Returns old videomode.
++ */
++ENTRY(set_videomode)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++
++      movb    0x10(%esp), %cl
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      xorw    %bx, %bx
++      movb    $0xf, %ah
++      int     $0x10                   /* Get Current Video mode */
++      movb    %al, %ch
++      xorb    %ah, %ah
++      movb    %cl, %al
++        int   $0x10                   /* Set Video mode */
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorb    %ah, %ah
++      movb    %ch, %al
++
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++
++
++/*
++ * unsigned char * graphics_get_font()
++ * BIOS call "INT 10H Function 11h" to set font
++ *      Call with       %ah = 0x11
++ */
++ENTRY(graphics_get_font)
++      push    %ebp
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movw    $0x1130, %ax
++      movb    $6, %bh         /* font 8x16 */
++      int     $0x10
++      movw    %bp, %dx
++      movw    %es, %cx
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32
++
++      xorl    %eax, %eax
++      movw    %cx, %ax
++      shll    $4, %eax
++      movw    %dx, %ax
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %ebp
++      ret
++      
++
++      
++/*
++ * graphics_set_palette(index, red, green, blue)
++ * BIOS call "INT 10H Function 10h" to set individual dac register
++ *    Call with       %ah = 0x10
++ *                    %bx = register number
++ *                    %ch = new value for green (0-63)
++ *                    %cl = new value for blue (0-63)
++ *                    %dh = new value for red (0-63)
++ */
++
++ENTRY(graphics_set_palette)
++      push    %ebp
++      push    %eax
++      push    %ebx
++      push    %ecx
++      push    %edx
++
++      movw    $0x3c8, %bx             /* address write mode register */
++
++      /* wait vertical retrace */
++
++      movw    $0x3da, %dx
++l1b:  inb     %dx, %al        /* wait vertical active display */
++      test    $8, %al
++      jnz     l1b
++
++l2b:  inb     %dx, %al        /* wait vertical retrace */
++      test    $8, %al
++      jnz     l2b
++
++      mov     %bx, %dx
++      movb    0x18(%esp), %al         /* index */
++      outb    %al, %dx
++      inc     %dx
++
++      movb    0x1c(%esp), %al         /* red */
++      outb    %al, %dx
++
++      movb    0x20(%esp), %al         /* green */
++      outb    %al, %dx
++
++      movb    0x24(%esp), %al         /* blue */
++      outb    %al, %dx
++
++      movw    0x18(%esp), %bx
++
++      call    EXT_C(prot_to_real)
++      .code16
++
++      movb    %bl, %bh
++      movw    $0x1000, %ax
++      int     $0x10
++
++      DATA32  call    EXT_C(real_to_prot)
++      .code32 
++
++      pop     %edx
++      pop     %ecx
++      pop     %ebx
++      pop     %eax
++      pop     %ebp
++      ret
++
++#endif /* SUPPORT_GRAPHICS */
+               
+ /*
+  * getrtsecs()
+diff --git a/stage2/boot.c b/stage2/boot.c
+index 4185d23..e30daf8 100644
+--- a/stage2/boot.c
++++ b/stage2/boot.c
+@@ -25,10 +25,14 @@
+ #include "imgact_aout.h"
+ #include "i386-elf.h"
++#ifndef PLATFORM_EFI
+ static int cur_addr;
++#endif
+ entry_func entry_addr;
++#ifndef PLATFORM_EFI
+ static struct mod_list mll[99];
+ static int linux_mem_size;
++#endif
+ /*
+  *  The next two functions, 'load_image' and 'load_module', are the building
+@@ -40,6 +44,9 @@ kernel_t
+ load_image (char *kernel, char *arg, kernel_t suggested_type,
+           unsigned long load_flags)
+ {
++#ifdef PLATFORM_EFI
++      return grub_load_linux (kernel, arg);
++#else
+   int len, i, exec_type = 0, align_4k = 1;
+   entry_func real_entry_addr = 0;
+   kernel_t type = KERNEL_TYPE_NONE;
+@@ -221,6 +228,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+     {
+       int big_linux = 0;
+       int setup_sects = lh->setup_sects;
++      int cmdline_size = 0xff;
+       if (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0200)
+       {
+@@ -248,6 +256,14 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+             lh->cl_offset = LINUX_CL_OFFSET;
+             lh->setup_move_size = LINUX_SETUP_MOVE_SIZE;
+           }
++
++        if (lh->version >= 0x0206)
++          {
++            cmdline_size = lh->cmdline_size;
++            if (cmdline_size > (LINUX_CL_END_OFFSET - LINUX_CL_OFFSET))
++              cmdline_size = LINUX_CL_END_OFFSET - LINUX_CL_OFFSET;
++          }
++
+       }
+       else
+       {
+@@ -265,7 +281,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       setup_sects = LINUX_DEFAULT_SETUP_SECTS;
+       data_len = setup_sects << 9;
+-      text_len = filemax - data_len - SECTOR_SIZE;
++      text_len = filemax - data_len - get_sector_size(current_drive);
+       linux_data_tmp_addr = (char *) LINUX_BZIMAGE_ADDR + text_len;
+       
+@@ -280,8 +296,12 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       errnum = ERR_WONT_FIT;
+       else
+       {
+-        grub_printf ("   [Linux-%s, setup=0x%x, size=0x%x]\n",
+-                     (big_linux ? "bzImage" : "zImage"), data_len, text_len);
++        grub_verbose_printf ("   [Linux-%s, setup=0x%x, size=0x%x]\n",
++                             (big_linux ? "bzImage" : "zImage"),
++                             data_len, text_len);
++
++        if (silent_grub)
++          lh->vid_mode = 0x0f04;
+         /* Video mode selection support. What a mess!  */
+         /* NOTE: Even the word "mess" is not still enough to
+@@ -375,14 +395,15 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       
+         /* It is possible that DATA_LEN + SECTOR_SIZE is greater than
+            MULTIBOOT_SEARCH, so the data may have been read partially.  */
+-        if (data_len + SECTOR_SIZE <= MULTIBOOT_SEARCH)
++        if (data_len + get_sector_size(current_drive) <= MULTIBOOT_SEARCH)
+           grub_memmove (linux_data_tmp_addr, buffer,
+-                        data_len + SECTOR_SIZE);
++                        data_len + get_sector_size(current_drive));
+         else
+           {
+             grub_memmove (linux_data_tmp_addr, buffer, MULTIBOOT_SEARCH);
+             grub_read (linux_data_tmp_addr + MULTIBOOT_SEARCH,
+-                       data_len + SECTOR_SIZE - MULTIBOOT_SEARCH);
++                       data_len + get_sector_size(current_drive)
++                       - MULTIBOOT_SEARCH);
+           }
+         
+         if (lh->header != LINUX_MAGIC_SIGNATURE ||
+@@ -404,7 +425,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+           char *src = skip_to (0, arg);
+           char *dest = linux_data_tmp_addr + LINUX_CL_OFFSET;
+       
+-          while (dest < linux_data_tmp_addr + LINUX_CL_END_OFFSET && *src)
++          while (dest < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size && *src)
+             *(dest++) = *(src++);
+       
+           /* Old Linux kernels have problems determining the amount of
+@@ -425,7 +446,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+           if (! grub_strstr (arg, "mem=")
+               && ! (load_flags & KERNEL_LOAD_NO_MEM_OPTION)
+               && lh->version < 0x0203         /* kernel version < 2.4.18 */
+-              && dest + 15 < linux_data_tmp_addr + LINUX_CL_END_OFFSET)
++              && dest + 15 < linux_data_tmp_addr + LINUX_CL_OFFSET + cmdline_size)
+             {
+               *dest++ = ' ';
+               *dest++ = 'm';
+@@ -441,7 +462,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+         }
+       
+         /* offset into file */
+-        grub_seek (data_len + SECTOR_SIZE);
++        grub_seek (data_len + get_sector_size(current_drive));
+       
+         cur_addr = (int) linux_data_tmp_addr + LINUX_SETUP_MOVE_SIZE;
+         grub_read ((char *) LINUX_BZIMAGE_ADDR, text_len);
+@@ -487,7 +508,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+   mbi.syms.a.addr = 0;
+   mbi.syms.a.pad = 0;
+-  printf ("   [%s-%s", str2, str);
++  verbose_printf ("   [%s-%s", str2, str);
+   str = "";
+@@ -496,7 +517,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+       if (flags & MULTIBOOT_AOUT_KLUDGE)
+       str = "-and-data";
+-      printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
++      verbose_printf (", loadaddr=0x%x, text%s=0x%x", cur_addr, str, text_len);
+       /* read text, then read data */
+       if (grub_read ((char *) RAW_ADDR (cur_addr), text_len) == text_len)
+@@ -509,9 +530,9 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+             if (align_4k)
+               cur_addr = (cur_addr + 0xFFF) & 0xFFFFF000;
+             else
+-              printf (", C");
++              verbose_printf (", C");
+-            printf (", data=0x%x", data_len);
++            verbose_printf (", data=0x%x", data_len);
+             if ((grub_read ((char *) RAW_ADDR (cur_addr), data_len)
+                  != data_len)
+@@ -525,7 +546,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+             memset ((char *) RAW_ADDR (cur_addr), 0, bss_len);
+             cur_addr += bss_len;
+-            printf (", bss=0x%x", bss_len);
++            verbose_printf (", bss=0x%x", bss_len);
+           }
+       }
+       else if (!errnum)
+@@ -545,7 +566,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+         *((int *) RAW_ADDR (cur_addr)) = pu.aout->a_syms;
+         cur_addr += sizeof (int);
+         
+-        printf (", symtab=0x%x", pu.aout->a_syms);
++        verbose_printf (", symtab=0x%x", pu.aout->a_syms);
+         if (grub_read ((char *) RAW_ADDR (cur_addr), pu.aout->a_syms)
+             == pu.aout->a_syms)
+@@ -562,7 +583,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+                 i -= sizeof (int);
+-                printf (", strtab=0x%x", i);
++                verbose_printf (", strtab=0x%x", i);
+                 symtab_err = (grub_read ((char *) RAW_ADDR (cur_addr), i)
+                               != i);
+@@ -576,7 +597,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+         if (symtab_err)
+           {
+-            printf ("(bad)");
++            verbose_printf ("(bad)");
+             cur_addr = orig_addr;
+             mbi.syms.a.tabsize = 0;
+             mbi.syms.a.strsize = 0;
+@@ -630,7 +651,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+             /* mark memory as used */
+             if (cur_addr < memaddr + memsiz)
+               cur_addr = memaddr + memsiz;
+-            printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
++            verbose_printf (", <0x%x:0x%x:0x%x>", memaddr, filesiz,
+                     memsiz - filesiz);
+             /* increment number of segments */
+             loaded++;
+@@ -676,7 +697,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+                 shdr = (Elf32_Shdr *) mbi.syms.e.addr;
+                 cur_addr += tab_size;
+                 
+-                printf (", shtab=0x%x", cur_addr);
++                verbose_printf (", shtab=0x%x", cur_addr);
+                 
+                 for (i = 0; i < mbi.syms.e.num; i++)
+                   {
+@@ -718,7 +739,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+             
+             if (symtab_err) 
+               {
+-                printf ("(bad)");
++                verbose_printf ("(bad)");
+                 mbi.syms.e.num = 0;
+                 mbi.syms.e.size = 0;
+                 mbi.syms.e.addr = 0;
+@@ -733,7 +754,7 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+   if (! errnum)
+     {
+-      grub_printf (", entry=0x%x]\n", (unsigned) entry_addr);
++      grub_verbose_printf (", entry=0x%x]\n", (unsigned) entry_addr);
+       
+       /* If the entry address is physically different from that of the ELF
+        header, correct it here.  */
+@@ -756,8 +777,10 @@ load_image (char *kernel, char *arg, kernel_t suggested_type,
+     }
+   
+   return type;
++#endif
+ }
++#ifndef PLATFORM_EFI
+ int
+ load_module (char *module, char *arg)
+ {
+@@ -776,7 +799,7 @@ load_module (char *module, char *arg)
+       return 0;
+     }
+-  printf ("   [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
++  verbose_printf ("   [Multiboot-module @ 0x%x, 0x%x bytes]\n", cur_addr, len);
+   /* these two simply need to be set if any modules are loaded at all */
+   mbi.flags |= MB_INFO_MODS;
+@@ -794,11 +817,19 @@ load_module (char *module, char *arg)
+   grub_close ();
+   return 1;
+ }
++#endif
+ int
+ load_initrd (char *initrd)
+ {
+-  int len;
++#ifdef PLATFORM_EFI
++#ifndef NO_DECOMPRESSION
++  no_decompression = 1;
++#endif
++  return grub_load_initrd (initrd);
++#else
++  int len, next_addr;
++  char *singleimage, *pos;
+   unsigned long moveto;
+   unsigned long max_addr;
+   struct linux_kernel_header *lh
+@@ -807,16 +838,24 @@ load_initrd (char *initrd)
+ #ifndef NO_DECOMPRESSION
+   no_decompression = 1;
+ #endif
+-  
+-  if (! grub_open (initrd))
+-    goto fail;
++  len = 0;
++  next_addr = cur_addr;
+-  len = grub_read ((char *) cur_addr, -1);
+-  if (! len)
+-    {
+-      grub_close ();
+-      goto fail;
+-    }
++  /* loop over all initrd images and concatenate them in memory */
++  singleimage = strtok_r(initrd," \t",&pos);
++  while (singleimage) {
++    if (! grub_open (singleimage))
++      continue;
++
++    len += grub_read ((char *) next_addr, -1);
++    grub_close ();
++
++    next_addr = cur_addr + len;
++    singleimage = strtok_r(NULL," \t",&pos);
++  }
++
++  if (!len)
++    goto fail;
+   if (linux_mem_size)
+     moveto = linux_mem_size;
+@@ -824,8 +863,12 @@ load_initrd (char *initrd)
+     moveto = (mbi.mem_upper + 0x400) << 10;
+   
+   moveto = (moveto - len) & 0xfffff000;
++#if 0
+   max_addr = (lh->header == LINUX_MAGIC_SIGNATURE && lh->version >= 0x0203
+             ? lh->initrd_addr_max : LINUX_INITRD_MAX_ADDRESS);
++#else
++  max_addr = LINUX_INITRD_MAX_ADDRESS;
++#endif
+   if (moveto + len >= max_addr)
+     moveto = (max_addr - len) & 0xfffff000;
+   
+@@ -836,13 +879,12 @@ load_initrd (char *initrd)
+   moveto -= 0x10000;
+   memmove ((void *) RAW_ADDR (moveto), (void *) cur_addr, len);
+-  printf ("   [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
++  verbose_printf ("   [Linux-initrd @ 0x%x, 0x%x bytes]\n", moveto, len);
+   /* FIXME: Should check if the kernel supports INITRD.  */
+   lh->ramdisk_image = RAW_ADDR (moveto);
+   lh->ramdisk_size = len;
+-  grub_close ();
+  fail:
+   
+@@ -851,9 +893,11 @@ load_initrd (char *initrd)
+ #endif
+   return ! errnum;
++#endif
+ }
++#ifndef PLATFORM_EFI
+ #ifdef GRUB_UTIL
+ /* Dummy function to fake the *BSD boot.  */
+ static void
+@@ -1018,3 +1062,5 @@ bsd_boot (kernel_t type, int bootdev, char *arg)
+                    extended_memory, mbi.mem_lower);
+     }
+ }
++#endif
++
+diff --git a/stage2/builtins.c b/stage2/builtins.c
+index 3e08a86..b95b181 100644
+--- a/stage2/builtins.c
++++ b/stage2/builtins.c
+@@ -56,6 +56,9 @@ static int bootdev;
+ /* True when the debug mode is turned on, and false
+    when it is turned off.  */
+ int debug = 0;
++int debug_graphics = 0;
++/* Print what we're booting */
++int grub_verbose = 0;
+ /* The default entry.  */
+ int default_entry = 0;
+ /* The fallback entry.  */
+@@ -117,6 +120,27 @@ check_password (char *entered, char* expected, password_t type)
+     case PASSWORD_MD5:
+       return check_md5_password (entered, expected);
+ #endif
++
++    case PASSWORD_ENCRYPTED:
++      if (grub_memcmp (expected, "$1$", 3) == 0)
++      return check_md5_password (entered, expected);
++      else if (grub_memcmp (expected, "$5$", 3) == 0)
++      {
++        char *hashed;
++
++        hashed = sha256_crypt (entered, expected);
++        return hashed == NULL || strcmp (expected, hashed);
++      }
++      else if (grub_memcmp (expected, "$6$", 3) == 0)
++      {
++        char *hashed;
++
++        hashed = sha512_crypt (entered, expected);
++        return hashed == NULL || strcmp (expected, hashed);
++      }
++      else
++      return strcmp (entered, expected);
++
+     default: 
+       /* unsupported password type: be secure */
+       return 1;
+@@ -131,62 +155,98 @@ disk_read_print_func (int sector, int offset, int length)
+ }
\f
++/* blocklist_read_helper nee disk_read_blocklist_func was a nested
++ * function, to which pointers were taken and exposed globally.  Even
++ * in the GNU-C nested functions extension, they have local linkage,
++ * and aren't guaranteed to be accessable *at all* outside of their 
++ * containing scope.
++ *
++ * Above and beyond all of that, the variables within blocklist_func_context
++ * are originally local variables, with local (not even static) linkage,
++ * from within blocklist_func.  These were each referenced by
++ * disk_read_blocklist_func, which is only called from other functions
++ * through a globally scoped pointer.
++ * 
++ * The documentation in GCC actually uses the words "all hell will break
++ * loose" to describe this scenario.
++ *
++ * Also, "start_sector" was also used uninitialized, but gcc doesn't warn
++ * about it (possibly because of the scoping madness?)
++ */
++   
++static struct {
++      int start_sector;
++      int num_sectors;
++      int num_entries;
++      int last_length;
++} blocklist_func_context = {
++      .start_sector = 0,
++      .num_sectors = 0,
++      .num_entries = 0,
++      .last_length = 0
++};
++
++/* Collect contiguous blocks into one entry as many as possible,
++   and print the blocklist notation on the screen.  */
++static void
++blocklist_read_helper (int sector, int offset, int length)
++{
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
++  int *last_length = &blocklist_func_context.last_length;
++  int sector_size = get_sector_size(current_drive);
++
++  if (*num_sectors > 0)
++  {
++    if (*start_sector + *num_sectors == sector
++      && offset == 0 && *last_length == sector_size)
++    {
++      *num_sectors++;
++      *last_length = length;
++      return;
++    }
++    else
++    {
++      if (*last_length == sector_size)
++        grub_printf ("%s%d+%d", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors);
++      else if (*num_sectors > 1)
++        grub_printf ("%s%d+%d,%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *num_sectors-1,
++          *start_sector + *num_sectors-1 - part_start, 
++          *last_length);
++      else
++        grub_printf ("%s%d[0-%d]", *num_entries ? "," : "",
++          *start_sector - part_start, *last_length);
++      *num_entries++;
++      *num_sectors = 0;
++    }
++  }
++
++  if (offset > 0)
++  {
++    grub_printf("%s%d[%d-%d]", *num_entries ? "," : "",
++          sector-part_start, offset, offset+length);
++    *num_entries++;
++  }
++  else
++  {
++    *start_sector = sector;
++    *num_sectors = 1;
++    *last_length = length;
++  }
++}
++
+ /* blocklist */
+ static int
+ blocklist_func (char *arg, int flags)
+ {
+   char *dummy = (char *) RAW_ADDR (0x100000);
+-  int start_sector;
+-  int num_sectors = 0;
+-  int num_entries = 0;
+-  int last_length = 0;
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
+-  
+-  /* Collect contiguous blocks into one entry as many as possible,
+-     and print the blocklist notation on the screen.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (num_sectors > 0)
+-      {
+-        if (start_sector + num_sectors == sector
+-            && offset == 0 && last_length == SECTOR_SIZE)
+-          {
+-            num_sectors++;
+-            last_length = length;
+-            return;
+-          }
+-        else
+-          {
+-            if (last_length == SECTOR_SIZE)
+-              grub_printf ("%s%d+%d", num_entries ? "," : "",
+-                           start_sector - part_start, num_sectors);
+-            else if (num_sectors > 1)
+-              grub_printf ("%s%d+%d,%d[0-%d]", num_entries ? "," : "",
+-                           start_sector - part_start, num_sectors-1,
+-                           start_sector + num_sectors-1 - part_start, 
+-                           last_length);
+-            else
+-              grub_printf ("%s%d[0-%d]", num_entries ? "," : "",
+-                           start_sector - part_start, last_length);
+-            num_entries++;
+-            num_sectors = 0;
+-          }
+-      }
+-
+-      if (offset > 0)
+-      {
+-        grub_printf("%s%d[%d-%d]", num_entries ? "," : "",
+-                    sector-part_start, offset, offset+length);
+-        num_entries++;
+-      }
+-      else
+-      {
+-        start_sector = sector;
+-        num_sectors = 1;
+-        last_length = length;
+-      }
+-    }
++  int *start_sector = &blocklist_func_context.start_sector;
++  int *num_sectors = &blocklist_func_context.num_sectors;
++  int *num_entries = &blocklist_func_context.num_entries;
+   /* Open the file.  */
+   if (! grub_open (arg))
+@@ -206,15 +266,15 @@ blocklist_func (char *arg, int flags)
+   grub_printf (")");
+   /* Read in the whole file to DUMMY.  */
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = blocklist_read_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+   /* The last entry may not be printed yet.  Don't check if it is a
+    * full sector, since it doesn't matter if we read too much. */
+-  if (num_sectors > 0)
+-    grub_printf ("%s%d+%d", num_entries ? "," : "",
+-               start_sector - part_start, num_sectors);
++  if (*num_sectors > 0)
++    grub_printf ("%s%d+%d", *num_entries ? "," : "",
++               *start_sector - part_start, *num_sectors);
+   grub_printf ("\n");
+   
+@@ -237,12 +297,25 @@ static struct builtin builtin_blocklist =
+ static int
+ boot_func (char *arg, int flags)
+ {
++  struct term_entry *prev_term = current_term;
+   /* Clear the int15 handler if we can boot the kernel successfully.
+      This assumes that the boot code never fails only if KERNEL_TYPE is
+      not KERNEL_TYPE_NONE. Is this assumption is bad?  */
+   if (kernel_type != KERNEL_TYPE_NONE)
+     unset_int15_handler ();
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
++
++  if (silent_grub)
++    setcursor(0);
++
+ #ifdef SUPPORT_NETBOOT
+   /* Shut down the networking.  */
+   cleanup_net ();
+@@ -250,11 +323,13 @@ boot_func (char *arg, int flags)
+   
+   switch (kernel_type)
+     {
++#ifndef PLATFORM_EFI
+     case KERNEL_TYPE_FREEBSD:
+     case KERNEL_TYPE_NETBSD:
+       /* *BSD */
+       bsd_boot (kernel_type, bootdev, (char *) mbi.cmdline);
+       break;
++#endif
+     case KERNEL_TYPE_LINUX:
+       /* Linux */
+@@ -296,16 +371,25 @@ boot_func (char *arg, int flags)
+       chain_stage1 (0, BOOTSEC_LOCATION, boot_part_addr);
+       break;
++#ifndef PLATFORM_EFI
+     case KERNEL_TYPE_MULTIBOOT:
+       /* Multiboot */
+       multi_boot ((int) entry_addr, (int) &mbi);
+       break;
++#endif
+     default:
+       errnum = ERR_BOOT_COMMAND;
+       return 1;
+     }
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   return 0;
+ }
+@@ -402,6 +486,10 @@ static struct builtin builtin_cat =
+ static int
+ chainloader_func (char *arg, int flags)
+ {
++#ifdef PLATFORM_EFI
++  kernel_type = grub_chainloader(arg);
++  return kernel_type == KERNEL_TYPE_NONE;
++#else
+   int force = 0;
+   char *file = arg;
+@@ -458,6 +546,7 @@ chainloader_func (char *arg, int flags)
+   errnum = ERR_NONE;
+   
+   return 0;
++#endif
+ }
+ static struct builtin builtin_chainloader =
+@@ -564,89 +653,88 @@ static struct builtin builtin_cmp =
+ /* Set new colors used for the menu interface. Support two methods to
+    specify a color name: a direct integer representation and a symbolic
+    color name. An example of the latter is "blink-light-gray/blue".  */
+-static int
+-color_func (char *arg, int flags)
+-{
+-  char *normal;
+-  char *highlight;
+-  int new_normal_color;
+-  int new_highlight_color;
+-  static char *color_list[16] =
+-  {
+-    "black",
+-    "blue",
+-    "green",
+-    "cyan",
+-    "red",
+-    "magenta",
+-    "brown",
+-    "light-gray",
+-    "dark-gray",
+-    "light-blue",
+-    "light-green",
+-    "light-cyan",
+-    "light-red",
+-    "light-magenta",
+-    "yellow",
+-    "white"
+-  };
++static const char * const color_list[16] =
++{
++  "black",
++  "blue",
++  "green",
++  "cyan",
++  "red",
++  "magenta",
++  "brown",
++  "light-gray",
++  "dark-gray",
++  "light-blue",
++  "light-green",
++  "light-cyan",
++  "light-red",
++  "light-magenta",
++  "yellow",
++  "white"
++};
+-  auto int color_number (char *str);
++/* Convert the color name STR into the magical number.  */
++static int color_number (char *str)
++{
++  char *ptr;
++  int i;
++  int color = 0;
+   
+-  /* Convert the color name STR into the magical number.  */
+-  auto int color_number (char *str)
+-    {
+-      char *ptr;
+-      int i;
+-      int color = 0;
+-      
+-      /* Find the separator.  */
+-      for (ptr = str; *ptr && *ptr != '/'; ptr++)
+-      ;
++  /* Find the separator.  */
++  for (ptr = str; *ptr && *ptr != '/'; ptr++)
++    ;
+-      /* If not found, return -1.  */
+-      if (! *ptr)
+-      return -1;
++  /* If not found, return -1.  */
++  if (! *ptr)
++    return -1;
+-      /* Terminate the string STR.  */
+-      *ptr++ = 0;
++  /* Terminate the string STR.  */
++  *ptr++ = 0;
+-      /* If STR contains the prefix "blink-", then set the `blink' bit
+-       in COLOR.  */
+-      if (substring ("blink-", str) <= 0)
+-      {
+-        color = 0x80;
+-        str += 6;
+-      }
+-      
+-      /* Search for the color name.  */
+-      for (i = 0; i < 16; i++)
+-      if (grub_strcmp (color_list[i], str) == 0)
+-        {
+-          color |= i;
+-          break;
+-        }
++  /* If STR contains the prefix "blink-", then set the `blink' bit
++     in COLOR.  */
++  if (substring ("blink-", str) <= 0)
++    {
++      color = 0x80;
++      str += 6;
++    }
++  
++  /* Search for the color name.  */
++  for (i = 0; i < 16; i++)
++    if (grub_strcmp (color_list[i], str) == 0)
++      {
++        color |= i;
++        break;
++      }
+-      if (i == 16)
+-      return -1;
++  if (i == 16)
++    return -1;
+-      str = ptr;
+-      nul_terminate (str);
++  str = ptr;
++  nul_terminate (str);
+-      /* Search for the color name.  */      
+-      for (i = 0; i < 8; i++)
+-      if (grub_strcmp (color_list[i], str) == 0)
+-        {
+-          color |= i << 4;
+-          break;
+-        }
++  /* Search for the color name.  */      
++  for (i = 0; i < 8; i++)
++    if (grub_strcmp (color_list[i], str) == 0)
++      {
++        color |= i << 4;
++        break;
++      }
+-      if (i == 8)
+-      return -1;
++  if (i == 8)
++    return -1;
++
++  return color;
++}
++
++static int
++color_func (char *arg, int flags)
++{
++  char *normal;
++  char *highlight;
++  int new_normal_color;
++  int new_highlight_color;
+-      return color;
+-    }
+-      
+   normal = arg;
+   highlight = skip_to (0, arg);
+@@ -690,7 +778,6 @@ static struct builtin builtin_color =
+   " But only the first eight names can be used for BG. You can prefix"
+   " \"blink-\" to FG if you want a blinking foreground color."
+ };
+-
\f
+ /* configfile */
+ static int
+@@ -737,14 +824,18 @@ static struct builtin builtin_configfile =
+ static int
+ debug_func (char *arg, int flags)
+ {
+-  if (debug)
++  int *whichdebug = &debug;
++  if (arg && !strcmp(arg, "--graphics"))
++    whichdebug = &debug_graphics;
++
++  if (*whichdebug)
+     {
+-      debug = 0;
++      *whichdebug = 0;
+       grub_printf (" Debug mode is turned off\n");
+     }
+   else
+     {
+-      debug = 1;
++      *whichdebug = 1;
+       grub_printf (" Debug mode is turned on\n");
+     }
+@@ -755,17 +846,61 @@ static struct builtin builtin_debug =
+ {
+   "debug",
+   debug_func,
+-  BUILTIN_CMDLINE,
++  BUILTIN_CMDLINE | BUILTIN_MENU,
+   "debug",
+   "Turn on/off the debug mode."
+ };
\f
++/* verbose */
++static int
++verbose_func (char *arg, int flags)
++{
++  if (grub_verbose)
++    {
++      grub_verbose = 0;
++      grub_printf (" Verbose mode is turned off\n");
++    }
++  else
++    {
++      grub_verbose = 1;
++      grub_printf (" Verbose mode is turned on\n");
++    }
++
++  return 0;
++}
++
++static struct builtin builtin_verbose =
++{
++  "verbose",
++  verbose_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU,
++  "verbose",
++  "Turn on/off verbose output."
++};
++
++\f
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
++static int savedefault_helper(int);
++#endif
+ /* default */
+ static int
+ default_func (char *arg, int flags)
+ {
+ #ifndef SUPPORT_DISKLESS
++#ifndef GRUB_UTIL
++#ifndef PLATFORM_EFI
++  /* Has a forced once-only default been specified? */
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      int old_defaults=saved_entryno & ~STAGE2_ONCEONLY_ENTRY;
++      grub_timeout = 0;
++      default_entry = old_defaults >> 8;
++      savedefault_helper(old_defaults & 0xff);
++      return 0;
++    }
++#endif
++#endif
+   if (grub_strcmp (arg, "saved") == 0)
+     {
+       default_entry = saved_entryno;
+@@ -792,7 +927,7 @@ static struct builtin builtin_default =
+ };
\f
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+ /* device */
+ static int
+ device_func (char *arg, int flags)
+@@ -800,16 +935,17 @@ device_func (char *arg, int flags)
+   char *drive = arg;
+   char *device;
+-  /* Get the drive number from DRIVE.  */
+-  if (! set_device (drive))
+-    return 1;
+-
+   /* Get the device argument.  */
+   device = skip_to (0, drive);
+-  
++
++  nul_terminate (drive);
+   /* Terminate DEVICE.  */
+   nul_terminate (device);
++  /* Get the drive number from DRIVE.  */
++  if (! set_device (drive))
++    return 1;
++
+   if (! *device || ! check_device (device))
+     {
+       errnum = ERR_FILE_NOT_FOUND;
+@@ -817,7 +953,7 @@ device_func (char *arg, int flags)
+     }
+   assign_device_name (current_drive, device);
+-  
++
+   return 0;
+ }
+@@ -828,9 +964,20 @@ static struct builtin builtin_device =
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+   "device DRIVE DEVICE",
+   "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
+-  " can be used only in the grub shell."
++  " can be used only in the grub shell and in EFI."
+ };
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
++#ifdef PLATFORM_EFI
++static struct builtin builtin_efimap =
++{
++  "efimap",
++  device_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "efimap DRIVE DEVICE",
++  "Specify DEVICE as the actual drive for a BIOS drive DRIVE. This command"
++  " can be used only in EFI."
++};
++#endif /* PLATFORM_EFI */
\f
+ #ifdef SUPPORT_NETBOOT
+@@ -852,6 +999,139 @@ static struct builtin builtin_dhcp =
+ };
+ #endif /* SUPPORT_NETBOOT */
++static int terminal_func (char *arg, int flags);
++
++#ifdef SUPPORT_GRAPHICS
++\f
++static int splashimage_func(char *arg, int flags) {
++    char splashimage[64];
++    int i;
++    
++    /* filename can only be 64 characters due to our buffer size */
++    if (strlen(arg) > 63)
++      return 1;
++    if (flags == BUILTIN_CMDLINE) {
++      if (!grub_open(arg))
++          return 1;
++      grub_close();
++    }
++
++    strcpy(splashimage, arg);
++
++    /* get rid of TERM_NEED_INIT from the graphics terminal. */
++    for (i = 0; term_table[i].name; i++) {
++      if (grub_strcmp (term_table[i].name, "graphics") == 0) {
++          term_table[i].flags &= ~TERM_NEED_INIT;
++          break;
++      }
++    }
++    
++    graphics_set_splash(splashimage);
++
++    if (flags == BUILTIN_CMDLINE && graphics_inited) {
++      graphics_end();
++      graphics_init();
++      graphics_cls();
++    }
++
++    /* FIXME: should we be explicitly switching the terminal as a 
++     * side effect here? */
++    terminal_func("graphics", flags);
++
++    return 0;
++}
++
++static struct builtin builtin_splashimage =
++{
++  "splashimage",
++  splashimage_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "splashimage FILE",
++  "Load FILE as the background image when in graphics mode."
++};
++
++\f
++/* foreground */
++static int
++foreground_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      foreground = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(15, r, g, b);
++
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_foreground =
++{
++  "foreground",
++  foreground_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "foreground RRGGBB",
++  "Sets the foreground color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++\f
++/* background */
++static int
++background_func(char *arg, int flags)
++{
++    if (grub_strlen(arg) == 6) {
++      int r = ((hex(arg[0]) << 4) | hex(arg[1])) >> 2;
++      int g = ((hex(arg[2]) << 4) | hex(arg[3])) >> 2;
++      int b = ((hex(arg[4]) << 4) | hex(arg[5])) >> 2;
++
++      background = (r << 16) | (g << 8) | b;
++      if (graphics_inited)
++          graphics_set_palette(0, r, g, b);
++      return (0);
++    }
++
++    return (1);
++}
++
++static struct builtin builtin_background =
++{
++  "background",
++  background_func,
++  BUILTIN_CMDLINE | BUILTIN_MENU | BUILTIN_HELP_LIST,
++  "background RRGGBB",
++  "Sets the background color when in graphics mode."
++  "RR is red, GG is green, and BB blue. Numbers must be in hexadecimal."
++};
++
++#endif /* SUPPORT_GRAPHICS */
++
++\f
++/* clear */
++static int 
++clear_func() 
++{
++  if (current_term->cls)
++    current_term->cls();
++
++  return 0;
++}
++
++static struct builtin builtin_clear =
++{
++  "clear",
++  clear_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "clear",
++  "Clear the screen"
++};
++
++#ifndef PLATFORM_EFI
\f
+ /* displayapm */
+ static int
+@@ -893,6 +1173,7 @@ static struct builtin builtin_displayapm =
+   "displayapm",
+   "Display APM BIOS information."
+ };
++#endif /* !PLATFORM_EFI */
\f
+ /* displaymem */
+@@ -912,11 +1193,11 @@ displaymem_func (char *arg, int flags)
+   if (mbi.flags & MB_INFO_MEM_MAP)
+     {
+       struct AddrRangeDesc *map = (struct AddrRangeDesc *) mbi.mmap_addr;
+-      int end_addr = mbi.mmap_addr + mbi.mmap_length;
++      unsigned long end_addr = mbi.mmap_addr + mbi.mmap_length;
+       grub_printf (" [Address Range Descriptor entries "
+                  "immediately follow (values are 64-bit)]\n");
+-      while (end_addr > (int) map)
++      while (end_addr > (unsigned long) map)
+       {
+         char *str;
+@@ -924,15 +1205,10 @@ displaymem_func (char *arg, int flags)
+           str = "Usable RAM";
+         else
+           str = "Reserved";
+-        grub_printf ("   %s:  Base Address:  0x%x X 4GB + 0x%x,\n"
+-                     "      Length:   0x%x X 4GB + 0x%x bytes\n",
+-                     str,
+-                     (unsigned long) (map->BaseAddr >> 32),
+-                     (unsigned long) (map->BaseAddr & 0xFFFFFFFF),
+-                     (unsigned long) (map->Length >> 32),
+-                     (unsigned long) (map->Length & 0xFFFFFFFF));
+-
+-        map = ((struct AddrRangeDesc *) (((int) map) + 4 + map->size));
++        grub_printf ("   %s:  Base Address: 0x%lx Length: 0x%lx bytes\n",
++                      str, map->BaseAddr, map->Length);
++
++        map = ((struct AddrRangeDesc *) (((unsigned long) map) + 4 + map->size));
+       }
+     }
+@@ -1009,6 +1285,7 @@ static struct builtin builtin_dump =
+   };
+ #endif /* GRUB_UTIL */
++#ifndef PLATFORM_EFI
\f
+ static char embed_info[32];
+ /* embed */
+@@ -1143,6 +1420,7 @@ static struct builtin builtin_embed =
+   " is a drive, or in the \"bootloader\" area if DEVICE is a FFS partition."
+   " Print the number of sectors which STAGE1_5 occupies if successful."
+ };
++#endif /* ! PLATFORM_EFI */
\f
+ /* fallback */
+@@ -1230,17 +1508,19 @@ find_func (char *arg, int flags)
+     }
+   /* Hard disks.  */
+-  for (drive = 0x80; drive < 0x88; drive++)
++  for (drive = 0x80; drive < (0x80 + MAX_HD_NUM); drive++)
+     {
+       unsigned long part = 0xFFFFFF;
+-      unsigned long start, len, offset, ext_offset;
+-      int type, entry;
+-      char buf[SECTOR_SIZE];
++      unsigned long start, len, offset, ext_offset, gpt_offset;
++      int type, entry, gpt_count, gpt_size;
++      int sector_size = get_sector_size(drive);
++      char buf[sector_size];
+       current_drive = drive;
+       while (next_partition (drive, 0xFFFFFF, &part, &type,
+                            &start, &len, &offset, &entry,
+-                           &ext_offset, buf))
++                            &ext_offset, &gpt_offset,
++                            &gpt_count, &gpt_size, buf))
+       {
+         if (type != PC_SLICE_TYPE_NONE
+             && ! IS_PC_SLICE_TYPE_BSD (type)
+@@ -1301,6 +1581,59 @@ static struct builtin builtin_find =
+   "Search for the filename FILENAME in all of partitions and print the list of"
+   " the devices which contain the file."
+ };
++\f
++/* findiso */
++\f
++/* Search for an ISO 9660 partition.  */
++static int
++findiso_func (char *arg, int flags)
++{
++  unsigned long drive;
++  unsigned long tmp_drive = saved_drive;
++  unsigned long tmp_partition = saved_partition;
++
++  /* Hard disks.  */
++  for (drive = 0x80; drive < 0x89; drive++)
++    {
++      unsigned long part = 0xFFFFFF;
++
++      if (drive == 0x88)
++        drive = 0x100;
++
++      current_drive = drive;
++      current_partition = part;
++
++      if (open_device ())
++      {
++        char *type = get_fsys_type();
++        if (!grub_strcmp(type, "iso9660"))
++        {
++            saved_drive = current_drive;
++            saved_partition = current_partition;
++            errnum = ERR_NONE;
++            return 0;
++        }
++      }
++
++      /* We want to ignore any error here.  */
++      errnum = ERR_NONE;
++    }
++
++  saved_drive = tmp_drive;
++  saved_partition = tmp_partition;
++
++  errnum = ERR_FILE_NOT_FOUND;
++  return 1;
++}
++
++static struct builtin builtin_findiso =
++{
++  "findiso",
++  findiso_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "findiso FILENAME",
++  "Set root to the first device with a valid ISO 9660 filesystem."
++};
\f
+ /* fstest */
+@@ -1679,6 +2012,7 @@ static struct builtin builtin_ifconfig =
+ };
+ #endif /* SUPPORT_NETBOOT */
++#ifndef PLATFORM_EFI
\f
+ /* impsprobe */
+ static int
+@@ -1706,6 +2040,7 @@ static struct builtin builtin_impsprobe =
+   " configuration table and boot the various CPUs which are found into"
+   " a tight loop."
+ };
++#endif /* ! PLATFORM_EFI */
\f
+ /* initrd */
+@@ -1738,8 +2073,82 @@ static struct builtin builtin_initrd =
+   " appropriate parameters in the Linux setup area in memory."
+ };
++#ifndef PLATFORM_EFI
\f
+ /* install */
++static struct {
++      int saved_sector;
++      int installaddr;
++      int installlist;
++      int last_length;
++      char *stage2_first_buffer;
++} install_func_context = {
++      .saved_sector = 0,
++      .installaddr = 0,
++      .installlist = 0,
++      .last_length = SECTOR_SIZE,
++      .stage2_first_buffer = NULL,
++};
++
++/* Save the first sector of Stage2 in STAGE2_SECT.  */
++/* Formerly disk_read_savesect_func with local scope inside install_func */
++static void
++install_savesect_helper(int sector, int offset, int length)
++{
++  if (debug)
++    printf ("[%d]", sector);
++
++  /* ReiserFS has files which sometimes contain data not aligned
++     on sector boundaries.  Returning an error is better than
++     silently failing. */
++  if (offset != 0 || length != SECTOR_SIZE)
++    errnum = ERR_UNALIGNED;
++
++  install_func_context.saved_sector = sector;
++}
++
++/* Write SECTOR to INSTALLLIST, and update INSTALLADDR and  INSTALLSECT.  */
++/* Formerly disk_read_blocklist_func with local scope inside install_func */
++static void
++install_blocklist_helper (int sector, int offset, int length)
++{
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* Was the last sector full? */
++  int *last_length = &install_func_context.last_length;
++
++  if (debug)
++    printf("[%d]", sector);
++
++  if (offset != 0 || *last_length != SECTOR_SIZE)
++    {
++      /* We found a non-sector-aligned data block. */
++      errnum = ERR_UNALIGNED;
++      return;
++    }
++
++  *last_length = length;
++
++  if (*((unsigned long *) (*installlist - 4))
++      + *((unsigned short *) *installlist) != sector
++      || *installlist == (int) *stage2_first_buffer + SECTOR_SIZE + 4)
++    {
++      *installlist -= 8;
++
++      if (*((unsigned long *) (*installlist - 8)))
++        errnum = ERR_WONT_FIT;
++      else
++        {
++          *((unsigned short *) (*installlist + 2)) = (*installaddr >> 4);
++          *((unsigned long *) (*installlist - 4)) = sector;
++        }
++    }
++
++  *((unsigned short *) *installlist) += 1;
++  *installaddr += 512;
++}
++
+ static int
+ install_func (char *arg, int flags)
+ {
+@@ -1747,8 +2156,12 @@ install_func (char *arg, int flags)
+   char *stage1_buffer = (char *) RAW_ADDR (0x100000);
+   char *stage2_buffer = stage1_buffer + SECTOR_SIZE;
+   char *old_sect = stage2_buffer + SECTOR_SIZE;
+-  char *stage2_first_buffer = old_sect + SECTOR_SIZE;
+-  char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE;
++  /* stage2_first_buffer used to be defined as:
++   * char *stage2_first_buffer = old_sect + SECTOR_SIZE;  */
++  char **stage2_first_buffer = &install_func_context.stage2_first_buffer;
++  /* and stage2_second_buffer was:
++   * char *stage2_second_buffer = stage2_first_buffer + SECTOR_SIZE; */
++  char *stage2_second_buffer = old_sect + SECTOR_SIZE + SECTOR_SIZE;
+   /* XXX: Probably SECTOR_SIZE is reasonable.  */
+   char *config_filename = stage2_second_buffer + SECTOR_SIZE;
+   char *dummy = config_filename + SECTOR_SIZE;
+@@ -1757,10 +2170,11 @@ install_func (char *arg, int flags)
+   int src_drive, src_partition, src_part_start;
+   int i;
+   struct geometry dest_geom, src_geom;
+-  int saved_sector;
++  int *saved_sector = &install_func_context.saved_sector;
+   int stage2_first_sector, stage2_second_sector;
+   char *ptr;
+-  int installaddr, installlist;
++  int *installaddr = &install_func_context.installaddr;
++  int *installlist = &install_func_context.installlist;
+   /* Point to the location of the name of a configuration file in Stage 2.  */
+   char *config_file_location;
+   /* If FILE is a Stage 1.5?  */
+@@ -1769,68 +2183,18 @@ install_func (char *arg, int flags)
+   int is_open = 0;
+   /* If LBA is forced?  */
+   int is_force_lba = 0;
+-  /* Was the last sector full? */
+-  int last_length = SECTOR_SIZE;
++  int *last_length = &install_func_context.last_length;
+   
++  /* Reset state.  */
++  *last_length = SECTOR_SIZE;
++
++  *stage2_first_buffer = old_sect + SECTOR_SIZE;
+ #ifdef GRUB_UTIL
+   /* If the Stage 2 is in a partition mounted by an OS, this will store
+      the filename under the OS.  */
+   char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+   
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
+-  
+-  /* Save the first sector of Stage2 in STAGE2_SECT.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-      printf ("[%d]", sector);
+-
+-      /* ReiserFS has files which sometimes contain data not aligned
+-         on sector boundaries.  Returning an error is better than
+-         silently failing. */
+-      if (offset != 0 || length != SECTOR_SIZE)
+-      errnum = ERR_UNALIGNED;
+-
+-      saved_sector = sector;
+-    }
+-
+-  /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+-     INSTALLSECT.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
+-    {
+-      if (debug)
+-      printf("[%d]", sector);
+-
+-      if (offset != 0 || last_length != SECTOR_SIZE)
+-      {
+-        /* We found a non-sector-aligned data block. */
+-        errnum = ERR_UNALIGNED;
+-        return;
+-      }
+-
+-      last_length = length;
+-
+-      if (*((unsigned long *) (installlist - 4))
+-        + *((unsigned short *) installlist) != sector
+-        || installlist == (int) stage2_first_buffer + SECTOR_SIZE + 4)
+-      {
+-        installlist -= 8;
+-
+-        if (*((unsigned long *) (installlist - 8)))
+-          errnum = ERR_WONT_FIT;
+-        else
+-          {
+-            *((unsigned short *) (installlist + 2)) = (installaddr >> 4);
+-            *((unsigned long *) (installlist - 4)) = sector;
+-          }
+-      }
+-
+-      *((unsigned short *) installlist) += 1;
+-      installaddr += 512;
+-    }
+-
+   /* First, check the GNU-style long option.  */
+   while (1)
+     {
+@@ -1862,10 +2226,10 @@ install_func (char *arg, int flags)
+   addr = skip_to (0, file);
+   /* Get the installation address.  */
+-  if (! safe_parse_maxint (&addr, &installaddr))
++  if (! safe_parse_maxint (&addr, installaddr))
+     {
+       /* ADDR is not specified.  */
+-      installaddr = 0;
++      *installaddr = 0;
+       ptr = addr;
+       errnum = 0;
+     }
+@@ -1961,17 +2325,17 @@ install_func (char *arg, int flags)
+       = 0x9090;
+   
+   /* Read the first sector of Stage 2.  */
+-  disk_read_hook = disk_read_savesect_func;
+-  if (grub_read (stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
++  disk_read_hook = install_savesect_helper;
++  if (grub_read (*stage2_first_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+-  stage2_first_sector = saved_sector;
++  stage2_first_sector = *saved_sector;
+   
+   /* Read the second sector of Stage 2.  */
+   if (grub_read (stage2_second_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+     goto fail;
+-  stage2_second_sector = saved_sector;
++  stage2_second_sector = *saved_sector;
+   
+   /* Check for the version of Stage 2.  */
+   if (*((short *) (stage2_second_buffer + STAGE2_VER_MAJ_OFFS))
+@@ -1987,27 +2351,27 @@ install_func (char *arg, int flags)
+   /* If INSTALLADDR is not specified explicitly in the command-line,
+      determine it by the Stage 2 id.  */
+-  if (! installaddr)
++  if (! *installaddr)
+     {
+       if (! is_stage1_5)
+       /* Stage 2.  */
+-      installaddr = 0x8000;
++      *installaddr = 0x8000;
+       else
+       /* Stage 1.5.  */
+-      installaddr = 0x2000;
++      *installaddr = 0x2000;
+     }
+   *((unsigned long *) (stage1_buffer + STAGE1_STAGE2_SECTOR))
+     = stage2_first_sector;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_ADDRESS))
+-    = installaddr;
++    = *installaddr;
+   *((unsigned short *) (stage1_buffer + STAGE1_STAGE2_SEGMENT))
+-    = installaddr >> 4;
++    = *installaddr >> 4;
+-  i = (int) stage2_first_buffer + SECTOR_SIZE - 4;
++  i = (int) *stage2_first_buffer + SECTOR_SIZE - 4;
+   while (*((unsigned long *) i))
+     {
+-      if (i < (int) stage2_first_buffer
++      if (i < (int) *stage2_first_buffer
+         || (*((int *) (i - 4)) & 0x80000000)
+         || *((unsigned short *) i) >= 0xA00
+         || *((short *) (i + 2)) == 0)
+@@ -2021,13 +2385,13 @@ install_func (char *arg, int flags)
+       i -= 8;
+     }
+-  installlist = (int) stage2_first_buffer + SECTOR_SIZE + 4;
+-  installaddr += SECTOR_SIZE;
++  *installlist = (int) *stage2_first_buffer + SECTOR_SIZE + 4;
++  *installaddr += SECTOR_SIZE;
+   
+   /* Read the whole of Stage2 except for the first sector.  */
+   grub_seek (SECTOR_SIZE);
+-  disk_read_hook = disk_read_blocklist_func;
++  disk_read_hook = install_blocklist_helper;
+   if (! grub_read (dummy, -1))
+     goto fail;
+   
+@@ -2110,7 +2474,7 @@ install_func (char *arg, int flags)
+         /* Skip the first sector.  */
+         grub_seek (SECTOR_SIZE);
+         
+-        disk_read_hook = disk_read_savesect_func;
++        disk_read_hook = install_savesect_helper;
+         if (grub_read (stage2_buffer, SECTOR_SIZE) != SECTOR_SIZE)
+           goto fail;
+         
+@@ -2180,7 +2544,7 @@ install_func (char *arg, int flags)
+         else
+ #endif /* GRUB_UTIL */
+           {
+-            if (! devwrite (saved_sector - part_start, 1, stage2_buffer))
++            if (! devwrite (*saved_sector - part_start, 1, stage2_buffer))
+               goto fail;
+           }
+       }
+@@ -2202,7 +2566,7 @@ install_func (char *arg, int flags)
+         goto fail;
+       }
+-      if (fwrite (stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++      if (fwrite (*stage2_first_buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
+       {
+         fclose (fp);
+         errnum = ERR_WRITE;
+@@ -2229,7 +2593,7 @@ install_func (char *arg, int flags)
+       goto fail;
+       if (! devwrite (stage2_first_sector - src_part_start, 1,
+-                    stage2_first_buffer))
++                    *stage2_first_buffer))
+       goto fail;
+       if (! devwrite (stage2_second_sector - src_part_start, 1,
+@@ -2322,6 +2686,7 @@ static struct builtin builtin_ioprobe =
+   "ioprobe DRIVE",
+   "Probe I/O ports used for the drive DRIVE."
+ };
++#endif /* ! PLATFORM_EFI */
\f
+ /* kernel */
+@@ -2456,6 +2821,7 @@ static struct builtin builtin_makeactive =
+   " This command is limited to _primary_ PC partitions on a hard disk."
+ };
++#ifndef PLATFORM_EFI
\f
+ /* map */
+ /* Map FROM_DRIVE to TO_DRIVE.  */
+@@ -2519,6 +2885,7 @@ static struct builtin builtin_map =
+   " when you chain-load some operating systems, such as DOS, if such an"
+   " OS resides at a non-first drive."
+ };
++#endif /* ! PLATFORM_EFI */
\f
+ #ifdef USE_MD5_PASSWORDS
+@@ -2579,6 +2946,7 @@ static struct builtin builtin_md5crypt =
+ };
+ #endif /* USE_MD5_PASSWORDS */
++#ifndef PLATFORM_EFI
\f
+ /* module */
+ static int
+@@ -2656,6 +3024,7 @@ static struct builtin builtin_modulenounzip =
+   "The same as `module', except that automatic decompression is"
+   " disabled."
+ };
++#endif /* !PLATFORM_EFI */
\f
+ /* pager [on|off] */
+@@ -2698,7 +3067,6 @@ partnew_func (char *arg, int flags)
+   int start_cl, start_ch, start_dh;
+   int end_cl, end_ch, end_dh;
+   int entry;
+-  char mbr[512];
+   /* Convert a LBA address to a CHS address in the INT 13 format.  */
+   auto void lba_to_chs (int lba, int *cl, int *ch, int *dh);
+@@ -2729,6 +3097,9 @@ partnew_func (char *arg, int flags)
+       return 1;
+     }
++  int sector_size = get_sector_size(current_drive);
++  char mbr[sector_size];
++
+   /* The partition must a primary partition.  */
+   if ((current_partition >> 16) > 3
+       || (current_partition & 0xFFFF) != 0xFFFF)
+@@ -2762,7 +3133,7 @@ partnew_func (char *arg, int flags)
+     return 1;
+   /* Read the MBR.  */
+-  if (! rawread (current_drive, 0, 0, SECTOR_SIZE, mbr))
++  if (! rawread (current_drive, 0, 0, sector_size, mbr))
+     return 1;
+   /* Check if the new partition will fit in the disk.  */
+@@ -2815,9 +3186,8 @@ parttype_func (char *arg, int flags)
+ {
+   int new_type;
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
+-  char mbr[512];
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+   /* Get the drive and the partition.  */
+   if (! set_device (arg))
+@@ -2829,6 +3199,9 @@ parttype_func (char *arg, int flags)
+       errnum = ERR_BAD_ARGUMENT;
+       return 1;
+     }
++
++  int sector_size = get_sector_size(current_drive);
++  char mbr[sector_size];
+   
+   /* The partition must be a PC slice.  */
+   if ((current_partition >> 16) == 0xFF
+@@ -2853,8 +3226,15 @@ parttype_func (char *arg, int flags)
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,
+                        &start, &len, &offset, &entry,
+-                       &ext_offset, mbr))
++                       &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
+     {
++        /* The partition may not be a GPT partition.  */
++        if (gpt_offset != 0)
++          {
++              errnum = ERR_BAD_ARGUMENT;
++              return 1;
++          }
++
+       if (part == current_partition)
+       {
+         /* Found.  */
+@@ -2900,6 +3280,11 @@ password_func (char *arg, int flags)
+       arg = skip_to (0, arg);
+     }
+ #endif
++  else if (grub_memcmp (arg, "--encrypted", 5) == 0)
++    {
++      type = PASSWORD_ENCRYPTED;
++      arg = skip_to (0, arg);
++    }
+   if (grub_memcmp (arg, "--", 2) == 0)
+     {
+       type = PASSWORD_UNSUPPORTED;
+@@ -2947,7 +3332,7 @@ static struct builtin builtin_password =
+   "password",
+   password_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_NO_ECHO,
+-  "password [--md5] PASSWD [FILE]",
++  "password [--md5|--encrypted] PASSWD [FILE]",
+   "If used in the first section of a menu file, disable all"
+   " interactive editing control (menu entry editor and"
+   " command line). If the password PASSWD is entered, it loads the"
+@@ -2956,7 +3341,8 @@ static struct builtin builtin_password =
+   " instructions.  You can also use it in the script section, in"
+   " which case it will ask for the password, before continueing."
+   " The option --md5 tells GRUB that PASSWD is encrypted with"
+-  " md5crypt."
++  " md5crypt, --encrypted that PASSWD is encrypted (with algorithm"
++  " specified in PASSWD: supported is md5, sha-256, sha-512)."
+ };
\f
+@@ -2982,8 +3368,8 @@ static struct builtin builtin_pause =
+   "Print MESSAGE, then wait until a key is pressed."
+ };
++#if defined (GRUB_UTIL) || defined (PLATFORM_EFI)
\f
+-#ifdef GRUB_UTIL
+ /* quit */
+ static int
+ quit_func (char *arg, int flags)
+@@ -3002,7 +3388,7 @@ static struct builtin builtin_quit =
+   "quit",
+   "Exit from the GRUB shell."
+ };
+-#endif /* GRUB_UTIL */
++#endif /* defined (GRUB_UTIL) || defined (PLATFORM_EFI) */
\f
+ #ifdef SUPPORT_NETBOOT
+@@ -3165,7 +3551,8 @@ real_root_func (char *arg, int attempt_mount)
+       return 1;
+       
+       /* Print the type of the filesystem.  */
+-      print_fsys_type ();
++      if (grub_verbose)
++      print_fsys_type ();
+     }
+   
+   return 0;
+@@ -3217,146 +3604,181 @@ static struct builtin builtin_rootnoverify =
+ };
\f
+-/* savedefault */
++
++#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL) && !defined(PLATFORM_EFI)
++/* Write specified default entry number into stage2 file. */
+ static int
+-savedefault_func (char *arg, int flags)
++savedefault_helper(int new_default)
+ {
+-#if !defined(SUPPORT_DISKLESS) && !defined(GRUB_UTIL)
+-  unsigned long tmp_drive = saved_drive;
+-  unsigned long tmp_partition = saved_partition;
+-  char *default_file = (char *) DEFAULT_FILE_BUF;
+-  char buf[10];
+-  char sect[SECTOR_SIZE];
+-  int entryno;
+-  int sector_count = 0;
+-  int saved_sectors[2];
+-  int saved_offsets[2];
+-  int saved_lengths[2];
+-
+-  /* Save sector information about at most two sectors.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  void disk_read_savesect_func (int sector, int offset, int length)
+-    {
+-      if (sector_count < 2)
+-      {
+-        saved_sectors[sector_count] = sector;
+-        saved_offsets[sector_count] = offset;
+-        saved_lengths[sector_count] = length;
+-      }
+-      sector_count++;
+-    }
+-  
+-  /* This command is only useful when you boot an entry from the menu
+-     interface.  */
+-  if (! (flags & BUILTIN_SCRIPT))
++  char buffer[512];
++  int *entryno_ptr;
++
++  /* Get the geometry of the boot drive (i.e. the disk which contains
++     this stage2).  */
++  if (get_diskinfo (boot_drive, &buf_geom))
+     {
+-      errnum = ERR_UNRECOGNIZED;
++      errnum = ERR_NO_DISK;
+       return 1;
+     }
+-  /* Determine a saved entry number.  */
+-  if (*arg)
++  /* Load the second sector of this stage2.  */
++  if (! rawread (boot_drive, install_second_sector, 0, SECTOR_SIZE, buffer))
+     {
+-      if (grub_memcmp (arg, "fallback", sizeof ("fallback") - 1) == 0)
+-      {
+-        int i;
+-        int index = 0;
+-        
+-        for (i = 0; i < MAX_FALLBACK_ENTRIES; i++)
+-          {
+-            if (fallback_entries[i] < 0)
+-              break;
+-            if (fallback_entries[i] == current_entryno)
+-              {
+-                index = i + 1;
+-                break;
+-              }
+-          }
+-        
+-        if (index >= MAX_FALLBACK_ENTRIES || fallback_entries[index] < 0)
+-          {
+-            /* This is the last.  */
+-            errnum = ERR_BAD_ARGUMENT;
+-            return 1;
+-          }
++      return 1;
++    }
+-        entryno = fallback_entries[index];
+-      }
+-      else if (! safe_parse_maxint (&arg, &entryno))
+-      return 1;
++  /* Sanity check.  */
++  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      return 1;
+     }
+-  else
+-    entryno = current_entryno;
++  
++  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
+-  /* Open the default file.  */
+-  saved_drive = boot_drive;
+-  saved_partition = install_partition;
+-  if (grub_open (default_file))
++  /* Check if the saved entry number differs from current entry number.  */
++  if (*entryno_ptr != new_default)
+     {
+-      int len;
++      /* Overwrite the saved entry number.  */
++      *entryno_ptr = new_default;
+       
+-      disk_read_hook = disk_read_savesect_func;
+-      len = grub_read (buf, sizeof (buf));
+-      disk_read_hook = 0;
+-      grub_close ();
++      /* Save the image in the disk.  */
++      if (! rawwrite (boot_drive, install_second_sector, buffer))
++      return 1;
+       
+-      if (len != sizeof (buf))
+-      {
+-        /* This is too small. Do not modify the file manually, please!  */
+-        errnum = ERR_READ;
+-        goto fail;
+-      }
++      /* Clear the cache.  */
++      buf_track = -1;
++    }
+-      if (sector_count > 2)
+-      {
+-        /* Is this possible?! Too fragmented!  */
+-        errnum = ERR_FSYS_CORRUPT;
+-        goto fail;
+-      }
+-      
+-      /* Set up a string to be written.  */
+-      grub_memset (buf, '\n', sizeof (buf));
+-      grub_sprintf (buf, "%d", entryno);
+-      
+-      if (saved_lengths[0] < sizeof (buf))
+-      {
+-        /* The file is anchored to another file and the first few bytes
+-           are spanned in two sectors. Uggh...  */
+-        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
+-                       sect))
+-          goto fail;
+-        grub_memmove (sect + saved_offsets[0], buf, saved_lengths[0]);
+-        if (! rawwrite (current_drive, saved_sectors[0], sect))
+-          goto fail;
++  return 0;
++}
++#endif
+-        if (! rawread (current_drive, saved_sectors[1], 0, SECTOR_SIZE,
+-                       sect))
+-          goto fail;
+-        grub_memmove (sect + saved_offsets[1],
+-                      buf + saved_lengths[0],
+-                      sizeof (buf) - saved_lengths[0]);
+-        if (! rawwrite (current_drive, saved_sectors[1], sect))
+-          goto fail;
+-      }
++#if !defined(SUPPORT_DISKLESS) && defined(GRUB_UTIL)
++#define SECTOR_SIZE 0x200
++/*
++ * Full implementation of new `savedefault' for GRUB shell.
++ * XXX This needs fixing for stage2 files which aren't accessible
++ *     through a mounted filesystem.
++ */
++static int
++savedefault_shell(char *arg, int flags)
++{
++  char *stage2_os_file = "/boot/grub/stage2"; /* Default filename */
++  FILE *fp;
++  char buffer[512];
++  int *entryno_ptr;
++  int new_default = 0;
++  int old_default = 0;
++
++  while (1)
++    {
++      if (grub_memcmp ("--stage2=", arg, sizeof ("--stage2=") - 1) == 0)
++        {
++          stage2_os_file = arg + sizeof ("--stage2=") - 1;
++          arg = skip_to (0, arg);
++          nul_terminate (stage2_os_file);
++        }
++      else if (grub_memcmp ("--default=", arg, sizeof ("--default=") - 1) == 0)
++        {
++          char *p = arg + sizeof ("--default=") - 1;
++          if (! safe_parse_maxint (&p, &new_default))
++            return 1;
++          arg = skip_to (0, arg);
++        }
++      else if (grub_memcmp ("--once", arg, sizeof ("--once") - 1) == 0)
++        {
++          new_default <<= 8;
++          new_default |= STAGE2_ONCEONLY_ENTRY;
++          arg = skip_to (0, arg);
++        }
+       else
+-      {
+-        /* This is a simple case. It fits into a single sector.  */
+-        if (! rawread (current_drive, saved_sectors[0], 0, SECTOR_SIZE,
+-                       sect))
+-          goto fail;
+-        grub_memmove (sect + saved_offsets[0], buf, sizeof (buf));
+-        if (! rawwrite (current_drive, saved_sectors[0], sect))
+-          goto fail;
+-      }
++        break;
++    }
+-      /* Clear the cache.  */
+-      buf_track = -1;
++  if (! (fp = fopen(stage2_os_file, "r+")))
++    {
++      errnum = ERR_FILE_NOT_FOUND;
++      return 1;
++    }
++  
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fread (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_READ;
++      return 1;
+     }
+- fail:
+-  saved_drive = tmp_drive;
+-  saved_partition = tmp_partition;
+-  return errnum;
++  /* Sanity check.  */
++  if (buffer[STAGE2_STAGE2_ID] != STAGE2_ID_STAGE2
++      || *((short *) (buffer + STAGE2_VER_MAJ_OFFS)) != COMPAT_VERSION)
++    {
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  entryno_ptr = (int *) (buffer + STAGE2_SAVED_ENTRYNO);
++  if (new_default & STAGE2_ONCEONLY_ENTRY)
++    {
++      old_default=*entryno_ptr;
++      *entryno_ptr = new_default + (old_default & 0xFF);
++    }
++  else
++    {
++      *entryno_ptr = new_default;
++    }
++
++  if (fseek (fp, SECTOR_SIZE, SEEK_SET) != 0)
++    {
++      fclose (fp);
++      errnum = ERR_BAD_VERSION;
++      return 1;
++    }
++  
++  if (fwrite (buffer, 1, SECTOR_SIZE, fp) != SECTOR_SIZE)
++    {
++      fclose (fp);
++      errnum = ERR_WRITE;
++      return 1;
++    }
++  
++  (void)fflush (fp);
++  fclose (fp);
++  return 0;
++}
++#undef SECTOR_SIZE
++#endif
++
++/* savedefault */
++static int
++savedefault_func (char *arg, int flags)
++{
++#if !defined(SUPPORT_DISKLESS)
++#if !defined(GRUB_UTIL)
++#if !defined(PLATFORM_EFI)
++  /* This command is only useful when you boot an entry from the menu
++     interface.  */
++  if (! (flags & BUILTIN_SCRIPT))
++    {
++      errnum = ERR_UNRECOGNIZED;
++      return 1;
++    }
++
++  return savedefault_helper(current_entryno);
++#else /* defined(PLATFORM_EFI) */
++  return grub_save_saved_default (current_entryno);
++#endif
++#else /* defined(GRUB_UTIL) */
++  return savedefault_shell(arg, flags);
++#endif
+ #else /* ! SUPPORT_DISKLESS && ! GRUB_UTIL */
+   errnum = ERR_UNRECOGNIZED;
+   return 1;
+@@ -3368,10 +3790,14 @@ static struct builtin builtin_savedefault =
+   "savedefault",
+   savedefault_func,
+   BUILTIN_CMDLINE,
+-  "savedefault [NUM | `fallback']",
+-  "Save the current entry as the default boot entry if no argument is"
+-  " specified. If a number is specified, this number is saved. If"
+-  " `fallback' is used, next fallback entry is saved."
++#ifdef GRUB_UTIL
++  "savedefault [--stage2=STAGE2_FILE] [--default=DEFAULT] [--once]",
++  "Save DEFAULT as the default boot entry in STAGE2_FILE. If '--once'"
++  " is specified, the default is reset after the next reboot."
++#else
++  "savedefault",
++  "Save the current entry as the default boot entry."
++#endif
+ };
\f
+@@ -3527,6 +3953,7 @@ static struct builtin builtin_serial =
+ };
+ #endif /* SUPPORT_SERIAL */
++#ifndef PLATFORM_EFI
\f
+ /* setkey */
+ struct keysym
+@@ -3612,50 +4039,47 @@ static struct keysym keysym_table[] =
+   {"delete",          0,              0x7f,   0,      0x53}
+ };
+-static int
+-setkey_func (char *arg, int flags)
++static int find_key_code (char *key)
+ {
+-  char *to_key, *from_key;
+-  int to_code, from_code;
+-  int map_in_interrupt = 0;
+-  
+-  auto int find_key_code (char *key);
+-  auto int find_ascii_code (char *key);
+-  
+-  auto int find_key_code (char *key)
+-    {
+-      int i;
++  int i;
+-      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+-      {
+-        if (keysym_table[i].unshifted_name &&
+-            grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
+-          return keysym_table[i].keycode;
+-        else if (keysym_table[i].shifted_name &&
+-                 grub_strcmp (key, keysym_table[i].shifted_name) == 0)
+-          return keysym_table[i].keycode;
+-      }
+-      
+-      return 0;
++  for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
++    {
++      if (keysym_table[i].unshifted_name &&
++          grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++        return keysym_table[i].keycode;
++      else if (keysym_table[i].shifted_name &&
++               grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++        return keysym_table[i].keycode;
+     }
+   
+-  auto int find_ascii_code (char *key)
++  return 0;
++}
++  
++static int find_ascii_code (char *key)
++{
++  int i;
++  
++  for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+     {
+-      int i;
+-      
+-      for (i = 0; i < sizeof (keysym_table) / sizeof (keysym_table[0]); i++)
+-      {
+-        if (keysym_table[i].unshifted_name &&
+-            grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
+-          return keysym_table[i].unshifted_ascii;
+-        else if (keysym_table[i].shifted_name &&
+-                 grub_strcmp (key, keysym_table[i].shifted_name) == 0)
+-          return keysym_table[i].shifted_ascii;
+-      }
+-      
+-      return 0;
++      if (keysym_table[i].unshifted_name &&
++          grub_strcmp (key, keysym_table[i].unshifted_name) == 0)
++        return keysym_table[i].unshifted_ascii;
++      else if (keysym_table[i].shifted_name &&
++               grub_strcmp (key, keysym_table[i].shifted_name) == 0)
++        return keysym_table[i].shifted_ascii;
+     }
+   
++  return 0;
++}
++
++static int
++setkey_func (char *arg, int flags)
++{
++  char *to_key, *from_key;
++  int to_code, from_code;
++  int map_in_interrupt = 0;
++  
+   to_key = arg;
+   from_key = skip_to (0, to_key);
+@@ -3830,15 +4254,15 @@ setup_func (char *arg, int flags)
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%d", (partition >> 16) & 0xFF);
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, 16);
+       }
+       if ((partition & 0x00FF00) != 0x00FF00)
+       {
+         char tmp[16];
+         grub_sprintf (tmp, ",%c", 'a' + ((partition >> 8) & 0xFF));
+-        grub_strncat (device, tmp, 256);
++        grub_strncat (device, tmp, 16);
+       }
+-      grub_strncat (device, ")", 256);
++      grub_strncat (device, ")", 16);
+     }
+   
+   int embed_stage1_5 (char *stage1_5, int drive, int partition)
+@@ -3973,7 +4397,7 @@ setup_func (char *arg, int flags)
+   /* The prefix was determined.  */
+   grub_sprintf (stage2, "%s%s", prefix, "/stage2");
+-  grub_sprintf (config_filename, "%s%s", prefix, "/menu.lst");
++  grub_sprintf (config_filename, "%s%s", prefix, "/grub.conf");
+   *real_config_filename = 0;
+   /* Check if stage2 exists.  */
+@@ -4083,9 +4507,26 @@ static struct builtin builtin_setup =
+   " partition where GRUB images reside, specify the option `--stage2'"
+   " to tell GRUB the file name under your OS."
+ };
++#endif /* ! PLATFORM_EFI */
++
++\f
++static int
++silent_func (char *arg, int flags)
++{
++  silent_grub = 1;
++  return 0;
++}
++
++static struct builtin builtin_silent =
++{
++  "silent",
++  silent_func,
++  BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "grub will attempt to avoid printing anything to the screen"
++};
\f
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+ /* terminal */
+ static int
+ terminal_func (char *arg, int flags)
+@@ -4244,17 +4685,21 @@ terminal_func (char *arg, int flags)
+  end:
+   current_term = term_table + default_term;
+   current_term->flags = term_flags;
+-  
++
+   if (lines)
+     max_lines = lines;
+   else
+-    /* 24 would be a good default value.  */
+-    max_lines = 24;
+-  
++    max_lines = current_term->max_lines;
++
+   /* If the interface is currently the command-line,
+      restart it to repaint the screen.  */
+-  if (current_term != prev_term && (flags & BUILTIN_CMDLINE))
++  if ((current_term != prev_term) && (flags & BUILTIN_CMDLINE)){
++    if (prev_term->shutdown)
++      prev_term->shutdown();
++    if (current_term->startup)
++      current_term->startup();
+     grub_longjmp (restart_cmdline_env, 0);
++  }
+   
+   return 0;
+ }
+@@ -4264,7 +4709,7 @@ static struct builtin builtin_terminal =
+   "terminal",
+   terminal_func,
+   BUILTIN_MENU | BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
+-  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules]",
++  "terminal [--dumb] [--no-echo] [--no-edit] [--timeout=SECS] [--lines=LINES] [--silent] [console] [serial] [hercules] [graphics]",
+   "Select a terminal. When multiple terminals are specified, wait until"
+   " you push any key to continue. If both console and serial are specified,"
+   " the terminal to which you input a key first will be selected. If no"
+@@ -4276,7 +4721,7 @@ static struct builtin builtin_terminal =
+   " seconds. The option --lines specifies the maximum number of lines."
+   " The option --silent is used to suppress messages."
+ };
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
\f
+ #ifdef SUPPORT_SERIAL
+@@ -4462,6 +4907,7 @@ static struct builtin builtin_testload =
+   " step is to try loading a kernel."
+ };
++#ifndef PLATFORM_EFI
\f
+ /* testvbe MODE */
+ static int
+@@ -4566,6 +5012,7 @@ static struct builtin builtin_testvbe =
+   "testvbe MODE",
+   "Test the VBE mode MODE. Hit any key to return."
+ };
++#endif /* !PLATFORM_EFI */
\f
+ #ifdef SUPPORT_NETBOOT
+@@ -4598,6 +5045,15 @@ static struct builtin builtin_tftpserver =
+ static int
+ timeout_func (char *arg, int flags)
+ {
++  /* One-shot default shenanigans -- don't piss around with the menu! */
++  if (grub_timeout != -1)
++    return 0;
++  if ((saved_entryno & STAGE2_ONCEONLY_ENTRY) != 0)
++    {
++      grub_timeout = 0;
++      return 0;
++    }
++
+   if (! safe_parse_maxint (&arg, &grub_timeout))
+     return 1;
+@@ -4661,6 +5117,7 @@ static struct builtin builtin_unhide =
+   " partition type code."
+ };
++#ifndef PLATFORM_EFI
\f
+ /* uppermem */
+ static int
+@@ -4790,11 +5247,34 @@ static struct builtin builtin_vbeprobe =
+   "Probe VBE information. If the mode number MODE is specified, show only"
+   " the information about only the mode."
+ };
+-  
++#endif /* ! PLATFORM_EFI */
++
++\f
++/* version */
++static int
++version_func (char *arg, int flags)
++{
++  grub_printf ("\n    GNU GRUB  version %s  (%dK lower / %dK upper memory)\n\n",
++                version_string, mbi.mem_lower, mbi.mem_upper);
++  return 0;
++}
++
++static struct builtin builtin_version =
++{
++  "version",
++  version_func,
++  BUILTIN_CMDLINE | BUILTIN_HELP_LIST,
++  "version",
++  "Display grub version."
++};
++
\f
+ /* The table of builtin commands. Sorted in dictionary order.  */
+ struct builtin *builtin_table[] =
+ {
++#ifdef SUPPORT_GRAPHICS
++  &builtin_background,
++#endif
+   &builtin_blocklist,
+   &builtin_boot,
+ #ifdef SUPPORT_NETBOOT
+@@ -4802,25 +5282,37 @@ struct builtin *builtin_table[] =
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_cat,
+   &builtin_chainloader,
++  &builtin_clear,
+   &builtin_cmp,
+   &builtin_color,
+   &builtin_configfile,
+   &builtin_debug,
+   &builtin_default,
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+   &builtin_device,
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
+ #ifdef SUPPORT_NETBOOT
+   &builtin_dhcp,
+ #endif /* SUPPORT_NETBOOT */
++#ifndef PLATFORM_EFI
+   &builtin_displayapm,
++#endif
+   &builtin_displaymem,
+ #ifdef GRUB_UTIL
+   &builtin_dump,
+ #endif /* GRUB_UTIL */
++#ifdef PLATFORM_EFI
++  &builtin_efimap,
++#endif
++#ifndef PLATFORM_EFI
+   &builtin_embed,
++#endif
+   &builtin_fallback,
+   &builtin_find,
++  &builtin_findiso,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_foreground,
++#endif
+   &builtin_fstest,
+   &builtin_geometry,
+   &builtin_halt,
+@@ -4830,27 +5322,35 @@ struct builtin *builtin_table[] =
+ #ifdef SUPPORT_NETBOOT
+   &builtin_ifconfig,
+ #endif /* SUPPORT_NETBOOT */
++#ifndef PLATFORM_EFI
+   &builtin_impsprobe,
++#endif
+   &builtin_initrd,
++#ifndef PLATFORM_EFI
+   &builtin_install,
+   &builtin_ioprobe,
++#endif
+   &builtin_kernel,
+   &builtin_lock,
+   &builtin_makeactive,
++#ifndef PLATFORM_EFI
+   &builtin_map,
++#endif
+ #ifdef USE_MD5_PASSWORDS
+   &builtin_md5crypt,
+ #endif /* USE_MD5_PASSWORDS */
++#ifndef PLATFORM_EFI
+   &builtin_module,
+   &builtin_modulenounzip,
++#endif
+   &builtin_pager,
+   &builtin_partnew,
+   &builtin_parttype,
+   &builtin_password,
+   &builtin_pause,
+-#ifdef GRUB_UTIL
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
+   &builtin_quit,
+-#endif /* GRUB_UTIL */
++#endif /* defined(GRUB_UTIL) || defined(PLATFORM_EFI) */
+ #ifdef SUPPORT_NETBOOT
+   &builtin_rarp,
+ #endif /* SUPPORT_NETBOOT */
+@@ -4862,23 +5362,35 @@ struct builtin *builtin_table[] =
+ #ifdef SUPPORT_SERIAL
+   &builtin_serial,
+ #endif /* SUPPORT_SERIAL */
++#ifndef PLATFORM_EFI
+   &builtin_setkey,
+   &builtin_setup,
+-#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES)
++#endif
++  &builtin_silent,
++#ifdef SUPPORT_GRAPHICS
++  &builtin_splashimage,
++#endif /* SUPPORT_GRAPHICS */
++#if defined(SUPPORT_SERIAL) || defined(SUPPORT_HERCULES) || defined(SUPPORT_GRAPHICS)
+   &builtin_terminal,
+-#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES */
++#endif /* SUPPORT_SERIAL || SUPPORT_HERCULES || SUPPORT_GRAPHICS */
+ #ifdef SUPPORT_SERIAL
+   &builtin_terminfo,
+ #endif /* SUPPORT_SERIAL */
+   &builtin_testload,
++#ifndef PLATFORM_EFI
+   &builtin_testvbe,
++#endif
+ #ifdef SUPPORT_NETBOOT
+   &builtin_tftpserver,
+ #endif /* SUPPORT_NETBOOT */
+   &builtin_timeout,
+   &builtin_title,
+   &builtin_unhide,
++#ifndef PLATFORM_EFI
+   &builtin_uppermem,
+   &builtin_vbeprobe,
++#endif
++  &builtin_verbose,
++  &builtin_version,
+   0
+ };
+diff --git a/stage2/char_io.c b/stage2/char_io.c
+index c86c240..073201a 100644
+--- a/stage2/char_io.c
++++ b/stage2/char_io.c
+@@ -35,29 +35,37 @@ struct term_entry term_table[] =
+     {
+       "console",
+       0,
++      24,
+       console_putchar,
+       console_checkkey,
+       console_getkey,
++      console_keystatus,
+       console_getxy,
+       console_gotoxy,
+       console_cls,
+       console_setcolorstate,
+       console_setcolor,
+-      console_setcursor
++      console_setcursor,
++      0, 
++      0
+     },
+ #ifdef SUPPORT_SERIAL
+     {
+       "serial",
+       /* A serial device must be initialized.  */
+       TERM_NEED_INIT,
++      24,
+       serial_putchar,
+       serial_checkkey,
+       serial_getkey,
++      0,
+       serial_getxy,
+       serial_gotoxy,
+       serial_cls,
+       serial_setcolorstate,
+       0,
++      0,
++      0, 
+       0
+     },
+ #endif /* SUPPORT_SERIAL */
+@@ -65,17 +73,39 @@ struct term_entry term_table[] =
+     {
+       "hercules",
+       0,
++      24,
+       hercules_putchar,
+       console_checkkey,
+       console_getkey,
++      console_keystatus,
+       hercules_getxy,
+       hercules_gotoxy,
+       hercules_cls,
+       hercules_setcolorstate,
+       hercules_setcolor,
+-      hercules_setcursor
++      hercules_setcursor,
++      0,
++      0
+     },      
+ #endif /* SUPPORT_HERCULES */
++#ifdef SUPPORT_GRAPHICS
++    { "graphics",
++      TERM_NEED_INIT, /* flags */
++      30, /* number of lines */
++      graphics_putchar, /* putchar */
++      console_checkkey, /* checkkey */
++      console_getkey, /* getkey */
++      console_keystatus, /* keystatus */
++      graphics_getxy, /* getxy */
++      graphics_gotoxy, /* gotoxy */
++      graphics_cls, /* cls */
++      graphics_setcolorstate, /* setcolorstate */
++      graphics_setcolor, /* setcolor */
++      graphics_setcursor, /* nocursor */
++      graphics_init, /* initialize */
++      graphics_end /* shutdown */
++    },
++#endif /* SUPPORT_GRAPHICS */
+     /* This must be the last entry.  */
+     { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
+   };
+@@ -101,16 +131,16 @@ print_error (void)
+ }
+ char *
+-convert_to_ascii (char *buf, int c,...)
++convert_to_ascii (char *buf, int c, unsigned int num)
+ {
+-  unsigned long num = *((&c) + 1), mult = 10;
++  unsigned int mult = 10;
+   char *ptr = buf;
+ #ifndef STAGE1_5
+   if (c == 'x' || c == 'X')
+     mult = 16;
+-  if ((num & 0x80000000uL) && c == 'd')
++  if ((int) num < 0 && c == 'd')
+     {
+       num = (~num) + 1;
+       *(ptr++) = '-';
+@@ -149,87 +179,266 @@ grub_putstr (const char *str)
+     grub_putchar (*str++);
+ }
+-void
+-grub_printf (const char *format,...)
++static void write_char(char **str, char c, int *count)
+ {
+-  int *dataptr = (int *) &format;
+-  char c, str[16];
+-  
+-  dataptr++;
+-
+-  while ((c = *(format++)) != 0)
+-    {
+-      if (c != '%')
+-      grub_putchar (c);
+-      else
+-      switch (c = *(format++))
+-        {
+-#ifndef STAGE1_5
+-        case 'd':
+-        case 'x':
+-        case 'X':
+-#endif
+-        case 'u':
+-          *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
+-          grub_putstr (str);
+-          break;
+-
+-#ifndef STAGE1_5
+-        case 'c':
+-          grub_putchar ((*(dataptr++)) & 0xff);
+-          break;
++    if (str && *str)
++        *(*str)++ = c;
++    else
++        putchar(c);
++    (*count)++;
++}
+-        case 's':
+-          grub_putstr ((char *) *(dataptr++));
+-          break;
+-#endif
+-        }
++static void write_str(char **str, char *s, int *count)
++{
++    if (s) {
++        while (*s)
++            write_char(str, *s++, count);
++    } else {
++        write_str(str, "(nil)", count);
+     }
+ }
+-#ifndef STAGE1_5
++#define format_ascii(buf, val, is_hex, is_cap, num_pad_chars) ({    \
++        int _n = sizeof ((buf)) - 2;                                \
++        typeof(val) _nval = (val);                                  \
++        int _negative = 0;                                          \
++        int _mult = is_hex ? 16 : 10;                               \
++        char _a = is_cap ? 'A' : 'a';                               \
++      int _pad = num_pad_chars; \
++                  char hex[] = "0123456789abcdef"; \
++        memset((buf), '\0', sizeof ((buf)));                      \
++        if (!(_nval > 0LL))                                         \
++            _negative = 1;                                          \
++        if (_nval == 0LL)                                           \
++            _negative = 0;                                          \
++        if (_negative)                                              \
++            _nval = (_nval ^ -1);                                   \
++        do {                                                        \
++            int _dig = _nval % _mult;                               \
++            (buf)[_n--] = ((_dig > 9) ? _dig + _a - 10 : '0'+_dig); \
++          if (_pad > 0) _pad--; \
++        } while (_nval /= _mult);                                   \
++      while (_pad--) \
++              (buf)[_n--] = '0'; \
++        if (_negative)                                              \
++            (buf)[_n--] = '-';                                      \
++        _mult = 0;                                                  \
++        _n++;                                                       \
++        while (_n < sizeof ((buf)))                               \
++            (buf)[_mult++] = (buf)[_n++];                           \
++        if (_negative && _mult > 1)                                 \
++            ((buf)[_mult-2])++;                                     \
++    })
++
+ int
+-grub_sprintf (char *buffer, const char *format, ...)
++grub_vsprintf (char *str, const char *fmt, va_list args)
+ {
+-  /* XXX hohmuth
+-     ugly hack -- should unify with printf() */
+-  int *dataptr = (int *) &format;
+-  char c, *ptr, str[16];
+-  char *bp = buffer;
+-
+-  dataptr++;
+-
+-  while ((c = *format++) != 0)
+-    {
+-      if (c != '%')
+-      *bp++ = c; /* putchar(c); */
+-      else
+-      switch (c = *(format++))
+-        {
+-        case 'd': case 'u': case 'x':
+-          *convert_to_ascii (str, c, *((unsigned long *) dataptr++)) = 0;
+-
+-          ptr = str;
++    char c;
++    char buf[40];
++    int pos = 0;
++
++    int count = 0;
++
++    char *str_arg;
++    int int_arg;
++    unsigned char uchar_arg;
++    unsigned ushort_arg;
++    unsigned int uint_arg;
++    signed long long_arg;
++    unsigned long ulong_arg;
++    signed long long longlong_arg;
++    unsigned long long ulonglong_arg;
++
++    c = *fmt++;
++    if (!c)
++        return 0;
++
++    int is_fmt = 0, is_long = 0, is_signed = 1, is_cap = 0, is_zero_padded = 0;
++    int num_pad_chars = 0;
++    int restart = 1;
++    do {
++        if (restart) {
++            restart = 0;
++            is_fmt = 0;
++            is_long = 0;
++            is_cap = 0;
++            is_signed = 1;
++          is_zero_padded = 0;
++          num_pad_chars = 0;
++            buf[0] = '\0';
++            pos = 0;
++        }
++
++        if (!is_fmt) {
++            if (c == '%') {
++                is_fmt = 1;
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                continue;
++            } else {
++                write_char(&str, c, &count);
++                continue;
++            }
++        }
++
++        /* below here we only ever hit when is_fmt is  1 */
++        switch (c) {
++            /* first, modifiers */
++            case '%':
++                if (pos != 0)
++                    write_str(&str, buf, &count);
++                write_char(&str, c, &count);
++                restart = 1;
++                continue;
++          case '0':
++              if (!is_zero_padded) {
++                      buf[pos++] = c;
++                      buf[pos] = '\0';
++                      is_zero_padded++;
++                      continue;
++              }
++          case '1':
++          case '2':
++          case '3':
++          case '4':
++          case '5':
++          case '6':
++          case '7':
++          case '8':
++          case '9':
++              buf[pos++] = c;
++              buf[pos] = '\0';
++              num_pad_chars *= 10;
++              num_pad_chars += c - '0';
++              continue;
++            case 'l':
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                is_long++;
++                continue;
++            case 'L':
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                is_long = 2;
++                continue;
++
++            /* below here are things we actually have to print */
++            case 'c':
++                int_arg = va_arg(args, int) & 0xff;
++                if (int_arg == 0) {
++                    char *tmp_str = "\\x00";
++                    write_str(&tmp_str, buf, &count);
++                } else {
++                    write_char(&str, int_arg, &count);
++                }
++                restart = 1;
++                continue;
++            case 'd':
++                if (is_long == 0) {
++                    int_arg = va_arg(args, signed int);
++                    format_ascii(buf, int_arg, 0, 0, 0);
++                } else if (is_long == 1) {
++                    long_arg = va_arg(args, signed long);
++                    format_ascii(buf, long_arg, 0, 0, 0);
++                } else {
++                    longlong_arg = va_arg(args, signed long long);
++                    format_ascii(buf, longlong_arg, 0, 0, 0);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 's':
++                str_arg = va_arg(args, char *);
++                write_str(&str, str_arg, &count);
++                restart = 1;
++                continue;
++            case 'u':
++            case 'U':
++                if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 0, 0, 0);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 0, 0, 0);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 0, 0, 0);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'P':
++                is_cap = 1;
++            case 'p':
++                ulong_arg = va_arg(args, unsigned long);
++              is_zero_padded = 1;
++                format_ascii(buf, ulong_arg, 1, is_cap, sizeof(ulong_arg));
++                write_str(&str, is_cap ? "0X" : "0x", &count);
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            case 'X':
++                is_cap = 1;
++            case 'x':
++              if (num_pad_chars == 2) {
++                  int i;
++                  char hex[] = "0123456789abcdef";
++                  uint_arg = va_arg(args, unsigned int);
++                  uchar_arg = uint_arg & 0xff;
++                  format_ascii(buf, uchar_arg, 1, is_cap, num_pad_chars);
++              } else if (num_pad_chars == 4) {
++                  uint_arg = va_arg(args, unsigned int);
++                  ushort_arg = uint_arg & 0xffff;
++                  format_ascii(buf, ushort_arg, 1, is_cap, num_pad_chars);
++              } else if (is_long == 0) {
++                    uint_arg = va_arg(args, unsigned int);
++                    format_ascii(buf, uint_arg, 1, is_cap, num_pad_chars);
++                } else if (is_long == 1) {
++                    ulong_arg = va_arg(args, unsigned long);
++                    format_ascii(buf, ulong_arg, 1, is_cap, num_pad_chars);
++                } else {
++                    ulonglong_arg = va_arg(args, unsigned long long);
++                    format_ascii(buf, ulonglong_arg, 1, is_cap, num_pad_chars);
++                }
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++            default:
++                buf[pos++] = c;
++                buf[pos] = '\0';
++                write_str(&str, buf, &count);
++                restart = 1;
++                continue;
++        }
++    } while ((c = *fmt++));
++
++    if (str)
++        *str = '\0';
++    return count;
++}
+-          while (*ptr)
+-            *bp++ = *(ptr++); /* putchar(*(ptr++)); */
+-          break;
++void
++grub_printf (char *fmt, ...)
++{
++  va_list ap;
+-        case 'c': *bp++ = (*(dataptr++))&0xff;
+-          /* putchar((*(dataptr++))&0xff); */
+-          break;
++  va_start (ap, fmt);
++  grub_vsprintf (0, fmt, ap);
++  va_end (ap);
++}
+-        case 's':
+-          ptr = (char *) (*(dataptr++));
++#ifndef STAGE1_5
++int
++grub_sprintf (char *str, const char *fmt, ...)
++{
++  va_list ap;
++  int ret;
+-          while ((c = *ptr++) != 0)
+-            *bp++ = c; /* putchar(c); */
+-          break;
+-        }
+-    }
++  va_start (ap, fmt);
++  ret = grub_vsprintf (str, fmt, ap);
++  va_end (ap);
+-  *bp = 0;
+-  return bp - buffer;
++  return ret;
+ }
+@@ -898,7 +1107,6 @@ safe_parse_maxint (char **str_ptr, int *myint_ptr)
+ }
+ #endif /* STAGE1_5 */
+-#if !defined(STAGE1_5) || defined(FSYS_FAT)
+ int
+ grub_tolower (int c)
+ {
+@@ -907,7 +1115,6 @@ grub_tolower (int c)
+   return c;
+ }
+-#endif /* ! STAGE1_5 || FSYS_FAT */
+ int
+ grub_isspace (int c)
+@@ -1004,6 +1211,16 @@ checkkey (void)
+ {
+   return current_term->checkkey ();
+ }
++
++/* Return keyboard modifier status. */
++int
++keystatus (void)
++{
++  if (current_term->keystatus)
++    return current_term->keystatus ();
++  else 
++    return 0;
++}
+ #endif /* ! STAGE1_5 */
+ /* Display an ASCII character.  */
+@@ -1046,13 +1263,15 @@ grub_putchar (int c)
+                the following grub_printf call will print newlines.  */
+             count_lines = -1;
++            grub_printf("\n");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_HIGHLIGHT);
+             
+-            grub_printf ("\n[Hit return to continue]");
++            grub_printf ("[Hit return to continue]");
+             if (current_term->setcolorstate)
+               current_term->setcolorstate (COLOR_STATE_NORMAL);
++              
+             
+             do
+               {
+@@ -1090,7 +1309,7 @@ void
+ cls (void)
+ {
+   /* If the terminal is dumb, there is no way to clean the terminal.  */
+-  if (current_term->flags & TERM_DUMB)
++  if (current_term->flags & TERM_DUMB) 
+     grub_putchar ('\n');
+   else
+     current_term->cls ();
+@@ -1125,6 +1344,26 @@ substring (const char *s1, const char *s2)
+   return 1;
+ }
++int
++subcasestring (const char *s1, const char *s2)
++{
++  while (tolower(*s1) == tolower(*s2))
++    {
++      /* The strings match exactly. */
++      if (! *(s1++))
++      return 0;
++      s2 ++;
++    }
++
++  /* S1 is a substring of S2. */
++  if (*s1 == 0)
++    return -1;
++
++  /* S1 isn't a substring. */
++  return 1;
++}
++
++
+ #ifndef STAGE1_5
+ /* Terminate the string STR with NUL.  */
+ int
+@@ -1172,41 +1411,180 @@ grub_strlen (const char *str)
+   return len;
+ }
+-#endif /* ! STAGE1_5 */
++/* this function "borrowed" from dietlibc */
+ int
+-memcheck (int addr, int len)
++grub_strspn(const char *s, const char *accept)
+ {
+-#ifdef GRUB_UTIL
+-  auto int start_addr (void);
+-  auto int end_addr (void);
+-  
+-  auto int start_addr (void)
++  int l=0;
++  int a=1,i,al=grub_strlen(accept);
++
++  while((a)&&(*s))
++  {
++    for(a=i=0;(!a)&&(i<al);i++)
++      if (*s==accept[i]) a=1;
++    if (a) l++;
++    s++;
++  }
++  return l;
++}
++
++/* this function "borrowed" from dietlibc */
++int
++grub_strcspn(const char *s, const char *reject)
++{
++  int l=0;
++  int a=1,i,al=grub_strlen(reject);
++
++  while((a)&&(*s))
++  {
++    for(i=0;(a)&&(i<al);i++)
++      if (*s==reject[i]) a=0;
++    if (a) l++;
++    s++;
++  }
++  return l;
++}
++
++/* this function "borrowed" from dietlibc */
++char *
++grub_strtok_r(char *s, const char *delim, char **ptrptr) {
++  char *tmp=0;
++
++  if (s==0) s=*ptrptr;
++  s+=grub_strspn(s,delim);           /* overread leading delimiter */
++  if (*s) {
++    tmp=s;
++    s+=grub_strcspn(s,delim);
++    if (*s) *s++=0;   /* not the end ? => terminate it */
++  }
++  *ptrptr=s;
++  return tmp;
++}
++
++char *
++grub_strchr (const char *s, int c)
++{
++  while (*s)
+     {
+-      int ret;
++      if (*s == c)
++      return (char *) s;
++      s++;
++    }
++
++  return 0;
++}
++
++char *
++grub_strnchr (const char *s, int c)
++{
++  while (*s)
++    {
++      if (*s != c)
++      return (char *) s;
++      s++;
++    }
++
++  return 0;
++}
++
++char *
++grub_strrchr (const char *s, int c)
++{
++  char *p = 0;
++
++  while (*s)
++    {
++      if (*s == c)
++      p = (char *) s;
++      s++;
++    }
++
++  return p;
++}
++
++int
++grub_strnlen (const char *s, int n)
++{
++  int i;
++
++  if (n == 0)
++    return 0;
++
++  for (i = 0; s[i] != '\0' && i < n; i++)
++    ;
++  return i;
++}
++
++char *
++grub_strncpy(char *new, const char *s, int n)
++{
++  int i;
++
++  for (i = 0; s[i] != '\0' && i < n; i++)
++    new[i] = s[i];
++  return new;
++}
++
++int
++grub_strncasecmp(const char *s0, const char *s1, int n)
++{
++  int c0, c1;
++
++  if (s0 == s1 || n == 0)
++    return 0;
++
++  do {
++    c0 = *s0 & ~0x20;
++    c1 = *s1 & ~0x20;
++
++    if (--n == 0 || c0 == '\0')
++      break;
++
++    *s0++;
++    *s1++;
++  } while (c0 == c1);
++
++  return (c0 > c1 ? 1 : c0 < c1 ? -1 : 0);
++}
++
++#endif /* ! STAGE1_5 */
++
++#ifdef GRUB_UTIL
++static int memcheck_start_addr (void)
++{
++  int ret;
+ # if defined(HAVE_START_SYMBOL)
+-      asm volatile ("movl     $start, %0" : "=a" (ret));
++  asm volatile ("movl $start, %0" : "=a" (ret));
+ # elif defined(HAVE_USCORE_START_SYMBOL)
+-      asm volatile ("movl     $_start, %0" : "=a" (ret));
++  asm volatile ("movl $_start, %0" : "=a" (ret));
+ # endif
+-      return ret;
+-    }
++  return ret;
++}
+-  auto int end_addr (void)
+-    {
+-      int ret;
++static int memcheck_end_addr (void)
++{
++  int ret;
+ # if defined(HAVE_END_SYMBOL)
+-      asm volatile ("movl     $end, %0" : "=a" (ret));
++  asm volatile ("movl $end, %0" : "=a" (ret));
+ # elif defined(HAVE_USCORE_END_SYMBOL)
+-      asm volatile ("movl     $_end, %0" : "=a" (ret));
++  asm volatile ("movl $_end, %0" : "=a" (ret));
+ # endif
+-      return ret;
+-    }
++  return ret;
++}
++#endif /* GRUB_UTIL */
+-  if (start_addr () <= addr && end_addr () > addr + len)
++int
++memcheck (int addr, int len)
++{
++#ifdef GRUB_UTIL
++  if (memcheck_start_addr () <= addr && memcheck_end_addr () > addr + len)
+     return ! errnum;
+ #endif /* GRUB_UTIL */
++#ifdef PLATFORM_EFI
++  return 1;
++#else
+   if ((addr < RAW_ADDR (0x1000))
+       || (addr < RAW_ADDR (0x100000)
+         && RAW_ADDR (mbi.mem_lower * 1024) < (addr + len))
+@@ -1215,12 +1593,23 @@ memcheck (int addr, int len)
+     errnum = ERR_WONT_FIT;
+   return ! errnum;
++#endif
++}
++
++void
++grub_memcpy(void *dest, const void *src, int len)
++{
++  int i;
++  register char *d = (char*)dest, *s = (char*)src;
++
++  for (i = 0; i < len; i++)
++    d[i] = s[i];
+ }
+ void *
+ grub_memmove (void *to, const void *from, int len)
+ {
+-   if (memcheck ((int) to, len))
++  if (memcheck ((unsigned long) to, len))
+      {
+        /* This assembly code is stolen from
+         linux-2.2.2/include/asm-i386/string.h. This is not very fast
+@@ -1258,7 +1647,7 @@ grub_memset (void *start, int c, int len)
+ {
+   char *p = start;
+-  if (memcheck ((int) start, len))
++  if (memcheck ((unsigned long) start, len))
+     {
+       while (len -- > 0)
+       *p ++ = c;
+@@ -1274,6 +1663,26 @@ grub_strcpy (char *dest, const char *src)
+   grub_memmove (dest, src, grub_strlen (src) + 1);
+   return dest;
+ }
++
++char *
++grub_stpncpy (char *dest, const char *src, int n)
++{
++  char *res;
++
++  res = NULL;
++  while (n != 0) {
++    *dest = *src;
++    if (*src != 0)
++      src++;
++    else if (res == NULL)
++      res = dest;
++    dest++;
++    n--;
++  }
++  if (res == NULL)
++    res = dest;
++  return res;
++}
+ #endif /* ! STAGE1_5 */
+ #ifndef GRUB_UTIL
+diff --git a/stage2/cmdline.c b/stage2/cmdline.c
+index a6ee309..cb41eda 100644
+--- a/stage2/cmdline.c
++++ b/stage2/cmdline.c
+@@ -48,12 +48,17 @@ skip_to (int after_equal, char *cmdline)
+ /* Print a helpful message for the command-line interface.  */
+ void
+-print_cmdline_message (int forever)
++print_cmdline_message (int type)
+ {
+   printf (" [ Minimal BASH-like line editing is supported.  For the first word, TAB\n"
+         "   lists possible command completions.  Anywhere else TAB lists the possible\n"
+-        "   completions of a device/filename.%s ]\n",
+-        (forever ? "" : "  ESC at any time exits."));
++        "   completions of a device/filename.");
++  if (type == CMDLINE_NORMAL_MODE)
++    printf("  ESC at any time exits.");
++  if (type == CMDLINE_EDIT_MODE)
++    printf("  ESC at any time cancels.  ENTER \n"
++           "   at any time accepts your changes.");
++  printf("]\n");
+ }
+ /* Find the builtin whose command name is COMMAND and return the
+@@ -128,7 +133,7 @@ enter_cmdline (char *heap, int forever)
+   print_network_configuration ();
+   grub_putchar ('\n');
+ #endif
+-  print_cmdline_message (forever);
++  print_cmdline_message (forever ? CMDLINE_FOREVER_MODE : CMDLINE_NORMAL_MODE);
+   
+   while (1)
+     {
+@@ -215,7 +220,7 @@ run_script (char *script, char *heap)
+       while (*cur_entry++)
+       ;
+-      grub_memmove (heap, old_entry, (int) cur_entry - (int) old_entry);
++      grub_memmove (heap, old_entry, cur_entry - old_entry);
+       if (! *heap)
+       {
+         /* If there is no more command in SCRIPT...  */
+@@ -232,12 +237,12 @@ run_script (char *script, char *heap)
+       builtin = find_command (heap);
+       if (! builtin)
+       {
+-        grub_printf ("%s\n", old_entry);
++        grub_verbose_printf ("%s\n", old_entry);
+         continue;
+       }
+       if (! (builtin->flags & BUILTIN_NO_ECHO))
+-      grub_printf ("%s\n", old_entry);
++      grub_verbose_printf ("%s\n", old_entry);
+       /* If BUILTIN cannot be run in the command-line, skip it.  */
+       if (! (builtin->flags & BUILTIN_CMDLINE))
+diff --git a/stage2/common.c b/stage2/common.c
+index 09f9e31..e96bec2 100644
+--- a/stage2/common.c
++++ b/stage2/common.c
+@@ -32,7 +32,7 @@
+ struct multiboot_info mbi;
+ unsigned long saved_drive;
+ unsigned long saved_partition;
+-unsigned long cdrom_drive;
++unsigned long cdrom_drive = 0x100;
+ #ifndef STAGE1_5
+ unsigned long saved_mem_upper;
+@@ -114,7 +114,7 @@ mmap_avail_at (unsigned long bottom)
+     {
+       for (cont = 0, addr = mbi.mmap_addr;
+          addr < mbi.mmap_addr + mbi.mmap_length;
+-         addr += *((unsigned long *) addr) + 4)
++         addr += *((unsigned int *) addr) + 4)
+       {
+         struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
+         
+@@ -183,11 +183,11 @@ init_bios_info (void)
+       cont = get_mmap_entry ((void *) addr, cont);
+       /* If the returned buffer's length is zero, quit. */
+-      if (! *((unsigned long *) addr))
++      if (! *((unsigned int *) addr))
+       break;
+-      mbi.mmap_length += *((unsigned long *) addr) + 4;
+-      addr += *((unsigned long *) addr) + 4;
++      mbi.mmap_length += *((unsigned int *) addr) + 4;
++      addr += *((unsigned int *) addr) + 4;
+     }
+   while (cont);
+@@ -207,7 +207,7 @@ init_bios_info (void)
+       /* Find the maximum available address. Ignore any memory holes.  */
+       for (max_addr = 0, addr = mbi.mmap_addr;
+          addr < mbi.mmap_addr + mbi.mmap_length;
+-         addr += *((unsigned long *) addr) + 4)
++         addr += *((unsigned int *) addr) + 4)
+       {
+         struct AddrRangeDesc *desc = (struct AddrRangeDesc *) addr;
+         
+@@ -322,6 +322,9 @@ init_bios_info (void)
+   /* Set cdrom drive.  */
+   {
++#ifdef PLATFORM_EFI
++    cdrom_drive = 0x100;
++#else
+     struct geometry geom;
+     
+     /* Get the geometry.  */
+@@ -330,6 +333,7 @@ init_bios_info (void)
+       cdrom_drive = GRUB_INVALID_DRIVE;
+     else
+       cdrom_drive = boot_drive;
++#endif
+   }
+   
+   /* Start main routine here.  */
+diff --git a/stage2/disk_io.c b/stage2/disk_io.c
+index b9bc526..f3fed0e 100644
+--- a/stage2/disk_io.c
++++ b/stage2/disk_io.c
+@@ -21,12 +21,17 @@
+ #include <shared.h>
+ #include <filesys.h>
++#include <gpt.h>
+ #ifdef SUPPORT_NETBOOT
+ # define GRUB 1
+ # include <etherboot.h>
+ #endif
++#ifdef PLATFORM_EFI
++#include "efistubs.h"
++#endif
++
+ #ifdef GRUB_UTIL
+ # include <device.h>
+ #endif
+@@ -48,6 +53,9 @@ int fsmax;
+ struct fsys_entry fsys_table[NUM_FSYS + 1] =
+ {
+   /* TFTP should come first because others don't handle net device.  */
++# ifdef PLATFORM_EFI
++  {"efitftp", efi_tftp_mount, efi_tftp_read, efi_tftp_dir, efi_tftp_close, 0},
++# endif
+ # ifdef FSYS_TFTP
+   {"tftp", tftp_mount, tftp_read, tftp_dir, tftp_close, 0},
+ # endif
+@@ -75,6 +83,9 @@ struct fsys_entry fsys_table[NUM_FSYS + 1] =
+ # ifdef FSYS_UFS2
+   {"ufs2", ufs2_mount, ufs2_read, ufs2_dir, 0, ufs2_embed},
+ # endif
++# ifdef PLATFORM_EFI
++  {"uefi", uefi_mount, uefi_read, uefi_dir, uefi_close, 0},
++# endif
+ # ifdef FSYS_ISO9660
+   {"iso9660", iso9660_mount, iso9660_read, iso9660_dir, 0, 0},
+ # endif
+@@ -127,8 +138,8 @@ struct geometry buf_geom;
+ int filepos;
+ int filemax;
+-static inline unsigned long
+-log2 (unsigned long word)
++static inline unsigned int
++grub_log2 (unsigned int word)
+ {
+   asm volatile ("bsfl %1,%0"
+               : "=r" (word)
+@@ -140,7 +151,7 @@ int
+ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
+ {
+   int slen, sectors_per_vtrack;
+-  int sector_size_bits = log2 (buf_geom.sector_size);
++  int sector_size_bits = grub_log2 (buf_geom.sector_size);
+   if (byte_len <= 0)
+     return 1;
+@@ -163,7 +174,7 @@ rawread (int drive, int sector, int byte_offset, int byte_len, char *buf)
+           }
+         buf_drive = drive;
+         buf_track = -1;
+-        sector_size_bits = log2 (buf_geom.sector_size);
++        sector_size_bits = grub_log2 (buf_geom.sector_size);
+       }
+       /* Make sure that SECTOR is valid.  */
+@@ -297,7 +308,7 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
+    *  Check partition boundaries
+    */
+   if (sector < 0
+-      || ((sector + ((byte_offset + byte_len - 1) >> SECTOR_BITS))
++      || ((sector + ((byte_offset + byte_len - 1) >> get_sector_bits(current_drive)))
+         >= part_length))
+     {
+       errnum = ERR_OUTSIDE_PART;
+@@ -307,8 +318,8 @@ devread (int sector, int byte_offset, int byte_len, char *buf)
+   /*
+    *  Get the read to the beginning of a partition.
+    */
+-  sector += byte_offset >> SECTOR_BITS;
+-  byte_offset &= SECTOR_SIZE - 1;
++  sector += byte_offset >> get_sector_bits(current_drive);
++  byte_offset &= get_sector_size(current_drive) - 1;
+ #if !defined(STAGE1_5)
+   if (disk_read_hook && debug)
+@@ -347,7 +358,7 @@ rawwrite (int drive, int sector, char *buf)
+       sector = 1;
+     }
+   
+-  memmove ((char *) SCRATCHADDR, buf, SECTOR_SIZE);
++  memmove ((char *) SCRATCHADDR, buf, get_sector_size(drive));
+   if (biosdisk (BIOSDISK_WRITE, drive, &buf_geom,
+               sector, 1, SCRATCHSEG))
+     {
+@@ -373,23 +384,23 @@ devwrite (int sector, int sector_count, char *buf)
+        embed a Stage 1.5 into a partition instead of a MBR, use system
+        calls directly instead of biosdisk, because of the bug in
+        Linux. *sigh*  */
+-      return write_to_partition (device_map, current_drive, current_partition,
+-                               sector, sector_count, buf);
++      int ret;
++      ret = write_to_partition (device_map, current_drive, current_partition,
++                              sector, sector_count, buf);
++      if (ret != -1)
++      return ret;
+     }
+-  else
+ #endif /* GRUB_UTIL && __linux__ */
+-    {
+-      int i;
+-      
+-      for (i = 0; i < sector_count; i++)
+-      {
+-        if (! rawwrite (current_drive, part_start + sector + i, 
+-                        buf + (i << SECTOR_BITS)))
+-            return 0;
++    int i;
+-      }
+-      return 1;
+-    }
++    for (i = 0; i < sector_count; i++)
++      {
++      if (! rawwrite (current_drive, part_start + sector + i,
++                      buf + (i << get_sector_bits(current_drive))))
++          return 0;
++
++      }
++    return 1;
+ }
+ static int
+@@ -400,7 +411,7 @@ sane_partition (void)
+     return 1;
+   
+   if (!(current_partition & 0xFF000000uL)
+-      && ((current_drive & 0xFFFFFF7F) < 8
++      && ((current_drive & 0xFFFFFF7F) < MAX_HD_NUM
+         || current_drive == cdrom_drive)
+       && (current_partition & 0xFF) == 0xFF
+       && ((current_partition & 0xFF00) == 0xFF00
+@@ -458,7 +469,7 @@ make_saved_active (void)
+       }
+       /* Read the MBR in the scratch space.  */
+-      if (! rawread (saved_drive, 0, 0, SECTOR_SIZE, mbr))
++      if (! rawread (saved_drive, 0, 0, get_sector_size(saved_drive), mbr))
+       return 0;
+       /* If the partition is an extended partition, setting the active
+@@ -502,8 +513,8 @@ int
+ set_partition_hidden_flag (int hidden)
+ {
+   unsigned long part = 0xFFFFFF;
+-  unsigned long start, len, offset, ext_offset;
+-  int entry, type;
++  unsigned long start, len, offset, ext_offset, gpt_offset;
++  int entry, type, gpt_count, gpt_size;
+   char mbr[512];
+   
+   /* The drive must be a hard disk.  */
+@@ -524,8 +535,15 @@ set_partition_hidden_flag (int hidden)
+   /* Look for the partition.  */
+   while (next_partition (current_drive, 0xFFFFFF, &part, &type,           
+                        &start, &len, &offset, &entry,
+-                       &ext_offset, mbr))
+-    {                                                                       
++                       &ext_offset, &gpt_offset, &gpt_count, &gpt_size, mbr))
++    {
++        /* The partition may not be a GPT partition.  */
++        if (gpt_offset != 0)
++          {
++              errnum = ERR_BAD_ARGUMENT;
++              return 1;
++          }
++
+       if (part == current_partition)
+       {
+         /* Found.  */
+@@ -577,11 +595,14 @@ next_partition (unsigned long drive, unsigned long dest,
+               unsigned long *partition, int *type,
+               unsigned long *start, unsigned long *len,
+               unsigned long *offset, int *entry,
+-              unsigned long *ext_offset, char *buf)
++               unsigned long *ext_offset,
++               unsigned long *gpt_offset, int *gpt_count,
++               int *gpt_size, char *buf)
+ {
+   /* Forward declarations.  */
+   auto int next_bsd_partition (void);
+   auto int next_pc_slice (void);
++  auto int next_gpt_slice(void);
+   /* Get next BSD partition in current PC slice.  */
+   int next_bsd_partition (void)
+@@ -601,7 +622,7 @@ next_partition (unsigned long drive, unsigned long dest,
+         /* Read the BSD label.  */
+         if (! rawread (drive, *start + BSD_LABEL_SECTOR,
+-                       0, SECTOR_SIZE, buf))
++                       0, get_sector_size(drive), buf))
+           return 0;
+         /* Check if it is valid.  */
+@@ -656,7 +677,7 @@ next_partition (unsigned long drive, unsigned long dest,
+       }
+       /* Read the MBR or the boot sector of the extended partition.  */
+-      if (! rawread (drive, *offset, 0, SECTOR_SIZE, buf))
++      if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
+       return 0;
+       /* Check if it is valid.  */
+@@ -666,6 +687,42 @@ next_partition (unsigned long drive, unsigned long dest,
+         return 0;
+       }
++      /* If this is a GPT partition table, read it as such.  */
++      if (*entry == -1 && *offset == 0 &&
++        (PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT ||
++         PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_NONE))
++       {
++         struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
++
++         /* Read in the GPT Partition table header.  */
++         if (! rawread (drive, 1, 0, get_sector_size(drive), buf))
++           return 0;
++
++         if (hdr->magic == GPT_HEADER_MAGIC && hdr->version == 0x10000)
++           {
++             /* Let gpt_offset point to the first entry in the GPT
++                partition table.  This can also be used by callers of
++                next_partition to determine if a entry comes from a
++                GPT partition table or not.  */
++             *gpt_offset = hdr->partitions;
++             *gpt_count = hdr->maxpart;
++             *gpt_size =  hdr->partentry_size;
++             
++             return next_gpt_slice();
++           }
++         else
++           {
++             /* This is not a valid header for a GPT partition table.
++                Re-read the MBR or the boot sector of the extended
++                partition.  */
++             if (! rawread (drive, *offset, 0, get_sector_size(drive), buf))
++               return 0;
++           }
++       }
++
++      /* Not a GPT partition.  */
++      *gpt_offset = 0;
++
+       /* Increase the entry number.  */
+       (*entry)++;
+@@ -710,6 +767,43 @@ next_partition (unsigned long drive, unsigned long dest,
+       return 1;
+     }
++  /* Get the next GPT slice.  */
++  int next_gpt_slice (void)
++    {
++      struct grub_gpt_partentry *gptentry = (struct grub_gpt_partentry *) buf;
++      /* Make GPT partitions show up as PC slices.  */
++      int pc_slice_no = (*partition & 0xFF0000) >> 16;
++
++      /* If this is the first time...  */
++      if (pc_slice_no == 0xFF)
++       {
++         pc_slice_no = -1;
++         *entry = -1;
++       }
++
++      do {
++       (*entry)++;
++
++       if (*entry >= *gpt_count)
++         {
++           errnum = ERR_NO_PART;
++           return 0;
++         }
++       /* Read in the GPT Partition table entry.  */
++       if (! rawread (drive, (*gpt_offset) + GPT_ENTRY_SECTOR (drive, *gpt_size, *entry), GPT_ENTRY_INDEX (drive, *gpt_size, *entry), *gpt_size, buf))
++         return 0;
++      } while (! (gptentry->type1 && gptentry->type2));
++
++      pc_slice_no++;
++      *start = gptentry->start;
++      *len = gptentry->end - gptentry->start + 1;
++      *type = PC_SLICE_TYPE_EXT2FS;
++      *entry = pc_slice_no;
++      *partition = (*entry << 16) | 0xFFFF;
++
++      return 1;
++    }
++
+   /* Start the body of this function.  */
+   
+ #ifndef STAGE1_5
+@@ -717,6 +811,9 @@ next_partition (unsigned long drive, unsigned long dest,
+     return 0;
+ #endif
++  if (*partition != 0xFFFFFF && *gpt_offset != 0)
++    return next_gpt_slice ();
++
+   /* If previous partition is a BSD partition or a PC slice which
+      contains BSD partitions...  */
+   if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
+@@ -755,8 +852,11 @@ real_open_partition (int flags)
+   unsigned long dest_partition = current_partition;
+   unsigned long part_offset;
+   unsigned long ext_offset;
++  unsigned long gpt_offset;
++  int gpt_count;
++  int gpt_size;
+   int entry;
+-  char buf[SECTOR_SIZE];
++  char buf[4096];
+   int bsd_part, pc_slice;
+   /* For simplicity.  */
+@@ -766,7 +866,8 @@ real_open_partition (int flags)
+       int ret = next_partition (current_drive, dest_partition,
+                               &current_partition, &current_slice,
+                               &part_start, &part_length,
+-                              &part_offset, &entry, &ext_offset, buf);
++                               &part_offset, &entry, &ext_offset,
++                               &gpt_offset, &gpt_count, &gpt_size, buf);
+       bsd_part = (current_partition >> 8) & 0xFF;
+       pc_slice = current_partition >> 16;
+       return ret;
+@@ -926,6 +1027,17 @@ open_partition (void)
+   return real_open_partition (0);
+ }
++#if !defined(PLATFORM_EFI) && !defined(GRUB_UTIL)
++int get_sector_size (int drive)
++{
++  return SECTOR_SIZE;
++}
++int get_sector_bits (int drive)
++{
++  return SECTOR_BITS;
++}
++#endif /* !defined(PLATFORM_EFI) && !defined(GRUB_UTIL) */
++
+ #ifndef STAGE1_5
+ /* XX used for device completion in 'set_device' and 'print_completions' */
+@@ -978,7 +1090,7 @@ set_device (char *device)
+       if (*device != ',' && *device != ')')
+       {
+         char ch = *device;
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+         if (*device == 'f' || *device == 'h'
+             || (*device == 'n' && network_ready)
+             || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
+@@ -1002,14 +1114,14 @@ set_device (char *device)
+         if ((*device == 'f'
+              || *device == 'h'
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+              || (*device == 'n' && network_ready)
+ #endif
+              || (*device == 'c' && cdrom_drive != GRUB_INVALID_DRIVE))
+             && (device += 2, (*(device - 1) != 'd')))
+           errnum = ERR_NUMBER_PARSING;
+-        
+-#ifdef SUPPORT_NETBOOT
++
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+         if (ch == 'n' && network_ready)
+           current_drive = NETWORK_DRIVE;
+         else
+@@ -1131,7 +1243,7 @@ set_bootdev (int hdbias)
+   if ((saved_drive & 0x80) && cur_part_addr)
+     {
+       if (rawread (saved_drive, cur_part_offset,
+-                 0, SECTOR_SIZE, (char *) SCRATCHADDR))
++                 0, get_sector_size(saved_drive), (char *) SCRATCHADDR))
+       {
+         char *dst, *src;
+       
+@@ -1243,6 +1355,12 @@ setup_part (char *filename)
+ #ifndef STAGE1_5
++char *
++get_fsys_type (void)
++{
++    return fsys_table[fsys_type].name;
++}
++
+ /*
+  *  This prints the filesystem type or gives relevant information.
+  */
+@@ -1376,7 +1494,7 @@ print_completions (int is_filename, int is_completion)
+             if (!ptr
+                 || *(ptr-1) != 'd'
+-#ifdef SUPPORT_NETBOOT
++#if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+                 || *(ptr-2) != 'n'
+ #endif /* SUPPORT_NETBOOT */
+                 || *(ptr-2) != 'c')
+@@ -1385,7 +1503,7 @@ print_completions (int is_filename, int is_completion)
+                      i < (ptr && (*(ptr-1) == 'd' && *(ptr-2) == 'f') ? 1:2);
+                      i++)
+                   {
+-                    for (j = 0; j < 8; j++)
++                    for (j = 0; j < MAX_HD_NUM; j++)
+                       {
+                         disk_no = (i * 0x80) + j;
+                         if ((disk_choice || disk_no == current_drive)
+@@ -1407,7 +1525,7 @@ print_completions (int is_filename, int is_completion)
+                     || (*(ptr-1) == 'd' && *(ptr-2) == 'c')))
+               print_a_completion ("cd");
+-# ifdef SUPPORT_NETBOOT
++# if defined(SUPPORT_NETBOOT) || defined(PLATFORM_EFI)
+             if (network_ready
+                 && (disk_choice || NETWORK_DRIVE == current_drive)
+                 && (!ptr
+@@ -1596,7 +1714,7 @@ grub_open (char *filename)
+         BLK_BLKLENGTH (list_addr) = tmp;
+-        filemax += (tmp * SECTOR_SIZE);
++        filemax += (tmp * get_sector_size(current_drive));
+         list_addr += BLK_BLKLIST_INC_VAL;
+         if (*ptr != ',')
+@@ -1673,6 +1791,7 @@ grub_read (char *buf, int len)
+   if (block_file)
+     {
+       int size, off, ret = 0;
++      int sector_size = get_sector_size(current_drive);
+       while (len && !errnum)
+       {
+@@ -1687,10 +1806,10 @@ grub_read (char *buf, int len)
+         /* run BLK_CUR_FILEPOS up to filepos */
+         while (filepos > BLK_CUR_FILEPOS)
+           {
+-            if ((filepos - (BLK_CUR_FILEPOS & ~(SECTOR_SIZE - 1)))
+-                >= SECTOR_SIZE)
++            if ((filepos - (BLK_CUR_FILEPOS & ~(sector_size - 1)))
++                >= sector_size)
+               {
+-                BLK_CUR_FILEPOS += SECTOR_SIZE;
++                BLK_CUR_FILEPOS += sector_size;
+                 BLK_CUR_BLKNUM++;
+                 if (BLK_CUR_BLKNUM >= BLK_BLKLENGTH (BLK_CUR_BLKLIST))
+@@ -1703,9 +1822,9 @@ grub_read (char *buf, int len)
+               BLK_CUR_FILEPOS = filepos;
+           }
+-        off = filepos & (SECTOR_SIZE - 1);
++        off = filepos & (sector_size - 1);
+         size = ((BLK_BLKLENGTH (BLK_CUR_BLKLIST) - BLK_CUR_BLKNUM)
+-                * SECTOR_SIZE) - off;
++                * sector_size) - off;
+         if (size > len)
+           size = len;
+diff --git a/stage2/efistubs.c b/stage2/efistubs.c
+new file mode 100644
+index 0000000..29b086a
+--- /dev/null
++++ b/stage2/efistubs.c
+@@ -0,0 +1,7 @@
++
++#include "shared.h"
++#include "efistubs.h"
++
++#if defined(PLATFORM_EFI)
++int network_ready = 0;
++#endif /* defined(PLATFORM_EFI) */
+diff --git a/stage2/efistubs.h b/stage2/efistubs.h
+new file mode 100644
+index 0000000..97e407d
+--- /dev/null
++++ b/stage2/efistubs.h
+@@ -0,0 +1,8 @@
++#ifndef EFISTUBS_H
++#define EFISTUBS_H 1
++
++#if defined(PLATFORM_EFI)
++extern int network_ready;
++#endif /* defined(PLATFORM_EFI) */
++
++#endif /* EFISTUBS_H */
+diff --git a/stage2/fat.h b/stage2/fat.h
+index 7fed6ba..f154eed 100644
+--- a/stage2/fat.h
++++ b/stage2/fat.h
+@@ -92,7 +92,7 @@ struct fat_bpb {
+ #define FAT_DIRENTRY_FIRST_CLUSTER(entry) \
+   ((*((unsigned short *) (entry+26)))+(*((unsigned short *) (entry+20)) << 16))
+ #define FAT_DIRENTRY_FILELENGTH(entry) \
+-  (*((unsigned long *) (entry+28)))
++  (*((unsigned int *) (entry+28)))
+ #define FAT_LONGDIR_ID(entry) \
+   (*((unsigned char *) (entry)))
+diff --git a/stage2/filesys.h b/stage2/filesys.h
+index bbad8b9..79e5f1f 100644
+--- a/stage2/filesys.h
++++ b/stage2/filesys.h
+@@ -40,6 +40,16 @@ int ufs2_embed (int *start_sector, int needed_sectors);
+ #define FSYS_UFS2_NUM 0
+ #endif
++#ifdef PLATFORM_EFI
++#define FSYS_UEFI_NUM 1
++int uefi_mount (void);
++int uefi_read (char *buf, int len);
++int uefi_dir (char *dirname);
++void uefi_close (void);
++#else
++#define FSYS_UEFI_NUM 0
++#endif
++
+ #ifdef FSYS_FAT
+ #define FSYS_FAT_NUM 1
+ int fat_mount (void);
+@@ -115,6 +125,17 @@ void tftp_close (void);
+ #define FSYS_TFTP_NUM 0
+ #endif
++#ifdef PLATFORM_EFI
++#define FSYS_EFI_TFTP_NUM 1
++int efi_tftp_mount (void);
++int efi_tftp_read (char *buf, int len);
++int efi_tftp_dir (char *dirname);
++void efi_tftp_close (void);
++#else
++#define FSYS_EFI_TFTP_NUM 0
++#endif
++
++
+ #ifdef FSYS_ISO9660
+ #define FSYS_ISO9660_NUM 1
+ int iso9660_mount (void);
+@@ -128,7 +149,8 @@ int iso9660_dir (char *dirname);
+ #define NUM_FSYS      \
+   (FSYS_FFS_NUM + FSYS_FAT_NUM + FSYS_EXT2FS_NUM + FSYS_MINIX_NUM     \
+    + FSYS_REISERFS_NUM + FSYS_VSTAFS_NUM + FSYS_JFS_NUM + FSYS_XFS_NUM        \
+-   + FSYS_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM)
++   + FSYS_TFTP_NUM + FSYS_EFI_TFTP_NUM + FSYS_ISO9660_NUM + FSYS_UFS2_NUM \
++   + FSYS_UEFI_NUM)
+ #endif
+ /* defines for the block filesystem info area */
+@@ -137,8 +159,8 @@ int iso9660_dir (char *dirname);
+ #define BLK_CUR_BLKLIST      (*((int*)(FSYS_BUF+4)))
+ #define BLK_CUR_BLKNUM       (*((int*)(FSYS_BUF+8)))
+ #define BLK_MAX_ADDR         (FSYS_BUF+0x7FF9)
+-#define BLK_BLKSTART(l)      (*((int*)l))
+-#define BLK_BLKLENGTH(l)     (*((int*)(l+4)))
++#define BLK_BLKSTART(l)      (*((int*)(unsigned long)l))
++#define BLK_BLKLENGTH(l)     (*((int*)(unsigned long)(l+4)))
+ #define BLK_BLKLIST_START    (FSYS_BUF+12)
+ #define BLK_BLKLIST_INC_VAL  8
+ #endif /* NO_BLOCK_FILES */
+diff --git a/stage2/fsys_ext2fs.c b/stage2/fsys_ext2fs.c
+index 560048f..01386d1 100644
+--- a/stage2/fsys_ext2fs.c
++++ b/stage2/fsys_ext2fs.c
+@@ -25,7 +25,7 @@
+ static int mapblock1, mapblock2;
+ /* sizes are always in bytes, BLOCK values are always in DEV_BSIZE (sectors) */
+-#define DEV_BSIZE 512
++#define DEV_BSIZE get_sector_size(current_drive)
+ /* include/linux/fs.h */
+ #define BLOCK_SIZE 1024               /* initial block size for superblock read */
+@@ -33,6 +33,7 @@ static int mapblock1, mapblock2;
+ #define WHICH_SUPER 1
+ /* kind of from fs/ext2/super.c */
+ #define SBLOCK (WHICH_SUPER * BLOCK_SIZE / DEV_BSIZE) /* = 2 */
++#define SBOFF ((WHICH_SUPER * BLOCK_SIZE) % DEV_BSIZE)
+ /* include/asm-i386/types.h */
+ typedef __signed__ char __s8;
+@@ -41,6 +42,7 @@ typedef __signed__ short __s16;
+ typedef unsigned short __u16;
+ typedef __signed__ int __s32;
+ typedef unsigned int __u32;
++typedef unsigned long long __u64;
+ /*
+  * Constants relative to the data blocks, from ext2_fs.h
+@@ -51,7 +53,7 @@ typedef unsigned int __u32;
+ #define EXT2_TIND_BLOCK                 (EXT2_DIND_BLOCK + 1)
+ #define EXT2_N_BLOCKS                   (EXT2_TIND_BLOCK + 1)
+-/* include/linux/ext2_fs.h */
++/* lib/ext2fs/ext2_fs.h from e2fsprogs */
+ struct ext2_super_block
+   {
+     __u32 s_inodes_count;     /* Inodes count */
+@@ -61,9 +63,9 @@ struct ext2_super_block
+     __u32 s_free_inodes_count;        /* Free inodes count */
+     __u32 s_first_data_block; /* First Data Block */
+     __u32 s_log_block_size;   /* Block size */
+-    __s32 s_log_frag_size;    /* Fragment size */
++    __s32 s_obso_log_frag_size;       /* Obsoleted Fragment size */
+     __u32 s_blocks_per_group; /* # Blocks per group */
+-    __u32 s_frags_per_group;  /* # Fragments per group */
++    __u32 s_obso_frags_per_group;     /* Obsoleted Fragments per group */
+     __u32 s_inodes_per_group; /* # Inodes per group */
+     __u32 s_mtime;            /* Mount time */
+     __u32 s_wtime;            /* Write time */
+@@ -72,17 +74,76 @@ struct ext2_super_block
+     __u16 s_magic;            /* Magic signature */
+     __u16 s_state;            /* File system state */
+     __u16 s_errors;           /* Behaviour when detecting errors */
+-    __u16 s_pad;
++    __u16 s_minor_rev_level;  /* minor revision level */
+     __u32 s_lastcheck;                /* time of last check */
+     __u32 s_checkinterval;    /* max. time between checks */
+     __u32 s_creator_os;               /* OS */
+     __u32 s_rev_level;                /* Revision level */
+     __u16 s_def_resuid;               /* Default uid for reserved blocks */
+     __u16 s_def_resgid;               /* Default gid for reserved blocks */
+-    __u32 s_reserved[235];    /* Padding to the end of the block */
+-  };
+-
+-struct ext2_group_desc
++    /*
++     * These fields are for EXT2_DYNAMIC_REV superblocks only.
++     *
++     * Note: the difference between the compatible feature set and
++     * the incompatible feature set is that if there is a bit set
++     * in the incompatible feature set that the kernel doesn't
++     * know about, it should refuse to mount the filesystem.
++     *
++     * e2fsck's requirements are more strict; if it doesn't know
++     * about a feature in either the compatible or incompatible
++     * feature set, it must abort and not try to meddle with
++     * things it doesn't understand...
++     */
++    __u32 s_first_ino;                /* First non-reserved inode */
++    __u16 s_inode_size;               /* size of inode structure */
++    __u16 s_block_group_nr;   /* block group # of this superblock */
++    __u32 s_feature_compat;   /* compatible feature set */
++    __u32 s_feature_incompat; /* incompatible feature set */
++    __u32 s_feature_ro_compat;        /* readonly-compatible feature set */
++    __u8  s_uuid[16];         /* 128-bit uuid for volume */
++    char  s_volume_name[16];  /* volume name */
++    char  s_last_mounted[64]; /* directory where last mounted */
++    __u32 s_algorithm_usage_bitmap; /* For compression */
++    /*
++     * Performance hints.  Directory preallocation should only
++     * happen if the EXT2_FEATURE_COMPAT_DIR_PREALLOC flag is on.
++     */
++    __u8  s_prealloc_blocks;  /* Nr of blocks to try to preallocate*/
++    __u8  s_prealloc_dir_blocks;      /* Nr to preallocate for dirs */
++    __u16 s_reserved_gdt_blocks;/* Per group table for online growth */
++    /*
++     * Journaling support valid if EXT2_FEATURE_COMPAT_HAS_JOURNAL set.
++     */
++    __u8 s_journal_uuid[16];  /* uuid of journal superblock */
++    __u32 s_journal_inum;     /* inode number of journal file */
++    __u32 s_journal_dev;      /* device number of journal file */
++    __u32 s_last_orphan;      /* start of list of inodes to delete */
++    __u32 s_hash_seed[4];     /* HTREE hash seed */
++    __u8  s_def_hash_version; /* Default hash version to use */
++    __u8  s_jnl_backup_type;  /* Default type of journal backup */
++    __u16 s_desc_size;                /* size of group descriptor */
++    __u32 s_default_mount_opts;
++    __u32 s_first_meta_bg;    /* First metablock group */
++    __u32 s_mkfs_time;                /* When the filesystem was created */
++    __u32 s_jnl_blocks[17];   /* Backup of the journal inode */
++    /* 64bit desc support valid if EXT4_FEATURE_INCOMPAT_64BIT */
++    __u32 s_blocks_count_hi;  /* Blocks count */
++    __u32 s_r_blocks_count_hi;        /* Reserved blocks count */
++    __u32 s_free_blocks_count_hi; /* Free blocks count */
++    __u16 s_min_extra_isize;  /* All inodes have at least # bytes */
++    __u16 s_max_extra_isize;  /* New inodes should reverve # bytes */
++    __u32 s_flags;            /* Miscellaneous flags */
++    __u16 s_raid_stride;      /* Raid stride */
++    __u16 s_mmp_interval;     /* # seconds to wait MMP checking */
++    __u64 s_mmp_block;                /* Block for multi-mount protection */
++    __u32 s_raid_stripe_width;        /* Blocks on all data disks (N*stride)*/
++    __u8  s_log_groups_per_flex;/* FLEX_BG group size*/
++    __u8  s_reserved_char_pad;
++    __u16 s_reserved_pad;
++    __u32 s_reserved[162];    /* Padding to the end of the block */
++};
++
++struct ext4_group_desc
+   {
+     __u32 bg_block_bitmap;    /* Blocks bitmap block */
+     __u32 bg_inode_bitmap;    /* Inodes bitmap block */
+@@ -90,8 +151,18 @@ struct ext2_group_desc
+     __u16 bg_free_blocks_count;       /* Free blocks count */
+     __u16 bg_free_inodes_count;       /* Free inodes count */
+     __u16 bg_used_dirs_count; /* Directories count */
+-    __u16 bg_pad;
+-    __u32 bg_reserved[3];
++    __u16 bg_flags;           /* EXT4_BG_flags (INODE_UNINIT, etc) */
++    __u32 bg_reserved[2];             /* Likely block/inode bitmap checksum */
++    __u16 bg_itable_unused;   /* Unused inodes count */
++    __u16 bg_checksum;                /* crc16(sb_uuid+group+desc) */
++    __u32 bg_block_bitmap_hi; /* Blocks bitmap block MSB */
++    __u32 bg_inode_bitmap_hi; /* Inodes bitmap block MSB */
++    __u32 bg_inode_table_hi;  /* Inodes table block MSB */
++    __u16 bg_free_blocks_count_hi;/* Free blocks count MSB */
++    __u16 bg_free_inodes_count_hi;/* Free inodes count MSB */
++    __u16 bg_used_dirs_count_hi;      /* Directories count MSB */
++    __u16 bg_itable_unused_hi;        /* Unused inodes count MSB */
++    __u32 bg_reserved2[3];
+   };
+ struct ext2_inode
+@@ -129,22 +200,22 @@ struct ext2_inode
+     __u32 i_block[EXT2_N_BLOCKS];     /* 40: Pointers to blocks */
+     __u32 i_version;          /* File version (for NFS) */
+     __u32 i_file_acl;         /* File ACL */
+-    __u32 i_dir_acl;          /* Directory ACL */
+-    __u32 i_faddr;            /* Fragment address */
++    __u32 i_size_high;
++    __u32 i_obso_faddr;               /* Obsoleted fragment address */
+     union
+       {
+       struct
+         {
+-          __u8 l_i_frag;      /* Fragment number */
+-          __u8 l_i_fsize;     /* Fragment size */
+-          __u16 i_pad1;
+-          __u32 l_i_reserved2[2];
++              __u16   l_i_blocks_high; /* were l_i_reserved1 */
++              __u16   l_i_file_acl_high;
++              __u16   l_i_uid_high;   /* these 2 fields */
++              __u16   l_i_gid_high;   /* were reserved2[0] */
++              __u32   l_i_reserved2;
+         }
+       linux2;
+       struct
+         {
+-          __u8 h_i_frag;      /* Fragment number */
+-          __u8 h_i_fsize;     /* Fragment size */
++              __u16   h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
+           __u16 h_i_mode_high;
+           __u16 h_i_uid_high;
+           __u16 h_i_gid_high;
+@@ -153,16 +224,36 @@ struct ext2_inode
+       hurd2;
+       struct
+         {
+-          __u8 m_i_frag;      /* Fragment number */
+-          __u8 m_i_fsize;     /* Fragment size */
+-          __u16 m_pad1;
++              __u16   h_i_reserved1;  /* Obsoleted fragment number/size which are removed in ext4 */
++              __u16   m_i_file_acl_high;
+           __u32 m_i_reserved2[2];
+         }
+       masix2;
+       }
+     osd2;                     /* OS dependent 2 */
++      __u16   i_extra_isize;
++      __u16   i_pad1;
++      __u32  i_ctime_extra;  /* extra Change time      (nsec << 2 | epoch) */
++      __u32  i_mtime_extra;  /* extra Modification time(nsec << 2 | epoch) */
++      __u32  i_atime_extra;  /* extra Access time      (nsec << 2 | epoch) */
++      __u32  i_crtime;       /* File Creation time */
++      __u32  i_crtime_extra; /* extra FileCreationtime (nsec << 2 | epoch) */
++      __u32  i_version_hi;    /* high 32 bits for 64-bit version */
+   };
++#define EXT4_FEATURE_INCOMPAT_EXTENTS         0x0040 /* extents support */
++#define EXT4_FEATURE_INCOMPAT_64BIT                   0x0080 /* grub not supported*/
++#define EXT4_FEATURE_INCOMPAT_MMP           0x0100
++#define EXT4_FEATURE_INCOMPAT_FLEX_BG         0x0200
++
++#define EXT4_HAS_INCOMPAT_FEATURE(sb,mask)                    \
++      ( sb->s_feature_incompat & mask )
++
++#define EXT4_EXTENTS_FL               0x00080000 /* Inode uses extents */
++#define EXT4_HUGE_FILE_FL     0x00040000 /* Set to each huge file */
++
++#define EXT4_MIN_DESC_SIZE                    32
++
+ /* linux/limits.h */
+ #define NAME_MAX         255  /* # chars in a file name */
+@@ -180,6 +271,57 @@ struct ext2_dir_entry
+     char name[EXT2_NAME_LEN]; /* File name */
+   };
++/* linux/ext4_fs_extents.h */
++/* This is the extent on-disk structure.
++ * It's used at the bottom of the tree.
++ */
++struct ext4_extent
++  {
++      __u32  ee_block;   /* first logical block extent covers */
++      __u16  ee_len;     /* number of blocks covered by extent */
++      __u16  ee_start_hi;    /* high 16 bits of physical block */
++      __u32  ee_start_lo;    /* low 32 bits of physical block */
++  };
++
++/*
++ * This is index on-disk structure.
++ * It's used at all the levels except the bottom.
++ */
++struct ext4_extent_idx
++  {
++    __u32  ei_block;   /* index covers logical blocks from 'block' */
++    __u32  ei_leaf_lo; /* pointer to the physical block of the next *
++                           * level. leaf or next index could be there */
++    __u16  ei_leaf_hi; /* high 16 bits of physical block */
++    __u16  ei_unused;
++  };
++
++/*
++ * Each block (leaves and indexes), even inode-stored has header.
++ */
++struct ext4_extent_header
++  {
++    __u16  eh_magic;   /* probably will support different formats */
++    __u16  eh_entries; /* number of valid entries */
++    __u16  eh_max;     /* capacity of store in entries */
++    __u16  eh_depth;   /* has tree real underlying blocks? */
++    __u32  eh_generation;  /* generation of the tree */
++  };
++
++#define EXT4_EXT_MAGIC      (0xf30a)
++#define EXT_FIRST_EXTENT(__hdr__) \
++    ((struct ext4_extent *) (((char *) (__hdr__)) +     \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_FIRST_INDEX(__hdr__) \
++    ((struct ext4_extent_idx *) (((char *) (__hdr__)) + \
++                 sizeof(struct ext4_extent_header)))
++#define EXT_LAST_EXTENT(__hdr__) \
++    (EXT_FIRST_EXTENT((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++#define EXT_LAST_INDEX(__hdr__) \
++    (EXT_FIRST_INDEX((__hdr__)) + (__u16)((__hdr__)->eh_entries) - 1)
++
++
++
+ /* linux/ext2fs.h */
+ /*
+  * EXT2_DIR_PAD defines the directory entries boundaries
+@@ -206,25 +348,37 @@ struct ext2_dir_entry
+     ((struct ext2_super_block *)(FSYS_BUF))
+ #define GROUP_DESC \
+     ((struct ext2_group_desc *) \
+-     ((int)SUPERBLOCK + sizeof(struct ext2_super_block)))
++     ((unsigned long)SUPERBLOCK + sizeof(struct ext2_super_block)))
+ #define INODE \
+-    ((struct ext2_inode *)((int)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
++    ((struct ext2_inode *)((unsigned long)GROUP_DESC + EXT2_BLOCK_SIZE(SUPERBLOCK)))
+ #define DATABLOCK1 \
+-    ((int)((int)INODE + sizeof(struct ext2_inode)))
++    ((unsigned long)INODE + sizeof(struct ext2_inode))
+ #define DATABLOCK2 \
+-    ((int)((int)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK)))
++    ((unsigned long)DATABLOCK1 + EXT2_BLOCK_SIZE(SUPERBLOCK))
+ /* linux/ext2_fs.h */
+ #define EXT2_ADDR_PER_BLOCK(s)          (EXT2_BLOCK_SIZE(s) / sizeof (__u32))
+ #define EXT2_ADDR_PER_BLOCK_BITS(s)           (log2(EXT2_ADDR_PER_BLOCK(s)))
++#define EXT2_INODE_SIZE(s)            (SUPERBLOCK->s_inode_size)
++#define EXT2_INODES_PER_BLOCK(s)      (EXT2_BLOCK_SIZE(s)/EXT2_INODE_SIZE(s))
++
+ /* linux/ext2_fs.h */
+ #define EXT2_BLOCK_SIZE_BITS(s)        ((s)->s_log_block_size + 10)
+ /* kind of from ext2/super.c */
+ #define EXT2_BLOCK_SIZE(s)    (1 << EXT2_BLOCK_SIZE_BITS(s))
+ /* linux/ext2fs.h */
++/* sizeof(struct ext2_group_desc) is changed in ext4
++ * in kernel code, ext2/3 uses sizeof(struct ext2_group_desc) to calculate
++ * number of desc per block, while ext4 uses superblock->s_desc_size in stead
++ * superblock->s_desc_size is not available in ext2/3
++ * */
++#define EXT2_DESC_SIZE(s) \
++      (EXT4_HAS_INCOMPAT_FEATURE(s,EXT4_FEATURE_INCOMPAT_64BIT)? \
++      s->s_desc_size : EXT4_MIN_DESC_SIZE)
+ #define EXT2_DESC_PER_BLOCK(s) \
+-     (EXT2_BLOCK_SIZE(s) / sizeof (struct ext2_group_desc))
++      (EXT2_BLOCK_SIZE(s) / EXT2_DESC_SIZE(s))
++
+ /* linux/stat.h */
+ #define S_IFMT  00170000
+ #define S_IFLNK  0120000
+@@ -239,8 +393,8 @@ struct ext2_dir_entry
+  * ffz = Find First Zero in word. Undefined if no zero exists,
+  * so code should check against ~0UL first..
+  */
+-static __inline__ unsigned long
+-ffz (unsigned long word)
++static __inline__ unsigned int
++ffz (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+ :        "=r" (word)
+@@ -260,7 +414,7 @@ ext2fs_mount (void)
+        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
+        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)))
+       || part_length < (SBLOCK + (sizeof (struct ext2_super_block) / DEV_BSIZE))
+-      || !devread (SBLOCK, 0, sizeof (struct ext2_super_block),
++      || !devread (SBLOCK, SBOFF, sizeof (struct ext2_super_block),
+                  (char *) SUPERBLOCK)
+       || SUPERBLOCK->s_magic != EXT2_SUPER_MAGIC)
+       retval = 0;
+@@ -276,7 +430,7 @@ ext2_rdfsb (int fsblock, int buffer)
+   printf ("fsblock %d buffer %d\n", fsblock, buffer);
+ #endif /* E2DEBUG */
+   return devread (fsblock * (EXT2_BLOCK_SIZE (SUPERBLOCK) / DEV_BSIZE), 0,
+-                EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) buffer);
++                EXT2_BLOCK_SIZE (SUPERBLOCK), (char *) (unsigned long) buffer);
+ }
+ /* from
+@@ -386,6 +540,122 @@ ext2fs_block_map (int logical_block)
+     [logical_block & (EXT2_ADDR_PER_BLOCK (SUPERBLOCK) - 1)];
+ }
++/* extent binary search index
++ * find closest index in the current level extent tree
++ * kind of from ext4_ext_binsearch_idx in ext4/extents.c
++ */
++static struct ext4_extent_idx*
++ext4_ext_binsearch_idx(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent_idx *r, *l, *m;
++  l = EXT_FIRST_INDEX(eh) + 1;
++  r = EXT_LAST_INDEX(eh);
++  while (l <= r)
++    {
++        m = l + (r - l) / 2;
++        if (logical_block < m->ei_block)
++                r = m - 1;
++        else
++                l = m + 1;
++      }
++  return (struct ext4_extent_idx*)(l - 1);
++}
++
++/* extent binary search
++ * find closest extent in the leaf level
++ * kind of from ext4_ext_binsearch in ext4/extents.c
++ */
++static struct ext4_extent*
++ext4_ext_binsearch(struct ext4_extent_header* eh, int logical_block)
++{
++  struct ext4_extent *r, *l, *m;
++  l = EXT_FIRST_EXTENT(eh) + 1;
++  r = EXT_LAST_EXTENT(eh);
++  while (l <= r)
++    {
++        m = l + (r - l) / 2;
++        if (logical_block < m->ee_block)
++                r = m - 1;
++        else
++                l = m + 1;
++      }
++  return (struct ext4_extent*)(l - 1);
++}
++
++/* Maps extents enabled logical block into physical block via an inode.
++ * EXT4_HUGE_FILE_FL should be checked before calling this.
++ */
++static int
++ext4fs_block_map (int logical_block)
++{
++  struct ext4_extent_header *eh;
++  struct ext4_extent *ex, *extent;
++  struct ext4_extent_idx *ei, *index;
++  int depth;
++  int i;
++
++#ifdef E2DEBUG
++  unsigned char *i;
++  for (i = (unsigned char *) INODE;
++       i < ((unsigned char *) INODE + sizeof (struct ext2_inode));
++       i++)
++    {
++      printf ("%c", "0123456789abcdef"[*i >> 4]);
++      printf ("%c", "0123456789abcdef"[*i % 16]);
++      if (!((i + 1 - (unsigned char *) INODE) % 16))
++      {
++        printf ("\n");
++      }
++      else
++      {
++        printf (" ");
++      }
++    }
++  printf ("logical block %d\n", logical_block);
++#endif /* E2DEBUG */
++  eh = (struct ext4_extent_header*)INODE->i_block;
++  if (eh->eh_magic != EXT4_EXT_MAGIC)
++  {
++          errnum = ERR_FSYS_CORRUPT;
++          return -1;
++  }
++  while((depth = eh->eh_depth) != 0)
++      { /* extent index */
++        if (eh->eh_magic != EXT4_EXT_MAGIC)
++        {
++                errnum = ERR_FSYS_CORRUPT;
++                return -1;
++        }
++        ei = ext4_ext_binsearch_idx(eh, logical_block);
++        if (ei->ei_leaf_hi)
++      {/* 64bit physical block number not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++        if (!ext2_rdfsb(ei->ei_leaf_lo, DATABLOCK1))
++      {
++        errnum = ERR_FSYS_CORRUPT;
++        return -1;
++      }
++        eh = (struct ext4_extent_header*)DATABLOCK1;
++      }
++
++  /* depth==0, we come to the leaf */
++  ex = ext4_ext_binsearch(eh, logical_block);
++  if (ex->ee_start_hi)
++      {/* 64bit physical block number not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++  if ((ex->ee_block + ex->ee_len) < logical_block)
++      {
++        errnum = ERR_FSYS_CORRUPT;
++        return -1;
++      }
++  return ex->ee_start_lo + logical_block - ex->ee_block;
++
++}
++
+ /* preconditions: all preconds of ext2fs_block_map */
+ int
+ ext2fs_read (char *buf, int len)
+@@ -420,6 +690,11 @@ ext2fs_read (char *buf, int len)
+       /* find the (logical) block component of our location */
+       logical_block = filepos >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+       offset = filepos & (EXT2_BLOCK_SIZE (SUPERBLOCK) - 1);
++      /* map extents enabled logical block number to physical fs on-disk block number */
++      if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
++                    && INODE->i_flags & EXT4_EXTENTS_FL)
++          map = ext4fs_block_map (logical_block);
++      else
+       map = ext2fs_block_map (logical_block);
+ #ifdef E2DEBUG
+       printf ("map=%d\n", map);
+@@ -504,7 +779,7 @@ ext2fs_dir (char *dirname)
+   int desc;                   /* index within that group */
+   int ino_blk;                        /* fs pointer of the inode's information */
+   int str_chk = 0;            /* used to hold the results of a string compare */
+-  struct ext2_group_desc *gdp;
++  struct ext4_group_desc *ext4_gdp;
+   struct ext2_inode *raw_inode;       /* inode info corresponding to current_ino */
+   char linkbuf[PATH_MAX];     /* buffer for following symbolic links */
+@@ -546,18 +821,25 @@ ext2fs_dir (char *dirname)
+ #endif /* E2DEBUG */
+       if (!ext2_rdfsb (
+                       (WHICH_SUPER + group_desc + SUPERBLOCK->s_first_data_block),
+-                      (int) GROUP_DESC))
++                      (unsigned long) GROUP_DESC))
+       {
+         return 0;
+       }
+-      gdp = GROUP_DESC;
+-      ino_blk = gdp[desc].bg_inode_table +
++        ext4_gdp = (struct ext4_group_desc *)( (__u8*)GROUP_DESC +
++                                      desc * EXT2_DESC_SIZE(SUPERBLOCK));
++        if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK, EXT4_FEATURE_INCOMPAT_64BIT)
++              && (! ext4_gdp->bg_inode_table_hi))
++      {/* 64bit itable not supported */
++        errnum = ERR_FILELENGTH;
++        return -1;
++      }
++      ino_blk = ext4_gdp->bg_inode_table +
+       (((current_ino - 1) % (SUPERBLOCK->s_inodes_per_group))
+-       >> log2 (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)));
++       >> log2 (EXT2_INODES_PER_BLOCK (SUPERBLOCK)));
+ #ifdef E2DEBUG
+       printf ("inode table fsblock=%d\n", ino_blk);
+ #endif /* E2DEBUG */
+-      if (!ext2_rdfsb (ino_blk, (int) INODE))
++      if (!ext2_rdfsb (ino_blk, (unsigned long) INODE))
+       {
+         return 0;
+       }
+@@ -565,13 +847,12 @@ ext2fs_dir (char *dirname)
+       /* reset indirect blocks! */
+       mapblock2 = mapblock1 = -1;
+-      raw_inode = INODE +
+-      ((current_ino - 1)
+-       & (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode) - 1));
++      raw_inode = (struct ext2_inode *)((char *)INODE +
++      ((current_ino - 1) & (EXT2_INODES_PER_BLOCK (SUPERBLOCK) - 1)) *
++      EXT2_INODE_SIZE (SUPERBLOCK));
+ #ifdef E2DEBUG
+       printf ("ipb=%d, sizeof(inode)=%d\n",
+-            (EXT2_BLOCK_SIZE (SUPERBLOCK) / sizeof (struct ext2_inode)),
+-            sizeof (struct ext2_inode));
++            EXT2_INODES_PER_BLOCK (SUPERBLOCK), EXT2_INODE_SIZE (SUPERBLOCK));
+       printf ("inode=%x, raw_inode=%x\n", INODE, raw_inode);
+       printf ("offset into inode table block=%d\n", (int) raw_inode - (int) INODE);
+       for (i = (unsigned char *) INODE; i <= (unsigned char *) raw_inode;
+@@ -629,7 +910,10 @@ ext2fs_dir (char *dirname)
+           }
+         linkbuf[filemax + len] = '\0';
+-        /* Read the symlink data. */
++        /* Read the symlink data.
++         * Slow symlink is extents enabled
++         * But since grub_read invokes ext2fs_read, nothing to change here
++         */
+         if (! ext2_is_fast_symlink ())
+           {
+             /* Read the necessary blocks, and reset the file pointer. */
+@@ -640,7 +924,9 @@ ext2fs_dir (char *dirname)
+           }
+         else
+           {
+-            /* Copy the data directly from the inode. */
++            /* Copy the data directly from the inode.
++             * Fast symlink is not extents enabled
++             */
+             len = filemax;
+             memmove (linkbuf, (char *) INODE->i_block, len);
+           }
+@@ -674,6 +960,13 @@ ext2fs_dir (char *dirname)
+             errnum = ERR_BAD_FILETYPE;
+             return 0;
+           }
++        /* if file is too large, just stop and report an error*/
++        if ( (INODE->i_flags & EXT4_HUGE_FILE_FL) && !(INODE->i_size_high))
++          {
++                /* file too large, stop reading */
++                errnum = ERR_FILELENGTH;
++                return 0;
++          }
+         filemax = (INODE->i_size);
+         return 1;
+@@ -728,17 +1021,28 @@ ext2fs_dir (char *dirname)
+           }
+         /* else, find the (logical) block component of our location */
++        /* ext4 logical block number the same as ext2/3 */
+         blk = loc >> EXT2_BLOCK_SIZE_BITS (SUPERBLOCK);
+         /* we know which logical block of the directory entry we are looking
+            for, now we have to translate that to the physical (fs) block on
+            the disk */
++        /* map extents enabled logical block number to physical fs on-disk block number */
++        if (EXT4_HAS_INCOMPAT_FEATURE(SUPERBLOCK,EXT4_FEATURE_INCOMPAT_EXTENTS)
++                        && INODE->i_flags & EXT4_EXTENTS_FL)
++              map = ext4fs_block_map (blk);
++        else
+         map = ext2fs_block_map (blk);
+ #ifdef E2DEBUG
+         printf ("fs block=%d\n", map);
+ #endif /* E2DEBUG */
+         mapblock2 = -1;
+-        if ((map < 0) || !ext2_rdfsb (map, DATABLOCK2))
++        if (map < 0)
++        {
++            *rest = ch;
++            return 0;
++        }
++          if (!ext2_rdfsb (map, DATABLOCK2))
+           {
+             errnum = ERR_FSYS_CORRUPT;
+             *rest = ch;
+diff --git a/stage2/fsys_fat.c b/stage2/fsys_fat.c
+index f40e658..f1157f4 100644
+--- a/stage2/fsys_fat.c
++++ b/stage2/fsys_fat.c
+@@ -49,13 +49,13 @@ struct fat_superblock
+ /* pointer(s) into filesystem info buffer for DOS stuff */
+ #define FAT_SUPER ( (struct fat_superblock *) \
+                   ( FSYS_BUF + 32256) )/* 512 bytes long */
+-#define FAT_BUF   ( FSYS_BUF + 30208 )        /* 4 sector FAT buffer */
+-#define NAME_BUF  ( FSYS_BUF + 29184 )        /* Filename buffer (833 bytes) */
++#define FAT_BUF   ( FSYS_BUF + 28160 )        /* 4 sector FAT buffer */
++#define NAME_BUF  ( FSYS_BUF + 27136 )        /* Filename buffer (833 bytes) */
+-#define FAT_CACHE_SIZE 2048
++#define FAT_CACHE_SIZE 4096
+-static __inline__ unsigned long
+-log2 (unsigned long word)
++static __inline__ unsigned int
++grub_log2 (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+          : "=r" (word)
+@@ -68,9 +68,12 @@ fat_mount (void)
+ {
+   struct fat_bpb bpb;
+   __u32 magic, first_fat;
++  int sector_size;
+   
+   /* Check partition type for harddisk */
+   if (((current_drive & 0x80) || (current_slice != 0))
++      && (current_slice != PC_SLICE_TYPE_EXT2FS)
++      && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
+       && ! IS_PC_SLICE_TYPE_FAT (current_slice)
+       && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_MSDOS)))
+     return 0;
+@@ -79,14 +82,16 @@ fat_mount (void)
+   if (! devread (0, 0, sizeof (bpb), (char *) &bpb))
+     return 0;
++  sector_size = get_sector_size(current_drive);
++
+   /* Check if the number of sectors per cluster is zero here, to avoid
+      zero division.  */
+   if (bpb.sects_per_clust == 0)
+     return 0;
+   
+-  FAT_SUPER->sectsize_bits = log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
++  FAT_SUPER->sectsize_bits = grub_log2 (FAT_CVT_U16 (bpb.bytes_per_sect));
+   FAT_SUPER->clustsize_bits
+-    = FAT_SUPER->sectsize_bits + log2 (bpb.sects_per_clust);
++    = FAT_SUPER->sectsize_bits + grub_log2 (bpb.sects_per_clust);
+   
+   /* Fill in info about super block */
+   FAT_SUPER->num_sectors = FAT_CVT_U16 (bpb.short_sectors) 
+@@ -106,7 +111,7 @@ fat_mount (void)
+   FAT_SUPER->data_offset = 
+     FAT_SUPER->root_offset
+     + ((FAT_SUPER->root_max - 1) >> FAT_SUPER->sectsize_bits) + 1;
+-  FAT_SUPER->num_clust = 
++  FAT_SUPER->num_clust =
+     2 + ((FAT_SUPER->num_sectors - FAT_SUPER->data_offset) 
+        / bpb.sects_per_clust);
+   FAT_SUPER->sects_per_clust = bpb.sects_per_clust;
+@@ -153,11 +158,11 @@ fat_mount (void)
+   /* Now do some sanity checks */
+   
+   if (FAT_CVT_U16(bpb.bytes_per_sect) != (1 << FAT_SUPER->sectsize_bits)
+-      || FAT_CVT_U16(bpb.bytes_per_sect) != SECTOR_SIZE
++      || FAT_CVT_U16(bpb.bytes_per_sect) != sector_size
+       || bpb.sects_per_clust != (1 << (FAT_SUPER->clustsize_bits
+                                      - FAT_SUPER->sectsize_bits))
+       || FAT_SUPER->num_clust <= 2
+-      || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * SECTOR_SIZE)
++      || (FAT_SUPER->fat_size * FAT_SUPER->num_clust / (2 * sector_size)
+         > FAT_SUPER->fat_length))
+     return 0;
+   
+@@ -201,6 +206,7 @@ fat_read (char *buf, int len)
+   int offset;
+   int ret = 0;
+   int size;
++  int sector_size = get_sector_size(current_drive);
+   
+   if (FAT_SUPER->file_cluster < 0)
+     {
+@@ -236,10 +242,10 @@ fat_read (char *buf, int len)
+         if (cached_pos < 0 || 
+             (cached_pos + FAT_SUPER->fat_size) > 2*FAT_CACHE_SIZE)
+           {
+-            FAT_SUPER->cached_fat = (fat_entry & ~(2*SECTOR_SIZE - 1));
++            FAT_SUPER->cached_fat = (fat_entry & ~(2*sector_size - 1));
+             cached_pos = (fat_entry - FAT_SUPER->cached_fat);
+             sector = FAT_SUPER->fat_offset
+-              + FAT_SUPER->cached_fat / (2*SECTOR_SIZE);
++              + FAT_SUPER->cached_fat / (2*sector_size);
+             if (!devread (sector, 0, FAT_CACHE_SIZE, (char*) FAT_BUF))
+               return 0;
+           }
+@@ -257,6 +263,8 @@ fat_read (char *buf, int len)
+           return ret;
+         if (next_cluster < 2 || next_cluster >= FAT_SUPER->num_clust)
+           {
++            grub_printf("next_cluster: %d FAT_SUPER->num_clust: %d\n",
++              next_cluster, FAT_SUPER->num_clust);
+             errnum = ERR_FSYS_CORRUPT;
+             return 0;
+           }
+@@ -340,7 +348,8 @@ fat_dir (char *dirname)
+   /* Directories don't have a file size */
+   filemax = MAXINT;
+   
+-  for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++);
++  for (rest = dirname; (ch = *rest) && !isspace (ch) && ch != '/'; rest++)
++      *rest = tolower(*rest);
+   
+   *rest = 0;
+   
+@@ -432,7 +441,7 @@ fat_dir (char *dirname)
+               goto print_filename;
+ # endif /* STAGE1_5 */
+             
+-            if (substring (dirname, filename) == 0)
++            if (subcasestring (dirname, filename) == 0)
+               break;
+           }
+       }
+@@ -459,7 +468,7 @@ fat_dir (char *dirname)
+       if (do_possibilities)
+       {
+       print_filename:
+-        if (substring (dirname, filename) <= 0)
++        if (subcasestring (dirname, filename) <= 0)
+           {
+             if (print_possibilities > 0)
+               print_possibilities = -print_possibilities;
+@@ -469,7 +478,7 @@ fat_dir (char *dirname)
+       }
+ # endif /* STAGE1_5 */
+       
+-      if (substring (dirname, filename) == 0)
++      if (subcasestring (dirname, filename) == 0)
+       break;
+     }
+   
+diff --git a/stage2/fsys_iso9660.c b/stage2/fsys_iso9660.c
+index 90e4aa8..858238b 100644
+--- a/stage2/fsys_iso9660.c
++++ b/stage2/fsys_iso9660.c
+@@ -56,8 +56,8 @@ struct iso_inode_info {
+ #define NAME_BUF        ((unsigned char *)(FSYS_BUF + 8192))
+-static inline unsigned long
+-log2 (unsigned long word)
++static inline unsigned int
++grub_log2 (unsigned int word)
+ {
+   asm volatile ("bsfl %1,%0"
+               :          "=r" (word)
+@@ -68,7 +68,7 @@ log2 (unsigned long word)
+ static int
+ iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
+ {
+-  unsigned short sector_size_lg2 = log2(buf_geom.sector_size);
++  unsigned short sector_size_lg2 = grub_log2(buf_geom.sector_size);
+   /*
+    * We have to use own devread() function since BIOS return wrong geometry
+@@ -81,8 +81,6 @@ iso9660_devread (int sector, int byte_offset, int byte_len, char *buf)
+   if (byte_len <= 0)
+     return 1;
+-  sector += (byte_offset >> sector_size_lg2);
+-  byte_offset &= (buf_geom.sector_size - 1);
+   asm volatile ("shl%L0 %1,%0"
+               : "=r"(sector)
+               : "Ic"((int8_t)(ISO_SECTOR_BITS - sector_size_lg2)),
+diff --git a/stage2/fsys_jfs.c b/stage2/fsys_jfs.c
+index 307f836..d63b1de 100644
+--- a/stage2/fsys_jfs.c
++++ b/stage2/fsys_jfs.c
+@@ -207,19 +207,20 @@ int
+ jfs_mount (void)
+ {
+       struct jfs_superblock super;
++      int sector_bits = get_sector_bits(current_drive);
+-      if (part_length < MINJFS >> SECTOR_BITS
+-          || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++      if (part_length < MINJFS >> sector_bits
++          || !devread (SUPER1_OFF >> sector_bits, 0,
+                        sizeof(struct jfs_superblock), (char *)&super)
+           || (super.s_magic != JFS_MAGIC)
+-          || !devread ((AITBL_OFF >> SECTOR_BITS) + FILESYSTEM_I,
++          || !devread ((AITBL_OFF >> sector_bits) + FILESYSTEM_I,
+                        0, DISIZE, (char*)fileset)) {
+               return 0;
+       }
+       jfs.bsize = super.s_bsize;
+       jfs.l2bsize = super.s_l2bsize;
+-      jfs.bdlog = jfs.l2bsize - SECTOR_BITS;
++      jfs.bdlog = jfs.l2bsize - sector_bits;
+       return 1;
+ }
+@@ -387,9 +388,10 @@ int
+ jfs_embed (int *start_sector, int needed_sectors)
+ {
+       struct jfs_superblock super;
++      int sector_bits = get_sector_bits(current_drive);
+       if (needed_sectors > 63
+-          || !devread (SUPER1_OFF >> SECTOR_BITS, 0,
++          || !devread (SUPER1_OFF >> sector_bits, 0,
+                        sizeof (struct jfs_superblock),
+                        (char *)&super)
+           || (super.s_magic != JFS_MAGIC)) {
+diff --git a/stage2/fsys_minix.c b/stage2/fsys_minix.c
+index 5c76796..175ecf2 100644
+--- a/stage2/fsys_minix.c
++++ b/stage2/fsys_minix.c
+@@ -138,11 +138,11 @@ struct minix_dir_entry {
+ #define SUPERBLOCK \
+     ((struct minix_super_block *)(FSYS_BUF))
+ #define INODE \
+-    ((struct minix_inode *)((int) SUPERBLOCK + BLOCK_SIZE))
++    ((struct minix_inode *)((unsigned long) SUPERBLOCK + BLOCK_SIZE))
+ #define DATABLOCK1 \
+-    ((int)((int)INODE + sizeof(struct minix_inode)))
++    ((unsigned long)INODE + sizeof(struct minix_inode))
+ #define DATABLOCK2 \
+-    ((int)((int)DATABLOCK1 + BLOCK_SIZE))
++    ((unsigned long)DATABLOCK1 + BLOCK_SIZE)
+ /* linux/stat.h */
+ #define S_IFMT  00170000
+@@ -193,7 +193,7 @@ static int
+ minix_rdfsb (int fsblock, int buffer)
+ {
+   return devread (fsblock * (BLOCK_SIZE / DEV_BSIZE), 0,
+-                BLOCK_SIZE, (char *) buffer);
++                BLOCK_SIZE, (char *) (unsigned long) buffer);
+ }
+ /* Maps LOGICAL_BLOCK (the file offset divided by the blocksize) into
+@@ -336,7 +336,7 @@ minix_dir (char *dirname)
+       ino_blk = (2 + SUPERBLOCK->s_imap_blocks + SUPERBLOCK->s_zmap_blocks
+                + (current_ino - 1) / MINIX_INODES_PER_BLOCK);
+-      if (! minix_rdfsb (ino_blk, (int) INODE))
++      if (! minix_rdfsb (ino_blk, (unsigned long) INODE))
+       return 0;
+       /* reset indirect blocks! */
+diff --git a/stage2/fsys_reiserfs.c b/stage2/fsys_reiserfs.c
+index 93ec5f8..f46fcb2 100644
+--- a/stage2/fsys_reiserfs.c
++++ b/stage2/fsys_reiserfs.c
+@@ -292,7 +292,6 @@ struct reiserfs_de_head
+ /* The size of the node cache */
+ #define FSYSREISER_CACHE_SIZE 24*1024
+-#define FSYSREISER_MIN_BLOCKSIZE SECTOR_SIZE
+ #define FSYSREISER_MAX_BLOCKSIZE FSYSREISER_CACHE_SIZE / 3
+ /* Info about currently opened file */
+@@ -341,19 +340,19 @@ struct fsys_reiser_info
+ /* The cached s+tree blocks in FSYS_BUF,  see below
+  * for a more detailed description.
+  */
+-#define ROOT     ((char *) ((int) FSYS_BUF))
++#define ROOT     ((char *) ((unsigned long) FSYS_BUF))
+ #define CACHE(i) (ROOT + ((i) << INFO->fullblocksize_shift))
+ #define LEAF     CACHE (DISK_LEAF_NODE_LEVEL)
+ #define BLOCKHEAD(cache) ((struct block_head *) cache)
+-#define ITEMHEAD         ((struct item_head  *) ((int) LEAF + BLKH_SIZE))
+-#define KEY(cache)       ((struct key        *) ((int) cache + BLKH_SIZE))
++#define ITEMHEAD         ((struct item_head  *) ((unsigned long) LEAF + BLKH_SIZE))
++#define KEY(cache)       ((struct key        *) ((unsigned long) cache + BLKH_SIZE))
+ #define DC(cache)        ((struct disk_child *) \
+-                        ((int) cache + BLKH_SIZE + KEY_SIZE * nr_item))
++                        ((unsigned long) cache + BLKH_SIZE + KEY_SIZE * nr_item))
+ /* The fsys_reiser_info block.
+  */
+ #define INFO \
+-    ((struct fsys_reiser_info *) ((int) FSYS_BUF + FSYSREISER_CACHE_SIZE))
++    ((struct fsys_reiser_info *) ((unsigned long) FSYS_BUF + FSYSREISER_CACHE_SIZE))
+ /* 
+  * The journal cache.  For each transaction it contains the number of
+  * blocks followed by the real block numbers of this transaction.  
+@@ -366,8 +365,8 @@ struct fsys_reiser_info
+ #define JOURNAL_END      ((__u32 *) (FSYS_BUF + FSYS_BUFLEN))
+-static __inline__ unsigned long
+-log2 (unsigned long word)
++static __inline__ unsigned int
++grub_log2 (unsigned int word)
+ {
+   __asm__ ("bsfl %1,%0"
+          : "=r" (word)
+@@ -569,9 +568,11 @@ int
+ reiserfs_mount (void)
+ {
+   struct reiserfs_super_block super;
+-  int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
++  int sector_bits = get_sector_bits(current_drive);
++  int sector_size = get_sector_size(current_drive);
++  int superblock = REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits;
+-  if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
++  if (part_length < superblock + (sizeof (super) >> sector_bits)
+       || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), 
+               (char *) &super)
+       || (substring (REISER3FS_SUPER_MAGIC_STRING, super.s_magic) > 0
+@@ -582,8 +583,8 @@ reiserfs_mount (void)
+         <= REISERFS_DISK_OFFSET_IN_BYTES))
+     {
+       /* Try old super block position */
+-      superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS;
+-      if (part_length < superblock + (sizeof (super) >> SECTOR_BITS)
++      superblock = REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits;
++      if (part_length < superblock + (sizeof (super) >> sector_bits)
+         || ! devread (superblock, 0, sizeof (struct reiserfs_super_block), 
+                       (char *) &super))
+       return 0;
+@@ -594,7 +595,7 @@ reiserfs_mount (void)
+       {
+         /* pre journaling super block ? */
+         if (substring (REISERFS_SUPER_MAGIC_STRING, 
+-                       (char*) ((int) &super + 20)) > 0)
++                       (char*) ((unsigned long) &super + 20)) > 0)
+           return 0;
+         
+         super.s_blocksize = REISERFS_OLD_BLOCKSIZE;
+@@ -609,8 +610,8 @@ reiserfs_mount (void)
+   
+   INFO->version = super.s_version;
+   INFO->blocksize = super.s_blocksize;
+-  INFO->fullblocksize_shift = log2 (super.s_blocksize);
+-  INFO->blocksize_shift = INFO->fullblocksize_shift - SECTOR_BITS;
++  INFO->fullblocksize_shift = grub_log2 (super.s_blocksize);
++  INFO->blocksize_shift = INFO->fullblocksize_shift - sector_bits;
+   INFO->cached_slots = 
+     (FSYSREISER_CACHE_SIZE >> INFO->fullblocksize_shift) - 1;
+@@ -622,9 +623,9 @@ reiserfs_mount (void)
+   /* Clear node cache. */
+   memset (INFO->blocks, 0, sizeof (INFO->blocks));
+-  if (super.s_blocksize < FSYSREISER_MIN_BLOCKSIZE
++  if (super.s_blocksize < get_sector_size(current_drive)
+       || super.s_blocksize > FSYSREISER_MAX_BLOCKSIZE
+-      || (SECTOR_SIZE << INFO->blocksize_shift) != super.s_blocksize)
++      || (sector_size << INFO->blocksize_shift) != super.s_blocksize)
+     return 0;
+   /* Initialize journal code.  If something fails we end with zero
+@@ -1215,9 +1216,10 @@ int
+ reiserfs_embed (int *start_sector, int needed_sectors)
+ {
+   struct reiserfs_super_block super;
++  int sector_bits = get_sector_bits(current_drive);
+   int num_sectors;
+-  
+-  if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS, 0, 
++ 
++  if (! devread (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits, 0,
+                sizeof (struct reiserfs_super_block), (char *) &super))
+     return 0;
+   
+@@ -1229,9 +1231,9 @@ reiserfs_embed (int *start_sector, int needed_sectors)
+          * the journal log */
+         super.s_journal_block * super.s_blocksize 
+         > REISERFS_DISK_OFFSET_IN_BYTES))
+-    num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
++    num_sectors = (REISERFS_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
+   else
+-    num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> SECTOR_BITS) - 1;
++    num_sectors = (REISERFS_OLD_DISK_OFFSET_IN_BYTES >> sector_bits) - 1;
+   
+   return (needed_sectors <= num_sectors);
+ }
+diff --git a/stage2/fsys_uefi.c b/stage2/fsys_uefi.c
+new file mode 100644
+index 0000000..58b7050
+--- /dev/null
++++ b/stage2/fsys_uefi.c
+@@ -0,0 +1,265 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2001   Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#include "shared.h"
++#include "filesys.h"
++
++#ifdef PLATFORM_EFI
++#undef GRUB_UTIL
++
++#include <grub/types.h>
++#include <grub/misc.h>
++#include <grub/efi/efi.h>
++#include <grub/efi/misc.h>
++#include <grub/efi/api.h>
++
++static grub_efi_simple_file_system_t *file_system;
++static grub_efi_guid_t fsinfo_guid = GRUB_EFI_DEVICE_PATH_GUID;
++grub_efi_file_t *root = NULL;
++grub_efi_file_t *file = NULL;
++
++typedef struct {
++  grub_efi_uint64_t size;
++  grub_efi_uint64_t filesize;
++  grub_efi_uint64_t physicalsize;
++  grub_efi_time_t createtime;
++  grub_efi_time_t accesstime;
++  grub_efi_time_t modifytime;
++  grub_efi_uint64_t attribute;
++  grub_efi_char16_t filename[];
++} grub_efi_file_info_t;
++
++int 
++uefi_mount (void)
++{
++  grub_efi_handle_t dev_handle = grub_efidisk_get_current_bdev_handle();
++  grub_efi_status_t status;
++
++  if (!dev_handle)
++    return 0;
++  
++  file_system = grub_efi_open_protocol (dev_handle, &simple_file_system_guid,
++                                      GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL);
++
++  if (!file_system)
++    return 0;
++
++  status = Call_Service_2 (file_system->open_volume, file_system, &root);
++
++  if (status != GRUB_EFI_SUCCESS)
++    return 0;
++
++  return 1;
++}
++
++int 
++uefi_dir (char *dirname)
++{
++  grub_efi_status_t status;
++  grub_efi_char16_t *file_name_w = NULL;
++  grub_efi_char16_t *dir_name_w = NULL;
++  grub_efi_file_info_t *fileinfo = NULL;
++  grub_efi_uintn_t buffersize = 0;  
++  grub_efi_file_t *directory = NULL;
++  int i, dirlen = 0, ret = 0;
++
++  file_name_w = grub_malloc (2 * strlen(dirname) + 2);
++  if (!file_name_w)
++    goto done;
++
++  for (i=0; i<strlen(dirname); i++) {
++    file_name_w[i] = dirname[i];
++    if (file_name_w[i] == '/') {
++      file_name_w[i] = '\\';
++      dirlen = i;
++    }
++  }
++
++  file_name_w[i] = '\0';
++
++  status = Call_Service_5 (root->open, root, &file, file_name_w,
++                         GRUB_EFI_FILE_MODE_READ, 0);
++
++  if (status != GRUB_EFI_SUCCESS)
++    goto done;
++
++  if (dirname[i-1] == '/') {
++    if (print_possibilities)
++      grub_printf("\n");
++
++    while (1) {
++      int filenamelen;
++
++      status = Call_Service_3 (file->read, file, &buffersize, fileinfo);
++
++      if (status == GRUB_EFI_BUFFER_TOO_SMALL) {
++      fileinfo = grub_malloc(buffersize);
++      continue;
++      } else if (status) {
++      goto done;
++      } else if (buffersize == 0) {
++      ret = 1;
++      if (print_possibilities)
++        grub_printf("\n");
++      goto done;
++      }
++
++      filenamelen = fileinfo->size - sizeof(*fileinfo);
++
++      if (print_possibilities) {
++      for (i=0; i<filenamelen/2; i++)
++        grub_printf("%c", (char)fileinfo->filename[i]);
++      }
++      grub_printf(" ");
++    }
++  } else {
++    char *data = NULL;
++    dir_name_w = grub_malloc (2 * dirlen + 2);
++    if (!dir_name_w)
++      goto done;
++
++    for (i=0; i<dirlen; i++)
++      dir_name_w[i] = file_name_w[i];
++
++    dir_name_w[i] = '\0';
++
++    status = Call_Service_5 (root->open, root, &directory, dir_name_w,
++                           GRUB_EFI_FILE_MODE_READ, 0);
++
++    while (1) {
++      int filenamelen;
++      int invalid = 0;
++
++      status = Call_Service_3 (directory->read, directory, &buffersize, fileinfo);
++
++      if (status == GRUB_EFI_BUFFER_TOO_SMALL) {
++      fileinfo = grub_malloc(buffersize);
++      continue;
++      } else if (status) {
++      goto done;
++      } else if (buffersize == 0) {
++      goto done;
++      }
++
++      filenamelen = fileinfo->size - sizeof(*fileinfo);
++
++      if (filenamelen != ((strlen(dirname) - dirlen) * 2))
++      continue;
++
++      for (i=0; i<filenamelen/2; i++) {
++      if (fileinfo->filename[i] != file_name_w[i + dirlen + 1]) {
++        if (fileinfo->filename[i] > 0xff ||
++            (grub_tolower(fileinfo->filename[i]) !=
++             grub_tolower(file_name_w[i + dirlen + 1])))
++          invalid = 1;
++      }
++      }
++
++      if (!invalid)
++      break;
++    }
++
++    if (fileinfo->filesize < 256 && fileinfo->filesize > 3)
++      {
++      data = grub_malloc(fileinfo->filesize);
++      filepos = 0;
++
++      uefi_read(data, fileinfo->filesize);
++
++      /*
++       * UEFI doesn't really support symlinks. Apple's UEFI driver exposes
++       * them as files containing the path of the target. This provides
++       * hacky support in the absence of a real driver.
++       */
++      if (data[0] == '.' && data[1] == '.' && data[2] == '/')
++        {
++          int j;
++          char *tmpdir = grub_malloc(dirlen + fileinfo->filesize);
++
++          for (j=0; j<dirlen+1; j++)
++            tmpdir[j] = dirname[j];
++          for (j=0; j<fileinfo->filesize; j++)
++            tmpdir[j+dirlen+1] = data[j];
++          tmpdir[j+dirlen+1] = '\0';
++
++          /* Open the new file */
++          ret = uefi_dir(tmpdir);
++          grub_free (tmpdir);
++          grub_free (data);
++          goto done;
++        }
++      }
++
++    if (data)
++      grub_free(data);
++    ret = 1;
++    filemax = fileinfo->filesize;
++    filepos = 0;
++  }
++
++ done:
++  if (fileinfo)
++    grub_free (fileinfo);
++  if (dir_name_w)
++    grub_free (dir_name_w);
++  if (file_name_w)
++    grub_free (file_name_w);
++
++  return ret;
++}
++
++void
++uefi_close (void)
++{
++  grub_efi_status_t status = 0;
++
++  if (file)
++    status = Call_Service_1 (file->close, file);
++
++  file = NULL;
++}
++
++int 
++uefi_read (char *addr, int len)
++{
++  grub_efi_status_t status;
++  grub_efi_uintn_t length = len;
++
++  errnum = 0;
++
++  status = Call_Service_2 (file->set_position, file, filepos);
++
++  if (status != GRUB_EFI_SUCCESS)
++    goto out;
++
++  status = Call_Service_3 (file->read, file, &length, addr);
++  
++  len = length;
++
++  if (status == GRUB_EFI_SUCCESS) {
++    filepos += len;
++    return len;
++  }
++
++ out:
++  errnum = ERR_FILE_NOT_FOUND;
++
++  return 0;
++}
++#endif
+diff --git a/stage2/fsys_vstafs.c b/stage2/fsys_vstafs.c
+index a116717..652e784 100644
+--- a/stage2/fsys_vstafs.c
++++ b/stage2/fsys_vstafs.c
+@@ -30,8 +30,8 @@ static struct dir_entry *vstafs_nextdir (void);
+ #define FIRST_SECTOR  ((struct first_sector *) FSYS_BUF)
+-#define FILE_INFO     ((struct fs_file *) (int) FIRST_SECTOR + 8192)
+-#define DIRECTORY_BUF ((struct dir_entry *) (int) FILE_INFO + 512)
++#define FILE_INFO     ((struct fs_file *) (unsigned long) FIRST_SECTOR + 8192)
++#define DIRECTORY_BUF ((struct dir_entry *) (unsigned long) FILE_INFO + 512)
+ #define ROOT_SECTOR   1
+@@ -186,35 +186,35 @@ vstafs_dir (char *dirname)
+ int 
+ vstafs_read (char *addr, int len)
+ {
+-  struct alloc *a;
++  struct alloc *al;
+   int size, ret = 0, offset, curr_len = 0;
+-  int curr_ext;
++  int this_ext;
+   char extent;
+   int ext_size;
+   char *curr_pos;
+   
+   get_file_info (f_sector);
+   size = FILE_INFO->len-VSTAFS_START_DATA;
+-  a = FILE_INFO->blocks;
++  al = FILE_INFO->blocks;
+   
+   if (filepos > 0)
+     {
+-      if (filepos < a[0].a_len * 512 - VSTAFS_START_DATA)
++      if (filepos < al[0].a_len * 512 - VSTAFS_START_DATA)
+       {
+         offset = filepos + VSTAFS_START_DATA;
+         extent = 0;
+-        curr_len = a[0].a_len * 512 - offset - filepos; 
++        curr_len = al[0].a_len * 512 - offset - filepos; 
+       }
+       else
+       {
+-        ext_size = a[0].a_len * 512 - VSTAFS_START_DATA;
++        ext_size = al[0].a_len * 512 - VSTAFS_START_DATA;
+         offset = filepos - ext_size;
+         extent = 1;
+         do
+           {
+             curr_len -= ext_size;
+             offset -= ext_size;
+-            ext_size = a[extent+1].a_len * 512;
++            ext_size = al[extent+1].a_len * 512;
+           }
+         while (extent < FILE_INFO->extents && offset>ext_size);
+       }
+@@ -223,16 +223,16 @@ vstafs_read (char *addr, int len)
+     {
+       offset = VSTAFS_START_DATA;
+       extent = 0;
+-      curr_len = a[0].a_len * 512 - offset;
++      curr_len = al[0].a_len * 512 - offset;
+     }
+   
+   curr_pos = addr;
+   if (curr_len > len)
+     curr_len = len;
+   
+-  for (curr_ext=extent;
+-       curr_ext < FILE_INFO->extents; 
+-       curr_len = a[curr_ext].a_len * 512, curr_pos += curr_len, curr_ext++)
++  for (this_ext=extent;
++       this_ext < FILE_INFO->extents; 
++       curr_len = al[this_ext].a_len * 512, curr_pos += curr_len, this_ext++)
+     {
+       ret += curr_len;
+       size -= curr_len;
+@@ -242,7 +242,7 @@ vstafs_read (char *addr, int len)
+         curr_len += size;
+       }
+       
+-      devread (a[curr_ext].a_start,offset, curr_len, curr_pos);
++      devread (al[this_ext].a_start,offset, curr_len, curr_pos);
+       offset = 0;
+     }
+   
+diff --git a/stage2/fsys_xfs.c b/stage2/fsys_xfs.c
+index 76c4c13..226e343 100644
+--- a/stage2/fsys_xfs.c
++++ b/stage2/fsys_xfs.c
+@@ -97,19 +97,23 @@ ino2offset (xfs_ino_t ino)
+       return ino & XFS_INO_MASK(XFS_INO_OFFSET_BITS);
+ }
+-static inline __const__ xfs_uint16_t
+-le16 (xfs_uint16_t x)
++static inline xfs_uint16_t __attribute__((__const__))
++le16 (xfs_uint16_t x) 
+ {
++#if 1
++      return ((x & 0xff00) >> 8) | ((x & 0xff) << 8);
++#else
+       __asm__("xchgb %b0,%h0" \
+               : "=q" (x) \
+               :  "0" (x)); \
+               return x;
++#endif
+ }
+-static inline __const__ xfs_uint32_t
++static inline xfs_uint32_t __attribute__((__const__))
+ le32 (xfs_uint32_t x)
+ {
+-#if 0
++#if 1
+         /* 386 doesn't have bswap.  */
+       __asm__("bswap %0" : "=r" (x) : "0" (x));
+ #else
+@@ -122,7 +126,7 @@ le32 (xfs_uint32_t x)
+       return x;
+ }
+-static inline __const__ xfs_uint64_t
++static inline xfs_uint64_t __attribute__((__const__))
+ le64 (xfs_uint64_t x)
+ {
+       xfs_uint32_t h = x >> 32;
+@@ -187,12 +191,12 @@ fsb2daddr (xfs_fsblock_t fsbno)
+ }
+ #undef offsetof
+-#define offsetof(t,m) ((int)&(((t *)0)->m))
++#define offsetof(t,m) __builtin_offsetof(t, m)
+-static inline int
++static inline xfs_uint64_t
+ btroot_maxrecs (void)
+ {
+-      int tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
++      xfs_uint64_t tmp = icore.di_forkoff ? (icore.di_forkoff << 3) : xfs.isize;
+       return (tmp - sizeof(xfs_bmdr_block_t) - offsetof(xfs_dinode_t, di_u)) /
+               (sizeof (xfs_bmbt_key_t) + sizeof (xfs_bmbt_ptr_t));
+@@ -465,7 +469,7 @@ xfs_mount (void)
+       xfs.bsize = le32 (super.sb_blocksize);
+       xfs.blklog = super.sb_blocklog;
+-      xfs.bdlog = xfs.blklog - SECTOR_BITS;
++      xfs.bdlog = xfs.blklog - get_sector_bits(current_drive);
+       xfs.rootino = le64 (super.sb_rootino);
+       xfs.isize = le16 (super.sb_inodesize);
+       xfs.agblocks = le32 (super.sb_agblocks);
+diff --git a/stage2/gpt.h b/stage2/gpt.h
+new file mode 100644
+index 0000000..ad6d8f1
+--- /dev/null
++++ b/stage2/gpt.h
+@@ -0,0 +1,69 @@
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002,2005,2006   Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef _GPT_H
++#define _GPT_H
++
++typedef signed char grub_int8_t;
++typedef signed short grub_int16_t;
++typedef signed int grub_int32_t;
++typedef signed long long int grub_int64_t;
++typedef unsigned char grub_uint8_t;
++typedef unsigned short grub_uint16_t;
++typedef unsigned int grub_uint32_t;
++typedef unsigned long long int grub_uint64_t;
++
++struct grub_gpt_header
++{
++  grub_uint64_t magic;
++  grub_uint32_t version;
++  grub_uint32_t headersize;
++  grub_uint32_t crc32;
++  grub_uint32_t unused1;
++  grub_uint64_t primary;
++  grub_uint64_t backup;
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t guid[16];
++  grub_uint64_t partitions;
++  grub_uint32_t maxpart;
++  grub_uint32_t partentry_size;
++  grub_uint32_t partentry_crc32;
++} __attribute__ ((packed));
++
++struct grub_gpt_partentry
++{
++  grub_uint64_t type1;
++  grub_uint64_t type2;
++  grub_uint8_t guid[16];
++  grub_uint64_t start;
++  grub_uint64_t end;
++  grub_uint8_t attrib;
++  char name[72];
++} __attribute__ ((packed));
++
++#define GPT_HEADER_MAGIC       0x5452415020494645ULL
++
++#define        GPT_ENTRY_SECTOR(drive,size,entry)                      \
++       ((((entry) * (size) + 1) & ~(get_sector_size(drive) - 1))       \
++       >> get_sector_bits(drive))
++#define        GPT_ENTRY_INDEX(drive, size,entry)                      \
++       ((((entry) * (size) + 1) & (get_sector_size(drive) - 1)) - 1)
++
++#endif /* _GPT_H */
+diff --git a/stage2/graphics.c b/stage2/graphics.c
+new file mode 100644
+index 0000000..81109ae
+--- /dev/null
++++ b/stage2/graphics.c
+@@ -0,0 +1,573 @@
++/* graphics.c - graphics mode support for GRUB */
++/* Implemented as a terminal type by Jeremy Katz <katzj@redhat.com> based
++ * on a patch by Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
++ */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2001,2002  Red Hat, Inc.
++ *  Portions copyright (C) 2000  Conectiva, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++
++
++#ifdef SUPPORT_GRAPHICS
++
++#include <term.h>
++#include <shared.h>
++#include <graphics.h>
++
++int saved_videomode;
++unsigned char *font8x16;
++
++int graphics_inited = 0;
++static char splashimage[64];
++
++#define VSHADOW VSHADOW1
++unsigned char VSHADOW1[38400];
++unsigned char VSHADOW2[38400];
++unsigned char VSHADOW4[38400];
++unsigned char VSHADOW8[38400];
++
++/* constants to define the viewable area */
++const int x0 = 0;
++const int x1 = 80;
++const int y0 = 0;
++const int y1 = 30;
++
++/* text buffer has to be kept around so that we can write things as we
++ * scroll and the like */
++unsigned short text[80 * 30];
++
++/* why do these have to be kept here? */
++int foreground = (63 << 16) | (63 << 8) | (63), background = 0, border = 0;
++
++/* current position */
++static int fontx = 0;
++static int fonty = 0;
++
++/* global state so that we don't try to recursively scroll or cursor */
++static int no_scroll = 0;
++
++/* color state */
++static int graphics_standard_color = A_NORMAL;
++static int graphics_normal_color = A_NORMAL;
++static int graphics_highlight_color = A_REVERSE;
++static int graphics_current_color = A_NORMAL;
++static color_state graphics_color_state = COLOR_STATE_STANDARD;
++
++
++/* graphics local functions */
++static void graphics_setxy(int col, int row);
++static void graphics_scroll(void);
++
++/* FIXME: where do these really belong? */
++static inline void outb(unsigned short port, unsigned char val)
++{
++    __asm __volatile ("outb %0,%1"::"a" (val), "d" (port));
++}
++
++static void MapMask(int value) {
++    outb(0x3c4, 2);
++    outb(0x3c5, value);
++}
++
++/* bit mask register */
++static void BitMask(int value) {
++    outb(0x3ce, 8);
++    outb(0x3cf, value);
++}
++
++
++
++/* Set the splash image */
++void graphics_set_splash(char *splashfile) {
++    grub_strcpy(splashimage, splashfile);
++}
++
++/* Get the current splash image */
++char *graphics_get_splash(void) {
++    return splashimage;
++}
++
++/* Initialize a vga16 graphics display with the palette based off of
++ * the image in splashimage.  If the image doesn't exist, leave graphics
++ * mode.  */
++int graphics_init()
++{
++    if (!read_image(splashimage)) {
++      current_term = term_table;
++        grub_printf("failed to read image\n");
++        return 0;
++    }
++
++    font8x16 = (unsigned char*)graphics_get_font();
++
++    graphics_inited = 1;
++
++    /* make sure that the highlight color is set correctly */
++    graphics_highlight_color = ((graphics_normal_color >> 4) | 
++                              ((graphics_normal_color & 0xf) << 4));
++
++    return 1;
++}
++
++/* Leave graphics mode */
++void graphics_end(void)
++{
++    if (graphics_inited) {
++        set_videomode(saved_videomode);
++        graphics_inited = 0;
++    }
++}
++
++/* Print ch on the screen.  Handle any needed scrolling or the like */
++void graphics_putchar(int ch) {
++    ch &= 0xff;
++
++    graphics_cursor(0);
++
++    if (ch == '\n') {
++        if (fonty + 1 < y1)
++            graphics_setxy(fontx, fonty + 1);
++        else
++            graphics_scroll();
++        graphics_cursor(1);
++        return;
++    } else if (ch == '\r') {
++        graphics_setxy(x0, fonty);
++        graphics_cursor(1);
++        return;
++    }
++
++    graphics_cursor(0);
++
++    text[fonty * 80 + fontx] = ch;
++    text[fonty * 80 + fontx] &= 0x00ff;
++    if (graphics_current_color & 0xf0)
++        text[fonty * 80 + fontx] |= 0x100;
++
++    graphics_cursor(0);
++
++    if ((fontx + 1) >= x1) {
++        graphics_setxy(x0, fonty);
++        if (fonty + 1 < y1)
++            graphics_setxy(x0, fonty + 1);
++        else
++            graphics_scroll();
++    } else {
++        graphics_setxy(fontx + 1, fonty);
++    }
++
++    graphics_cursor(1);
++}
++
++/* get the current location of the cursor */
++int graphics_getxy(void) {
++    return (fontx << 8) | fonty;
++}
++
++void graphics_gotoxy(int x, int y) {
++    graphics_cursor(0);
++
++    graphics_setxy(x, y);
++
++    graphics_cursor(1);
++}
++
++void graphics_cls(void) {
++    int i;
++    unsigned char *mem, *s1, *s2, *s4, *s8;
++
++    graphics_cursor(0);
++    graphics_gotoxy(x0, y0);
++
++    mem = (unsigned char*)VIDEOMEM;
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 80 * 30; i++)
++        text[i] = ' ';
++    graphics_cursor(1);
++
++    BitMask(0xff);
++
++    /* plano 1 */
++    MapMask(1);
++    grub_memcpy(mem, s1, 38400);
++
++    /* plano 2 */
++    MapMask(2);
++    grub_memcpy(mem, s2, 38400);
++
++    /* plano 3 */
++    MapMask(4);
++    grub_memcpy(mem, s4, 38400);
++
++    /* plano 4 */
++    MapMask(8);
++    grub_memcpy(mem, s8, 38400);
++
++    MapMask(15);
++ 
++}
++
++void graphics_setcolorstate (color_state state) {
++    switch (state) {
++    case COLOR_STATE_STANDARD:
++        graphics_current_color = graphics_standard_color;
++        break;
++    case COLOR_STATE_NORMAL:
++        graphics_current_color = graphics_normal_color;
++        break;
++    case COLOR_STATE_HIGHLIGHT:
++        graphics_current_color = graphics_highlight_color;
++        break;
++    default:
++        graphics_current_color = graphics_standard_color;
++        break;
++    }
++
++    graphics_color_state = state;
++}
++
++void graphics_setcolor (int normal_color, int highlight_color) {
++    graphics_normal_color = normal_color;
++    graphics_highlight_color = highlight_color;
++
++    graphics_setcolorstate (graphics_color_state);
++}
++
++int graphics_setcursor (int on) {
++    /* FIXME: we don't have a cursor in graphics */
++    return 0;
++}
++
++/* Open the file, and search for a valid XPM header.  Return 1 if one is found,
++ * leaving the current position as the start of the next line.  Else,
++ * return 0.
++ */
++static int xpm_open(char *s) {
++    char buf, prev, target[]="/* XPM */\n";
++    int pos=0;
++
++    if (!grub_open(s))
++        return 0;
++
++    prev='\n';
++    buf=0;
++    do {
++        if (grub_read(&buf, 1) != 1) {
++            grub_close();
++            return 0;
++        }
++        if ((pos == 0 && prev == '\n') || pos > 0) {
++            if (buf == target[pos])
++                pos++;
++            else
++                pos=0;
++        }
++        prev=buf;
++    } while (target[pos]);
++    return 1;
++}
++
++/* Read in the splashscreen image and set the palette up appropriately.
++ * Format of splashscreen is an xpm (can be gzipped) with 16 colors and
++ * 640x480. */
++int read_image(char *s)
++{
++    char buf[32], pal[16];
++    unsigned char c, base, mask, *s1, *s2, *s4, *s8;
++    unsigned i, len, idx, colors, x, y, width, height;
++
++    if (!xpm_open(s))
++        return 0;
++
++    saved_videomode = set_videomode(0x12);
++
++    /* parse info */
++    while (grub_read(&c, 1)) {
++        if (c == '"')
++            break;
++    }
++
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    i = 0;
++    width = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            width = width * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    height = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            height = height * 10 + c - '0';
++        else
++            break;
++    }
++    while (grub_read(&c, 1) && (c == ' ' || c == '\t'))
++        ;
++
++    colors = c - '0';
++    while (grub_read(&c, 1)) {
++        if (c >= '0' && c <= '9')
++            colors = colors * 10 + c - '0';
++        else
++            break;
++    }
++
++    base = 0;
++    while (grub_read(&c, 1) && c != '"')
++        ;
++
++    /* palette */
++    for (i = 0, idx = 1; i < colors; i++) {
++        len = 0;
++
++        while (grub_read(&c, 1) && c != '"')
++            ;
++        grub_read(&c, 1);       /* char */
++        base = c;
++        grub_read(buf, 4);      /* \t c # */
++
++        while (grub_read(&c, 1) && c != '"') {
++            if (len < sizeof(buf))
++                buf[len++] = c;
++        }
++
++        if (len == 6 && idx < 15) {
++            int r = ((hex(buf[0]) << 4) | hex(buf[1])) >> 2;
++            int g = ((hex(buf[2]) << 4) | hex(buf[3])) >> 2;
++            int b = ((hex(buf[4]) << 4) | hex(buf[5])) >> 2;
++
++            pal[idx] = base;
++            graphics_set_palette(idx, r, g, b);
++            ++idx;
++        }
++    }
++
++    x = y = len = 0;
++
++    s1 = (unsigned char*)VSHADOW1;
++    s2 = (unsigned char*)VSHADOW2;
++    s4 = (unsigned char*)VSHADOW4;
++    s8 = (unsigned char*)VSHADOW8;
++
++    for (i = 0; i < 38400; i++)
++        s1[i] = s2[i] = s4[i] = s8[i] = 0;
++
++    /* parse xpm data */
++    while (y < height) {
++        while (1) {
++            if (!grub_read(&c, 1)) {
++                grub_close();
++                return 0;
++            }
++            if (c == '"')
++                break;
++        }
++
++        while (grub_read(&c, 1) && c != '"') {
++            for (i = 1; i < 15; i++)
++                if (pal[i] == c) {
++                    c = i;
++                    break;
++                }
++
++            mask = 0x80 >> (x & 7);
++            if (c & 1)
++                s1[len + (x >> 3)] |= mask;
++            if (c & 2)
++                s2[len + (x >> 3)] |= mask;
++            if (c & 4)
++                s4[len + (x >> 3)] |= mask;
++            if (c & 8)
++                s8[len + (x >> 3)] |= mask;
++
++            if (++x >= 640) {
++                x = 0;
++
++                if (y < 480)
++                    len += 80;
++                ++y;
++            }
++        }
++    }
++
++    grub_close();
++
++    graphics_set_palette(0, (background >> 16), (background >> 8) & 63, 
++                background & 63);
++    graphics_set_palette(15, (foreground >> 16), (foreground >> 8) & 63, 
++                foreground & 63);
++    graphics_set_palette(0x11, (border >> 16), (border >> 8) & 63, 
++                         border & 63);
++
++    return 1;
++}
++
++
++/* Convert a character which is a hex digit to the appropriate integer */
++int hex(int v)
++{
++    if (v >= 'A' && v <= 'F')
++        return (v - 'A' + 10);
++    if (v >= 'a' && v <= 'f')
++        return (v - 'a' + 10);
++    return (v - '0');
++}
++
++
++/* move the graphics cursor location to col, row */
++static void graphics_setxy(int col, int row) {
++    if (col >= x0 && col < x1) {
++        fontx = col;
++        cursorX = col << 3;
++    }
++    if (row >= y0 && row < y1) {
++        fonty = row;
++        cursorY = row << 4;
++    }
++}
++
++/* scroll the screen */
++static void graphics_scroll(void) {
++    int i, j;
++
++    /* we don't want to scroll recursively... that would be bad */
++    if (no_scroll)
++        return;
++    no_scroll = 1;
++
++    /* move everything up a line */
++    for (j = y0 + 1; j < y1; j++) {
++        graphics_gotoxy(x0, j - 1);
++        for (i = x0; i < x1; i++) {
++            graphics_putchar(text[j * 80 + i]);
++        }
++    }
++
++    /* last line should be blank */
++    graphics_gotoxy(x0, y1 - 1);
++    for (i = x0; i < x1; i++)
++        graphics_putchar(' ');
++    graphics_setxy(x0, y1 - 1);
++
++    no_scroll = 0;
++}
++
++
++void graphics_cursor(int set) {
++    unsigned char *pat, *mem, *ptr, chr[16 << 2];
++    int i, ch, invert, offset;
++
++    if (set && no_scroll)
++        return;
++
++    offset = cursorY * 80 + fontx;
++    ch = text[fonty * 80 + fontx] & 0xff;
++    invert = (text[fonty * 80 + fontx] & 0xff00) != 0;
++    pat = font8x16 + (ch << 4);
++
++    mem = (unsigned char*)VIDEOMEM + offset;
++
++    if (!set) {
++        for (i = 0; i < 16; i++) {
++            unsigned char mask = pat[i];
++
++            if (!invert) {
++                chr[i     ] = ((unsigned char*)VSHADOW1)[offset];
++                chr[16 + i] = ((unsigned char*)VSHADOW2)[offset];
++                chr[32 + i] = ((unsigned char*)VSHADOW4)[offset];
++                chr[48 + i] = ((unsigned char*)VSHADOW8)[offset];
++
++                /* FIXME: if (shade) */
++                if (1) {
++                    if (ch == DISP_VERT || ch == DISP_LL ||
++                        ch == DISP_UR || ch == DISP_LR) {
++                        unsigned char pmask = ~(pat[i] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                    }
++                    if (i > 0 && ch != DISP_VERT) {
++                        unsigned char pmask = ~(pat[i - 1] >> 1);
++
++                        chr[i     ] &= pmask;
++                        chr[16 + i] &= pmask;
++                        chr[32 + i] &= pmask;
++                        chr[48 + i] &= pmask;
++                        if (ch == DISP_HORIZ || ch == DISP_UR || ch == DISP_LR) {
++                            pmask = ~pat[i - 1];
++
++                            chr[i     ] &= pmask;
++                            chr[16 + i] &= pmask;
++                            chr[32 + i] &= pmask;
++                            chr[48 + i] &= pmask;
++                        }
++                    }
++                }
++                chr[i     ] |= mask;
++                chr[16 + i] |= mask;
++                chr[32 + i] |= mask;
++                chr[48 + i] |= mask;
++
++                offset += 80;
++            }
++            else {
++                chr[i     ] = ~mask;
++                chr[16 + i] = ~mask;
++                chr[32 + i] = ~mask;
++                chr[48 + i] = ~mask;
++            }
++        }
++    }
++    else {
++        MapMask(15);
++        ptr = mem;
++        for (i = 0; i < 16; i++, ptr += 80) {
++            cursorBuf[i] = pat[i];
++            *ptr = ~pat[i];
++        }
++        return;
++    }
++
++    offset = 0;
++    for (i = 1; i < 16; i <<= 1, offset += 16) {
++        int j;
++
++        MapMask(i);
++        ptr = mem;
++        for (j = 0; j < 16; j++, ptr += 80)
++            *ptr = chr[j + offset];
++    }
++
++    MapMask(15);
++}
++
++#endif /* SUPPORT_GRAPHICS */
+diff --git a/stage2/graphics.h b/stage2/graphics.h
+new file mode 100644
+index 0000000..a4cd9e8
+--- /dev/null
++++ b/stage2/graphics.h
+@@ -0,0 +1,42 @@
++/* graphics.h - graphics console interface */
++/*
++ *  GRUB  --  GRand Unified Bootloader
++ *  Copyright (C) 2002  Free Software Foundation, Inc.
++ *
++ *  This program is free software; you can redistribute it and/or modify
++ *  it under the terms of the GNU General Public License as published by
++ *  the Free Software Foundation; either version 2 of the License, or
++ *  (at your option) any later version.
++ *
++ *  This program is distributed in the hope that it will be useful,
++ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *  GNU General Public License for more details.
++ *
++ *  You should have received a copy of the GNU General Public License
++ *  along with this program; if not, write to the Free Software
++ *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
++ */
++
++#ifndef GRAPHICS_H
++#define GRAPHICS_H
++
++/* magic constant */
++#define VIDEOMEM 0xA0000
++
++/* function prototypes */
++char *graphics_get_splash(void);
++
++int read_image(char *s);
++void graphics_cursor(int set);
++
++/* function prototypes for asm functions */
++void * graphics_get_font();
++void graphics_set_palette(int idx, int red, int green, int blue);
++void set_int1c_handler();
++void unset_int1c_handler();
++
++extern short cursorX, cursorY;
++extern char cursorBuf[16];
++
++#endif /* GRAPHICS_H */
+diff --git a/stage2/gunzip.c b/stage2/gunzip.c
+index 8835089..45a2312 100644
+--- a/stage2/gunzip.c
++++ b/stage2/gunzip.c
+@@ -141,7 +141,7 @@ static int gzip_filepos;
+ static int gzip_filemax;
+ static int gzip_fsmax;
+ static int saved_filepos;
+-static unsigned long gzip_crc;
++static unsigned int gzip_crc;
+ /* internal extra variables for use of inflate code */
+ static int block_type;
+@@ -169,7 +169,14 @@ linalloc (int size)
+ static void
+ reset_linalloc (void)
+ {
++#ifdef PLATFORM_EFI
++  unsigned int top = (mbi.mem_upper << 10) + 0x100000;
++  if (top > GRUB_SCRATCH_MEM_SIZE)
++    top = GRUB_SCRATCH_MEM_SIZE;
++  linalloc_topaddr = RAW_ADDR (top);
++#else
+   linalloc_topaddr = RAW_ADDR ((mbi.mem_upper << 10) + 0x100000);
++#endif
+ }
+@@ -253,7 +260,7 @@ bad_field (int len)
+ typedef unsigned char uch;
+ typedef unsigned short ush;
+-typedef unsigned long ulg;
++typedef unsigned int ulg;
+ /*
+  *  Window Size
+@@ -316,8 +323,8 @@ gunzip_test_header (void)
+       return 0;
+     }
+-  gzip_crc = *((unsigned long *) buf);
+-  gzip_fsmax = gzip_filemax = *((unsigned long *) (buf + 4));
++  gzip_crc = *((unsigned int *) buf);
++  gzip_fsmax = gzip_filemax = *((unsigned int *) (buf + 4));
+   initialize_tables ();
+diff --git a/stage2/iso9660.h b/stage2/iso9660.h
+index 4a6a8cc..c311ecf 100644
+--- a/stage2/iso9660.h
++++ b/stage2/iso9660.h
+@@ -73,11 +73,11 @@ typedef    union {
+ typedef       struct __iso_16bit {
+   u_int16_t l, b;
+-} iso_16bit_t __attribute__ ((packed));
++} iso_16bit_t;
+ typedef       struct __iso_32bit {
+   u_int32_t l, b;
+-} iso_32bit_t __attribute__ ((packed));
++} iso_32bit_t;
+ typedef u_int8_t              iso_date_t[7];
+diff --git a/stage2/mb_info.h b/stage2/mb_info.h
+index 1e1e63b..3a8dcfb 100644
+--- a/stage2/mb_info.h
++++ b/stage2/mb_info.h
+@@ -44,10 +44,10 @@ struct mod_list
+ struct AddrRangeDesc
+ {
+-  unsigned long size;
++  unsigned int size;
+   unsigned long long BaseAddr;
+   unsigned long long Length;
+-  unsigned long Type;
++  unsigned int Type;
+   
+   /* unspecified optional padding... */
+ } __attribute__ ((packed));
+diff --git a/stage2/pc_slice.h b/stage2/pc_slice.h
+index a38d97f..2206e82 100644
+--- a/stage2/pc_slice.h
++++ b/stage2/pc_slice.h
+@@ -38,50 +38,50 @@
+  */
+ #define PC_MBR_CHECK_SIG(mbr_ptr) \
+-  ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
++  ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) \
+    == PC_MBR_SIGNATURE )
+ #define PC_MBR_SIG(mbr_ptr) \
+-  ( *( (unsigned short *) (((int) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
++  ( *( (unsigned short *) (((unsigned long) mbr_ptr) + PC_MBR_SIG_OFFSET) ) )
+ #define PC_SLICE_FLAG(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET \
+                         + (part << 4)) ) )
+ #define PC_SLICE_HEAD(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 1 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 1 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_SEC(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 2 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 2 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_CYL(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 3 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 3 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_TYPE(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 4 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 4 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_EHEAD(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 5 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 5 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_ESEC(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 6 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 6 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_ECYL(mbr_ptr, part) \
+-  ( *( (unsigned char *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 7 \
++  ( *( (unsigned char *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 7 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_START(mbr_ptr, part) \
+-  ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 8 \
++  ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 8 \
+                         + (part << 4)) ) )
+ #define PC_SLICE_LENGTH(mbr_ptr, part) \
+-  ( *( (unsigned long *) (((int) mbr_ptr) + PC_SLICE_OFFSET + 12 \
++  ( *( (unsigned int *) (((unsigned long) mbr_ptr) + PC_SLICE_OFFSET + 12 \
+                         + (part << 4)) ) )
+@@ -115,6 +115,8 @@
+ #define PC_SLICE_TYPE_LINUX_EXTENDED  0x85
+ #define PC_SLICE_TYPE_VSTAFS          0x9e
+ #define PC_SLICE_TYPE_DELL_UTIL               0xde
++#define PC_SLICE_TYPE_GPT              0xee
++#define PC_SLICE_TYPE_EFI             0xef
+ #define PC_SLICE_TYPE_LINUX_RAID      0xfd
+@@ -129,7 +131,8 @@
+      || _type == PC_SLICE_TYPE_FAT16_LBA \
+      || _type == PC_SLICE_TYPE_FAT32 \
+      || _type == PC_SLICE_TYPE_FAT32_LBA \
+-     || _type == PC_SLICE_TYPE_DELL_UTIL; })
++     || _type == PC_SLICE_TYPE_DELL_UTIL \
++     || _type == PC_SLICE_TYPE_EFI; })
+ #define IS_PC_SLICE_TYPE_EXTENDED(type)       \
+   (((type) == PC_SLICE_TYPE_EXTENDED) \
+@@ -177,40 +180,40 @@
+  */
+ #define BSD_LABEL_CHECK_MAG(l_ptr) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
+-   == ( (unsigned long) BSD_LABEL_MAGIC ) )
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) \
++   == ( (unsigned int) BSD_LABEL_MAGIC ) )
+ #define BSD_LABEL_MAG(l_ptr) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET) ) )
+ #define BSD_LABEL_DTYPE(l_ptr) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_MAG_OFFSET + 4) ) )
+ #define BSD_LABEL_NPARTS(l_ptr) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_LABEL_NPARTS_OFFSET) ) )
+ #define BSD_PART_LENGTH(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET \
+                         + (part << 4)) ) )
+ #define BSD_PART_START(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 4 \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 4 \
+                         + (part << 4)) ) )
+ #define BSD_PART_FRAG_SIZE(l_ptr, part) \
+-  ( *( (unsigned long *) (((int) l_ptr) + BSD_PART_OFFSET + 8 \
++  ( *( (unsigned int *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 8 \
+                         + (part << 4)) ) )
+ #define BSD_PART_TYPE(l_ptr, part) \
+-  ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 12 \
++  ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 12 \
+                         + (part << 4)) ) )
+ #define BSD_PART_FRAGS_PER_BLOCK(l_ptr, part) \
+-  ( *( (unsigned char *) (((int) l_ptr) + BSD_PART_OFFSET + 13 \
++  ( *( (unsigned char *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 13 \
+                         + (part << 4)) ) )
+ #define BSD_PART_EXTRA(l_ptr, part) \
+-  ( *( (unsigned short *) (((int) l_ptr) + BSD_PART_OFFSET + 14 \
++  ( *( (unsigned short *) (((unsigned long) l_ptr) + BSD_PART_OFFSET + 14 \
+                         + (part << 4)) ) )
+diff --git a/stage2/serial.c b/stage2/serial.c
+index 16c376f..37b9532 100644
+--- a/stage2/serial.c
++++ b/stage2/serial.c
+@@ -37,7 +37,7 @@ static int keep_track = 1;
\f
+ /* Hardware-dependent definitions.  */
+-#ifndef GRUB_UTIL
++#if ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI)
+ /* The structure for speed vs. divisor.  */
+ struct divisor
+ {
+@@ -187,7 +187,7 @@ serial_hw_init (unsigned short port, unsigned int speed,
+   
+   return 1;
+ }
+-#endif /* ! GRUB_UTIL */
++#endif /* ! defined (GRUB_UTIL) && ! defined (PLATFORM_EFI) */
\f
+ /* Generic definitions.  */
+diff --git a/stage2/sha256crypt.c b/stage2/sha256crypt.c
+new file mode 100644
+index 0000000..db168a2
+--- /dev/null
++++ b/stage2/sha256crypt.c
+@@ -0,0 +1,723 @@
++/* SHA256-based Unix crypt implementation.
++   Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>.
++   Adapted for grub by Miloslav Trmac <mitr@redhat.com>. */
++
++#include <stdbool.h>
++#include <stddef.h>
++
++#include <shared.h>
++
++typedef unsigned int uint32_t;
++typedef size_t uintptr_t;
++#define alloca(SIZE) (__builtin_alloca (SIZE))
++#define MIN(A, B) ((A) < (B) ? (A) : (B))
++#define MAX(A, B) ((A) > (B) ? (A) : (B))
++
++/* Structure to save state of computation between the single steps.  */
++struct sha256_ctx
++{
++  uint32_t H[8];
++
++  uint32_t total[2];
++  uint32_t buflen;
++  char buffer[128];   /* NB: always correctly aligned for uint32_t.  */
++};
++
++
++#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
++# define SWAP(n) \
++    (((n) << 24) | (((n) & 0xff00) << 8) | (((n) >> 8) & 0xff00) | ((n) >> 24))
++#else
++# define SWAP(n) (n)
++#endif
++
++
++/* This array contains the bytes used to pad the buffer to the next
++   64-byte boundary.  (FIPS 180-2:5.1.1)  */
++static const unsigned char fillbuf[64] = { 0x80, 0 /* , 0, 0, ...  */ };
++
++
++/* Constants for SHA256 from FIPS 180-2:4.2.2.  */
++static const uint32_t K[64] =
++  {
++    0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
++    0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
++    0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
++    0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
++    0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
++    0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
++    0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
++    0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
++    0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
++    0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
++    0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
++    0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
++    0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
++    0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
++    0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
++    0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
++  };
++
++
++/* Process LEN bytes of BUFFER, accumulating context into CTX.
++   It is assumed that LEN % 64 == 0.  */
++static void
++sha256_process_block (const void *buffer, size_t len, struct sha256_ctx *ctx)
++{
++  const uint32_t *words = buffer;
++  size_t nwords = len / sizeof (uint32_t);
++  uint32_t a = ctx->H[0];
++  uint32_t b = ctx->H[1];
++  uint32_t c = ctx->H[2];
++  uint32_t d = ctx->H[3];
++  uint32_t e = ctx->H[4];
++  uint32_t f = ctx->H[5];
++  uint32_t g = ctx->H[6];
++  uint32_t h = ctx->H[7];
++
++  /* First increment the byte count.  FIPS 180-2 specifies the possible
++     length of the file up to 2^64 bits.  Here we only compute the
++     number of bytes.  Do a double word increment.  */
++  ctx->total[0] += len;
++  if (ctx->total[0] < len)
++    ++ctx->total[1];
++
++  /* Process all bytes in the buffer with 64 bytes in each round of
++     the loop.  */
++  while (nwords > 0)
++    {
++      uint32_t W[64];
++      uint32_t a_save = a;
++      uint32_t b_save = b;
++      uint32_t c_save = c;
++      uint32_t d_save = d;
++      uint32_t e_save = e;
++      uint32_t f_save = f;
++      uint32_t g_save = g;
++      uint32_t h_save = h;
++      unsigned int t;
++
++      /* Operators defined in FIPS 180-2:4.1.2.  */
++#define Ch(x, y, z) ((x & y) ^ (~x & z))
++#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
++#define S0(x) (CYCLIC (x, 2) ^ CYCLIC (x, 13) ^ CYCLIC (x, 22))
++#define S1(x) (CYCLIC (x, 6) ^ CYCLIC (x, 11) ^ CYCLIC (x, 25))
++#define R0(x) (CYCLIC (x, 7) ^ CYCLIC (x, 18) ^ (x >> 3))
++#define R1(x) (CYCLIC (x, 17) ^ CYCLIC (x, 19) ^ (x >> 10))
++
++      /* It is unfortunate that C does not provide an operator for
++       cyclic rotation.  Hope the C compiler is smart enough.  */
++#define CYCLIC(w, s) ((w >> s) | (w << (32 - s)))
++
++      /* Compute the message schedule according to FIPS 180-2:6.2.2 step 2.  */
++      for (t = 0; t < 16; ++t)
++      {
++        W[t] = SWAP (*words);
++        ++words;
++      }
++      for (t = 16; t < 64; ++t)
++      W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
++
++      /* The actual computation according to FIPS 180-2:6.2.2 step 3.  */
++      for (t = 0; t < 64; ++t)
++      {
++        uint32_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
++        uint32_t T2 = S0 (a) + Maj (a, b, c);
++        h = g;
++        g = f;
++        f = e;
++        e = d + T1;
++        d = c;
++        c = b;
++        b = a;
++        a = T1 + T2;
++      }
++
++      /* Add the starting values of the context according to FIPS 180-2:6.2.2
++       step 4.  */
++      a += a_save;
++      b += b_save;
++      c += c_save;
++      d += d_save;
++      e += e_save;
++      f += f_save;
++      g += g_save;
++      h += h_save;
++
++      /* Prepare for the next round.  */
++      nwords -= 16;
++    }
++
++  /* Put checksum in context given as argument.  */
++  ctx->H[0] = a;
++  ctx->H[1] = b;
++  ctx->H[2] = c;
++  ctx->H[3] = d;
++  ctx->H[4] = e;
++  ctx->H[5] = f;
++  ctx->H[6] = g;
++  ctx->H[7] = h;
++}
++
++
++/* Initialize structure containing state of computation.
++   (FIPS 180-2:5.3.2)  */
++static void
++sha256_init_ctx (struct sha256_ctx *ctx)
++{
++  ctx->H[0] = 0x6a09e667;
++  ctx->H[1] = 0xbb67ae85;
++  ctx->H[2] = 0x3c6ef372;
++  ctx->H[3] = 0xa54ff53a;
++  ctx->H[4] = 0x510e527f;
++  ctx->H[5] = 0x9b05688c;
++  ctx->H[6] = 0x1f83d9ab;
++  ctx->H[7] = 0x5be0cd19;
++
++  ctx->total[0] = ctx->total[1] = 0;
++  ctx->buflen = 0;
++}
++
++
++/* Process the remaining bytes in the internal buffer and the usual
++   prolog according to the standard and write the result to RESBUF.
++
++   IMPORTANT: On some systems it is required that RESBUF is correctly
++   aligned for a 32 bits value.  */
++static void *
++sha256_finish_ctx (struct sha256_ctx *ctx, void *resbuf)
++{
++  /* Take yet unprocessed bytes into account.  */
++  uint32_t bytes = ctx->buflen;
++  size_t pad;
++  unsigned int i;
++
++  /* Now count remaining bytes.  */
++  ctx->total[0] += bytes;
++  if (ctx->total[0] < bytes)
++    ++ctx->total[1];
++
++  pad = bytes >= 56 ? 64 + 56 - bytes : 56 - bytes;
++  memcpy (&ctx->buffer[bytes], fillbuf, pad);
++
++  /* Put the 64-bit file length in *bits* at the end of the buffer.  */
++  *(uint32_t *) &ctx->buffer[bytes + pad + 4] = SWAP (ctx->total[0] << 3);
++  *(uint32_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
++                                                (ctx->total[0] >> 29));
++
++  /* Process last bytes.  */
++  sha256_process_block (ctx->buffer, bytes + pad + 8, ctx);
++
++  /* Put result from CTX in first 32 bytes following RESBUF.  */
++  for (i = 0; i < 8; ++i)
++    ((uint32_t *) resbuf)[i] = SWAP (ctx->H[i]);
++
++  return resbuf;
++}
++
++
++static void
++sha256_process_bytes (const void *buffer, size_t len, struct sha256_ctx *ctx)
++{
++  /* When we already have some bits in our internal buffer concatenate
++     both inputs first.  */
++  if (ctx->buflen != 0)
++    {
++      size_t left_over = ctx->buflen;
++      size_t add = 128 - left_over > len ? len : 128 - left_over;
++
++      memcpy (&ctx->buffer[left_over], buffer, add);
++      ctx->buflen += add;
++
++      if (ctx->buflen > 64)
++      {
++        sha256_process_block (ctx->buffer, ctx->buflen & ~63, ctx);
++
++        ctx->buflen &= 63;
++        /* The regions in the following copy operation cannot overlap.  */
++        memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~63],
++                ctx->buflen);
++      }
++
++      buffer = (const char *) buffer + add;
++      len -= add;
++    }
++
++  /* Process available complete blocks.  */
++  if (len >= 64)
++    {
++/* To check alignment gcc has an appropriate operator.  Other
++   compilers don't.  */
++#if __GNUC__ >= 2
++# define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint32_t) != 0)
++#else
++# define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint32_t) != 0)
++#endif
++      if (UNALIGNED_P (buffer))
++      while (len > 64)
++        {
++          sha256_process_block (memcpy (ctx->buffer, buffer, 64), 64, ctx);
++          buffer = (const char *) buffer + 64;
++          len -= 64;
++        }
++      else
++      {
++        sha256_process_block (buffer, len & ~63, ctx);
++        buffer = (const char *) buffer + (len & ~63);
++        len &= 63;
++      }
++    }
++
++  /* Move remaining bytes into internal buffer.  */
++  if (len > 0)
++    {
++      size_t left_over = ctx->buflen;
++
++      memcpy (&ctx->buffer[left_over], buffer, len);
++      left_over += len;
++      if (left_over >= 64)
++      {
++        sha256_process_block (ctx->buffer, 64, ctx);
++        left_over -= 64;
++        memcpy (ctx->buffer, &ctx->buffer[64], left_over);
++      }
++      ctx->buflen = left_over;
++    }
++}
++
++
++/* Define our magic string to mark salt for SHA256 "encryption"
++   replacement.  */
++static const char sha256_salt_prefix[] = "$5$";
++
++/* Prefix for optional rounds specification.  */
++static const char sha256_rounds_prefix[] = "rounds=";
++
++/* Maximum salt string length.  */
++#define SALT_LEN_MAX 16
++/* Default number of rounds if not explicitly specified.  */
++#define ROUNDS_DEFAULT 5000
++/* Minimum number of rounds.  */
++#define ROUNDS_MIN 1000
++/* Maximum number of rounds.  */
++#define ROUNDS_MAX 999999999
++
++/* Table with characters for base64 transformation.  */
++static const char b64t[64] =
++"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++
++
++static char *
++sha256_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
++{
++  unsigned char alt_result[32]
++    __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
++  unsigned char temp_result[32]
++    __attribute__ ((__aligned__ (__alignof__ (uint32_t))));
++  struct sha256_ctx ctx;
++  struct sha256_ctx alt_ctx;
++  size_t salt_len;
++  size_t key_len;
++  size_t cnt;
++  char *cp;
++  char *copied_key = NULL;
++  char *copied_salt = NULL;
++  char *p_bytes;
++  char *s_bytes;
++  /* Default number of rounds.  */
++  size_t rounds = ROUNDS_DEFAULT;
++  bool rounds_custom = false;
++
++  /* Find beginning of salt string.  The prefix should normally always
++     be present.  Just in case it is not.  */
++  if (grub_memcmp (sha256_salt_prefix, salt,
++                 sizeof (sha256_salt_prefix) - 1) == 0)
++    /* Skip salt prefix.  */
++    salt += sizeof (sha256_salt_prefix) - 1;
++
++  if (grub_memcmp (salt, sha256_rounds_prefix,
++                 sizeof (sha256_rounds_prefix) - 1) == 0)
++    {
++      const char *num = salt + sizeof (sha256_rounds_prefix) - 1;
++      char *endp = (char *)num;
++      int srounds = 0;
++      if (*endp == '0' && tolower (endp[1]) == 'x')
++      /* This would be interpreted as hexadecimal by safe_parse_maxint(). */
++      endp++;
++      else
++      /* On error, endp and srounds is not changed. */
++      safe_parse_maxint(&endp, &srounds);
++      if (*endp == '$')
++      {
++        salt = endp + 1;
++        rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
++        rounds_custom = true;
++      }
++    }
++
++  salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
++  key_len = strlen (key);
++
++  if ((key - (char *) 0) % __alignof__ (uint32_t) != 0)
++    {
++      char *tmp = (char *) alloca (key_len + __alignof__ (uint32_t));
++      key = copied_key =
++      memcpy (tmp + __alignof__ (uint32_t)
++              - (tmp - (char *) 0) % __alignof__ (uint32_t),
++              key, key_len);
++    }
++
++  if ((salt - (char *) 0) % __alignof__ (uint32_t) != 0)
++    {
++      char *tmp = (char *) alloca (salt_len + __alignof__ (uint32_t));
++      salt = copied_salt =
++      memcpy (tmp + __alignof__ (uint32_t)
++              - (tmp - (char *) 0) % __alignof__ (uint32_t),
++              salt, salt_len);
++    }
++
++  /* Prepare for the real work.  */
++  sha256_init_ctx (&ctx);
++
++  /* Add the key string.  */
++  sha256_process_bytes (key, key_len, &ctx);
++
++  /* The last part is the salt string.  This must be at most 16
++     characters and it ends at the first `$' character (for
++     compatibility with existing implementations).  */
++  sha256_process_bytes (salt, salt_len, &ctx);
++
++
++  /* Compute alternate SHA256 sum with input KEY, SALT, and KEY.  The
++     final result will be added to the first context.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* Add key.  */
++  sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Add salt.  */
++  sha256_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Add key again.  */
++  sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Now get result of this (32 bytes) and add it to the other
++     context.  */
++  sha256_finish_ctx (&alt_ctx, alt_result);
++
++  /* Add for any character in the key one byte of the alternate sum.  */
++  for (cnt = key_len; cnt > 32; cnt -= 32)
++    sha256_process_bytes (alt_result, 32, &ctx);
++  sha256_process_bytes (alt_result, cnt, &ctx);
++
++  /* Take the binary representation of the length of the key and for every
++     1 add the alternate sum, for every 0 the key.  */
++  for (cnt = key_len; cnt > 0; cnt >>= 1)
++    if ((cnt & 1) != 0)
++      sha256_process_bytes (alt_result, 32, &ctx);
++    else
++      sha256_process_bytes (key, key_len, &ctx);
++
++  /* Create intermediate result.  */
++  sha256_finish_ctx (&ctx, alt_result);
++
++  /* Start computation of P byte sequence.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < key_len; ++cnt)
++    sha256_process_bytes (key, key_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha256_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence P.  */
++  cp = p_bytes = alloca (key_len);
++  for (cnt = key_len; cnt >= 32; cnt -= 32)
++    {
++      memcpy (cp, temp_result, 32);
++      cp += 32;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Start computation of S byte sequence.  */
++  sha256_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
++    sha256_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha256_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence S.  */
++  cp = s_bytes = alloca (salt_len);
++  for (cnt = salt_len; cnt >= 32; cnt -= 32)
++    {
++      memcpy (cp, temp_result, 32);
++      cp += 32;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Repeatedly run the collected hash value through SHA256 to burn
++     CPU cycles.  */
++  for (cnt = 0; cnt < rounds; ++cnt)
++    {
++      /* New context.  */
++      sha256_init_ctx (&ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++      sha256_process_bytes (p_bytes, key_len, &ctx);
++      else
++      sha256_process_bytes (alt_result, 32, &ctx);
++
++      /* Add salt for numbers not divisible by 3.  */
++      if (cnt % 3 != 0)
++      sha256_process_bytes (s_bytes, salt_len, &ctx);
++
++      /* Add key for numbers not divisible by 7.  */
++      if (cnt % 7 != 0)
++      sha256_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++      sha256_process_bytes (alt_result, 32, &ctx);
++      else
++      sha256_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Create intermediate result.  */
++      sha256_finish_ctx (&ctx, alt_result);
++    }
++
++  /* Now we can construct the result string.  It consists of three
++     parts.  */
++  cp = stpncpy (buffer, sha256_salt_prefix, MAX (0, buflen));
++  buflen -= sizeof (sha256_salt_prefix) - 1;
++
++  if (rounds_custom)
++    {
++      char sbuf[64];
++      grub_sprintf (sbuf, "%s%llu$", sha256_rounds_prefix,
++                  (unsigned long long)rounds);
++      size_t n = strlen (sbuf);
++      memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
++      cp += n;
++      buflen -= n;
++    }
++
++  cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
++  buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
++
++  if (buflen > 0)
++    {
++      *cp++ = '$';
++      --buflen;
++    }
++
++#define b64_from_24bit(B2, B1, B0, N)                                       \
++  do {                                                                              \
++    unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0);                             \
++    int n = (N);                                                            \
++    while (n-- > 0 && buflen > 0)                                           \
++      {                                                                             \
++      *cp++ = b64t[w & 0x3f];                                               \
++      --buflen;                                                             \
++      w >>= 6;                                                              \
++      }                                                                             \
++  } while (0)
++
++  b64_from_24bit (alt_result[0], alt_result[10], alt_result[20], 4);
++  b64_from_24bit (alt_result[21], alt_result[1], alt_result[11], 4);
++  b64_from_24bit (alt_result[12], alt_result[22], alt_result[2], 4);
++  b64_from_24bit (alt_result[3], alt_result[13], alt_result[23], 4);
++  b64_from_24bit (alt_result[24], alt_result[4], alt_result[14], 4);
++  b64_from_24bit (alt_result[15], alt_result[25], alt_result[5], 4);
++  b64_from_24bit (alt_result[6], alt_result[16], alt_result[26], 4);
++  b64_from_24bit (alt_result[27], alt_result[7], alt_result[17], 4);
++  b64_from_24bit (alt_result[18], alt_result[28], alt_result[8], 4);
++  b64_from_24bit (alt_result[9], alt_result[19], alt_result[29], 4);
++  b64_from_24bit (0, alt_result[31], alt_result[30], 3);
++  if (buflen <= 0)
++    buffer = NULL;
++  else
++    *cp = '\0';               /* Terminate the string.  */
++
++  /* Clear the buffer for the intermediate result so that people
++     attaching to processes or reading core dumps cannot get any
++     information.  We do it in this way to clear correct_words[]
++     inside the SHA256 implementation as well.  */
++  sha256_init_ctx (&ctx);
++  sha256_finish_ctx (&ctx, alt_result);
++  memset (temp_result, '\0', sizeof (temp_result));
++  memset (p_bytes, '\0', key_len);
++  memset (s_bytes, '\0', salt_len);
++  memset (&ctx, '\0', sizeof (ctx));
++  memset (&alt_ctx, '\0', sizeof (alt_ctx));
++  if (copied_key != NULL)
++    memset (copied_key, '\0', key_len);
++  if (copied_salt != NULL)
++    memset (copied_salt, '\0', salt_len);
++
++  return buffer;
++}
++
++
++/* This entry point is equivalent to the `crypt' function in Unix
++   libcs.  */
++char *
++sha256_crypt (const char *key, const char *salt)
++{
++  static char buffer[sizeof (sha256_salt_prefix) - 1
++                   + sizeof (sha256_rounds_prefix) + 9 + 1
++                   + 256 + 1 + 43 + 1]; /* 256 bytes for salt */
++  int needed = (sizeof (sha256_salt_prefix) - 1
++              + sizeof (sha256_rounds_prefix) + 9 + 1
++              + strlen (salt) + 1 + 43 + 1);
++
++  if (sizeof (buffer) < needed)
++    return NULL;
++
++  return sha256_crypt_r (key, salt, buffer, sizeof (buffer));
++}
++
++
++#ifdef TEST
++static const struct
++{
++  const char *input;
++  const char result[32];
++} tests[] =
++  {
++    /* Test vectors from FIPS 180-2: appendix B.1.  */
++    { "abc",
++      "\xba\x78\x16\xbf\x8f\x01\xcf\xea\x41\x41\x40\xde\x5d\xae\x22\x23"
++      "\xb0\x03\x61\xa3\x96\x17\x7a\x9c\xb4\x10\xff\x61\xf2\x00\x15\xad" },
++    /* Test vectors from FIPS 180-2: appendix B.2.  */
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
++      "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
++    /* Test vectors from the NESSIE project.  */
++    { "",
++      "\xe3\xb0\xc4\x42\x98\xfc\x1c\x14\x9a\xfb\xf4\xc8\x99\x6f\xb9\x24"
++      "\x27\xae\x41\xe4\x64\x9b\x93\x4c\xa4\x95\x99\x1b\x78\x52\xb8\x55" },
++    { "a",
++      "\xca\x97\x81\x12\xca\x1b\xbd\xca\xfa\xc2\x31\xb3\x9a\x23\xdc\x4d"
++      "\xa7\x86\xef\xf8\x14\x7c\x4e\x72\xb9\x80\x77\x85\xaf\xee\x48\xbb" },
++    { "message digest",
++      "\xf7\x84\x6f\x55\xcf\x23\xe1\x4e\xeb\xea\xb5\xb4\xe1\x55\x0c\xad"
++      "\x5b\x50\x9e\x33\x48\xfb\xc4\xef\xa3\xa1\x41\x3d\x39\x3c\xb6\x50" },
++    { "abcdefghijklmnopqrstuvwxyz",
++      "\x71\xc4\x80\xdf\x93\xd6\xae\x2f\x1e\xfa\xd1\x44\x7c\x66\xc9\x52"
++      "\x5e\x31\x62\x18\xcf\x51\xfc\x8d\x9e\xd8\x32\xf2\xda\xf1\x8b\x73" },
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x24\x8d\x6a\x61\xd2\x06\x38\xb8\xe5\xc0\x26\x93\x0c\x3e\x60\x39"
++      "\xa3\x3c\xe4\x59\x64\xff\x21\x67\xf6\xec\xed\xd4\x19\xdb\x06\xc1" },
++    { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
++      "\xdb\x4b\xfc\xbd\x4d\xa0\xcd\x85\xa6\x0c\x3c\x37\xd3\xfb\xd8\x80"
++      "\x5c\x77\xf1\x5f\xc6\xb1\xfd\xfe\x61\x4e\xe0\xa7\xc8\xfd\xb4\xc0" },
++    { "123456789012345678901234567890123456789012345678901234567890"
++      "12345678901234567890",
++      "\xf3\x71\xbc\x4a\x31\x1f\x2b\x00\x9e\xef\x95\x2d\xd8\x3c\xa8\x0e"
++      "\x2b\x60\x02\x6c\x8e\x93\x55\x92\xd0\xf9\xc3\x08\x45\x3c\x81\x3e" }
++  };
++#define ntests (sizeof (tests) / sizeof (tests[0]))
++
++
++static const struct
++{
++  const char *salt;
++  const char *input;
++  const char *expected;
++} tests2[] =
++{
++  { "$5$saltstring", "Hello world!",
++    "$5$saltstring$5B8vYYiY.CVt1RlTTf8KbXBH3hsxY/GNooZaBBGWEc5" },
++  { "$5$rounds=10000$saltstringsaltstring", "Hello world!",
++    "$5$rounds=10000$saltstringsaltst$3xv.VbSHBb41AL9AvLeujZkZRBAwqFMz2."
++    "opqey6IcA" },
++  { "$5$rounds=5000$toolongsaltstring", "This is just a test",
++    "$5$rounds=5000$toolongsaltstrin$Un/5jzAHMgOGZ5.mWJpuVolil07guHPvOW8"
++    "mGRcvxa5" },
++  { "$5$rounds=1400$anotherlongsaltstring",
++    "a very much longer text to encrypt.  This one even stretches over more"
++    "than one line.",
++    "$5$rounds=1400$anotherlongsalts$Rx.j8H.h8HjEDGomFU8bDkXm3XIUnzyxf12"
++    "oP84Bnq1" },
++  { "$5$rounds=77777$short",
++    "we have a short salt string but not a short password",
++    "$5$rounds=77777$short$JiO1O3ZpDAxGJeaDIuqCoEFysAe1mZNJRs3pw0KQRd/" },
++  { "$5$rounds=123456$asaltof16chars..", "a short string",
++    "$5$rounds=123456$asaltof16chars..$gP3VQ/6X7UUEW3HkBn2w1/Ptq2jxPyzV/"
++    "cZKmF/wJvD" },
++  { "$5$rounds=10$roundstoolow", "the minimum number is still observed",
++    "$5$rounds=1000$roundstoolow$yfvwcWrQ8l/K0DAWyuPMDNHpIVlTQebY9l/gL97"
++    "2bIC" },
++};
++#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
++
++
++int
++sha256_test (void)
++{
++  struct sha256_ctx ctx;
++  char sum[32];
++  int result = 0;
++  int cnt, i;
++
++  for (cnt = 0; cnt < (int) ntests; ++cnt)
++    {
++      sha256_init_ctx (&ctx);
++      sha256_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
++      sha256_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 32) != 0)
++      {
++        printf ("test %d run %d failed\n", cnt, 1);
++        result = 1;
++      }
++
++      sha256_init_ctx (&ctx);
++      for (i = 0; tests[cnt].input[i] != '\0'; ++i)
++      sha256_process_bytes (&tests[cnt].input[i], 1, &ctx);
++      sha256_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 32) != 0)
++      {
++        printf ("test %d run %d failed\n", cnt, 2);
++        result = 1;
++      }
++    }
++
++  /* Test vector from FIPS 180-2: appendix B.3.  */
++  char buf[1000];
++  memset (buf, 'a', sizeof (buf));
++  sha256_init_ctx (&ctx);
++  for (i = 0; i < 1000; ++i)
++    sha256_process_bytes (buf, sizeof (buf), &ctx);
++  sha256_finish_ctx (&ctx, sum);
++  static const char expected[32] =
++    "\xcd\xc7\x6e\x5c\x99\x14\xfb\x92\x81\xa1\xc7\xe2\x84\xd7\x3e\x67"
++    "\xf1\x80\x9a\x48\xa4\x97\x20\x0e\x04\x6d\x39\xcc\xc7\x11\x2c\xd0";
++  if (memcmp (expected, sum, 32) != 0)
++    {
++      printf ("test %d failed\n", cnt);
++      result = 1;
++    }
++
++  for (cnt = 0; cnt < ntests2; ++cnt)
++    {
++      char *cp = sha256_crypt (tests2[cnt].input, tests2[cnt].salt);
++
++      if (strcmp (cp, tests2[cnt].expected) != 0)
++      {
++        printf ("test %d: expected \"%s\", got \"%s\"\n",
++                cnt, tests2[cnt].expected, cp);
++        result = 1;
++      }
++    }
++
++  if (result == 0)
++    printf ("all tests OK\n");
++
++  return result;
++}
++#endif
+diff --git a/stage2/sha512crypt.c b/stage2/sha512crypt.c
+new file mode 100644
+index 0000000..ff6cd26
+--- /dev/null
++++ b/stage2/sha512crypt.c
+@@ -0,0 +1,795 @@
++/* SHA512-based Unix crypt implementation.
++   Released into the Public Domain by Ulrich Drepper <drepper@redhat.com>.
++   Adapted for grub by Miloslav Trmac <mitr@redhat.com>. */
++
++#include <stdbool.h>
++#include <stddef.h>
++
++#include <shared.h>
++
++typedef unsigned long long uint64_t;
++typedef size_t uintptr_t;
++#define alloca(SIZE) (__builtin_alloca (SIZE))
++#define UINT64_C(X) X ## ULL
++#define MIN(a, b) ((a) < (b) ? (a) : (b))
++#define MAX(a, b) ((a) > (b) ? (a) : (b))
++
++/* Structure to save state of computation between the single steps.  */
++struct sha512_ctx
++{
++  uint64_t H[8];
++
++  uint64_t total[2];
++  uint64_t buflen;
++  char buffer[256];   /* NB: always correctly aligned for uint64_t.  */
++};
++
++
++#if 1 /* __BYTE_ORDER == __LITTLE_ENDIAN */
++# define SWAP(n) \
++  (((n) << 56)                                        \
++   | (((n) & 0xff00) << 40)                   \
++   | (((n) & 0xff0000) << 24)                 \
++   | (((n) & 0xff000000) << 8)                        \
++   | (((n) >> 8) & 0xff000000)                        \
++   | (((n) >> 24) & 0xff0000)                 \
++   | (((n) >> 40) & 0xff00)                   \
++   | ((n) >> 56))
++#else
++# define SWAP(n) (n)
++#endif
++
++
++/* This array contains the bytes used to pad the buffer to the next
++   64-byte boundary.  (FIPS 180-2:5.1.2)  */
++static const unsigned char fillbuf[128] = { 0x80, 0 /* , 0, 0, ...  */ };
++
++
++/* Constants for SHA512 from FIPS 180-2:4.2.3.  */
++static const uint64_t K[80] =
++  {
++    UINT64_C (0x428a2f98d728ae22), UINT64_C (0x7137449123ef65cd),
++    UINT64_C (0xb5c0fbcfec4d3b2f), UINT64_C (0xe9b5dba58189dbbc),
++    UINT64_C (0x3956c25bf348b538), UINT64_C (0x59f111f1b605d019),
++    UINT64_C (0x923f82a4af194f9b), UINT64_C (0xab1c5ed5da6d8118),
++    UINT64_C (0xd807aa98a3030242), UINT64_C (0x12835b0145706fbe),
++    UINT64_C (0x243185be4ee4b28c), UINT64_C (0x550c7dc3d5ffb4e2),
++    UINT64_C (0x72be5d74f27b896f), UINT64_C (0x80deb1fe3b1696b1),
++    UINT64_C (0x9bdc06a725c71235), UINT64_C (0xc19bf174cf692694),
++    UINT64_C (0xe49b69c19ef14ad2), UINT64_C (0xefbe4786384f25e3),
++    UINT64_C (0x0fc19dc68b8cd5b5), UINT64_C (0x240ca1cc77ac9c65),
++    UINT64_C (0x2de92c6f592b0275), UINT64_C (0x4a7484aa6ea6e483),
++    UINT64_C (0x5cb0a9dcbd41fbd4), UINT64_C (0x76f988da831153b5),
++    UINT64_C (0x983e5152ee66dfab), UINT64_C (0xa831c66d2db43210),
++    UINT64_C (0xb00327c898fb213f), UINT64_C (0xbf597fc7beef0ee4),
++    UINT64_C (0xc6e00bf33da88fc2), UINT64_C (0xd5a79147930aa725),
++    UINT64_C (0x06ca6351e003826f), UINT64_C (0x142929670a0e6e70),
++    UINT64_C (0x27b70a8546d22ffc), UINT64_C (0x2e1b21385c26c926),
++    UINT64_C (0x4d2c6dfc5ac42aed), UINT64_C (0x53380d139d95b3df),
++    UINT64_C (0x650a73548baf63de), UINT64_C (0x766a0abb3c77b2a8),
++    UINT64_C (0x81c2c92e47edaee6), UINT64_C (0x92722c851482353b),
++    UINT64_C (0xa2bfe8a14cf10364), UINT64_C (0xa81a664bbc423001),
++    UINT64_C (0xc24b8b70d0f89791), UINT64_C (0xc76c51a30654be30),
++    UINT64_C (0xd192e819d6ef5218), UINT64_C (0xd69906245565a910),
++    UINT64_C (0xf40e35855771202a), UINT64_C (0x106aa07032bbd1b8),
++    UINT64_C (0x19a4c116b8d2d0c8), UINT64_C (0x1e376c085141ab53),
++    UINT64_C (0x2748774cdf8eeb99), UINT64_C (0x34b0bcb5e19b48a8),
++    UINT64_C (0x391c0cb3c5c95a63), UINT64_C (0x4ed8aa4ae3418acb),
++    UINT64_C (0x5b9cca4f7763e373), UINT64_C (0x682e6ff3d6b2b8a3),
++    UINT64_C (0x748f82ee5defb2fc), UINT64_C (0x78a5636f43172f60),
++    UINT64_C (0x84c87814a1f0ab72), UINT64_C (0x8cc702081a6439ec),
++    UINT64_C (0x90befffa23631e28), UINT64_C (0xa4506cebde82bde9),
++    UINT64_C (0xbef9a3f7b2c67915), UINT64_C (0xc67178f2e372532b),
++    UINT64_C (0xca273eceea26619c), UINT64_C (0xd186b8c721c0c207),
++    UINT64_C (0xeada7dd6cde0eb1e), UINT64_C (0xf57d4f7fee6ed178),
++    UINT64_C (0x06f067aa72176fba), UINT64_C (0x0a637dc5a2c898a6),
++    UINT64_C (0x113f9804bef90dae), UINT64_C (0x1b710b35131c471b),
++    UINT64_C (0x28db77f523047d84), UINT64_C (0x32caab7b40c72493),
++    UINT64_C (0x3c9ebe0a15c9bebc), UINT64_C (0x431d67c49c100d4c),
++    UINT64_C (0x4cc5d4becb3e42b6), UINT64_C (0x597f299cfc657e2a),
++    UINT64_C (0x5fcb6fab3ad6faec), UINT64_C (0x6c44198c4a475817)
++  };
++
++
++/* Process LEN bytes of BUFFER, accumulating context into CTX.
++   It is assumed that LEN % 128 == 0.  */
++static void
++sha512_process_block (const void *buffer, size_t len, struct sha512_ctx *ctx)
++{
++  const uint64_t *words = buffer;
++  size_t nwords = len / sizeof (uint64_t);
++  uint64_t a = ctx->H[0];
++  uint64_t b = ctx->H[1];
++  uint64_t c = ctx->H[2];
++  uint64_t d = ctx->H[3];
++  uint64_t e = ctx->H[4];
++  uint64_t f = ctx->H[5];
++  uint64_t g = ctx->H[6];
++  uint64_t h = ctx->H[7];
++
++  /* First increment the byte count.  FIPS 180-2 specifies the possible
++     length of the file up to 2^128 bits.  Here we only compute the
++     number of bytes.  Do a double word increment.  */
++  ctx->total[0] += len;
++  if (ctx->total[0] < len)
++    ++ctx->total[1];
++
++  /* Process all bytes in the buffer with 128 bytes in each round of
++     the loop.  */
++  while (nwords > 0)
++    {
++      uint64_t W[80];
++      uint64_t a_save = a;
++      uint64_t b_save = b;
++      uint64_t c_save = c;
++      uint64_t d_save = d;
++      uint64_t e_save = e;
++      uint64_t f_save = f;
++      uint64_t g_save = g;
++      uint64_t h_save = h;
++      unsigned int t;
++
++      /* Operators defined in FIPS 180-2:4.1.2.  */
++#define Ch(x, y, z) ((x & y) ^ (~x & z))
++#define Maj(x, y, z) ((x & y) ^ (x & z) ^ (y & z))
++#define S0(x) (CYCLIC (x, 28) ^ CYCLIC (x, 34) ^ CYCLIC (x, 39))
++#define S1(x) (CYCLIC (x, 14) ^ CYCLIC (x, 18) ^ CYCLIC (x, 41))
++#define R0(x) (CYCLIC (x, 1) ^ CYCLIC (x, 8) ^ (x >> 7))
++#define R1(x) (CYCLIC (x, 19) ^ CYCLIC (x, 61) ^ (x >> 6))
++
++      /* It is unfortunate that C does not provide an operator for
++       cyclic rotation.  Hope the C compiler is smart enough.  */
++#define CYCLIC(w, s) ((w >> s) | (w << (64 - s)))
++
++      /* Compute the message schedule according to FIPS 180-2:6.3.2 step 2.  */
++      for (t = 0; t < 16; ++t)
++      {
++        W[t] = SWAP (*words);
++        ++words;
++      }
++      for (t = 16; t < 80; ++t)
++      W[t] = R1 (W[t - 2]) + W[t - 7] + R0 (W[t - 15]) + W[t - 16];
++
++      /* The actual computation according to FIPS 180-2:6.3.2 step 3.  */
++      for (t = 0; t < 80; ++t)
++      {
++        uint64_t T1 = h + S1 (e) + Ch (e, f, g) + K[t] + W[t];
++        uint64_t T2 = S0 (a) + Maj (a, b, c);
++        h = g;
++        g = f;
++        f = e;
++        e = d + T1;
++        d = c;
++        c = b;
++        b = a;
++        a = T1 + T2;
++      }
++
++      /* Add the starting values of the context according to FIPS 180-2:6.3.2
++       step 4.  */
++      a += a_save;
++      b += b_save;
++      c += c_save;
++      d += d_save;
++      e += e_save;
++      f += f_save;
++      g += g_save;
++      h += h_save;
++
++      /* Prepare for the next round.  */
++      nwords -= 16;
++    }
++
++  /* Put checksum in context given as argument.  */
++  ctx->H[0] = a;
++  ctx->H[1] = b;
++  ctx->H[2] = c;
++  ctx->H[3] = d;
++  ctx->H[4] = e;
++  ctx->H[5] = f;
++  ctx->H[6] = g;
++  ctx->H[7] = h;
++}
++
++
++/* Initialize structure containing state of computation.
++   (FIPS 180-2:5.3.3)  */
++static void
++sha512_init_ctx (struct sha512_ctx *ctx)
++{
++  ctx->H[0] = UINT64_C (0x6a09e667f3bcc908);
++  ctx->H[1] = UINT64_C (0xbb67ae8584caa73b);
++  ctx->H[2] = UINT64_C (0x3c6ef372fe94f82b);
++  ctx->H[3] = UINT64_C (0xa54ff53a5f1d36f1);
++  ctx->H[4] = UINT64_C (0x510e527fade682d1);
++  ctx->H[5] = UINT64_C (0x9b05688c2b3e6c1f);
++  ctx->H[6] = UINT64_C (0x1f83d9abfb41bd6b);
++  ctx->H[7] = UINT64_C (0x5be0cd19137e2179);
++
++  ctx->total[0] = ctx->total[1] = 0;
++  ctx->buflen = 0;
++}
++
++
++/* Process the remaining bytes in the internal buffer and the usual
++   prolog according to the standard and write the result to RESBUF.
++
++   IMPORTANT: On some systems it is required that RESBUF is correctly
++   aligned for a 32 bits value.  */
++static void *
++sha512_finish_ctx (struct sha512_ctx *ctx, void *resbuf)
++{
++  /* Take yet unprocessed bytes into account.  */
++  uint64_t bytes = ctx->buflen;
++  size_t pad;
++  unsigned int i;
++
++  /* Now count remaining bytes.  */
++  ctx->total[0] += bytes;
++  if (ctx->total[0] < bytes)
++    ++ctx->total[1];
++
++  pad = bytes >= 112 ? 128 + 112 - bytes : 112 - bytes;
++  memcpy (&ctx->buffer[bytes], fillbuf, pad);
++
++  /* Put the 128-bit file length in *bits* at the end of the buffer.  */
++  *(uint64_t *) &ctx->buffer[bytes + pad + 8] = SWAP (ctx->total[0] << 3);
++  *(uint64_t *) &ctx->buffer[bytes + pad] = SWAP ((ctx->total[1] << 3) |
++                                                (ctx->total[0] >> 61));
++
++  /* Process last bytes.  */
++  sha512_process_block (ctx->buffer, bytes + pad + 16, ctx);
++
++  /* Put result from CTX in first 64 bytes following RESBUF.  */
++  for (i = 0; i < 8; ++i)
++    ((uint64_t *) resbuf)[i] = SWAP (ctx->H[i]);
++
++  return resbuf;
++}
++
++
++static void
++sha512_process_bytes (const void *buffer, size_t len, struct sha512_ctx *ctx)
++{
++  /* When we already have some bits in our internal buffer concatenate
++     both inputs first.  */
++  if (ctx->buflen != 0)
++    {
++      size_t left_over = ctx->buflen;
++      size_t add = 256 - left_over > len ? len : 256 - left_over;
++
++      memcpy (&ctx->buffer[left_over], buffer, add);
++      ctx->buflen += add;
++
++      if (ctx->buflen > 128)
++      {
++        sha512_process_block (ctx->buffer, ctx->buflen & ~127, ctx);
++
++        ctx->buflen &= 127;
++        /* The regions in the following copy operation cannot overlap.  */
++        memcpy (ctx->buffer, &ctx->buffer[(left_over + add) & ~127],
++                ctx->buflen);
++      }
++
++      buffer = (const char *) buffer + add;
++      len -= add;
++    }
++
++  /* Process available complete blocks.  */
++  if (len >= 128)
++    {
++/* To check alignment gcc has an appropriate operator.  Other
++   compilers don't.  */
++# if __GNUC__ >= 2
++#  define UNALIGNED_P(p) (((uintptr_t) p) % __alignof__ (uint64_t) != 0)
++# else
++#  define UNALIGNED_P(p) (((uintptr_t) p) % sizeof (uint64_t) != 0)
++# endif
++      if (UNALIGNED_P (buffer))
++      while (len > 128)
++        {
++          sha512_process_block (memcpy (ctx->buffer, buffer, 128), 128,
++                                  ctx);
++          buffer = (const char *) buffer + 128;
++          len -= 128;
++        }
++      else
++      {
++        sha512_process_block (buffer, len & ~127, ctx);
++        buffer = (const char *) buffer + (len & ~127);
++        len &= 127;
++      }
++    }
++
++  /* Move remaining bytes into internal buffer.  */
++  if (len > 0)
++    {
++      size_t left_over = ctx->buflen;
++
++      memcpy (&ctx->buffer[left_over], buffer, len);
++      left_over += len;
++      if (left_over >= 128)
++      {
++        sha512_process_block (ctx->buffer, 128, ctx);
++        left_over -= 128;
++        memcpy (ctx->buffer, &ctx->buffer[128], left_over);
++      }
++      ctx->buflen = left_over;
++    }
++}
++
++
++/* Define our magic string to mark salt for SHA512 "encryption"
++   replacement.  */
++static const char sha512_salt_prefix[] = "$6$";
++
++/* Prefix for optional rounds specification.  */
++static const char sha512_rounds_prefix[] = "rounds=";
++
++/* Maximum salt string length.  */
++#define SALT_LEN_MAX 16
++/* Default number of rounds if not explicitly specified.  */
++#define ROUNDS_DEFAULT 5000
++/* Minimum number of rounds.  */
++#define ROUNDS_MIN 1000
++/* Maximum number of rounds.  */
++#define ROUNDS_MAX 999999999
++
++/* Table with characters for base64 transformation.  */
++static const char b64t[64] =
++"./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
++
++
++static char *
++sha512_crypt_r (const char *key, const char *salt, char *buffer, int buflen)
++{
++  unsigned char alt_result[64]
++    __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
++  unsigned char temp_result[64]
++    __attribute__ ((__aligned__ (__alignof__ (uint64_t))));
++  struct sha512_ctx ctx;
++  struct sha512_ctx alt_ctx;
++  size_t salt_len;
++  size_t key_len;
++  size_t cnt;
++  char *cp;
++  char *copied_key = NULL;
++  char *copied_salt = NULL;
++  char *p_bytes;
++  char *s_bytes;
++  /* Default number of rounds.  */
++  size_t rounds = ROUNDS_DEFAULT;
++  bool rounds_custom = false;
++
++  /* Find beginning of salt string.  The prefix should normally always
++     be present.  Just in case it is not.  */
++  if (grub_memcmp (sha512_salt_prefix, salt,
++                 sizeof (sha512_salt_prefix) - 1) == 0)
++    /* Skip salt prefix.  */
++    salt += sizeof (sha512_salt_prefix) - 1;
++
++  if (grub_memcmp (salt, sha512_rounds_prefix,
++                 sizeof (sha512_rounds_prefix) - 1) == 0)
++    {
++      const char *num = salt + sizeof (sha512_rounds_prefix) - 1;
++      char *endp = (char *)num;
++      int srounds = 0;
++      if (*endp == '0' && tolower (endp[1]) == 'x')
++      /* This would be interpreted as hexadecimal by safe_parse_maxint(). */
++      endp++;
++      else
++      /* On error, endp and srounds is not changed. */
++      safe_parse_maxint(&endp, &srounds);
++      if (*endp == '$')
++      {
++        salt = endp + 1;
++        rounds = MAX (ROUNDS_MIN, MIN (srounds, ROUNDS_MAX));
++        rounds_custom = true;
++      }
++    }
++
++  salt_len = MIN (strcspn (salt, "$"), SALT_LEN_MAX);
++  key_len = strlen (key);
++
++  if ((key - (char *) 0) % __alignof__ (uint64_t) != 0)
++    {
++      char *tmp = (char *) alloca (key_len + __alignof__ (uint64_t));
++      key = copied_key =
++      memcpy (tmp + __alignof__ (uint64_t)
++              - (tmp - (char *) 0) % __alignof__ (uint64_t),
++              key, key_len);
++    }
++
++  if ((salt - (char *) 0) % __alignof__ (uint64_t) != 0)
++    {
++      char *tmp = (char *) alloca (salt_len + __alignof__ (uint64_t));
++      salt = copied_salt =
++      memcpy (tmp + __alignof__ (uint64_t)
++              - (tmp - (char *) 0) % __alignof__ (uint64_t),
++              salt, salt_len);
++    }
++
++  /* Prepare for the real work.  */
++  sha512_init_ctx (&ctx);
++
++  /* Add the key string.  */
++  sha512_process_bytes (key, key_len, &ctx);
++
++  /* The last part is the salt string.  This must be at most 16
++     characters and it ends at the first `$' character (for
++     compatibility with existing implementations).  */
++  sha512_process_bytes (salt, salt_len, &ctx);
++
++
++  /* Compute alternate SHA512 sum with input KEY, SALT, and KEY.  The
++     final result will be added to the first context.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* Add key.  */
++  sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Add salt.  */
++  sha512_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Add key again.  */
++  sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Now get result of this (64 bytes) and add it to the other
++     context.  */
++  sha512_finish_ctx (&alt_ctx, alt_result);
++
++  /* Add for any character in the key one byte of the alternate sum.  */
++  for (cnt = key_len; cnt > 64; cnt -= 64)
++    sha512_process_bytes (alt_result, 64, &ctx);
++  sha512_process_bytes (alt_result, cnt, &ctx);
++
++  /* Take the binary representation of the length of the key and for every
++     1 add the alternate sum, for every 0 the key.  */
++  for (cnt = key_len; cnt > 0; cnt >>= 1)
++    if ((cnt & 1) != 0)
++      sha512_process_bytes (alt_result, 64, &ctx);
++    else
++      sha512_process_bytes (key, key_len, &ctx);
++
++  /* Create intermediate result.  */
++  sha512_finish_ctx (&ctx, alt_result);
++
++  /* Start computation of P byte sequence.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < key_len; ++cnt)
++    sha512_process_bytes (key, key_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha512_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence P.  */
++  cp = p_bytes = alloca (key_len);
++  for (cnt = key_len; cnt >= 64; cnt -= 64)
++    {
++      memcpy (cp, temp_result, 64);
++      cp += 64;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Start computation of S byte sequence.  */
++  sha512_init_ctx (&alt_ctx);
++
++  /* For every character in the password add the entire password.  */
++  for (cnt = 0; cnt < 16 + alt_result[0]; ++cnt)
++    sha512_process_bytes (salt, salt_len, &alt_ctx);
++
++  /* Finish the digest.  */
++  sha512_finish_ctx (&alt_ctx, temp_result);
++
++  /* Create byte sequence S.  */
++  cp = s_bytes = alloca (salt_len);
++  for (cnt = salt_len; cnt >= 64; cnt -= 64)
++    {
++      memcpy (cp, temp_result, 64);
++      cp += 64;
++    }
++  memcpy (cp, temp_result, cnt);
++
++  /* Repeatedly run the collected hash value through SHA512 to burn
++     CPU cycles.  */
++  for (cnt = 0; cnt < rounds; ++cnt)
++    {
++      /* New context.  */
++      sha512_init_ctx (&ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++      sha512_process_bytes (p_bytes, key_len, &ctx);
++      else
++      sha512_process_bytes (alt_result, 64, &ctx);
++
++      /* Add salt for numbers not divisible by 3.  */
++      if (cnt % 3 != 0)
++      sha512_process_bytes (s_bytes, salt_len, &ctx);
++
++      /* Add key for numbers not divisible by 7.  */
++      if (cnt % 7 != 0)
++      sha512_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Add key or last result.  */
++      if ((cnt & 1) != 0)
++      sha512_process_bytes (alt_result, 64, &ctx);
++      else
++      sha512_process_bytes (p_bytes, key_len, &ctx);
++
++      /* Create intermediate result.  */
++      sha512_finish_ctx (&ctx, alt_result);
++    }
++
++  /* Now we can construct the result string.  It consists of three
++     parts.  */
++  cp = stpncpy (buffer, sha512_salt_prefix, MAX (0, buflen));
++  buflen -= sizeof (sha512_salt_prefix) - 1;
++
++  if (rounds_custom)
++    {
++      char sbuf[64];
++      grub_sprintf (sbuf, "%s%llu$", sha512_rounds_prefix,
++                  (unsigned long long)rounds);
++      size_t n = strlen (sbuf);
++      memcpy (cp, sbuf, MIN (MAX (0, buflen), n));
++      cp += n;
++      buflen -= n;
++    }
++
++  cp = stpncpy (cp, salt, MIN ((size_t) MAX (0, buflen), salt_len));
++  buflen -= MIN ((size_t) MAX (0, buflen), salt_len);
++
++  if (buflen > 0)
++    {
++      *cp++ = '$';
++      --buflen;
++    }
++
++#define b64_from_24bit(B2, B1, B0, N)                                       \
++  do {                                                                              \
++    unsigned int w = ((B2) << 16) | ((B1) << 8) | (B0);                             \
++    int n = (N);                                                            \
++    while (n-- > 0 && buflen > 0)                                           \
++      {                                                                             \
++      *cp++ = b64t[w & 0x3f];                                               \
++      --buflen;                                                             \
++      w >>= 6;                                                              \
++      }                                                                             \
++  } while (0)
++
++  b64_from_24bit (alt_result[0], alt_result[21], alt_result[42], 4);
++  b64_from_24bit (alt_result[22], alt_result[43], alt_result[1], 4);
++  b64_from_24bit (alt_result[44], alt_result[2], alt_result[23], 4);
++  b64_from_24bit (alt_result[3], alt_result[24], alt_result[45], 4);
++  b64_from_24bit (alt_result[25], alt_result[46], alt_result[4], 4);
++  b64_from_24bit (alt_result[47], alt_result[5], alt_result[26], 4);
++  b64_from_24bit (alt_result[6], alt_result[27], alt_result[48], 4);
++  b64_from_24bit (alt_result[28], alt_result[49], alt_result[7], 4);
++  b64_from_24bit (alt_result[50], alt_result[8], alt_result[29], 4);
++  b64_from_24bit (alt_result[9], alt_result[30], alt_result[51], 4);
++  b64_from_24bit (alt_result[31], alt_result[52], alt_result[10], 4);
++  b64_from_24bit (alt_result[53], alt_result[11], alt_result[32], 4);
++  b64_from_24bit (alt_result[12], alt_result[33], alt_result[54], 4);
++  b64_from_24bit (alt_result[34], alt_result[55], alt_result[13], 4);
++  b64_from_24bit (alt_result[56], alt_result[14], alt_result[35], 4);
++  b64_from_24bit (alt_result[15], alt_result[36], alt_result[57], 4);
++  b64_from_24bit (alt_result[37], alt_result[58], alt_result[16], 4);
++  b64_from_24bit (alt_result[59], alt_result[17], alt_result[38], 4);
++  b64_from_24bit (alt_result[18], alt_result[39], alt_result[60], 4);
++  b64_from_24bit (alt_result[40], alt_result[61], alt_result[19], 4);
++  b64_from_24bit (alt_result[62], alt_result[20], alt_result[41], 4);
++  b64_from_24bit (0, 0, alt_result[63], 2);
++
++  if (buflen <= 0)
++    buffer = NULL;
++  else
++    *cp = '\0';               /* Terminate the string.  */
++
++  /* Clear the buffer for the intermediate result so that people
++     attaching to processes or reading core dumps cannot get any
++     information.  We do it in this way to clear correct_words[]
++     inside the SHA512 implementation as well.  */
++  sha512_init_ctx (&ctx);
++  sha512_finish_ctx (&ctx, alt_result);
++  memset (temp_result, '\0', sizeof (temp_result));
++  memset (p_bytes, '\0', key_len);
++  memset (s_bytes, '\0', salt_len);
++  memset (&ctx, '\0', sizeof (ctx));
++  memset (&alt_ctx, '\0', sizeof (alt_ctx));
++  if (copied_key != NULL)
++    memset (copied_key, '\0', key_len);
++  if (copied_salt != NULL)
++    memset (copied_salt, '\0', salt_len);
++
++  return buffer;
++}
++
++
++/* This entry point is equivalent to the `crypt' function in Unix
++   libcs.  */
++char *
++sha512_crypt (const char *key, const char *salt)
++{
++  /* We don't want to have an arbitrary limit in the size of the
++     password.  We can compute an upper bound for the size of the
++     result in advance and so we can prepare the buffer we pass to
++     `sha512_crypt_r'.  */
++  static char buffer[sizeof (sha512_salt_prefix) - 1
++                   + sizeof (sha512_rounds_prefix) + 9 + 1
++                   + 256 + 1 + 86 + 1]; /* 256 bytes for salt */
++  int needed = (sizeof (sha512_salt_prefix) - 1
++              + sizeof (sha512_rounds_prefix) + 9 + 1
++              + strlen (salt) + 1 + 86 + 1);
++
++  if (sizeof (buffer) < needed)
++    return NULL;
++
++  return sha512_crypt_r (key, salt, buffer, sizeof (buffer));
++}
++
++
++#ifdef TEST
++static const struct
++{
++  const char *input;
++  const char result[64];
++} tests[] =
++  {
++    /* Test vectors from FIPS 180-2: appendix C.1.  */
++    { "abc",
++      "\xdd\xaf\x35\xa1\x93\x61\x7a\xba\xcc\x41\x73\x49\xae\x20\x41\x31"
++      "\x12\xe6\xfa\x4e\x89\xa9\x7e\xa2\x0a\x9e\xee\xe6\x4b\x55\xd3\x9a"
++      "\x21\x92\x99\x2a\x27\x4f\xc1\xa8\x36\xba\x3c\x23\xa3\xfe\xeb\xbd"
++      "\x45\x4d\x44\x23\x64\x3c\xe8\x0e\x2a\x9a\xc9\x4f\xa5\x4c\xa4\x9f" },
++    /* Test vectors from FIPS 180-2: appendix C.2.  */
++    { "abcdefghbcdefghicdefghijdefghijkefghijklfghijklmghijklmn"
++      "hijklmnoijklmnopjklmnopqklmnopqrlmnopqrsmnopqrstnopqrstu",
++      "\x8e\x95\x9b\x75\xda\xe3\x13\xda\x8c\xf4\xf7\x28\x14\xfc\x14\x3f"
++      "\x8f\x77\x79\xc6\xeb\x9f\x7f\xa1\x72\x99\xae\xad\xb6\x88\x90\x18"
++      "\x50\x1d\x28\x9e\x49\x00\xf7\xe4\x33\x1b\x99\xde\xc4\xb5\x43\x3a"
++      "\xc7\xd3\x29\xee\xb6\xdd\x26\x54\x5e\x96\xe5\x5b\x87\x4b\xe9\x09" },
++    /* Test vectors from the NESSIE project.  */
++    { "",
++      "\xcf\x83\xe1\x35\x7e\xef\xb8\xbd\xf1\x54\x28\x50\xd6\x6d\x80\x07"
++      "\xd6\x20\xe4\x05\x0b\x57\x15\xdc\x83\xf4\xa9\x21\xd3\x6c\xe9\xce"
++      "\x47\xd0\xd1\x3c\x5d\x85\xf2\xb0\xff\x83\x18\xd2\x87\x7e\xec\x2f"
++      "\x63\xb9\x31\xbd\x47\x41\x7a\x81\xa5\x38\x32\x7a\xf9\x27\xda\x3e" },
++    { "a",
++      "\x1f\x40\xfc\x92\xda\x24\x16\x94\x75\x09\x79\xee\x6c\xf5\x82\xf2"
++      "\xd5\xd7\xd2\x8e\x18\x33\x5d\xe0\x5a\xbc\x54\xd0\x56\x0e\x0f\x53"
++      "\x02\x86\x0c\x65\x2b\xf0\x8d\x56\x02\x52\xaa\x5e\x74\x21\x05\x46"
++      "\xf3\x69\xfb\xbb\xce\x8c\x12\xcf\xc7\x95\x7b\x26\x52\xfe\x9a\x75" },
++    { "message digest",
++      "\x10\x7d\xbf\x38\x9d\x9e\x9f\x71\xa3\xa9\x5f\x6c\x05\x5b\x92\x51"
++      "\xbc\x52\x68\xc2\xbe\x16\xd6\xc1\x34\x92\xea\x45\xb0\x19\x9f\x33"
++      "\x09\xe1\x64\x55\xab\x1e\x96\x11\x8e\x8a\x90\x5d\x55\x97\xb7\x20"
++      "\x38\xdd\xb3\x72\xa8\x98\x26\x04\x6d\xe6\x66\x87\xbb\x42\x0e\x7c" },
++    { "abcdefghijklmnopqrstuvwxyz",
++      "\x4d\xbf\xf8\x6c\xc2\xca\x1b\xae\x1e\x16\x46\x8a\x05\xcb\x98\x81"
++      "\xc9\x7f\x17\x53\xbc\xe3\x61\x90\x34\x89\x8f\xaa\x1a\xab\xe4\x29"
++      "\x95\x5a\x1b\xf8\xec\x48\x3d\x74\x21\xfe\x3c\x16\x46\x61\x3a\x59"
++      "\xed\x54\x41\xfb\x0f\x32\x13\x89\xf7\x7f\x48\xa8\x79\xc7\xb1\xf1" },
++    { "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
++      "\x20\x4a\x8f\xc6\xdd\xa8\x2f\x0a\x0c\xed\x7b\xeb\x8e\x08\xa4\x16"
++      "\x57\xc1\x6e\xf4\x68\xb2\x28\xa8\x27\x9b\xe3\x31\xa7\x03\xc3\x35"
++      "\x96\xfd\x15\xc1\x3b\x1b\x07\xf9\xaa\x1d\x3b\xea\x57\x78\x9c\xa0"
++      "\x31\xad\x85\xc7\xa7\x1d\xd7\x03\x54\xec\x63\x12\x38\xca\x34\x45" },
++    { "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
++      "\x1e\x07\xbe\x23\xc2\x6a\x86\xea\x37\xea\x81\x0c\x8e\xc7\x80\x93"
++      "\x52\x51\x5a\x97\x0e\x92\x53\xc2\x6f\x53\x6c\xfc\x7a\x99\x96\xc4"
++      "\x5c\x83\x70\x58\x3e\x0a\x78\xfa\x4a\x90\x04\x1d\x71\xa4\xce\xab"
++      "\x74\x23\xf1\x9c\x71\xb9\xd5\xa3\xe0\x12\x49\xf0\xbe\xbd\x58\x94" },
++    { "123456789012345678901234567890123456789012345678901234567890"
++      "12345678901234567890",
++      "\x72\xec\x1e\xf1\x12\x4a\x45\xb0\x47\xe8\xb7\xc7\x5a\x93\x21\x95"
++      "\x13\x5b\xb6\x1d\xe2\x4e\xc0\xd1\x91\x40\x42\x24\x6e\x0a\xec\x3a"
++      "\x23\x54\xe0\x93\xd7\x6f\x30\x48\xb4\x56\x76\x43\x46\x90\x0c\xb1"
++      "\x30\xd2\xa4\xfd\x5d\xd1\x6a\xbb\x5e\x30\xbc\xb8\x50\xde\xe8\x43" }
++  };
++#define ntests (sizeof (tests) / sizeof (tests[0]))
++
++
++static const struct
++{
++  const char *salt;
++  const char *input;
++  const char *expected;
++} tests2[] =
++{
++  { "$6$saltstring", "Hello world!",
++    "$6$saltstring$svn8UoSVapNtMuq1ukKS4tPQd8iKwSMHWjl/O817G3uBnIFNjnQJu"
++    "esI68u4OTLiBFdcbYEdFCoEOfaS35inz1" },
++  { "$6$rounds=10000$saltstringsaltstring", "Hello world!",
++    "$6$rounds=10000$saltstringsaltst$OW1/O6BYHV6BcXZu8QVeXbDWra3Oeqh0sb"
++    "HbbMCVNSnCM/UrjmM0Dp8vOuZeHBy/YTBmSK6H9qs/y3RnOaw5v." },
++  { "$6$rounds=5000$toolongsaltstring", "This is just a test",
++    "$6$rounds=5000$toolongsaltstrin$lQ8jolhgVRVhY4b5pZKaysCLi0QBxGoNeKQ"
++    "zQ3glMhwllF7oGDZxUhx1yxdYcz/e1JSbq3y6JMxxl8audkUEm0" },
++  { "$6$rounds=1400$anotherlongsaltstring",
++    "a very much longer text to encrypt.  This one even stretches over more"
++    "than one line.",
++    "$6$rounds=1400$anotherlongsalts$POfYwTEok97VWcjxIiSOjiykti.o/pQs.wP"
++    "vMxQ6Fm7I6IoYN3CmLs66x9t0oSwbtEW7o7UmJEiDwGqd8p4ur1" },
++  { "$6$rounds=77777$short",
++    "we have a short salt string but not a short password",
++    "$6$rounds=77777$short$WuQyW2YR.hBNpjjRhpYD/ifIw05xdfeEyQoMxIXbkvr0g"
++    "ge1a1x3yRULJ5CCaUeOxFmtlcGZelFl5CxtgfiAc0" },
++  { "$6$rounds=123456$asaltof16chars..", "a short string",
++    "$6$rounds=123456$asaltof16chars..$BtCwjqMJGx5hrJhZywWvt0RLE8uZ4oPwc"
++    "elCjmw2kSYu.Ec6ycULevoBK25fs2xXgMNrCzIMVcgEJAstJeonj1" },
++  { "$6$rounds=10$roundstoolow", "the minimum number is still observed",
++    "$6$rounds=1000$roundstoolow$kUMsbe306n21p9R.FRkW3IGn.S9NPN0x50YhH1x"
++    "hLsPuWGsUSklZt58jaTfF4ZEQpyUNGc0dqbpBYYBaHHrsX." },
++};
++#define ntests2 (sizeof (tests2) / sizeof (tests2[0]))
++
++
++int
++sha512_test (void)
++{
++  struct sha512_ctx ctx;
++  char sum[64];
++  int result = 0;
++  int cnt, i;
++
++  for (cnt = 0; cnt < (int) ntests; ++cnt)
++    {
++      sha512_init_ctx (&ctx);
++      sha512_process_bytes (tests[cnt].input, strlen (tests[cnt].input), &ctx);
++      sha512_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 64) != 0)
++      {
++        printf ("test %d run %d failed\n", cnt, 1);
++        result = 1;
++      }
++
++      sha512_init_ctx (&ctx);
++      for (i = 0; tests[cnt].input[i] != '\0'; ++i)
++      sha512_process_bytes (&tests[cnt].input[i], 1, &ctx);
++      sha512_finish_ctx (&ctx, sum);
++      if (memcmp (tests[cnt].result, sum, 64) != 0)
++      {
++        printf ("test %d run %d failed\n", cnt, 2);
++        result = 1;
++      }
++    }
++
++  /* Test vector from FIPS 180-2: appendix C.3.  */
++  char buf[1000];
++  memset (buf, 'a', sizeof (buf));
++  sha512_init_ctx (&ctx);
++  for (i = 0; i < 1000; ++i)
++    sha512_process_bytes (buf, sizeof (buf), &ctx);
++  sha512_finish_ctx (&ctx, sum);
++  static const char expected[64] =
++    "\xe7\x18\x48\x3d\x0c\xe7\x69\x64\x4e\x2e\x42\xc7\xbc\x15\xb4\x63"
++    "\x8e\x1f\x98\xb1\x3b\x20\x44\x28\x56\x32\xa8\x03\xaf\xa9\x73\xeb"
++    "\xde\x0f\xf2\x44\x87\x7e\xa6\x0a\x4c\xb0\x43\x2c\xe5\x77\xc3\x1b"
++    "\xeb\x00\x9c\x5c\x2c\x49\xaa\x2e\x4e\xad\xb2\x17\xad\x8c\xc0\x9b";
++  if (memcmp (expected, sum, 64) != 0)
++    {
++      printf ("test %d failed\n", cnt);
++      result = 1;
++    }
++
++  for (cnt = 0; cnt < ntests2; ++cnt)
++    {
++      char *cp = sha512_crypt (tests2[cnt].input, tests2[cnt].salt);
++
++      if (strcmp (cp, tests2[cnt].expected) != 0)
++      {
++        printf ("test %d: expected \"%s\", got \"%s\"\n",
++                cnt, tests2[cnt].expected, cp);
++        result = 1;
++      }
++    }
++
++  if (result == 0)
++    printf ("all tests OK\n");
++
++  return result;
++}
++#endif
+diff --git a/stage2/shared.h b/stage2/shared.h
+index 77eef11..b56b44b 100644
+--- a/stage2/shared.h
++++ b/stage2/shared.h
+@@ -35,9 +35,10 @@
+ #endif
+ /* Maybe redirect memory requests through grub_scratch_mem. */
+-#ifdef GRUB_UTIL
+-extern char *grub_scratch_mem;
+-# define RAW_ADDR(x) ((x) + (int) grub_scratch_mem)
++#if defined(GRUB_UTIL) || defined(PLATFORM_EFI)
++#define GRUB_SCRATCH_MEM_SIZE   0x400000
++extern void *grub_scratch_mem;
++# define RAW_ADDR(x) ((x) + (unsigned long) grub_scratch_mem)
+ # define RAW_SEG(x) (RAW_ADDR ((x) << 4) >> 4)
+ #else
+ # define RAW_ADDR(x) (x)
+@@ -56,15 +57,15 @@ extern char *grub_scratch_mem;
+ #define NEW_HEAPSIZE 1500
+ /* 512-byte scratch area */
+-#define SCRATCHADDR  RAW_ADDR (0x77e00)
+-#define SCRATCHSEG   RAW_SEG (0x77e0)
++#define SCRATCHADDR  RAW_ADDR (0x77000)
++#define SCRATCHSEG   RAW_SEG (0x7700)
+ /*
+- *  This is the location of the raw device buffer.  It is 31.5K
++ *  This is the location of the raw device buffer.  It is 28K
+  *  in size.
+  */
+-#define BUFFERLEN   0x7e00
++#define BUFFERLEN   0x7000
+ #define BUFFERADDR  RAW_ADDR (0x70000)
+ #define BUFFERSEG   RAW_SEG (0x7000)
+@@ -79,6 +80,8 @@ extern char *grub_scratch_mem;
+ #define BIOSDISK_FLAG_LBA_EXTENSION   0x1
+ #define BIOSDISK_FLAG_CDROM           0x2
++#define MAX_HD_NUM    128
++
+ /*
+  *  This is the filesystem (not raw device) buffer.
+  *  It is 32K in size, do not overrun!
+@@ -127,7 +130,7 @@ extern char *grub_scratch_mem;
+ #define MENU_BUFLEN           (0x8000 + PASSWORD_BUF - MENU_BUF)
+ /* The size of the drive map.  */
+-#define DRIVE_MAP_SIZE                8
++#define DRIVE_MAP_SIZE                128
+ /* The size of the key map.  */
+ #define KEY_MAP_SIZE          128
+@@ -160,16 +163,18 @@ extern char *grub_scratch_mem;
+ #define LINUX_VID_MODE_ASK            0xFFFD
+ #define LINUX_CL_OFFSET                       0x9000
+-#define LINUX_CL_END_OFFSET           0x90FF
+-#define LINUX_SETUP_MOVE_SIZE         0x9100
++#define LINUX_CL_END_OFFSET           0x97FF
++#define LINUX_SETUP_MOVE_SIZE         0x9800
+ #define LINUX_CL_MAGIC                        0xA33F
+ /*
+  *  General disk stuff
+  */
++#ifndef PLATFORM_EFI
+ #define SECTOR_SIZE           0x200
+ #define SECTOR_BITS           9
++#endif /* PLATFORM_EFI */
+ #define BIOS_FLAG_FIXED_DISK  0x80
+ #define BOOTSEC_LOCATION              RAW_ADDR (0x7C00)
+@@ -200,6 +205,8 @@ extern char *grub_scratch_mem;
+ #define STAGE2_FORCE_LBA      0x11
+ #define STAGE2_VER_STR_OFFS   0x12
++#define STAGE2_ONCEONLY_ENTRY   0x10000
++
+ /* Stage 2 identifiers */
+ #define STAGE2_ID_STAGE2              0
+ #define STAGE2_ID_FFS_STAGE1_5                1
+@@ -360,7 +367,7 @@ extern char *grub_scratch_mem;
+ #define memcpy grub_memmove   /* we don't need a separate memcpy */
+ #define memset grub_memset
+ #define isspace grub_isspace
+-#define printf grub_printf
++#define printf(format...) grub_printf(format)
+ #define sprintf grub_sprintf
+ #undef putchar
+ #define putchar grub_putchar
+@@ -371,14 +378,24 @@ extern char *grub_scratch_mem;
+ #define tolower grub_tolower
+ #define strlen grub_strlen
+ #define strcpy grub_strcpy
++#define stpncpy grub_stpncpy
++#define strspn grub_strspn
++#define strcspn grub_strcspn
++#define strtok_r grub_strtok_r
++#define strchr grub_strchr
++#define strrchr grub_strrchr
++#define strnchr grub_strnchr
++#define strncpy grub_strncpy
++#define strncasecmp grub_strncasecmp
+ #endif /* WITHOUT_LIBC_STUBS */
+-
+ #ifndef ASM_FILE
+ /*
+  *  Below this should be ONLY defines and other constructs for C code.
+  */
++#include <stdarg.h>
++
+ /* multiboot stuff */
+ #include "mb_header.h"
+@@ -400,30 +417,33 @@ struct linux_kernel_header
+   unsigned short root_dev;            /* Default root device number */
+   unsigned short boot_flag;           /* 0xAA55 magic number */
+   unsigned short jump;                        /* Jump instruction */
+-  unsigned long header;                       /* Magic signature "HdrS" */
++  unsigned int header;                        /* Magic signature "HdrS" */
+   unsigned short version;             /* Boot protocol version supported */
+-  unsigned long realmode_swtch;               /* Boot loader hook */
+-  unsigned long start_sys;            /* Points to kernel version string */
++  unsigned int realmode_swtch;                /* Boot loader hook */
++  unsigned int start_sys;             /* Points to kernel version string */
+   unsigned char type_of_loader;               /* Boot loader identifier */
+   unsigned char loadflags;            /* Boot protocol option flags */
+   unsigned short setup_move_size;     /* Move to high memory size */
+-  unsigned long code32_start;         /* Boot loader hook */
+-  unsigned long ramdisk_image;                /* initrd load address */
+-  unsigned long ramdisk_size;         /* initrd size */
+-  unsigned long bootsect_kludge;      /* obsolete */
++  unsigned int code32_start;          /* Boot loader hook */
++  unsigned int ramdisk_image;         /* initrd load address */
++  unsigned int ramdisk_size;          /* initrd size */
++  unsigned int bootsect_kludge;               /* obsolete */
+   unsigned short heap_end_ptr;                /* Free memory after setup end */
+   unsigned short pad1;                        /* Unused */
+   char *cmd_line_ptr;                 /* Points to the kernel command line */
+-  unsigned long initrd_addr_max;      /* The highest address of initrd */
++  unsigned int initrd_addr_max;               /* The highest address of initrd */
++  unsigned int kernel_alignment;      /* Physical addr alignment required for kernel */
++  unsigned int relocatable_kernel;    /* Whether kernel is relocatable or not */
++  unsigned int cmdline_size;          /* Maximum size of the kernel command line */
+ } __attribute__ ((packed));
+ /* Memory map address range descriptor used by GET_MMAP_ENTRY. */
+ struct mmar_desc
+ {
+-  unsigned long desc_len;     /* Size of this descriptor. */
++  unsigned int desc_len;      /* Size of this descriptor. */
+   unsigned long long addr;    /* Base address. */
+   unsigned long long length;  /* Length in bytes. */
+-  unsigned long type;         /* Type of address range. */
++  unsigned int type;          /* Type of address range. */
+ } __attribute__ ((packed));
+ /* VBE controller information.  */
+@@ -600,6 +620,7 @@ typedef enum
+ {
+   PASSWORD_PLAIN,
+   PASSWORD_MD5,
++  PASSWORD_ENCRYPTED,
+   PASSWORD_UNSUPPORTED
+ }
+ password_t;
+@@ -627,8 +648,16 @@ extern void (*disk_read_func) (int, int, int);
+ #ifndef STAGE1_5
+ /* The flag for debug mode.  */
+ extern int debug;
++extern int debug_graphics;
+ #endif /* STAGE1_5 */
++/* Verbose mode flag. */
++extern int grub_verbose;
++#define verbose_printf(format...) \
++  do { if (grub_verbose) printf(format); } while (0)
++#define grub_verbose_printf(format...) \
++  do { if (grub_verbose) grub_printf(format); } while (0)
++
+ extern unsigned long current_drive;
+ extern unsigned long current_partition;
+@@ -666,6 +695,8 @@ extern struct geometry buf_geom;
+ extern int filepos;
+ extern int filemax;
++extern int silent_grub;
++
+ /*
+  *  Common BIOS/boot data.
+  */
+@@ -804,11 +835,17 @@ int getkey (void);
+    available. */
+ int checkkey (void);
++/* Return keyboard modifier status. */
++int
++keystatus (void);
++
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+ int biosdisk (int subfunc, int drive, struct geometry *geometry,
+             int sector, int nsec, int segment);
+ void stop_floppy (void);
++int get_sector_size (int drive);
++int get_sector_bits (int drive);
+ /* Command-line interface functions. */
+ #ifndef STAGE1_5
+@@ -860,17 +897,25 @@ void init_builtins (void);
+ void init_config (void);
+ char *skip_to (int after_equal, char *cmdline);
+ struct builtin *find_command (char *command);
+-void print_cmdline_message (int forever);
+ void enter_cmdline (char *heap, int forever);
+ int run_script (char *script, char *heap);
++
++/* the flags for the cmdline message */
++#define CMDLINE_FOREVER_MODE 0x0
++#define CMDLINE_NORMAL_MODE 0x1
++#define CMDLINE_EDIT_MODE 0x2
++
++void print_cmdline_message (int type);
+ #endif
+ /* C library replacement functions with identical semantics. */
+-void grub_printf (const char *format,...);
++int grub_vsprintf (char *str, const char *fmt, va_list args);
++void grub_printf (char *format,...);
+ int grub_sprintf (char *buffer, const char *format, ...);
+ int grub_tolower (int c);
+ int grub_isspace (int c);
+ int grub_strncat (char *s1, const char *s2, int n);
++void grub_memcpy(void *dest, const void *src, int len);
+ void *grub_memmove (void *to, const void *from, int len);
+ void *grub_memset (void *start, int c, int len);
+ int grub_strncat (char *s1, const char *s2, int n);
+@@ -879,9 +924,19 @@ int grub_memcmp (const char *s1, const char *s2, int n);
+ int grub_strcmp (const char *s1, const char *s2);
+ int grub_strlen (const char *str);
+ char *grub_strcpy (char *dest, const char *src);
++char *grub_stpncpy (char *dest, const char *src, int n);
++int grub_strspn(const char *s, const char *accept);
++int grub_strcspn(const char *s, const char *reject);
++char *grub_strtok_r(char *s, const char *delim, char **ptrptr);
++char *grub_strchr (const char *s, int c);
++char *grub_strrchr (const char *s, int c);
++char *grub_strnchr (const char *s, int c);
++int grub_strnlen (const char *s, int n);
++char *grub_strncpy (char *new, const char *s, int n);
++int grub_strncasecmp(const char *s0, const char *s1, int n);
+ #ifndef GRUB_UTIL
+-typedef unsigned long grub_jmp_buf[6];
++typedef unsigned long grub_jmp_buf[8];
+ #else
+ /* In the grub shell, use the libc jmp_buf instead.  */
+ # include <setjmp.h>
+@@ -904,10 +959,11 @@ extern grub_jmp_buf restart_cmdline_env;
+ /* misc */
+ void init_page (void);
+ void print_error (void);
+-char *convert_to_ascii (char *buf, int c, ...);
++char *convert_to_ascii (char *buf, int c, unsigned int num);
+ int get_cmdline (char *prompt, char *cmdline, int maxlen,
+                int echo_char, int history);
+ int substring (const char *s1, const char *s2);
++int subcasestring (const char *s1, const char *s2);
+ int nul_terminate (char *str);
+ int get_based_digit (int c, int base);
+ int safe_parse_maxint (char **str_ptr, int *myint_ptr);
+@@ -934,7 +990,9 @@ int next_partition (unsigned long drive, unsigned long dest,
+                   unsigned long *partition, int *type,
+                   unsigned long *start, unsigned long *len,
+                   unsigned long *offset, int *entry,
+-                  unsigned long *ext_offset, char *buf);
++                   unsigned long *ext_offset,
++                   unsigned long *gpt_offset, int *gpt_count,
++                   int *gpt_size, char *buf);
+ /* Sets device to the one represented by the SAVED_* parameters. */
+ int make_saved_active (void);
+@@ -962,6 +1020,8 @@ int dir (char *dirname);
+ int set_bootdev (int hdbias);
++char *get_fsys_type (void);
++
+ /* Display statistics on the current active device. */
+ void print_fsys_type (void);
+@@ -987,10 +1047,22 @@ int load_module (char *module, char *arg);
+ int load_initrd (char *initrd);
+ int check_password(char *entered, char* expected, password_t type);
++
++char *sha256_crypt (const char *key, const char *salt);
++char *sha512_crypt (const char *key, const char *salt);
+ #endif
+ void init_bios_info (void);
++#ifdef PLATFORM_EFI
++void grub_set_config_file (char *path_name);
++int grub_save_saved_default (int new_default);
++extern int check_device (const char *device);
++extern void assign_device_name (int drive, const char *device);
++#endif
++int grub_load_linux (char *kernel, char *arg);
++int grub_load_initrd (char *initrd);
++int grub_chainloader (char *filename);
+ #endif /* ASM_FILE */
+ #endif /* ! GRUB_SHARED_HEADER */
+diff --git a/stage2/smp-imps.h b/stage2/smp-imps.h
+index c0fdce3..bae9b77 100644
+--- a/stage2/smp-imps.h
++++ b/stage2/smp-imps.h
+@@ -196,7 +196,6 @@ struct imps_interrupt
+ int imps_probe (void);
+-
+ /*
+  *  Defines that use variables
+  */
+diff --git a/stage2/stage1_5.c b/stage2/stage1_5.c
+index 5c45d4c..c2d9632 100644
+--- a/stage2/stage1_5.c
++++ b/stage2/stage1_5.c
+@@ -30,7 +30,8 @@ disk_read_savesect_func (int sector, int offset, int length)
+ void
+ cmain (void)
+ {
+-  grub_printf ("\n\nGRUB loading, please wait...\n");
++  if (0)
++    grub_printf ("\n\nGRUB loading, please wait...\n");
+   /*
+    *  Here load the true second-stage boot-loader.
+diff --git a/stage2/stage2.c b/stage2/stage2.c
+index 4dbf6f5..cca4332 100644
+--- a/stage2/stage2.c
++++ b/stage2/stage2.c
+@@ -22,6 +22,8 @@
+ grub_jmp_buf restart_env;
++int silent_grub = 0;
++
+ #if defined(PRESET_MENU_STRING) || defined(SUPPORT_DISKLESS)
+ # if defined(PRESET_MENU_STRING)
+@@ -233,6 +235,10 @@ run_menu (char *menu_entries, char *config_entries, int num_entries,
+ {
+   int c, time1, time2 = -1, first_entry = 0;
+   char *cur_entry = 0;
++  struct term_entry *prev_term = NULL;
++
++  if (grub_verbose)
++    cls();
+   /*
+    *  Main loop for menu UI.
+@@ -254,18 +260,33 @@ restart:
+      interface. */
+   if (grub_timeout < 0)
+     show_menu = 1;
+-  
++
+   /* If SHOW_MENU is false, don't display the menu until ESC is pressed.  */
+   if (! show_menu)
+     {
++      /* Don't show the "Booting in blah seconds message" if the timeout is 0 */
++      int print_message = grub_timeout != 0;
++
+       /* Get current time.  */
+       while ((time1 = getrtsecs ()) == 0xFF)
+       ;
++      if (print_message)
++      grub_printf("\rPress any key to enter the menu\n\n\n");
++
+       while (1)
+       {
+-        /* Check if ESC is pressed.  */
+-        if (checkkey () != -1 && ASCII_CHAR (getkey ()) == '\e')
++        /* Check if any key is pressed */
++        if (checkkey () != -1)
++          {
++            grub_timeout = -1;
++            show_menu = 1;
++            getkey ();
++            break;
++          }
++
++        /* See if a modifier key is held down.  */
++        if (keystatus () != 0)
+           {
+             grub_timeout = -1;
+             show_menu = 1;
+@@ -287,8 +308,10 @@ restart:
+             grub_timeout--;
+             
+             /* Print a message.  */
+-            grub_printf ("\rPress `ESC' to enter the menu... %d   ",
+-                         grub_timeout);
++            if (print_message)
++              grub_printf ("\rBooting %s in %d seconds...",
++                           get_entry(menu_entries, first_entry + entryno, 0),
++                           grub_timeout);
+           }
+       }
+     }
+@@ -319,7 +342,8 @@ restart:
+         if (config_entries)
+           printf ("\
+       Press enter to boot the selected OS, \'e\' to edit the\n\
+-      commands before booting, or \'c\' for a command-line.");
++      commands before booting, \'a\' to modify the kernel arguments\n\
++      before booting, or \'c\' for a command-line.");
+         else
+           printf ("\
+       Press \'b\' to boot, \'e\' to edit the selected command in the\n\
+@@ -514,7 +538,7 @@ restart:
+                 if (c == 'O')
+                   {
+                     grub_memmove (cur_entry + 2, cur_entry,
+-                                  ((int) heap) - ((int) cur_entry));
++                                  heap - cur_entry);
+                     cur_entry[0] = ' ';
+                     cur_entry[1] = 0;
+@@ -530,8 +554,8 @@ restart:
+                                           0);
+                     grub_memmove (cur_entry, ptr,
+-                                  ((int) heap) - ((int) ptr));
+-                    heap -= (((int) ptr) - ((int) cur_entry));
++                                  heap - ptr);
++                    heap -= ptr - cur_entry;
+                     num_entries--;
+@@ -655,7 +679,7 @@ restart:
+                 else
+                   {
+                     cls ();
+-                    print_cmdline_message (0);
++                    print_cmdline_message (CMDLINE_EDIT_MODE);
+                     new_heap = heap + NEW_HEAPSIZE + 1;
+@@ -681,7 +705,7 @@ restart:
+                         /* align rest of commands properly */
+                         grub_memmove (cur_entry + j, cur_entry + i,
+-                                      (int) heap - ((int) cur_entry + i));
++                                      (unsigned long) heap - ((unsigned long) cur_entry + i));
+                         /* copy command to correct area */
+                         grub_memmove (cur_entry, new_heap, j);
+@@ -697,6 +721,98 @@ restart:
+                 enter_cmdline (heap, 0);
+                 goto restart;
+               }
++            if (config_entries && c == 'a')
++              {
++                int new_num_entries = 0, i = 0, j;
++                int needs_padding, amount;
++                char *new_heap;
++                char * entries;
++                char * entry_copy;
++                char * append_line;
++                char * start;
++
++                entry_copy = new_heap = heap;
++                cur_entry = get_entry (config_entries, first_entry + entryno,
++                                       1);
++                
++                do
++                  {
++                    while ((*(new_heap++) = cur_entry[i++]) != 0);
++                    new_num_entries++;
++                  }
++                while (config_entries && cur_entry[i]);
++
++                /* this only needs to be done if config_entries is non-NULL,
++                   but it doesn't hurt to do it always */
++                *(new_heap++) = 0;
++
++                new_heap = heap + NEW_HEAPSIZE + 1;
++
++                entries = entry_copy;
++                while (*entries) 
++                  {
++                    if ((strstr(entries, "kernel") == entries) &&
++                        isspace(entries[6])) 
++                        break;
++
++                    while (*entries) entries++;
++                    entries++;
++                  }
++
++                if (!*entries)
++                    goto restart;
++
++                start = entries + 6;
++
++                /* skip the white space */
++                while (*start && isspace(*start)) start++;
++                /* skip the kernel name */
++                while (*start && !isspace(*start)) start++;
++
++                /* skip the white space */
++                needs_padding = (!*start || !isspace(*start));
++                while (*start && isspace(*start)) start++;
++
++                append_line = new_heap;
++                grub_strcpy(append_line, start);
++
++                cls();
++                print_cmdline_message (CMDLINE_EDIT_MODE);
++
++                if (get_cmdline(PACKAGE " append> ", 
++                                  append_line, NEW_HEAPSIZE + 1, 
++                                  0, 1))
++                    goto restart;
++
++                /* have new args; append_line points to the
++                   new args and start points to the old
++                   args */
++
++                i = grub_strlen(start);
++                j = grub_strlen(append_line);
++
++                if (i > (j + needs_padding))
++                    amount = i;
++                else
++                    amount = j + needs_padding;
++
++                /* align rest of commands properly */
++                memmove (start + j + needs_padding, start + i,
++                     ((unsigned long) append_line) - ((unsigned long) start) - (amount));
++
++                if (needs_padding)
++                    *start = ' ';
++
++                /* copy command to correct area */
++                memmove (start + needs_padding, append_line, j);
++
++                /* set up this entry to boot */
++                config_entries = NULL;
++                cur_entry = entry_copy;
++                heap = new_heap;
++
++                break;
++              }
+ #ifdef GRUB_UTIL
+             if (c == 'q')
+               {
+@@ -712,16 +828,31 @@ restart:
+   
+  boot_entry:
+   
+-  cls ();
+-  setcursor (1);
++  if (grub_verbose || show_menu)
++    {
++      cls ();
++      setcursor (1);
++    }
++  /* if our terminal needed initialization, we should shut it down
++   * before booting the kernel, but we want to save what it was so
++   * we can come back if needed */
++  prev_term = current_term;
++  if (current_term->shutdown) 
++    {
++      (*current_term->shutdown)();
++      current_term = term_table; /* assumption: console is first */
++    }
++
++  if (silent_grub)
++    setcursor(0);
+   
+   while (1)
+     {
+       if (config_entries)
+-      printf ("  Booting \'%s\'\n\n",
++      verbose_printf ("  Booting \'%s\'\n\n",
+               get_entry (menu_entries, first_entry + entryno, 0));
+       else
+-      printf ("  Booting command-list\n\n");
++      verbose_printf ("  Booting command-list\n\n");
+       if (! cur_entry)
+       cur_entry = get_entry (config_entries, first_entry + entryno, 1);
+@@ -748,6 +879,13 @@ restart:
+       break;
+     }
++  /* if we get back here, we should go back to what our term was before */
++  current_term = prev_term;
++  if (current_term->startup)
++      /* if our terminal fails to initialize, fall back to console since
++       * it should always work */
++      if ((*current_term->startup)() == 0)
++          current_term = term_table; /* we know that console is first */
+   show_menu = 1;
+   goto restart;
+ }
+@@ -867,38 +1005,8 @@ cmain (void)
+       if (use_config_file)
+ #endif /* GRUB_UTIL */
+       {
+-        char *default_file = (char *) DEFAULT_FILE_BUF;
+         int i;
+-        
+-        /* Get a saved default entry if possible.  */
+-        saved_entryno = 0;
+-        *default_file = 0;
+-        grub_strncat (default_file, config_file, DEFAULT_FILE_BUFLEN);
+-        for (i = grub_strlen(default_file); i >= 0; i--)
+-          if (default_file[i] == '/')
+-            {
+-              i++;
+-              break;
+-            }
+-        default_file[i] = 0;
+-        grub_strncat (default_file + i, "default", DEFAULT_FILE_BUFLEN - i);
+-        if (grub_open (default_file))
+-          {
+-            char buf[10]; /* This is good enough.  */
+-            char *p = buf;
+-            int len;
+-            
+-            len = grub_read (buf, sizeof (buf));
+-            if (len > 0)
+-              {
+-                buf[sizeof (buf) - 1] = 0;
+-                safe_parse_maxint (&p, &saved_entryno);
+-              }
+-            grub_close ();
+-          }
+-        errnum = ERR_NONE;
+-        
+         do
+           {
+             /* STATE 0:  Before any title command.
+@@ -1050,11 +1158,16 @@ cmain (void)
+         while (is_preset);
+       }
++      /* go ahead and make sure the terminal is setup */
++      if (current_term->startup)
++        (*current_term->startup)();
++
+       if (! num_entries)
+       {
+         /* If no acceptable config file, goto command-line, starting
+            heap from where the config entries would have been stored
+            if there were any.  */
++        grub_verbose = 1;
+         enter_cmdline (config_entries, 1);
+       }
+       else
+diff --git a/stage2/start.S b/stage2/start.S
+index 9a7d504..7a6652f 100644
+--- a/stage2/start.S
++++ b/stage2/start.S
+@@ -39,6 +39,9 @@
+       
+       /* Print message string */
+ #define MSG(x)        movw $ABS(x), %si; call message
++      
++      /* Print verbose message string */
++#define VMSG(x)
+       .file   "start.S"
+@@ -67,9 +70,9 @@ _start:
+       /* print a notification message on the screen */
+       pushw   %si
+-      MSG(notification_string)
++      VMSG(notification_string)
+       popw    %si
+-      
++
+       /* this sets up for the first run through "bootloop" */
+       movw    $ABS(firstlist - BOOTSEC_LISTSIZE), %di
+@@ -291,9 +294,9 @@ copy_buffer:
+       movsb           /* this runs the actual copy */
+       /* restore addressing regs and print a dot with correct DS 
+-         (MSG modifies SI, which is saved, and unused AX and BX) */
++         (VMSG modifies SI, which is saved, and unused AX and BX) */
+       popw    %ds
+-      MSG(notification_step)
++      VMSG(notification_step)
+       popa
+       /* check if finished with this dataset */
+@@ -310,7 +313,7 @@ copy_buffer:
+ bootit:
+       /* print a newline */
+-      MSG(notification_done)
++      VMSG(notification_done)
+       popw    %dx     /* this makes sure %dl is our "boot" drive */
+ #ifdef STAGE1_5
+       ljmp    $0, $0x2200
+diff --git a/stage2/term.h b/stage2/term.h
+index 8261c7c..803de58 100644
+--- a/stage2/term.h
++++ b/stage2/term.h
+@@ -54,18 +54,28 @@ typedef enum
+ /* Set when the terminal needs to be initialized.  */
+ #define TERM_NEED_INIT                (1 << 16)
++/* Bitmasks for modifier keys returned by term->keystatus(). */
++#define TERM_STATUS_ALT               (1 << 3)
++#define TERM_STATUS_CTRL      (1 << 2)
++#define TERM_STATUS_LEFT_SHIFT        (1 << 1)
++#define TERM_STATUS_RIGHT_SHIFT       (1 << 0)
++
+ struct term_entry
+ {
+   /* The name of a terminal.  */
+   const char *name;
+   /* The feature flags defined above.  */
+   unsigned long flags;
++  /* Default for maximum number of lines if not specified */
++  unsigned short max_lines;
+   /* Put a character.  */
+   void (*putchar) (int c);
+   /* Check if any input character is available.  */
+   int (*checkkey) (void);
+   /* Get a character.  */
+   int (*getkey) (void);
++  /* Get keyboard modifier status.  */
++  int (*keystatus) (void);
+   /* Get the cursor position. The return value is ((X << 8) | Y).  */
+   int (*getxy) (void);
+   /* Go to the position (X, Y).  */
+@@ -79,6 +89,11 @@ struct term_entry
+   void (*setcolor) (int normal_color, int highlight_color);
+   /* Turn on/off the cursor.  */
+   int (*setcursor) (int on);
++
++  /* function to start a terminal */
++  int (*startup) (void);
++  /* function to use to shutdown a terminal */
++  void (*shutdown) (void);
+ };
+ /* This lists up available terminals.  */
+@@ -96,6 +111,7 @@ void console_putchar (int c);
+ #ifndef STAGE1_5
+ int console_checkkey (void);
+ int console_getkey (void);
++int console_keystatus (void);
+ int console_getxy (void);
+ void console_gotoxy (int x, int y);
+ void console_cls (void);
+@@ -124,4 +140,23 @@ void hercules_setcolor (int normal_color, int highlight_color);
+ int hercules_setcursor (int on);
+ #endif
++#ifdef SUPPORT_GRAPHICS
++extern int foreground, background, border, graphics_inited;
++
++void graphics_set_splash(char *splashfile);
++int set_videomode (int mode);
++void graphics_putchar (int c);
++int graphics_getxy(void);
++void graphics_gotoxy(int x, int y);
++void graphics_cls(void);
++void graphics_setcolorstate (color_state state);
++void graphics_setcolor (int normal_color, int highlight_color);
++int graphics_setcursor (int on);
++int graphics_init(void);
++void graphics_end(void);
++
++int hex(int v);
++void graphics_set_palette(int idx, int red, int green, int blue);
++#endif /* SUPPORT_GRAPHICS */
++
+ #endif /* ! GRUB_TERM_HEADER */
+diff --git a/stage2/tparm.c b/stage2/tparm.c
+index ff78d53..408b284 100644
+--- a/stage2/tparm.c
++++ b/stage2/tparm.c
+@@ -320,7 +320,7 @@ parse_format(const char *s, char *format, int *len)
+ #define isLOWER(c) ((c) >= 'a' && (c) <= 'z')
+ static inline char *
+-tparam_internal(const char *string, int *dataptr)
++tparam_internal(const char *string, va_list args)
+ {
+ #define NUM_VARS 26
+     char *p_is_s[9];
+@@ -461,9 +461,9 @@ tparam_internal(const char *string, int *dataptr)
+        * a char* and an int may not be the same size on the stack.
+        */
+       if (p_is_s[i] != 0) {
+-        p_is_s[i] = (char *)(*(dataptr++));
++        p_is_s[i] = va_arg (args, char *);
+       } else {
+-        param[i] = (int)(*(dataptr++));
++        param[i] = va_arg (args, int);
+       }
+     }
+@@ -716,11 +716,11 @@ char *
+ grub_tparm(const char *string,...)
+ {
+     char *result;
+-    int *dataptr = (int *) &string;
++    va_list ap;
+-    dataptr++;
+-
+-    result = tparam_internal(string, dataptr);
++    va_start (ap, string);
++    result = tparam_internal(string, ap);
++    va_end(ap);
+     return result;
+ }
+diff --git a/test b/test
+new file mode 100644
+index 0000000..b182379
+--- /dev/null
++++ b/test
+@@ -0,0 +1 @@
++fo of fo
+diff --git a/util/.gitignore b/util/.gitignore
+new file mode 100644
+index 0000000..6687356
+--- /dev/null
++++ b/util/.gitignore
+@@ -0,0 +1,7 @@
++Makefile.in
++Makefile
++.deps
++grub-image
++grub-install
++grub-md5-crypt
++grub-terminfo
+diff --git a/util/Makefile.am b/util/Makefile.am
+index 2e04711..fa545b1 100644
+--- a/util/Makefile.am
++++ b/util/Makefile.am
+@@ -1,6 +1,7 @@
++if !PLATFORM_EFI
++
+ bin_PROGRAMS = mbchk
+-sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
+-      grub-set-default
++sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo grub-crypt
+ noinst_SCRIPTS = grub-image mkbimage
+ EXTRA_DIST = mkbimage
+@@ -10,3 +11,9 @@ AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs
+ mbchk_SOURCES = mbchk.c
+ mbchk_LDADD = ../lib/libcommon.a
++
++else
++
++sbin_SCRIPTS = grub-md5-crypt grub-terminfo grub-crypt
++
++endif
+diff --git a/util/Makefile.in b/util/Makefile.in
+deleted file mode 100644
+index e700cf7..0000000
+--- a/util/Makefile.in
++++ /dev/null
+@@ -1,478 +0,0 @@
+-# Makefile.in generated by automake 1.9.4 from Makefile.am.
+-# @configure_input@
+-
+-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+-# 2003, 2004  Free Software Foundation, Inc.
+-# This Makefile.in is free software; the Free Software Foundation
+-# gives unlimited permission to copy and/or distribute it,
+-# with or without modifications, as long as this notice is preserved.
+-
+-# This program is distributed in the hope that it will be useful,
+-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+-# PARTICULAR PURPOSE.
+-
+-@SET_MAKE@
+-
+-
+-SOURCES = $(mbchk_SOURCES)
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-VPATH = @srcdir@
+-pkgdatadir = $(datadir)/@PACKAGE@
+-pkglibdir = $(libdir)/@PACKAGE@
+-pkgincludedir = $(includedir)/@PACKAGE@
+-top_builddir = ..
+-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+-INSTALL = @INSTALL@
+-install_sh_DATA = $(install_sh) -c -m 644
+-install_sh_PROGRAM = $(install_sh) -c
+-install_sh_SCRIPT = $(install_sh) -c
+-INSTALL_HEADER = $(INSTALL_DATA)
+-transform = $(program_transform_name)
+-NORMAL_INSTALL = :
+-PRE_INSTALL = :
+-POST_INSTALL = :
+-NORMAL_UNINSTALL = :
+-PRE_UNINSTALL = :
+-POST_UNINSTALL = :
+-build_triplet = @build@
+-host_triplet = @host@
+-bin_PROGRAMS = mbchk$(EXEEXT)
+-subdir = util
+-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+-      $(srcdir)/grub-image.in $(srcdir)/grub-install.in \
+-      $(srcdir)/grub-md5-crypt.in $(srcdir)/grub-set-default.in \
+-      $(srcdir)/grub-terminfo.in
+-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+-am__aclocal_m4_deps = $(top_srcdir)/acinclude.m4 \
+-      $(top_srcdir)/configure.ac
+-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+-      $(ACLOCAL_M4)
+-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+-CONFIG_HEADER = $(top_builddir)/config.h
+-CONFIG_CLEAN_FILES = grub-image grub-install grub-md5-crypt \
+-      grub-terminfo grub-set-default
+-am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"
+-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
+-PROGRAMS = $(bin_PROGRAMS)
+-am_mbchk_OBJECTS = mbchk.$(OBJEXT)
+-mbchk_OBJECTS = $(am_mbchk_OBJECTS)
+-mbchk_DEPENDENCIES = ../lib/libcommon.a
+-sbinSCRIPT_INSTALL = $(INSTALL_SCRIPT)
+-SCRIPTS = $(noinst_SCRIPTS) $(sbin_SCRIPTS)
+-DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
+-depcomp = $(SHELL) $(top_srcdir)/depcomp
+-am__depfiles_maybe = depfiles
+-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+-      $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+-CCLD = $(CC)
+-LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+-SOURCES = $(mbchk_SOURCES)
+-DIST_SOURCES = $(mbchk_SOURCES)
+-ETAGS = etags
+-CTAGS = ctags
+-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+-ACLOCAL = @ACLOCAL@
+-AMDEP_FALSE = @AMDEP_FALSE@
+-AMDEP_TRUE = @AMDEP_TRUE@
+-AMTAR = @AMTAR@
+-AUTOCONF = @AUTOCONF@
+-AUTOHEADER = @AUTOHEADER@
+-AUTOMAKE = @AUTOMAKE@
+-AWK = @AWK@
+-BUILD_EXAMPLE_KERNEL_FALSE = @BUILD_EXAMPLE_KERNEL_FALSE@
+-BUILD_EXAMPLE_KERNEL_TRUE = @BUILD_EXAMPLE_KERNEL_TRUE@
+-CC = @CC@
+-CCAS = @CCAS@
+-CCASFLAGS = @CCASFLAGS@
+-CCDEPMODE = @CCDEPMODE@
+-CFLAGS = @CFLAGS@
+-CPP = @CPP@
+-CPPFLAGS = @CPPFLAGS@
+-CYGPATH_W = @CYGPATH_W@
+-DEFS = @DEFS@
+-DEPDIR = @DEPDIR@
+-DISKLESS_SUPPORT_FALSE = @DISKLESS_SUPPORT_FALSE@
+-DISKLESS_SUPPORT_TRUE = @DISKLESS_SUPPORT_TRUE@
+-ECHO_C = @ECHO_C@
+-ECHO_N = @ECHO_N@
+-ECHO_T = @ECHO_T@
+-EGREP = @EGREP@
+-EXEEXT = @EXEEXT@
+-FSYS_CFLAGS = @FSYS_CFLAGS@
+-GRUB_CFLAGS = @GRUB_CFLAGS@
+-GRUB_LIBS = @GRUB_LIBS@
+-HERCULES_SUPPORT_FALSE = @HERCULES_SUPPORT_FALSE@
+-HERCULES_SUPPORT_TRUE = @HERCULES_SUPPORT_TRUE@
+-INSTALL_DATA = @INSTALL_DATA@
+-INSTALL_PROGRAM = @INSTALL_PROGRAM@
+-INSTALL_SCRIPT = @INSTALL_SCRIPT@
+-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-LDFLAGS = @LDFLAGS@
+-LIBOBJS = @LIBOBJS@
+-LIBS = @LIBS@
+-LTLIBOBJS = @LTLIBOBJS@
+-MAINT = @MAINT@
+-MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+-MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+-MAKEINFO = @MAKEINFO@
+-NETBOOT_DRIVERS = @NETBOOT_DRIVERS@
+-NETBOOT_SUPPORT_FALSE = @NETBOOT_SUPPORT_FALSE@
+-NETBOOT_SUPPORT_TRUE = @NETBOOT_SUPPORT_TRUE@
+-NET_CFLAGS = @NET_CFLAGS@
+-NET_EXTRAFLAGS = @NET_EXTRAFLAGS@
+-OBJCOPY = @OBJCOPY@
+-OBJEXT = @OBJEXT@
+-PACKAGE = @PACKAGE@
+-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+-PACKAGE_NAME = @PACKAGE_NAME@
+-PACKAGE_STRING = @PACKAGE_STRING@
+-PACKAGE_TARNAME = @PACKAGE_TARNAME@
+-PACKAGE_VERSION = @PACKAGE_VERSION@
+-PATH_SEPARATOR = @PATH_SEPARATOR@
+-PERL = @PERL@
+-RANLIB = @RANLIB@
+-SERIAL_SPEED_SIMULATION_FALSE = @SERIAL_SPEED_SIMULATION_FALSE@
+-SERIAL_SPEED_SIMULATION_TRUE = @SERIAL_SPEED_SIMULATION_TRUE@
+-SERIAL_SUPPORT_FALSE = @SERIAL_SUPPORT_FALSE@
+-SERIAL_SUPPORT_TRUE = @SERIAL_SUPPORT_TRUE@
+-SET_MAKE = @SET_MAKE@
+-SHELL = @SHELL@
+-STAGE1_CFLAGS = @STAGE1_CFLAGS@
+-STAGE2_CFLAGS = @STAGE2_CFLAGS@
+-STRIP = @STRIP@
+-VERSION = @VERSION@
+-ac_ct_CC = @ac_ct_CC@
+-ac_ct_OBJCOPY = @ac_ct_OBJCOPY@
+-ac_ct_RANLIB = @ac_ct_RANLIB@
+-ac_ct_STRIP = @ac_ct_STRIP@
+-am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
+-am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
+-am__include = @am__include@
+-am__leading_dot = @am__leading_dot@
+-am__quote = @am__quote@
+-am__tar = @am__tar@
+-am__untar = @am__untar@
+-bindir = @bindir@
+-build = @build@
+-build_alias = @build_alias@
+-build_cpu = @build_cpu@
+-build_os = @build_os@
+-build_vendor = @build_vendor@
+-datadir = @datadir@
+-exec_prefix = @exec_prefix@
+-host = @host@
+-host_alias = @host_alias@
+-host_cpu = @host_cpu@
+-host_os = @host_os@
+-host_vendor = @host_vendor@
+-includedir = @includedir@
+-infodir = @infodir@
+-install_sh = @install_sh@
+-libdir = @libdir@
+-libexecdir = @libexecdir@
+-localstatedir = @localstatedir@
+-mandir = @mandir@
+-mkdir_p = @mkdir_p@
+-oldincludedir = @oldincludedir@
+-prefix = @prefix@
+-program_transform_name = @program_transform_name@
+-sbindir = @sbindir@
+-sharedstatedir = @sharedstatedir@
+-sysconfdir = @sysconfdir@
+-target_alias = @target_alias@
+-sbin_SCRIPTS = grub-install grub-md5-crypt grub-terminfo \
+-      grub-set-default
+-
+-noinst_SCRIPTS = grub-image mkbimage
+-EXTRA_DIST = mkbimage
+-
+-# XXX: Need to search for a header file in docs, because of multiboot.h.
+-AM_CFLAGS = -I$(top_srcdir)/lib -I$(top_srcdir)/docs
+-mbchk_SOURCES = mbchk.c
+-mbchk_LDADD = ../lib/libcommon.a
+-all: all-am
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .o .obj
+-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+-      @for dep in $?; do \
+-        case '$(am__configure_deps)' in \
+-          *$$dep*) \
+-            cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+-              && exit 0; \
+-            exit 1;; \
+-        esac; \
+-      done; \
+-      echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  util/Makefile'; \
+-      cd $(top_srcdir) && \
+-        $(AUTOMAKE) --gnu  util/Makefile
+-.PRECIOUS: Makefile
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+-      @case '$?' in \
+-        *config.status*) \
+-          cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+-        *) \
+-          echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+-          cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+-      esac;
+-
+-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-
+-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+-      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+-grub-image: $(top_builddir)/config.status $(srcdir)/grub-image.in
+-      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-grub-install: $(top_builddir)/config.status $(srcdir)/grub-install.in
+-      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-grub-md5-crypt: $(top_builddir)/config.status $(srcdir)/grub-md5-crypt.in
+-      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-grub-terminfo: $(top_builddir)/config.status $(srcdir)/grub-terminfo.in
+-      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-grub-set-default: $(top_builddir)/config.status $(srcdir)/grub-set-default.in
+-      cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+-install-binPROGRAMS: $(bin_PROGRAMS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
+-      @list='$(bin_PROGRAMS)'; for p in $$list; do \
+-        p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
+-        if test -f $$p \
+-        ; then \
+-          f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
+-         echo " $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
+-         $(INSTALL_PROGRAM_ENV) $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
+-        else :; fi; \
+-      done
+-
+-uninstall-binPROGRAMS:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(bin_PROGRAMS)'; for p in $$list; do \
+-        f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
+-        echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
+-        rm -f "$(DESTDIR)$(bindir)/$$f"; \
+-      done
+-
+-clean-binPROGRAMS:
+-      -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+-mbchk$(EXEEXT): $(mbchk_OBJECTS) $(mbchk_DEPENDENCIES) 
+-      @rm -f mbchk$(EXEEXT)
+-      $(LINK) $(mbchk_LDFLAGS) $(mbchk_OBJECTS) $(mbchk_LDADD) $(LIBS)
+-install-sbinSCRIPTS: $(sbin_SCRIPTS)
+-      @$(NORMAL_INSTALL)
+-      test -z "$(sbindir)" || $(mkdir_p) "$(DESTDIR)$(sbindir)"
+-      @list='$(sbin_SCRIPTS)'; for p in $$list; do \
+-        if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+-        if test -f $$d$$p; then \
+-          f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-          echo " $(sbinSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(sbindir)/$$f'"; \
+-          $(sbinSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(sbindir)/$$f"; \
+-        else :; fi; \
+-      done
+-
+-uninstall-sbinSCRIPTS:
+-      @$(NORMAL_UNINSTALL)
+-      @list='$(sbin_SCRIPTS)'; for p in $$list; do \
+-        f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
+-        echo " rm -f '$(DESTDIR)$(sbindir)/$$f'"; \
+-        rm -f "$(DESTDIR)$(sbindir)/$$f"; \
+-      done
+-
+-mostlyclean-compile:
+-      -rm -f *.$(OBJEXT)
+-
+-distclean-compile:
+-      -rm -f *.tab.c
+-
+-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbchk.Po@am__quote@
+-
+-.c.o:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
+-
+-.c.obj:
+-@am__fastdepCC_TRUE@  if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
+-@am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+-@AMDEP_TRUE@@am__fastdepCC_FALSE@     DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
+-uninstall-info-am:
+-
+-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+-      list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      mkid -fID $$unique
+-tags: TAGS
+-
+-TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+-        test -n "$$unique" || unique=$$empty_fix; \
+-        $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+-          $$tags $$unique; \
+-      fi
+-ctags: CTAGS
+-CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
+-              $(TAGS_FILES) $(LISP)
+-      tags=; \
+-      here=`pwd`; \
+-      list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
+-      unique=`for i in $$list; do \
+-          if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+-        done | \
+-        $(AWK) '    { files[$$0] = 1; } \
+-             END { for (i in files) print i; }'`; \
+-      test -z "$(CTAGS_ARGS)$$tags$$unique" \
+-        || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+-           $$tags $$unique
+-
+-GTAGS:
+-      here=`$(am__cd) $(top_builddir) && pwd` \
+-        && cd $(top_srcdir) \
+-        && gtags -i $(GTAGS_ARGS) $$here
+-
+-distclean-tags:
+-      -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+-
+-distdir: $(DISTFILES)
+-      @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
+-      topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
+-      list='$(DISTFILES)'; for file in $$list; do \
+-        case $$file in \
+-          $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
+-          $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
+-        esac; \
+-        if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+-        dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
+-        if test "$$dir" != "$$file" && test "$$dir" != "."; then \
+-          dir="/$$dir"; \
+-          $(mkdir_p) "$(distdir)$$dir"; \
+-        else \
+-          dir=''; \
+-        fi; \
+-        if test -d $$d/$$file; then \
+-          if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+-            cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+-          fi; \
+-          cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+-        else \
+-          test -f $(distdir)/$$file \
+-          || cp -p $$d/$$file $(distdir)/$$file \
+-          || exit 1; \
+-        fi; \
+-      done
+-check-am: all-am
+-check: check-am
+-all-am: Makefile $(PROGRAMS) $(SCRIPTS)
+-installdirs:
+-      for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)"; do \
+-        test -z "$$dir" || $(mkdir_p) "$$dir"; \
+-      done
+-install: install-am
+-install-exec: install-exec-am
+-install-data: install-data-am
+-uninstall: uninstall-am
+-
+-install-am: all-am
+-      @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+-
+-installcheck: installcheck-am
+-install-strip:
+-      $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+-        install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+-        `test -z '$(STRIP)' || \
+-          echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+-mostlyclean-generic:
+-
+-clean-generic:
+-
+-distclean-generic:
+-      -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+-
+-maintainer-clean-generic:
+-      @echo "This command is intended for maintainers to use"
+-      @echo "it deletes files that may require special tools to rebuild."
+-clean: clean-am
+-
+-clean-am: clean-binPROGRAMS clean-generic mostlyclean-am
+-
+-distclean: distclean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-distclean-am: clean-am distclean-compile distclean-generic \
+-      distclean-tags
+-
+-dvi: dvi-am
+-
+-dvi-am:
+-
+-html: html-am
+-
+-info: info-am
+-
+-info-am:
+-
+-install-data-am:
+-
+-install-exec-am: install-binPROGRAMS install-sbinSCRIPTS
+-
+-install-info: install-info-am
+-
+-install-man:
+-
+-installcheck-am:
+-
+-maintainer-clean: maintainer-clean-am
+-      -rm -rf ./$(DEPDIR)
+-      -rm -f Makefile
+-maintainer-clean-am: distclean-am maintainer-clean-generic
+-
+-mostlyclean: mostlyclean-am
+-
+-mostlyclean-am: mostlyclean-compile mostlyclean-generic
+-
+-pdf: pdf-am
+-
+-pdf-am:
+-
+-ps: ps-am
+-
+-ps-am:
+-
+-uninstall-am: uninstall-binPROGRAMS uninstall-info-am \
+-      uninstall-sbinSCRIPTS
+-
+-.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
+-      clean-generic ctags distclean distclean-compile \
+-      distclean-generic distclean-tags distdir dvi dvi-am html \
+-      html-am info info-am install install-am install-binPROGRAMS \
+-      install-data install-data-am install-exec install-exec-am \
+-      install-info install-info-am install-man install-sbinSCRIPTS \
+-      install-strip installcheck installcheck-am installdirs \
+-      maintainer-clean maintainer-clean-generic mostlyclean \
+-      mostlyclean-compile mostlyclean-generic pdf pdf-am ps ps-am \
+-      tags uninstall uninstall-am uninstall-binPROGRAMS \
+-      uninstall-info-am uninstall-sbinSCRIPTS
+-
+-# Tell versions [3.59,3.63) of GNU make to not export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
+diff --git a/util/grub-crypt.in b/util/grub-crypt.in
+new file mode 100644
+index 0000000..e8783c8
+--- /dev/null
++++ b/util/grub-crypt.in
+@@ -0,0 +1,80 @@
++#! /usr/bin/python
++
++'''Generate encrypted passwords for GRUB.'''
++
++import crypt
++import getopt
++import getpass
++import sys
++
++def usage():
++    '''Output usage message to stderr and exit.'''
++    print >> sys.stderr, 'Usage: grub-crypt [OPTION]...'
++    print >> sys.stderr, 'Try `$progname --help\' for more information.'
++    sys.exit(1)
++
++def gen_salt():
++    '''Generate a random salt.'''
++    ret = ''
++    with open('/dev/urandom', 'rb') as urandom:
++        while True:
++            byte = urandom.read(1)
++            if byte in ('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
++                        './0123456789'):
++                ret += byte
++                if len(ret) == 16:
++                    break
++    return ret
++
++def main():
++    '''Top level.'''
++    crypt_type = '$6$' # SHA-256
++    try:
++        opts, args = getopt.getopt(sys.argv[1:], 'hv',
++                                   ('help', 'version', 'md5', 'sha-256',
++                                    'sha-512'))
++    except getopt.GetoptError, err:
++        print >> sys.stderr, str(err)
++        usage()
++    if args:
++        print >> sys.stderr, 'Unexpected argument `%s\'' % (args[0],)
++        usage()
++    for (opt, _) in opts:
++        if opt in ('-h', '--help'):
++            print (
++'''Usage: grub-crypt [OPTION]...
++Encrypt a password.
++
++  -h, --help              Print this message and exit
++  -v, --version           Print the version information and exit
++  --md5                   Use MD5 to encrypt the password
++  --sha-256               Use SHA-256 to encrypt the password
++  --sha-512               Use SHA-512 to encrypt the password (default)
++
++Report bugs to <bug-grub@gnu.org>.
++EOF''')
++            sys.exit(0)
++        elif opt in ('-v', '--version'):
++            print 'grub-crypt (GNU GRUB @VERSION@)'
++            sys.exit(0)
++        elif opt == '--md5':
++            crypt_type = '$1$'
++        elif opt == '--sha-256':
++            crypt_type = '$5$'
++        elif opt == '--sha-512':
++            crypt_type = '$6$'
++        else:
++            assert False, 'Unhandled option'
++    password = getpass.getpass('Password: ')
++    password2 = getpass.getpass('Retype password: ')
++    if not password:
++        print >> sys.stderr, 'Empty password is not permitted.'
++        sys.exit(1)
++    if password != password2:
++        print >> sys.stderr, 'Sorry, passwords do not match.'
++        sys.exit(1)
++    salt = crypt_type + gen_salt()
++    print crypt.crypt(password, salt)
++
++if __name__ == '__main__':
++    main()
+diff --git a/util/grub-install.in b/util/grub-install.in
+index 2e598b0..12539b8 100644
+--- a/util/grub-install.in
++++ b/util/grub-install.in
+@@ -21,34 +21,36 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ sbindir=@sbindir@
+-libdir=@libdir@
++datadir=@datadir@
+ PACKAGE=@PACKAGE@
+ VERSION=@VERSION@
+ host_cpu=@host_cpu@
+ host_os=@host_os@
+ host_vendor=@host_vendor@
+-pkglibdir=${libdir}/${PACKAGE}/${host_cpu}-${host_vendor}
++pkgdatadir=${datadir}/${PACKAGE}/${host_cpu}-${host_vendor}
+ grub_shell=${sbindir}/grub
+-grub_set_default=${sbindir}/grub-set-default
+-log_file=/tmp/grub-install.log.$$
+-img_file=/tmp/grub-install.img.$$
++mdadm=${sbindir}/mdadm
++log_file=${TMPDIR:-/tmp}/grub-install.log.$$
++img_file=${TMPDIR:-/tmp}/grub-install.img.$$
+ rootdir=
+ grub_prefix=/boot/grub
++install_drives=
+ install_device=
+ no_floppy=
+ force_lba=
+ recheck=no
+ debug=no
++justcopy=no
+ # look for secure tempfile creation wrappers on this platform
+ if test -x /bin/tempfile; then
+     mklog="/bin/tempfile --prefix=grub"
+     mkimg="/bin/tempfile --prefix=grub"
+ elif test -x /bin/mktemp; then
+-    mklog="/bin/mktemp /tmp/grub-install.log.XXXXXX"
+-    mkimg="/bin/mktemp /tmp/grub-install.img.XXXXXX"
++    mklog="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.log.XXXXXX"
++    mkimg="/bin/mktemp ${TMPDIR:-/tmp}/grub-install.img.XXXXXX"
+ else
+     mklog=""
+     mkimg=""
+@@ -70,6 +72,8 @@ Install GRUB on your drive.
+   --force-lba             force GRUB to use LBA mode even for a buggy
+                           BIOS
+   --recheck               probe a device map even if it already exists
++                          This flag is unreliable and its use is
++                          strongly discouraged.
+ INSTALL_DEVICE can be a GRUB device name or a system device filename.
+@@ -96,17 +100,28 @@ convert () {
+     # Break the device name into the disk part and the partition part.
+     case "$host_os" in
+     linux*)
+-      tmp_disk=`echo "$1" | sed -e 's%\([sh]d[a-z]\)[0-9]*$%\1%' \
++      tmp_disk=`echo "$1" | grep -v '/mapper/control$' |
++              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
++              sed -e 's%\([shv]d[a-z]\)[0-9]*$%\1%' \
+                                 -e 's%\(d[0-9]*\)p[0-9]*$%\1%' \
+                                 -e 's%\(fd[0-9]*\)$%\1%' \
+                                 -e 's%/part[0-9]*$%/disc%' \
+-                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%'`
+-      tmp_part=`echo "$1" | sed -e 's%.*/[sh]d[a-z]\([0-9]*\)$%\1%' \
++                                -e 's%\(c[0-7]d[0-9]*\).*$%\1%' \
++        -e 's%\(/mapper/[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
++        -e 's%\(/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+\)p[[:digit:]]\+$%\1%' \
++        -e 's%\(/mapper/[[:alpha:]]\+_[[:alpha:]]\+\)[[:digit:]]\+$%\1%'`
++      tmp_part=`echo "$1" | grep -v '/mapper/control$' |
++              grep -v '/mapper/[[:alnum:]]\+-[[:alnum:]]\+$' | uniq |
++              sed -e 's%.*/[shv]d[a-z]\([0-9]*\)$%\1%' \
+                                 -e 's%.*d[0-9]*p%%' \
+                                 -e 's%.*/fd[0-9]*$%%' \
+                                 -e 's%.*/floppy/[0-9]*$%%' \
+                                 -e 's%.*/\(disc\|part\([0-9]*\)\)$%\2%' \
+-                                -e 's%.*c[0-7]d[0-9]*p%%'`
++                                -e 's%.*c[0-7]d[0-9]*p%%' \
++        -e 's%.*/mapper/[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
++        -e 's%.*/mapper/isw_[[:alpha:]_]\+[[:alpha:]]\+[[:digit:]]\+p\([[:digit:]]\+\)$%\1%' \
++        -e 's%.*/mapper/[[:alpha:]]\+_[[:alpha:]]\+\([[:digit:]]\+\)$%\1%' |
++              grep -v '.*/mapper/.*'`
+       ;;
+     gnu*)
+       tmp_disk=`echo "$1" | sed 's%\([sh]d[0-9]*\).*%\1%'`
+@@ -196,7 +211,7 @@ resolve_symlink () {
+       while test -L $tmp_fname; do
+               tmp_new_fname=`ls -al $tmp_fname | sed -n 's%.*-> \(.*\)%\1%p'`
+               if test -z "$tmp_new_fname"; then
+-                      echo "Unrecognized ls output" 2>&1
++                      echo "Unrecognized ls output" 1>&2
+                       exit 1
+               fi
+@@ -211,6 +226,80 @@ resolve_symlink () {
+       echo "$tmp_fname"
+ }
++# Usage: is_raid1_device devicename
++# Returns 0 if devicename is a raid1 md device, 1 if it is not.
++is_raid1_device () {
++    case "$host_os" in
++    linux*)
++      level=`$mdadm --query --detail $1 2>/dev/null | \
++              awk '/Raid Level :/ {print $4}'` 
++      if [ "$level" = "raid1" ]; then
++          return 0
++      fi
++    ;;
++    esac
++    return 1
++}
++
++# Usage: find_real_devs device
++# Returns space separated list of devices for linux if device is 
++# a raid1 device. In all other cases, the provided value is returned.
++find_real_devs () {
++    source_device=$1
++    case "$host_os" in
++    linux*)
++      if is_raid1_device $source_device ; then
++          list=""
++          for device in `$mdadm --query --detail "${source_device}" | \
++                  awk '/\/dev\/[^(md)]/ {print $7}'` ; do
++              list="$list $device"
++          done
++          echo $list
++          return 0
++      fi
++    ;;
++    esac
++    echo $source_device
++    return 0
++}
++
++# Usage: stat_device file
++# Find major:minor of a device node.
++stat_device() {
++    majmin=`stat -c "%t:%T" "$1" 2>/dev/null`
++    if test -z "$majmin"; then
++      echo "Could not find device for $1" 1>&2
++      exit 1
++    fi
++
++    echo "$majmin"
++}
++
++# Usage: find_mapper_device file
++# Find a file in /dev/mapper with the same major:minor as the specified node.
++find_mapper_device() {
++    if [ -b "$1" ]; then
++      dev="$1"
++    else
++      mntpnt=`echo "$1" | sed 's,/,\\\\/,g'`
++      dev=`awk '($2 ~ /'$mntpnt'/) { print $1 }' /etc/mtab`
++    fi
++    if test -z "$dev"; then
++      echo "Could not find device for $1" 1>&2
++      exit 1
++    fi
++      
++    majmin=`stat_device $dev`
++    for x in /dev/mapper/* ; do
++      devmajmin=`stat_device "$x"`
++      if [ "$majmin" == "$devmajmin" ]; then
++          echo "$x"
++          return 0
++      fi
++    done
++    return 1
++}
++
+ # Usage: find_device file
+ # Find block device on which the file resides.
+ find_device () {
+@@ -219,15 +308,55 @@ find_device () {
+     tmp_fname=`df $1/ | sed -n 's%.*\(/dev/[^         ]*\).*%\1%p'`
+     if test -z "$tmp_fname"; then
+-      echo "Could not find device for $1" 2>&1
++      echo "Could not find device for $1" 1>&2
+       exit 1
+     fi
+-      tmp_fname=`resolve_symlink $tmp_fname`
++    ret_fname=`resolve_symlink $tmp_fname` || exit 1
++    tmp_fname=`find_mapper_device $ret_fname`
++    if test -n "$tmp_fname"; then
++      ret_fname="$tmp_fname"
++    fi
++
++    echo "$ret_fname"
++    return 0
++}
++
++copy_images() {
++    # Copy the GRUB images to the GRUB directory.
++    for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
++      rm -f $file || exit 1
++    done
++    for file in \
++      ${pkgdatadir}/stage1 ${pkgdatadir}/stage2 ${pkgdatadir}/*stage1_5; do
++      cp -f $file ${grubdir} 1>&2 || exit 1
++    done
++}
++
++
++dump_boot_block () {
++    sync
++    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
++dump ${root_drive}${tmp} ${img_file}
++quit
++EOF
++}
++
++
++install_boot_block () {
++    # Before all invocations of the grub shell, call sync to make sure
++    # the raw device is in sync with any bufferring in filesystems.
++    sync
+-    echo "$tmp_fname"
++    # Now perform the installation.
++    $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >>$log_file
++root $1
++setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $2
++quit
++EOF
+ }
++
+ # Check the arguments.
+ for option in "$@"; do
+     case "$option" in
+@@ -247,6 +376,8 @@ for option in "$@"; do
+       force_lba="--force-lba" ;;
+     --recheck)
+       recheck=yes ;;
++    --just-copy)
++        justcopy=yes ;;
+     # This is an undocumented feature...
+     --debug)
+       debug=yes ;;
+@@ -265,12 +396,6 @@ for option in "$@"; do
+     esac
+ done
+-if test "x$install_device" = x; then
+-    echo "install_device not specified." 1>&2
+-    usage
+-    exit 1
+-fi
+-
+ # If the debugging feature is enabled, print commands.
+ if test $debug = yes; then
+     set -x
+@@ -293,6 +418,26 @@ esac
+ grubdir=${bootdir}/grub
+ device_map=${grubdir}/device.map
++if [ "$recheck" == "yes" ]; then
++    if grep 'mapper' ${device_map} >/dev/null; then
++      echo 'grub-install does not support reprobing of device.map when' 1>&2
++      echo 'using a device-mapper based boot device.' 1>&2
++      exit 1
++    fi
++fi
++
++# if they just want the images copied, copy the images and then exit
++if test $justcopy = yes; then
++    copy_images
++    exit 0
++fi
++
++if test "x$install_device" = x; then
++    echo "install_device not specified." 1>&2
++    usage
++    exit 1
++fi
++
+ # Check if GRUB is installed.
+ # This is necessary, because the user can specify "grub --read-only".
+ set $grub_shell dummy
+@@ -303,17 +448,17 @@ else
+     exit 1
+ fi
+-if test -f "$pkglibdir/stage1"; then
++if test -f "$pkgdatadir/stage1"; then
+     :
+ else
+-    echo "${pkglibdir}/stage1: Not found." 1>&2
++    echo "${pkgdatadir}/stage1: Not found." 1>&2
+     exit 1
+ fi
+-if test -f "$pkglibdir/stage2"; then
++if test -f "$pkgdatadir/stage2"; then
+     :
+ else
+-    echo "${pkglibdir}/stage2: Not found." 1>&2
++    echo "${pkgdatadir}/stage2: Not found." 1>&2
+     exit 1
+ fi
+@@ -324,9 +469,11 @@ fi
+ test -d "$bootdir" || mkdir "$bootdir" || exit 1
+ test -d "$grubdir" || mkdir "$grubdir" || exit 1
++copy_images
++
+ # If --recheck is specified, remove the device map, if present.
+ if test $recheck = yes; then
+-    rm -f $device_map
++    mv $device_map ${device_map}.backup
+ fi
+ # Create the device map file if it is not present.
+@@ -336,6 +483,10 @@ else
+     # Create a safe temporary file.
+     test -n "$mklog" && log_file=`$mklog`
++    # Before all invocations of the grub shell, call sync to make sure
++    # the raw device is in sync with any bufferring in filesystems.
++    sync
++ 
+     $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+ quit
+ EOF
+@@ -351,34 +502,60 @@ fi
+ tmp=`sed -n '/^([fh]d[0-9]*)/s/\(^(.*)\).*/\1/p' $device_map \
+     | sort | uniq -d | sed -n 1p`
+ if test -n "$tmp"; then
+-    echo "The drive $tmp is defined multiple times in the device map $device_map" 1>&2
++    echo "The drive $tmp is defined multiple times in the new device map." 1>&2
++    if test $recheck = yes; then
++        echo "Reverting to backed up copy." 1>&2
++        mv ${device_map}.backup $device_map
++    fi
++    exit 1
++fi
++
++# Make sure device.map has at least one hd device
++grep -q "^(hd[0-9]\+)" $device_map
++if [ "x$?" != "x0" ]; then
++    echo "No suitable drive was found in the generated device map." 1>&2
++    if test $recheck = yes; then
++        echo "Reverting to backed up copy." 1>&2
++        mv ${device_map}.backup $device_map
++    fi
+     exit 1
+ fi
+ # Check for INSTALL_DEVICE.
+ case "$install_device" in
+ /dev/*)
+-    install_device=`resolve_symlink "$install_device"`
+-    install_drive=`convert "$install_device"`
+-    # I don't know why, but some shells wouldn't die if exit is
+-    # called in a function.
+-    if test "x$install_drive" = x; then
++    install_device=`resolve_symlink "$install_device"` || exit 1
++    for install_drive in `find_real_devs $install_device` ; do
++      install_drive=`convert $install_drive` || exit 1
++      if is_raid1_device $install_device; then
++              install_drive=`echo $install_drive | sed 's/,[0-9]*)/)/'`
++      fi
++      if [ "x$install_drive" = "x" ]; then
++          exit 1
++      fi
++      install_drives="${install_drives} ${install_drive}"
++    done
++    unset install_drive
++      
++    if test "x$install_drives" = x ; then
+       exit 1
+     fi ;;
+ \([hf]d[0-9]*\))
+-    install_drive="$install_device" ;;
++    install_drives="$install_device" ;;
+ [hf]d[0-9]*)
+     # The GRUB format with no parenthesis.
+-    install_drive="($install_device)" ;;
++    install_drives="($install_device)" ;;
+ *)
+     echo "Format of install_device not recognized." 1>&2
+     usage
+     exit 1 ;;
+ esac
++unset install_device
++
+ # Get the root drive.
+-root_device=`find_device ${rootdir}`
+-bootdir_device=`find_device ${bootdir}`
++root_device=`find_device ${rootdir}` || exit 1
++bootdir_device=`find_device ${bootdir}` || exit 1
+ # Check if the boot directory is in the same device as the root directory.
+ if test "x$root_device" != "x$bootdir_device"; then
+@@ -387,15 +564,8 @@ if test "x$root_device" != "x$bootdir_device"; then
+     grub_prefix="/grub"
+ fi
+-# Convert the root device to a GRUB drive.
+-root_drive=`convert "$root_device"`
+-if test "x$root_drive" = x; then
+-    exit 1
+-fi
+-
+-# Check if the root directory exists in the same device as the grub
+-# directory.
+-grubdir_device=`find_device ${grubdir}`
++# Check if the root directory exists in the same device as the grub directory.
++grubdir_device=`find_device ${grubdir}` || exit 1
+ if test "x$grubdir_device" != "x$root_device"; then
+     # For now, cannot deal with this situation.
+@@ -406,61 +576,71 @@ EOF
+     exit 1
+ fi
+-# Copy the GRUB images to the GRUB directory.
+-for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+-    rm -f $file || exit 1
+-done
+-for file in \
+-    ${pkglibdir}/stage1 ${pkglibdir}/stage2 ${pkglibdir}/*stage1_5; do
+-    cp -f $file ${grubdir} || exit 1
+-done
+-
+-# Make a default file.
+-${grub_set_default} --root-directory=${rootdir} default
+-
+ # Make sure that GRUB reads the same images as the host OS.
+ test -n "$mkimg" && img_file=`$mkimg`
+ test -n "$mklog" && log_file=`$mklog`
++# There's not a real root device, so just pick the first
++if is_raid1_device $root_device ; then
++    root_device=`find_real_devs $root_device | awk '{print $1}'`
++fi
++
++# Convert the root deviceto a GRUB drive.
++root_drive=`convert "$root_device"` || exit 1
++if [ "x$root_drive" = x ]; then
++    exit 1
++fi
++
+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+     count=5
+     tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
+     while test $count -gt 0; do
+-      $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+-dump ${root_drive}${tmp} ${img_file}
+-quit
+-EOF
+-      if grep "Error [0-9]*: " $log_file >/dev/null; then
+-          :
+-      elif cmp $file $img_file >/dev/null; then
+-          break
+-      fi
+-      sleep 1
+-      count=`expr $count - 1`    
++        dump_boot_block $root_drive $img_file
++        if grep "Error [0-9]*: " $log_file >/dev/null; then
++            :
++        else
++            # Use sha1sum instead of cmp to avoid a dependency on diffutils.
++            sha1=`sha1sum $file | cut -d' ' -f 1`
++            sha2=`sha1sum $img_file | cut -d' ' -f 1`
++            if test -f $file -a -f $img_file -a "$sha1" = "$sha2"; then
++                break
++            fi
++        fi
++        sleep 1
++        count=`expr $count - 1`    
+     done
+     if test $count -eq 0; then
+-      echo "The file $file not read correctly." 1>&2
+-      exit 1
++        echo "The file $file not read correctly." 1>&2
++        exit 1
+     fi
+ done
+ rm -f $img_file
+ rm -f $log_file
++if ! test -e ${grubdir}/grub.conf ; then
++    test -e ${grubdir}/menu.lst && ln -s ./menu.lst ${grubdir}/grub.conf
++fi
++
+ # Create a safe temporary file.
+ test -n "$mklog" && log_file=`$mklog`
+-# Now perform the installation.
+-$grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
+-root $root_drive
+-setup $force_lba --stage2=$grubdir/stage2 --prefix=$grub_prefix $install_drive
+-quit
+-EOF
++for install_drive in $install_drives; do 
++    # Convert the root deviceto a GRUB drive.
++    root_drive=`convert "$root_device"` || exit 1
++    if [ "x$root_drive" = x ]; then
++      exit 1
++    fi
++    install_boot_block $root_drive $install_drive
++done
+-if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
++if grep "Error [0-9]*: " $log_file >/dev/null ; then
+     cat $log_file 1>&2
+     exit 1
+ fi
++if test $debug = yes; then
++    cat $log_file 1>&2
++fi
+ rm -f $log_file
similarity index 60%
rename from src/patches/iptables-1.4.6-imq_test1.patch
rename to src/patches/iptables-1.4.12-IMQ-test4.diff
index 2b4fb79cb02922bb1bc20a9db7c7c22b97f7960c..5ce17e1b4569ef564444e9b9c89559abdc6bb611 100644 (file)
@@ -1,14 +1,7 @@
-diff -Naurw iptables-1.4.1/extensions/.IMQ-testx iptables-1.4.1.imq/extensions/.IMQ-testx
---- iptables-1.4.1/extensions/.IMQ-testx       1969-12-31 21:00:00.000000000 -0300
-+++ iptables-1.4.1.imq/extensions/.IMQ-testx   2008-06-24 22:20:06.000000000 -0300
-@@ -0,0 +1,3 @@
-+#!/bin/sh
-+# True if IMQ target patch is applied.
-+[ -f $KERNEL_DIR/include/linux/netfilter/xt_IMQ.h ] && echo IMQ
-diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/libxt_IMQ.c
---- iptables-1.4.1/extensions/libxt_IMQ.c      1969-12-31 21:00:00.000000000 -0300
-+++ iptables-1.4.1.imq/extensions/libxt_IMQ.c  2008-06-24 22:31:02.000000000 -0300
-@@ -0,0 +1,103 @@
+diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.c iptables-1.4.12.1-imq/extensions/libxt_IMQ.c
+--- iptables-1.4.12.1/extensions/libxt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.c       2011-09-30 13:53:21.000000000 +0300
+@@ -0,0 +1,105 @@
 +/* Shared library add-on to iptables to add IMQ target support. */
 +#include <stdio.h>
 +#include <string.h>
@@ -50,11 +43,13 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +      
 +      switch(c) {
 +      case '1':
-+              if (xtables_check_inverse(optarg, &invert, NULL, 0, argv))
++/*            if (xtables_check_inverse(optarg, &invert, NULL, 0, argv))
 +                      xtables_error(PARAMETER_PROBLEM,
-+                                 "Unexpected `!' for --todev");
++                                 "Unexpected `!' after --todev");
++*/
 +              mr->todev=atoi(optarg);
 +              break;
++
 +      default:
 +              return 0;
 +      }
@@ -76,7 +71,7 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +{
 +      struct xt_imq_info *mr = (struct xt_imq_info*)target->data;
 +
-+      printf("--todev %u", mr->todev);
++      printf(" --todev %u", mr->todev);
 +}
 +
 +static struct xtables_target imq_target = {
@@ -112,8 +107,28 @@ diff -Naurw iptables-1.4.1/extensions/libxt_IMQ.c iptables-1.4.1.imq/extensions/
 +      xtables_register_target(&imq_target);
 +      xtables_register_target(&imq_target6);
 +}
---- iptables-1.4.1.1/include/linux/netfilter/xt_IMQ.h  1970-01-01 02:00:00.000000000 +0200
-+++ iptables-1.4.1.1.new/include/linux/netfilter/xt_IMQ.h      2008-08-05 00:41:28.000000000 +0300
+diff -Naur iptables-1.4.12.1/extensions/libxt_IMQ.man iptables-1.4.12.1-imq/extensions/libxt_IMQ.man
+--- iptables-1.4.12.1/extensions/libxt_IMQ.man 1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/extensions/libxt_IMQ.man     2011-09-30 13:53:21.000000000 +0300
+@@ -0,0 +1,15 @@
++This target is used to redirect the traffic to the IMQ driver and you can apply
++QoS rules like HTB or CBQ.
++For example you can select only traffic comming from a specific interface or
++is going out on a specific interface.
++Also it permits to capture the traffic BEFORE NAT in the case of outgoing traffic
++or AFTER NAT in the case of incomming traffic.
++.TP
++\fB\-\-to\-dev\fP \fIvalue\fP
++Set the IMQ interface where to send this traffic
++.TP
++Example:
++.TP
++Redirect incomming traffic from interface eth0 to imq0 and outgoing traffic to imq1:
++iptables \-t mangle \-A FORWARD \-i eth0 \-j IMQ \-\-to\-dev 0
++iptables \-t mangle \-A FORWARD \-o eth0 \-j IMQ \-\-to\-dev 1
+diff -Naur iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h
+--- iptables-1.4.12.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ iptables-1.4.12.1-imq/include/linux/netfilter/xt_IMQ.h     2011-09-30 13:53:21.000000000 +0300
 @@ -0,0 +1,9 @@
 +#ifndef _XT_IMQ_H
 +#define _XT_IMQ_H
similarity index 99%
rename from src/patches/iptables-1.4.6-ipp2p-0.8.2-pomng.patch
rename to src/patches/iptables-1.4.14-ipp2p-0.8.2-ipfire.patch
index 68e44b16b17e71be30ba08b22690c56e23964364..9a11eb50cc8f423f0c6cd56d16f82cee9fc01dcb 100644 (file)
@@ -414,8 +414,8 @@ diff -Naur iptables-1.4.6.org/extensions/libipt_ipp2p.c iptables-1.4.6/extension
 +    .next           = NULL,
 +    .name           = "ipp2p",
 +    .version        = XTABLES_VERSION,
-+    .size           = IPT_ALIGN(sizeof(struct ipt_p2p_info)),
-+    .userspacesize  = IPT_ALIGN(sizeof(struct ipt_p2p_info)),
++    .size           = XT_ALIGN(sizeof(struct ipt_p2p_info)),
++    .userspacesize  = XT_ALIGN(sizeof(struct ipt_p2p_info)),
 +    .help           = &help,
 +    .init           = &init,
 +    .parse          = &parse,
diff --git a/src/patches/iptables-1.4.6-errorno_includes.patch b/src/patches/iptables-1.4.6-errorno_includes.patch
deleted file mode 100644 (file)
index a25c5a3..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-diff -Naur include.org/asm/errno.h include/asm/errno.h
---- include.org/asm/errno.h    2010-02-12 18:21:40.000000000 +0100
-+++ include/asm/errno.h        2010-02-12 18:19:41.000000000 +0100
-@@ -5,4 +5,8 @@
-  #include <linux/errno.h>
- #endif
-+#ifndef _ASM_GENERIC_ERRNO_H
-+ #include <asm-generic/errno.h>
-+#endif
-+
- #endif
-diff -Naur include.org/asm-generic/errno-base.h include/asm-generic/errno-base.h
---- include.org/asm-generic/errno-base.h       1970-01-01 01:00:00.000000000 +0100
-+++ include/asm-generic/errno-base.h   2010-02-09 13:57:19.000000000 +0100
-@@ -0,0 +1,39 @@
-+#ifndef _ASM_GENERIC_ERRNO_BASE_H
-+#define _ASM_GENERIC_ERRNO_BASE_H
-+
-+#define       EPERM            1      /* Operation not permitted */
-+#define       ENOENT           2      /* No such file or directory */
-+#define       ESRCH            3      /* No such process */
-+#define       EINTR            4      /* Interrupted system call */
-+#define       EIO              5      /* I/O error */
-+#define       ENXIO            6      /* No such device or address */
-+#define       E2BIG            7      /* Argument list too long */
-+#define       ENOEXEC          8      /* Exec format error */
-+#define       EBADF            9      /* Bad file number */
-+#define       ECHILD          10      /* No child processes */
-+#define       EAGAIN          11      /* Try again */
-+#define       ENOMEM          12      /* Out of memory */
-+#define       EACCES          13      /* Permission denied */
-+#define       EFAULT          14      /* Bad address */
-+#define       ENOTBLK         15      /* Block device required */
-+#define       EBUSY           16      /* Device or resource busy */
-+#define       EEXIST          17      /* File exists */
-+#define       EXDEV           18      /* Cross-device link */
-+#define       ENODEV          19      /* No such device */
-+#define       ENOTDIR         20      /* Not a directory */
-+#define       EISDIR          21      /* Is a directory */
-+#define       EINVAL          22      /* Invalid argument */
-+#define       ENFILE          23      /* File table overflow */
-+#define       EMFILE          24      /* Too many open files */
-+#define       ENOTTY          25      /* Not a typewriter */
-+#define       ETXTBSY         26      /* Text file busy */
-+#define       EFBIG           27      /* File too large */
-+#define       ENOSPC          28      /* No space left on device */
-+#define       ESPIPE          29      /* Illegal seek */
-+#define       EROFS           30      /* Read-only file system */
-+#define       EMLINK          31      /* Too many links */
-+#define       EPIPE           32      /* Broken pipe */
-+#define       EDOM            33      /* Math argument out of domain of func */
-+#define       ERANGE          34      /* Math result not representable */
-+
-+#endif
-diff -Naur include.org/asm-generic/errno.h include/asm-generic/errno.h
---- include.org/asm-generic/errno.h    1970-01-01 01:00:00.000000000 +0100
-+++ include/asm-generic/errno.h        2010-02-09 13:57:19.000000000 +0100
-@@ -0,0 +1,111 @@
-+#ifndef _ASM_GENERIC_ERRNO_H
-+#define _ASM_GENERIC_ERRNO_H
-+
-+#include <asm-generic/errno-base.h>
-+
-+#define       EDEADLK         35      /* Resource deadlock would occur */
-+#define       ENAMETOOLONG    36      /* File name too long */
-+#define       ENOLCK          37      /* No record locks available */
-+#define       ENOSYS          38      /* Function not implemented */
-+#define       ENOTEMPTY       39      /* Directory not empty */
-+#define       ELOOP           40      /* Too many symbolic links encountered */
-+#define       EWOULDBLOCK     EAGAIN  /* Operation would block */
-+#define       ENOMSG          42      /* No message of desired type */
-+#define       EIDRM           43      /* Identifier removed */
-+#define       ECHRNG          44      /* Channel number out of range */
-+#define       EL2NSYNC        45      /* Level 2 not synchronized */
-+#define       EL3HLT          46      /* Level 3 halted */
-+#define       EL3RST          47      /* Level 3 reset */
-+#define       ELNRNG          48      /* Link number out of range */
-+#define       EUNATCH         49      /* Protocol driver not attached */
-+#define       ENOCSI          50      /* No CSI structure available */
-+#define       EL2HLT          51      /* Level 2 halted */
-+#define       EBADE           52      /* Invalid exchange */
-+#define       EBADR           53      /* Invalid request descriptor */
-+#define       EXFULL          54      /* Exchange full */
-+#define       ENOANO          55      /* No anode */
-+#define       EBADRQC         56      /* Invalid request code */
-+#define       EBADSLT         57      /* Invalid slot */
-+
-+#define       EDEADLOCK       EDEADLK
-+
-+#define       EBFONT          59      /* Bad font file format */
-+#define       ENOSTR          60      /* Device not a stream */
-+#define       ENODATA         61      /* No data available */
-+#define       ETIME           62      /* Timer expired */
-+#define       ENOSR           63      /* Out of streams resources */
-+#define       ENONET          64      /* Machine is not on the network */
-+#define       ENOPKG          65      /* Package not installed */
-+#define       EREMOTE         66      /* Object is remote */
-+#define       ENOLINK         67      /* Link has been severed */
-+#define       EADV            68      /* Advertise error */
-+#define       ESRMNT          69      /* Srmount error */
-+#define       ECOMM           70      /* Communication error on send */
-+#define       EPROTO          71      /* Protocol error */
-+#define       EMULTIHOP       72      /* Multihop attempted */
-+#define       EDOTDOT         73      /* RFS specific error */
-+#define       EBADMSG         74      /* Not a data message */
-+#define       EOVERFLOW       75      /* Value too large for defined data type */
-+#define       ENOTUNIQ        76      /* Name not unique on network */
-+#define       EBADFD          77      /* File descriptor in bad state */
-+#define       EREMCHG         78      /* Remote address changed */
-+#define       ELIBACC         79      /* Can not access a needed shared library */
-+#define       ELIBBAD         80      /* Accessing a corrupted shared library */
-+#define       ELIBSCN         81      /* .lib section in a.out corrupted */
-+#define       ELIBMAX         82      /* Attempting to link in too many shared libraries */
-+#define       ELIBEXEC        83      /* Cannot exec a shared library directly */
-+#define       EILSEQ          84      /* Illegal byte sequence */
-+#define       ERESTART        85      /* Interrupted system call should be restarted */
-+#define       ESTRPIPE        86      /* Streams pipe error */
-+#define       EUSERS          87      /* Too many users */
-+#define       ENOTSOCK        88      /* Socket operation on non-socket */
-+#define       EDESTADDRREQ    89      /* Destination address required */
-+#define       EMSGSIZE        90      /* Message too long */
-+#define       EPROTOTYPE      91      /* Protocol wrong type for socket */
-+#define       ENOPROTOOPT     92      /* Protocol not available */
-+#define       EPROTONOSUPPORT 93      /* Protocol not supported */
-+#define       ESOCKTNOSUPPORT 94      /* Socket type not supported */
-+#define       EOPNOTSUPP      95      /* Operation not supported on transport endpoint */
-+#define       EPFNOSUPPORT    96      /* Protocol family not supported */
-+#define       EAFNOSUPPORT    97      /* Address family not supported by protocol */
-+#define       EADDRINUSE      98      /* Address already in use */
-+#define       EADDRNOTAVAIL   99      /* Cannot assign requested address */
-+#define       ENETDOWN        100     /* Network is down */
-+#define       ENETUNREACH     101     /* Network is unreachable */
-+#define       ENETRESET       102     /* Network dropped connection because of reset */
-+#define       ECONNABORTED    103     /* Software caused connection abort */
-+#define       ECONNRESET      104     /* Connection reset by peer */
-+#define       ENOBUFS         105     /* No buffer space available */
-+#define       EISCONN         106     /* Transport endpoint is already connected */
-+#define       ENOTCONN        107     /* Transport endpoint is not connected */
-+#define       ESHUTDOWN       108     /* Cannot send after transport endpoint shutdown */
-+#define       ETOOMANYREFS    109     /* Too many references: cannot splice */
-+#define       ETIMEDOUT       110     /* Connection timed out */
-+#define       ECONNREFUSED    111     /* Connection refused */
-+#define       EHOSTDOWN       112     /* Host is down */
-+#define       EHOSTUNREACH    113     /* No route to host */
-+#define       EALREADY        114     /* Operation already in progress */
-+#define       EINPROGRESS     115     /* Operation now in progress */
-+#define       ESTALE          116     /* Stale NFS file handle */
-+#define       EUCLEAN         117     /* Structure needs cleaning */
-+#define       ENOTNAM         118     /* Not a XENIX named type file */
-+#define       ENAVAIL         119     /* No XENIX semaphores available */
-+#define       EISNAM          120     /* Is a named type file */
-+#define       EREMOTEIO       121     /* Remote I/O error */
-+#define       EDQUOT          122     /* Quota exceeded */
-+
-+#define       ENOMEDIUM       123     /* No medium found */
-+#define       EMEDIUMTYPE     124     /* Wrong medium type */
-+#define       ECANCELED       125     /* Operation Canceled */
-+#define       ENOKEY          126     /* Required key not available */
-+#define       EKEYEXPIRED     127     /* Key has expired */
-+#define       EKEYREVOKED     128     /* Key has been revoked */
-+#define       EKEYREJECTED    129     /* Key was rejected by service */
-+
-+/* for robust mutexes */
-+#define       EOWNERDEAD      130     /* Owner died */
-+#define       ENOTRECOVERABLE 131     /* State not recoverable */
-+
-+#define ERFKILL               132     /* Operation not possible due to RF-kill */
-+
-+#endif
diff --git a/src/patches/libmad-0.15.1b-cflags-O2.patch b/src/patches/libmad-0.15.1b-cflags-O2.patch
new file mode 100644 (file)
index 0000000..61b4b13
--- /dev/null
@@ -0,0 +1,12 @@
+diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
+--- libmad-0.15.1b-orig/configure.ac   2007-07-01 12:58:13.000000000 -0600
++++ libmad-0.15.1b/configure.ac        2007-07-01 12:59:13.000000000 -0600
+@@ -105,7 +105,7 @@
+           shift
+           ;;
+       -O2)
+-          optimize="-O"
++          optimize="-O2"
+           shift
+           ;;
+       -fomit-frame-pointer)
diff --git a/src/patches/libmad-0.15.1b-cflags.patch b/src/patches/libmad-0.15.1b-cflags.patch
new file mode 100644 (file)
index 0000000..2ec44e3
--- /dev/null
@@ -0,0 +1,146 @@
+diff -Naur libmad-0.15.1b-orig/configure.ac libmad-0.15.1b/configure.ac
+--- libmad-0.15.1b-orig/configure.ac   2007-06-30 20:22:31.000000000 -0600
++++ libmad-0.15.1b/configure.ac        2007-06-30 20:25:31.000000000 -0600
+@@ -122,74 +122,74 @@
+     esac
+ done
+-if test "$GCC" = yes
+-then
+-    if test -z "$arch"
+-    then
+-      case "$host" in
+-          i386-*)           ;;
+-          i?86-*)           arch="-march=i486" ;;
+-          arm*-empeg-*)     arch="-march=armv4 -mtune=strongarm1100" ;;
+-          armv4*-*)         arch="-march=armv4 -mtune=strongarm" ;;
+-          powerpc-*)        ;;
+-          mips*-agenda-*)   arch="-mcpu=vr4100" ;;
+-          mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+-      esac
+-    fi
+-
+-    case "$optimize" in
+-      -O|"-O "*)
+-          optimize="-O"
+-          optimize="$optimize -fforce-mem"
+-          optimize="$optimize -fforce-addr"
+-          : #x optimize="$optimize -finline-functions"
+-          : #- optimize="$optimize -fstrength-reduce"
+-          optimize="$optimize -fthread-jumps"
+-          optimize="$optimize -fcse-follow-jumps"
+-          optimize="$optimize -fcse-skip-blocks"
+-          : #x optimize="$optimize -frerun-cse-after-loop"
+-          : #x optimize="$optimize -frerun-loop-opt"
+-          : #x optimize="$optimize -fgcse"
+-          optimize="$optimize -fexpensive-optimizations"
+-          optimize="$optimize -fregmove"
+-          : #* optimize="$optimize -fdelayed-branch"
+-          : #x optimize="$optimize -fschedule-insns"
+-          optimize="$optimize -fschedule-insns2"
+-          : #? optimize="$optimize -ffunction-sections"
+-          : #? optimize="$optimize -fcaller-saves"
+-          : #> optimize="$optimize -funroll-loops"
+-          : #> optimize="$optimize -funroll-all-loops"
+-          : #x optimize="$optimize -fmove-all-movables"
+-          : #x optimize="$optimize -freduce-all-givs"
+-          : #? optimize="$optimize -fstrict-aliasing"
+-          : #* optimize="$optimize -fstructure-noalias"
+-
+-          case "$host" in
+-              arm*-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  ;;
+-              mips*-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  optimize="$optimize -finline-functions"
+-                  ;;
+-              i?86-*)
+-                  optimize="$optimize -fstrength-reduce"
+-                  ;;
+-              powerpc-apple-*)
+-                  # this triggers an internal compiler error with gcc2
+-                  : #optimize="$optimize -fstrength-reduce"
+-
+-                  # this is really only beneficial with gcc3
+-                  : #optimize="$optimize -finline-functions"
+-                  ;;
+-              *)
+-                  # this sometimes provokes bugs in gcc 2.95.2
+-                  : #optimize="$optimize -fstrength-reduce"
+-                  ;;
+-          esac
+-          ;;
+-    esac
+-fi
++#if test "$GCC" = yes
++#then
++#    if test -z "$arch"
++#    then
++#     case "$host" in
++#         i386-*)           ;;
++#         i?86-*)           arch="-march=i486" ;;
++#         arm*-empeg-*)     arch="-march=armv4 -mtune=strongarm1100" ;;
++#         armv4*-*)         arch="-march=armv4 -mtune=strongarm" ;;
++#         powerpc-*)        ;;
++#         mips*-agenda-*)   arch="-mcpu=vr4100" ;;
++#         mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
++#     esac
++#    fi
++#
++#    case "$optimize" in
++#     -O|"-O "*)
++#         optimize="-O"
++#         optimize="$optimize -fforce-mem"
++#         optimize="$optimize -fforce-addr"
++#         : #x optimize="$optimize -finline-functions"
++#         : #- optimize="$optimize -fstrength-reduce"
++#         optimize="$optimize -fthread-jumps"
++#         optimize="$optimize -fcse-follow-jumps"
++#         optimize="$optimize -fcse-skip-blocks"
++#         : #x optimize="$optimize -frerun-cse-after-loop"
++#         : #x optimize="$optimize -frerun-loop-opt"
++#         : #x optimize="$optimize -fgcse"
++#         optimize="$optimize -fexpensive-optimizations"
++#         optimize="$optimize -fregmove"
++#         : #* optimize="$optimize -fdelayed-branch"
++#         : #x optimize="$optimize -fschedule-insns"
++#         optimize="$optimize -fschedule-insns2"
++#         : #? optimize="$optimize -ffunction-sections"
++#         : #? optimize="$optimize -fcaller-saves"
++#         : #> optimize="$optimize -funroll-loops"
++#         : #> optimize="$optimize -funroll-all-loops"
++#         : #x optimize="$optimize -fmove-all-movables"
++#         : #x optimize="$optimize -freduce-all-givs"
++#         : #? optimize="$optimize -fstrict-aliasing"
++#         : #* optimize="$optimize -fstructure-noalias"
++#
++#         case "$host" in
++#             arm*-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 ;;
++#             mips*-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 optimize="$optimize -finline-functions"
++#                 ;;
++#             i?86-*)
++#                 optimize="$optimize -fstrength-reduce"
++#                 ;;
++#             powerpc-apple-*)
++#                 # this triggers an internal compiler error with gcc2
++#                 : #optimize="$optimize -fstrength-reduce"
++#
++#                 # this is really only beneficial with gcc3
++#                 : #optimize="$optimize -finline-functions"
++#                 ;;
++#             *)
++#                 # this sometimes provokes bugs in gcc 2.95.2
++#                 : #optimize="$optimize -fstrength-reduce"
++#                 ;;
++#         esac
++#         ;;
++#    esac
++#fi
+ case "$host" in
+     mips*-agenda-*)
diff --git a/src/patches/libnl-1.1-ULONG_MAX.patch b/src/patches/libnl-1.1-ULONG_MAX.patch
new file mode 100644 (file)
index 0000000..ca3dd40
--- /dev/null
@@ -0,0 +1,11 @@
+--- libnl-1.1/include/netlink-local.h.orig     2008-06-08 19:09:20.000000000 +0200
++++ libnl-1.1/include/netlink-local.h  2008-06-08 19:09:33.000000000 +0200
+@@ -26,6 +26,7 @@
+ #include <sys/socket.h>
+ #include <inttypes.h>
+ #include <assert.h>
++#include <limits.h>
+ #include <arpa/inet.h>
+ #include <netdb.h>
+
diff --git a/src/patches/libsafe-alpha.diff b/src/patches/libsafe-alpha.diff
deleted file mode 100644 (file)
index dfeb9f2..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
---- libsafe-2.0-16-orig/src/intercept.c        2003-03-15 16:02:12.000000000 +0100
-+++ libsafe-2.0-16/src/intercept.c     2003-03-15 16:12:22.000000000 +0100
-@@ -165,7 +165,8 @@
-  */
- char *strcpy(char *dest, const char *src)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -196,7 +197,8 @@
- char *strncpy(char *dest, const char *src, size_t n)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_strncpy)
-       real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
-@@ -219,7 +221,8 @@
- char *stpcpy(char *dest, const char *src)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -251,7 +254,8 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
- {
--    size_t max_bytes, max_wchars, len;
-+    size_t max_wchars, len;
-+    uint max_bytes;
-     if (!real_wcscpy)
-       real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
-@@ -291,7 +295,8 @@
- wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
- {
--    size_t max_bytes, max_wchars, len;
-+    size_t max_wchars, len;
-+    uint max_bytes;
-     if (!real_wcpcpy)
-       real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
-@@ -333,9 +338,15 @@
- /*
-  * This is needed!  See the strcpy() for the reason. -ab.
-  */
--void *memcpy(void *dest, const void *src, size_t n)
-+void *memcpy(void *dest, const void *src, size_t hack)
- {
--    size_t max_size;
-+    /*
-+     * a size_t IS an unsigned long everywhere, though it sometimes
-+     * doesn't state so, making printf misinterpret it.
-+     */
-+    unsigned long n = hack;
-+    uint max_size;
-+
-     if (!real_memcpy)
-       real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-@@ -344,11 +355,11 @@
-       return real_memcpy(dest, src, n);
-     if ((max_size = _libsafe_stackVariableP(dest)) == 0) {
--      LOG(5, "memcpy(<heap var> , <src>, %d)\n", n);
-+      LOG(5, "memcpy(<heap var> , <src>, %ld)\n", n);
-       return real_memcpy(dest, src, n);
-     }
--    LOG(4, "memcpy(<stack var> , <src>, %d) stack limit=%d)\n", n, max_size);
-+    LOG(4, "memcpy(<stack var> , <src>, %ld) stack limit=%d)\n", n, max_size);
-     if (n > max_size)
-       _libsafe_die("Overflow caused by memcpy()");
-     return real_memcpy(dest, src, n);
-@@ -357,7 +368,7 @@
- char *strcat(char *dest, const char *src)
- {
--    size_t max_size;
-+    uint max_size;
-     uint dest_len, src_len;
-     if (!real_memcpy)
-@@ -388,7 +399,7 @@
- char *strncat(char *dest, const char *src, size_t n)
- {
--    size_t max_size;
-+    uint max_size;
-     uint dest_len, src_len;
-     if (!real_strncat)
-@@ -1008,12 +1019,31 @@
-           if (is_printf_convspec[(int)*p]) {
-               caddr_t addr;
-               c++;
-+#if 0 
-+              /*
-+               * cannot add va_list (ap here) with a number on alpha.
-+               * this is faster than the other method, and might be
-+               * a good idea to enable this on !alpha arch.
-+               */
-               if (pnum) {
-                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
-               }
-               else {
-                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
-               }
-+#else
-+              {
-+                  va_list apc;
-+                  uint nb = c + 1;
-+
-+                  va_copy(apc, ap);
-+                  if (pnum)
-+                      nb = atoi(pnum);
-+                  addr = NULL;
-+                  while (nb--)
-+                      addr = va_arg(apc, caddr_t);
-+              }
-+#endif
-               if (*p == 'n') {
-                   if (_libsafe_raVariableP((void *)(addr))) {
-                       _libsafe_die("printf(\"%%n\")");
-@@ -1172,12 +1202,32 @@
-           if (is_printf_convspec[(int)*p]) {
-               caddr_t addr;
-               c++;
-+#if 0
-+              /*
-+               * cannot add va_list (ap here) with a number on alpha.
-+               * this is faster than the other method, and might be
-+               * a good idea to enable this on !alpha arch.
-+               */
-+
-               if (pnum) {
-                   addr = *((caddr_t*)(ap + (atoi(pnum)-1)*sizeof(char*)));
-               }
-               else {
-                   addr = *((caddr_t*)(ap + c*sizeof(char*)));
-               }
-+#else
-+              {
-+                  va_list apc;
-+                  uint nb = c + 1;
-+
-+                  va_copy(apc, ap);
-+                  if (pnum)
-+                      nb = atoi(pnum);
-+                  addr = NULL;
-+                  while (nb--)
-+                    addr = va_arg(apc, caddr_t);
-+              }
-+#endif
-               if (*p == 'n') {
-                   if (_libsafe_raVariableP((void *)(addr))) {
-                       _libsafe_die("printf(\"%%n\")");
-@@ -1194,7 +1244,7 @@
- int sprintf(char *str, const char *format, ...)
- {
--    size_t max_size;
-+    uint max_size;
-     va_list ap;
-     int res;
-@@ -1242,7 +1292,7 @@
- int snprintf(char *str, size_t size, const char *format, ...)
- {
--    size_t max_size;
-+    uint max_size;
-     va_list ap;
-     int res;
-@@ -1288,7 +1338,7 @@
- int vsprintf(char *str, const char *format, va_list ap)
- {
--    size_t max_size;
-+    uint max_size;
-     int res;
-     if (!real_vsprintf)
-@@ -1325,7 +1375,7 @@
- int vsnprintf(char *str, size_t size, const char *format, va_list ap)
- {
--    size_t max_size;
-+    uint max_size;
-     int res;
-     if (!real_vsnprintf)
-@@ -1360,7 +1410,7 @@
- char *getwd(char *buf)
- {
--    size_t max_size;
-+    uint max_size;
-     char *res;
-     if (!real_getwd)
-@@ -1384,7 +1434,8 @@
- char *gets(char *s)
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     if (!real_gets)
-       real_gets = (gets_t) getLibraryFunction("gets");
-@@ -1409,7 +1460,8 @@
- char *realpath(char *path, char resolved_path[])
- {
--    size_t max_size, len;
-+    uint max_size;
-+    size_t len;
-     char *res;
-     char buf[MAXPATHLEN + 1];
diff --git a/src/patches/libsafe-functioncaching.diff b/src/patches/libsafe-functioncaching.diff
deleted file mode 100644 (file)
index db003a4..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
-Subject: Bug#129345: patch to prevent a loop between libdl and libsafe causing libdl to crash
-To: 129345@bugs.debian.org
-Date: 01 Sep 2002 23:54:35 +0200
-Reply-To: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>,
-       129345@bugs.debian.org
-Resent-From: Goswin Brederlow <goswin.brederlow@student.uni-tuebingen.de>
-
-
--------
-[D. Coe edited this patch slightly -- moved an unrelated change into the
-Makefile itself [it changed the debugging comments only], and corrected a 
-spelling error and reworded the comments.  The original patch is in the 
-bug tracking system, if you want to see it as submitted by Goswin.]
--------
--------
-D. Coe subsequently modified the patch further, because in some cases
-the initializations did not occur (e.g. when IO_vfscanf or memcpy was
-called from ps or top (likely one of the libraries they use).  maybe
-they do something that disables libsafe's library globals initialization?
-
-
-In any case, I've adopted both strategise in this new patch; the addresses
-are preloaded as Goswin had coded, but they are also individually checked
-each time needed (as was the case before Goswin's patch), and are initialized
-at that point if necessary.  Hopefully this will let ps and top work
-and also continue to work around the libdl problem.
--------
-
-Hi,
-
-if libsafe is invoked from inside libdl (or only inside dlerror()?)
-and a real_XXX function is not yet looked up it will reenter
-libdl. That causes memory corruption resulting in a read from 0x0 and
-thus segfault.
-
-The patch below makes libsafe cache all needed symbols once upon
-init. That not only causes less lookups than before but should prevent
-fatal loops. Failures of the initial lookups might not be reported
-correctly but terminate in some odd way if the functions needed to
-report are not yet looked up.
-
-MfG
-        Goswin
-
-----------------------------------------------------------------------
-diff -Nurd libsafe-2.0-16/src/intercept.c libsafe-2.0-16-mrvn/src/intercept.c
---- libsafe-2.0-16/src/intercept.c     2002-05-31 19:37:34.000000000 +0200
-+++ libsafe-2.0-16-mrvn/src/intercept.c        2002-09-01 23:44:55.000000000 +0200
-@@ -128,14 +128,29 @@
- }
--/* Starting with version 2.0, we keep a single global copy of the pointer to
-- * the real memcpy() function.  This allows us to call
-- * getLibraryFunction("memcpy") just once instead of multiple times, since
-- * memcpy() is needed in four different functions below.
-+/* Starting with Debian version 2.0-16-2, we keep a global copy of the pointer
-+ * to each real functions.  Otherwise a getLibraryFunction might
-+ * be triggered from inside dlsym() and cause memory corruption reulting in a
-+ * segfault.
-  */
--static memcpy_t real_memcpy = NULL;
--
--
-+static memcpy_t      real_memcpy = NULL;
-+static _IO_vfscanf_t real_IO_vfscanf = NULL;
-+static vfprintf_t    real_vfprintf = NULL;
-+static vsnprintf_t   real_vsnprintf = NULL;
-+static vsprintf_t    real_vsprintf = NULL;
-+static gets_t        real_gets = NULL;
-+static getwd_t       real_getwd = NULL;
-+static realpath_t    real_realpath = NULL;
-+static stpcpy_t      real_stpcpy = NULL;
-+static strcat_t      real_strcat = NULL;
-+static strcpy_t      real_strcpy = NULL;
-+static strncat_t     real_strncat = NULL;
-+static strncpy_t     real_strncpy = NULL;
-+static wcscpy_t      real_wcscpy = NULL;
-+static wcpcpy_t      real_wcpcpy = NULL;
-+#ifndef MISSING_WCSNLEN
-+static wcscat_t      real_wcscat = NULL;
-+#endif
- /*
-  * -------------- system library implementations -------------------
-  * Here is the story: if a C source file includes <string.h> and is
-@@ -150,7 +165,6 @@
-  */
- char *strcpy(char *dest, const char *src)
- {
--    static strcpy_t real_strcpy = NULL;
-     size_t max_size, len;
-     if (!real_memcpy)
-@@ -182,7 +196,6 @@
- char *strncpy(char *dest, const char *src, size_t n)
- {
--    static strncpy_t real_strncpy = NULL;
-     size_t max_size, len;
-     if (!real_strncpy)
-@@ -206,7 +219,6 @@
- char *stpcpy(char *dest, const char *src)
- {
--    static stpcpy_t real_stpcpy = NULL;
-     size_t max_size, len;
-     if (!real_memcpy)
-@@ -239,7 +251,6 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscpy(wchar_t *dest, const wchar_t *src)
- {
--    static wcscpy_t real_wcscpy = NULL;
-     size_t max_bytes, max_wchars, len;
-     if (!real_wcscpy)
-@@ -280,7 +291,6 @@
- wchar_t *wcpcpy(wchar_t *dest, const wchar_t *src)
- {
--    static wcpcpy_t real_wcpcpy = NULL;
-     size_t max_bytes, max_wchars, len;
-     if (!real_wcpcpy)
-@@ -347,7 +357,6 @@
- char *strcat(char *dest, const char *src)
- {
--    static strcat_t real_strcat = NULL;
-     size_t max_size;
-     uint dest_len, src_len;
-@@ -379,7 +388,6 @@
- char *strncat(char *dest, const char *src, size_t n)
- {
--    static strncat_t real_strncat = NULL;
-     size_t max_size;
-     uint dest_len, src_len;
-@@ -408,7 +416,6 @@
- #ifndef MISSING_WCSNLEN
- wchar_t *wcscat(wchar_t *dest, const wchar_t *src)
- {
--    static wcscat_t real_wcscat = NULL;
-     size_t max_bytes;
-     uint dest_len, src_len;
-@@ -861,7 +868,6 @@
-  */
- int vfprintf(FILE *fp, const char *format, va_list ap)
- {
--    static vfprintf_t real_vfprintf = NULL;
-     int res;
-     char *p, *pnum;
-     int c = -1;               /* Next var arg to be used */
-@@ -1026,7 +1032,6 @@
-  */
- int _IO_vfprintf(FILE *fp, const char *format, va_list ap)
- {
--    static vfprintf_t real_vfprintf = NULL;
-     int res;
-     char *p, *pnum;
-     int c = -1;               /* Next var arg to be used */
-@@ -1189,8 +1194,6 @@
- int sprintf(char *str, const char *format, ...)
- {
--    static vsprintf_t real_vsprintf = NULL;
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     va_list ap;
-     int res;
-@@ -1239,7 +1242,6 @@
- int snprintf(char *str, size_t size, const char *format, ...)
- {
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     va_list ap;
-     int res;
-@@ -1286,8 +1288,6 @@
- int vsprintf(char *str, const char *format, va_list ap)
- {
--    static vsprintf_t real_vsprintf = NULL;
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     int res;
-@@ -1325,7 +1325,6 @@
- int vsnprintf(char *str, size_t size, const char *format, va_list ap)
- {
--    static vsnprintf_t real_vsnprintf = NULL;
-     size_t max_size;
-     int res;
-@@ -1361,7 +1360,6 @@
- char *getwd(char *buf)
- {
--    static getwd_t real_getwd = NULL;
-     size_t max_size;
-     char *res;
-@@ -1386,7 +1384,6 @@
- char *gets(char *s)
- {
--    static gets_t real_gets = NULL;
-     size_t max_size, len;
-     if (!real_gets)
-@@ -1412,7 +1409,6 @@
- char *realpath(char *path, char resolved_path[])
- {
--    static realpath_t real_realpath = NULL;
-     size_t max_size, len;
-     char *res;
-     char buf[MAXPATHLEN + 1];
-@@ -1445,7 +1441,6 @@
- int _IO_vfscanf (_IO_FILE *s, const char *format, _IO_va_list argptr, int *errp)
- {
--    static _IO_vfscanf_t real_IO_vfscanf = NULL;
-     int res, save_count;
-     caddr_t ra_array[MAXLEVELS], fp_array[MAXLEVELS];
-@@ -1529,6 +1524,25 @@
-       
-       fclose(fp);
-     }
-+
-+    real_memcpy = (memcpy_t) getLibraryFunction("memcpy");
-+    real_IO_vfscanf = (_IO_vfscanf_t) getLibraryFunction("_IO_vfscanf");
-+    real_vfprintf = (vfprintf_t) getLibraryFunction("vfprintf");
-+    real_vsnprintf = (vsnprintf_t) getLibraryFunction("vsnprintf");
-+    real_vsprintf = (vsprintf_t) getLibraryFunction("vsprintf");
-+    real_gets = (gets_t) getLibraryFunction("gets");
-+    real_getwd = (getwd_t) getLibraryFunction("getwd");
-+    real_realpath = (realpath_t) getLibraryFunction("realpath");
-+    real_stpcpy = (stpcpy_t) getLibraryFunction("stpcpy");
-+    real_strcat = (strcat_t) getLibraryFunction("strcat");
-+    real_strcpy = (strcpy_t) getLibraryFunction("strcpy");
-+    real_strncat = (strncat_t) getLibraryFunction("strncat");
-+    real_strncpy = (strncpy_t) getLibraryFunction("strncpy");
-+    real_wcscpy = (wcscpy_t) getLibraryFunction("wcscpy");
-+    real_wcpcpy = (wcpcpy_t) getLibraryFunction("wcpcpy");
-+#ifndef MISSING_WCSNLEN
-+    real_wcscat = (wcscat_t) getLibraryFunction("wcscat");
-+#endif
- }
diff --git a/src/patches/libsigc++-gcc43.patch b/src/patches/libsigc++-gcc43.patch
new file mode 100644 (file)
index 0000000..528f21e
--- /dev/null
@@ -0,0 +1,85 @@
+diff -urN libsigc++-2.0-2.0.17.old/sigc++/signal.h libsigc++-2.0-2.0.17/sigc++/signal.h
+--- libsigc++-2.0-2.0.17.old/sigc++/signal.h   2005-12-20 08:35:21.000000000 +0000
++++ libsigc++-2.0-2.0.17/sigc++/signal.h       2008-02-22 00:22:44.000000000 +0000
+@@ -1661,7 +1661,7 @@
+   typedef internal::signal_emit0<T_return, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1770,7 +1770,7 @@
+   typedef internal::signal_emit1<T_return, T_arg1, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1881,7 +1881,7 @@
+   typedef internal::signal_emit2<T_return, T_arg1,T_arg2, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -1994,7 +1994,7 @@
+   typedef internal::signal_emit3<T_return, T_arg1,T_arg2,T_arg3, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2109,7 +2109,7 @@
+   typedef internal::signal_emit4<T_return, T_arg1,T_arg2,T_arg3,T_arg4, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2226,7 +2226,7 @@
+   typedef internal::signal_emit5<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2345,7 +2345,7 @@
+   typedef internal::signal_emit6<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+@@ -2466,7 +2466,7 @@
+   typedef internal::signal_emit7<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7, T_accumulator> emitter_type;
+   typedef typename emitter_type::result_type         result_type;
+   typedef slot<T_return, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>    slot_type;
+-  typedef slot_list<slot_type>                       slot_list_type;
++  typedef sigc::slot_list<slot_type>                       slot_list_type;
+   typedef typename slot_list_type::iterator               iterator;
+   typedef typename slot_list_type::const_iterator         const_iterator;
+   typedef typename slot_list_type::reverse_iterator       reverse_iterator;
+diff -urN libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc
+--- libsigc++-2.0-2.0.17.old/tests/test_copy_invalid_slot.cc   2005-05-01 02:00:47.000000000 +0000
++++ libsigc++-2.0-2.0.17/tests/test_copy_invalid_slot.cc       2008-02-22 00:24:08.000000000 +0000
+@@ -1,4 +1,6 @@
+ #include <iostream>
++#include <cstdlib>
++#include <cstring>
+ #include <sigc++/sigc++.h>
+ void Foo(sigc::trackable &t) {}
diff --git a/src/patches/linux-2.6-arm-asm-constraint.patch b/src/patches/linux-2.6-arm-asm-constraint.patch
new file mode 100644 (file)
index 0000000..ac0641e
--- /dev/null
@@ -0,0 +1,347 @@
+From 398aa66827155ef52bab58bebd24597d90968929 Mon Sep 17 00:00:00 2001
+From: Will Deacon <will.deacon@arm.com>
+Date: Thu, 8 Jul 2010 10:59:16 +0100
+Subject: [PATCH] ARM: 6212/1: atomic ops: add memory constraints to inline
+ asm
+
+Currently, the 32-bit and 64-bit atomic operations on ARM do not
+include memory constraints in the inline assembly blocks. In the
+case of barrier-less operations [for example, atomic_add], this
+means that the compiler may constant fold values which have actually
+been modified by a call to an atomic operation.
+
+This issue can be observed in the atomic64_test routine in
+<kernel root>/lib/atomic64_test.c:
+
+00000000 <test_atomic64>:
+   0:  e1a0c00d        mov     ip, sp
+   4:  e92dd830        push    {r4, r5, fp, ip, lr, pc}
+   8:  e24cb004        sub     fp, ip, #4
+   c:  e24dd008        sub     sp, sp, #8
+  10:  e24b3014        sub     r3, fp, #20
+  14:  e30d000d        movw    r0, #53261      ; 0xd00d
+  18:  e3011337        movw    r1, #4919       ; 0x1337
+  1c:  e34c0001        movt    r0, #49153      ; 0xc001
+  20:  e34a1aa3        movt    r1, #43683      ; 0xaaa3
+  24:  e16300f8        strd    r0, [r3, #-8]!
+  28:  e30c0afe        movw    r0, #51966      ; 0xcafe
+  2c:  e30b1eef        movw    r1, #48879      ; 0xbeef
+  30:  e34d0eaf        movt    r0, #57007      ; 0xdeaf
+  34:  e34d1ead        movt    r1, #57005      ; 0xdead
+  38:  e1b34f9f        ldrexd  r4, [r3]
+  3c:  e1a34f90        strexd  r4, r0, [r3]
+  40:  e3340000        teq     r4, #0
+  44:  1afffffb        bne     38 <test_atomic64+0x38>
+  48:  e59f0004        ldr     r0, [pc, #4]    ; 54 <test_atomic64+0x54>
+  4c:  e3a0101e        mov     r1, #30
+  50:  ebfffffe        bl      0 <__bug>
+  54:  00000000        .word   0x00000000
+
+The atomic64_set (0x38-0x44) writes to the atomic64_t, but the
+compiler doesn't see this, assumes the test condition is always
+false and generates an unconditional branch to __bug. The rest of the
+test is optimised away.
+
+This patch adds suitable memory constraints to the atomic operations on ARM
+to ensure that the compiler is informed of the correct data hazards. We have
+to use the "Qo" constraints to avoid hitting the GCC anomaly described at
+http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44492 , where the compiler
+makes assumptions about the writeback in the addressing mode used by the
+inline assembly. These constraints forbid the use of auto{inc,dec} addressing
+modes, so it doesn't matter if we don't use the operand exactly once.
+
+Cc: stable@kernel.org
+Reviewed-by: Nicolas Pitre <nicolas.pitre@linaro.org>
+Signed-off-by: Will Deacon <will.deacon@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+---
+ arch/arm/include/asm/atomic.h |  132 ++++++++++++++++++++--------------------
+ 1 files changed, 66 insertions(+), 66 deletions(-)
+
+diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
+index e9e56c0..7e79503 100644
+--- a/arch/arm/include/asm/atomic.h
++++ b/arch/arm/include/asm/atomic.h
+@@ -40,12 +40,12 @@ static inline void atomic_add(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_add\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     add     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     add     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+ }
+@@ -58,12 +58,12 @@ static inline int atomic_add_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_add_return\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     add     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     add     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+@@ -78,12 +78,12 @@ static inline void atomic_sub(int i, atomic_t *v)
+       int result;
+       __asm__ __volatile__("@ atomic_sub\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     sub     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     sub     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+ }
+@@ -96,12 +96,12 @@ static inline int atomic_sub_return(int i, atomic_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic_sub_return\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     sub     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     sub     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "Ir" (i)
+       : "cc");
+@@ -118,11 +118,11 @@ static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
+       do {
+               __asm__ __volatile__("@ atomic_cmpxchg\n"
+-              "ldrex  %1, [%2]\n"
++              "ldrex  %1, [%3]\n"
+               "mov    %0, #0\n"
+-              "teq    %1, %3\n"
+-              "strexeq %0, %4, [%2]\n"
+-                  : "=&r" (res), "=&r" (oldval)
++              "teq    %1, %4\n"
++              "strexeq %0, %5, [%3]\n"
++                  : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
+                   : "r" (&ptr->counter), "Ir" (old), "r" (new)
+                   : "cc");
+       } while (res);
+@@ -137,12 +137,12 @@ static inline void atomic_clear_mask(unsigned long mask, unsigned long *addr)
+       unsigned long tmp, tmp2;
+       __asm__ __volatile__("@ atomic_clear_mask\n"
+-"1:   ldrex   %0, [%2]\n"
+-"     bic     %0, %0, %3\n"
+-"     strex   %1, %0, [%2]\n"
++"1:   ldrex   %0, [%3]\n"
++"     bic     %0, %0, %4\n"
++"     strex   %1, %0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (tmp), "=&r" (tmp2)
++      : "=&r" (tmp), "=&r" (tmp2), "+Qo" (*addr)
+       : "r" (addr), "Ir" (mask)
+       : "cc");
+ }
+@@ -249,7 +249,7 @@ static inline u64 atomic64_read(atomic64_t *v)
+       __asm__ __volatile__("@ atomic64_read\n"
+ "     ldrexd  %0, %H0, [%1]"
+       : "=&r" (result)
+-      : "r" (&v->counter)
++      : "r" (&v->counter), "Qo" (v->counter)
+       );
+       return result;
+@@ -260,11 +260,11 @@ static inline void atomic64_set(atomic64_t *v, u64 i)
+       u64 tmp;
+       __asm__ __volatile__("@ atomic64_set\n"
+-"1:   ldrexd  %0, %H0, [%1]\n"
+-"     strexd  %0, %2, %H2, [%1]\n"
++"1:   ldrexd  %0, %H0, [%2]\n"
++"     strexd  %0, %3, %H3, [%2]\n"
+ "     teq     %0, #0\n"
+ "     bne     1b"
+-      : "=&r" (tmp)
++      : "=&r" (tmp), "=Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -275,13 +275,13 @@ static inline void atomic64_add(u64 i, atomic64_t *v)
+       unsigned long tmp;
+       __asm__ __volatile__("@ atomic64_add\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     adds    %0, %0, %3\n"
+-"     adc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %0, %0, %4\n"
++"     adc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -294,13 +294,13 @@ static inline u64 atomic64_add_return(u64 i, atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_add_return\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     adds    %0, %0, %3\n"
+-"     adc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     adds    %0, %0, %4\n"
++"     adc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+@@ -315,13 +315,13 @@ static inline void atomic64_sub(u64 i, atomic64_t *v)
+       unsigned long tmp;
+       __asm__ __volatile__("@ atomic64_sub\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     subs    %0, %0, %3\n"
+-"     sbc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     subs    %0, %0, %4\n"
++"     sbc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+ }
+@@ -334,13 +334,13 @@ static inline u64 atomic64_sub_return(u64 i, atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_sub_return\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     subs    %0, %0, %3\n"
+-"     sbc     %H0, %H0, %H3\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     subs    %0, %0, %4\n"
++"     sbc     %H0, %H0, %H4\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (i)
+       : "cc");
+@@ -358,12 +358,12 @@ static inline u64 atomic64_cmpxchg(atomic64_t *ptr, u64 old, u64 new)
+       do {
+               __asm__ __volatile__("@ atomic64_cmpxchg\n"
+-              "ldrexd         %1, %H1, [%2]\n"
++              "ldrexd         %1, %H1, [%3]\n"
+               "mov            %0, #0\n"
+-              "teq            %1, %3\n"
+-              "teqeq          %H1, %H3\n"
+-              "strexdeq       %0, %4, %H4, [%2]"
+-              : "=&r" (res), "=&r" (oldval)
++              "teq            %1, %4\n"
++              "teqeq          %H1, %H4\n"
++              "strexdeq       %0, %5, %H5, [%3]"
++              : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
+               : "r" (&ptr->counter), "r" (old), "r" (new)
+               : "cc");
+       } while (res);
+@@ -381,11 +381,11 @@ static inline u64 atomic64_xchg(atomic64_t *ptr, u64 new)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_xchg\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
+-"     strexd  %1, %3, %H3, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
++"     strexd  %1, %4, %H4, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (ptr->counter)
+       : "r" (&ptr->counter), "r" (new)
+       : "cc");
+@@ -402,16 +402,16 @@ static inline u64 atomic64_dec_if_positive(atomic64_t *v)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_dec_if_positive\n"
+-"1:   ldrexd  %0, %H0, [%2]\n"
++"1:   ldrexd  %0, %H0, [%3]\n"
+ "     subs    %0, %0, #1\n"
+ "     sbc     %H0, %H0, #0\n"
+ "     teq     %H0, #0\n"
+ "     bmi     2f\n"
+-"     strexd  %1, %0, %H0, [%2]\n"
++"     strexd  %1, %0, %H0, [%3]\n"
+ "     teq     %1, #0\n"
+ "     bne     1b\n"
+ "2:"
+-      : "=&r" (result), "=&r" (tmp)
++      : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter)
+       : "cc");
+@@ -429,18 +429,18 @@ static inline int atomic64_add_unless(atomic64_t *v, u64 a, u64 u)
+       smp_mb();
+       __asm__ __volatile__("@ atomic64_add_unless\n"
+-"1:   ldrexd  %0, %H0, [%3]\n"
+-"     teq     %0, %4\n"
+-"     teqeq   %H0, %H4\n"
++"1:   ldrexd  %0, %H0, [%4]\n"
++"     teq     %0, %5\n"
++"     teqeq   %H0, %H5\n"
+ "     moveq   %1, #0\n"
+ "     beq     2f\n"
+-"     adds    %0, %0, %5\n"
+-"     adc     %H0, %H0, %H5\n"
+-"     strexd  %2, %0, %H0, [%3]\n"
++"     adds    %0, %0, %6\n"
++"     adc     %H0, %H0, %H6\n"
++"     strexd  %2, %0, %H0, [%4]\n"
+ "     teq     %2, #0\n"
+ "     bne     1b\n"
+ "2:"
+-      : "=&r" (val), "+r" (ret), "=&r" (tmp)
++      : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
+       : "r" (&v->counter), "r" (u), "r" (a)
+       : "cc");
+-- 
+1.7.6.2
+
diff --git a/src/patches/linux-2.6.32-crypto-mv_cesa.patch b/src/patches/linux-2.6.32-crypto-mv_cesa.patch
new file mode 100644 (file)
index 0000000..cc85d52
--- /dev/null
@@ -0,0 +1,647 @@
+From 0328ac267564089d9cedfb568f936d30a6debd21 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:25:37 +0300
+Subject: [PATCH] crypto: mv_cesa - Invoke the user callback from a softirq
+ context
+
+Invoke the user callback from a softirq context
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index b21ef63..3e60ba9 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -275,7 +275,9 @@ static void dequeue_complete_req(void)
+               sg_miter_stop(&cpg->p.dst_sg_it);
+               mv_crypto_algo_completion();
+               cpg->eng_st = ENGINE_IDLE;
++              local_bh_disable();
+               req->base.complete(&req->base, 0);
++              local_bh_enable();
+       }
+ }
+-- 
+1.7.6.5
+From 6bc6fcd609080461682c5cc0a1e3bf4345d6419d Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:25:56 +0300
+Subject: [PATCH] crypto: mv_cesa - Remove compiler warning in mv_cesa driver
+
+Remove compiler warning
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 3e60ba9..37d9f06 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -178,6 +178,7 @@ static void mv_process_current_q(int first_block)
+               op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_ECB;
+               break;
+       case COP_AES_CBC:
++      default:
+               op.config = CFG_OP_CRYPT_ONLY | CFG_ENCM_AES | CFG_ENC_MODE_CBC;
+               op.enc_iv = ENC_IV_POINT(SRAM_DATA_IV) |
+                       ENC_IV_BUF_POINT(SRAM_DATA_IV_BUF);
+-- 
+1.7.6.5
+X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=018a95ce0c9b0d6e6a13bff1522630799bc445b3;hp=37d9f0688e7575a3e366f6bb9eda5adc5db807b5;hb=f565e67ec1b8f4a95d21550f9b879fe86b4132e0;hpb=6bc6fcd609080461682c5cc0a1e3bf4345d6419d
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 37d9f06..018a95c 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -242,6 +242,8 @@ static void dequeue_complete_req(void)
+       struct ablkcipher_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
++      int need_copy_len = cpg->p.crypt_len;
++      int sram_offset = 0;
+       cpg->p.total_req_bytes += cpg->p.crypt_len;
+       do {
+@@ -257,14 +259,16 @@ static void dequeue_complete_req(void)
+               buf = cpg->p.dst_sg_it.addr;
+               buf += cpg->p.dst_start;
+-              dst_copy = min(cpg->p.crypt_len, cpg->p.sg_dst_left);
+-
+-              memcpy(buf, cpg->sram + SRAM_DATA_OUT_START, dst_copy);
++              dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
++              memcpy(buf,
++                     cpg->sram + SRAM_DATA_OUT_START + sram_offset,
++                     dst_copy);
++              sram_offset += dst_copy;
+               cpg->p.sg_dst_left -= dst_copy;
+-              cpg->p.crypt_len -= dst_copy;
++              need_copy_len -= dst_copy;
+               cpg->p.dst_start += dst_copy;
+-      } while (cpg->p.crypt_len > 0);
++      } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.total_req_bytes < req->nbytes) {
+From 15d4dd3594221f11a7730fcf2d5f9942b96cdd7e Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:27:02 +0300
+Subject: [PATCH] crypto: mv_cesa - Fix situations where the src sglist spans
+ more data than the request asks for
+
+Fix for situations where the source scatterlist spans more data than the
+request nbytes
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   66 ++++++++++++++++++++++++++++++---------------
+ 1 files changed, 44 insertions(+), 22 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 018a95c..096f9ff 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -143,27 +143,45 @@ static int mv_setkey_aes(struct crypto_ablkcipher *cipher, const u8 *key,
+       return 0;
+ }
+-static void setup_data_in(struct ablkcipher_request *req)
++static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+ {
+       int ret;
+-      void *buf;
+-
+-      if (!cpg->p.sg_src_left) {
+-              ret = sg_miter_next(&cpg->p.src_sg_it);
+-              BUG_ON(!ret);
+-              cpg->p.sg_src_left = cpg->p.src_sg_it.length;
+-              cpg->p.src_start = 0;
+-      }
++      void *sbuf;
++      int copied = 0;
+-      cpg->p.crypt_len = min(cpg->p.sg_src_left, cpg->max_req_size);
+-
+-      buf = cpg->p.src_sg_it.addr;
+-      buf += cpg->p.src_start;
++      while (1) {
++              if (!p->sg_src_left) {
++                      ret = sg_miter_next(&p->src_sg_it);
++                      BUG_ON(!ret);
++                      p->sg_src_left = p->src_sg_it.length;
++                      p->src_start = 0;
++              }
+-      memcpy(cpg->sram + SRAM_DATA_IN_START, buf, cpg->p.crypt_len);
++              sbuf = p->src_sg_it.addr + p->src_start;
++
++              if (p->sg_src_left <= len - copied) {
++                      memcpy(dbuf + copied, sbuf, p->sg_src_left);
++                      copied += p->sg_src_left;
++                      p->sg_src_left = 0;
++                      if (copied >= len)
++                              break;
++              } else {
++                      int copy_len = len - copied;
++                      memcpy(dbuf + copied, sbuf, copy_len);
++                      p->src_start += copy_len;
++                      p->sg_src_left -= copy_len;
++                      break;
++              }
++      }
++}
+-      cpg->p.sg_src_left -= cpg->p.crypt_len;
+-      cpg->p.src_start += cpg->p.crypt_len;
++static void setup_data_in(struct ablkcipher_request *req)
++{
++      struct req_progress *p = &cpg->p;
++      p->crypt_len =
++          min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size);
++      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
++                      p->crypt_len);
+ }
+ static void mv_process_current_q(int first_block)
+@@ -289,12 +307,16 @@ static void dequeue_complete_req(void)
+ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
+ {
+       int i = 0;
+-
+-      do {
+-              total_bytes -= sl[i].length;
+-              i++;
+-
+-      } while (total_bytes > 0);
++      size_t cur_len;
++
++      while (1) {
++              cur_len = sl[i].length;
++              ++i;
++              if (total_bytes > cur_len)
++                      total_bytes -= cur_len;
++              else
++                      break;
++      }
+       return i;
+ }
+-- 
+1.7.6.5
+From 3b61a90502481045f56c1c41a2af35ee48ca8b80 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:27:33 +0300
+Subject: [PATCH] crypto: mv_cesa - Enqueue generic async requests
+
+Enqueue generic async requests rather than ablkcipher requests
+in the driver's queue
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   43 ++++++++++++++++++++++++-------------------
+ 1 files changed, 24 insertions(+), 19 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 096f9ff..8891e2e 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -39,6 +39,7 @@ enum engine_status {
+  * @sg_src_left:      bytes left in src to process (scatter list)
+  * @src_start:                offset to add to src start position (scatter list)
+  * @crypt_len:                length of current crypt process
++ * @hw_nbytes:                total bytes to process in hw for this request
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+  * @total_req_bytes:  total number of bytes processed (request).
+@@ -55,6 +56,7 @@ struct req_progress {
+       int sg_src_left;
+       int src_start;
+       int crypt_len;
++      int hw_nbytes;
+       /* dst mostly */
+       int sg_dst_left;
+       int dst_start;
+@@ -71,7 +73,7 @@ struct crypto_priv {
+       spinlock_t lock;
+       struct crypto_queue queue;
+       enum engine_status eng_st;
+-      struct ablkcipher_request *cur_req;
++      struct crypto_async_request *cur_req;
+       struct req_progress p;
+       int max_req_size;
+       int sram_size;
+@@ -175,18 +177,18 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+       }
+ }
+-static void setup_data_in(struct ablkcipher_request *req)
++static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+       p->crypt_len =
+-          min((int)req->nbytes - p->total_req_bytes, cpg->max_req_size);
++          min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size);
+       copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+                       p->crypt_len);
+ }
+ static void mv_process_current_q(int first_block)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_ctx *ctx = crypto_tfm_ctx(req->base.tfm);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
+       struct sec_accel_config op;
+@@ -229,7 +231,7 @@ static void mv_process_current_q(int first_block)
+               ENC_P_DST(SRAM_DATA_OUT_START);
+       op.enc_key_p = SRAM_DATA_KEY_P;
+-      setup_data_in(req);
++      setup_data_in();
+       op.enc_len = cpg->p.crypt_len;
+       memcpy(cpg->sram + SRAM_CONFIG, &op,
+                       sizeof(struct sec_accel_config));
+@@ -246,7 +248,7 @@ static void mv_process_current_q(int first_block)
+ static void mv_crypto_algo_completion(void)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
+       if (req_ctx->op != COP_AES_CBC)
+@@ -257,7 +259,7 @@ static void mv_crypto_algo_completion(void)
+ static void dequeue_complete_req(void)
+ {
+-      struct ablkcipher_request *req = cpg->cur_req;
++      struct crypto_async_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
+       int need_copy_len = cpg->p.crypt_len;
+@@ -289,7 +291,7 @@ static void dequeue_complete_req(void)
+       } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+-      if (cpg->p.total_req_bytes < req->nbytes) {
++      if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+               mv_process_current_q(0);
+@@ -299,7 +301,7 @@ static void dequeue_complete_req(void)
+               mv_crypto_algo_completion();
+               cpg->eng_st = ENGINE_IDLE;
+               local_bh_disable();
+-              req->base.complete(&req->base, 0);
++              req->complete(req, 0);
+               local_bh_enable();
+       }
+ }
+@@ -323,16 +325,19 @@ static int count_sgs(struct scatterlist *sl, unsigned int total_bytes)
+ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+ {
++      struct req_progress *p = &cpg->p;
+       int num_sgs;
+-      cpg->cur_req = req;
+-      memset(&cpg->p, 0, sizeof(struct req_progress));
++      cpg->cur_req = &req->base;
++      memset(p, 0, sizeof(struct req_progress));
++      p->hw_nbytes = req->nbytes;
+       num_sgs = count_sgs(req->src, req->nbytes);
+-      sg_miter_start(&cpg->p.src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
++      sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+       num_sgs = count_sgs(req->dst, req->nbytes);
+-      sg_miter_start(&cpg->p.dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG);
++      sg_miter_start(&p->dst_sg_it, req->dst, num_sgs, SG_MITER_TO_SG);
++
+       mv_process_current_q(1);
+ }
+@@ -378,13 +383,13 @@ static int queue_manag(void *data)
+       return 0;
+ }
+-static int mv_handle_req(struct ablkcipher_request *req)
++static int mv_handle_req(struct crypto_async_request *req)
+ {
+       unsigned long flags;
+       int ret;
+       spin_lock_irqsave(&cpg->lock, flags);
+-      ret = ablkcipher_enqueue_request(&cpg->queue, req);
++      ret = crypto_enqueue_request(&cpg->queue, req);
+       spin_unlock_irqrestore(&cpg->lock, flags);
+       wake_up_process(cpg->queue_th);
+       return ret;
+@@ -397,7 +402,7 @@ static int mv_enc_aes_ecb(struct ablkcipher_request *req)
+       req_ctx->op = COP_AES_ECB;
+       req_ctx->decrypt = 0;
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_dec_aes_ecb(struct ablkcipher_request *req)
+@@ -409,7 +414,7 @@ static int mv_dec_aes_ecb(struct ablkcipher_request *req)
+       req_ctx->decrypt = 1;
+       compute_aes_dec_key(ctx);
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_enc_aes_cbc(struct ablkcipher_request *req)
+@@ -419,7 +424,7 @@ static int mv_enc_aes_cbc(struct ablkcipher_request *req)
+       req_ctx->op = COP_AES_CBC;
+       req_ctx->decrypt = 0;
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_dec_aes_cbc(struct ablkcipher_request *req)
+@@ -431,7 +436,7 @@ static int mv_dec_aes_cbc(struct ablkcipher_request *req)
+       req_ctx->decrypt = 1;
+       compute_aes_dec_key(ctx);
+-      return mv_handle_req(req);
++      return mv_handle_req(&req->base);
+ }
+ static int mv_cra_init(struct crypto_tfm *tfm)
+-- 
+1.7.6.5
+From 7a5f691ef03f4c01d2703b5ec4ddd4c17e645dec Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:29:16 +0300
+Subject: [PATCH] crypto: mv_cesa - Rename a variable to a more suitable name
+
+Rename a variable to a more suitable name
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   10 +++++-----
+ 1 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 8891e2e..4262932 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -42,7 +42,7 @@ enum engine_status {
+  * @hw_nbytes:                total bytes to process in hw for this request
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+- * @total_req_bytes:  total number of bytes processed (request).
++ * @hw_processed_bytes:       number of bytes processed by hw (request).
+  *
+  * sg helper are used to iterate over the scatterlist. Since the size of the
+  * SRAM may be less than the scatter size, this struct struct is used to keep
+@@ -60,7 +60,7 @@ struct req_progress {
+       /* dst mostly */
+       int sg_dst_left;
+       int dst_start;
+-      int total_req_bytes;
++      int hw_processed_bytes;
+ };
+ struct crypto_priv {
+@@ -181,7 +181,7 @@ static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+       p->crypt_len =
+-          min(p->hw_nbytes - p->total_req_bytes, cpg->max_req_size);
++          min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size);
+       copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+                       p->crypt_len);
+ }
+@@ -265,7 +265,7 @@ static void dequeue_complete_req(void)
+       int need_copy_len = cpg->p.crypt_len;
+       int sram_offset = 0;
+-      cpg->p.total_req_bytes += cpg->p.crypt_len;
++      cpg->p.hw_processed_bytes += cpg->p.crypt_len;
+       do {
+               int dst_copy;
+@@ -291,7 +291,7 @@ static void dequeue_complete_req(void)
+       } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+-      if (cpg->p.total_req_bytes < cpg->p.hw_nbytes) {
++      if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+               mv_process_current_q(0);
+-- 
+1.6.5.GIT
+From a58094ac5f95d6969e5c52ff096d2fd2864542af Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:30:19 +0300
+Subject: [PATCH] crypto: mv_cesa - Execute some code via function pointers
+ rathr than direct calls
+
+Execute some code via function pointers rathr than direct calls
+(to allow customization in the hashing request)
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |   13 +++++++++----
+ 1 files changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 4262932..2b4f07a 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -51,6 +51,8 @@ enum engine_status {
+ struct req_progress {
+       struct sg_mapping_iter src_sg_it;
+       struct sg_mapping_iter dst_sg_it;
++      void (*complete) (void);
++      void (*process) (int is_first);
+       /* src mostly */
+       int sg_src_left;
+@@ -251,6 +253,9 @@ static void mv_crypto_algo_completion(void)
+       struct ablkcipher_request *req = ablkcipher_request_cast(cpg->cur_req);
+       struct mv_req_ctx *req_ctx = ablkcipher_request_ctx(req);
++      sg_miter_stop(&cpg->p.src_sg_it);
++      sg_miter_stop(&cpg->p.dst_sg_it);
++
+       if (req_ctx->op != COP_AES_CBC)
+               return ;
+@@ -294,11 +299,9 @@ static void dequeue_complete_req(void)
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+               /* process next scatter list entry */
+               cpg->eng_st = ENGINE_BUSY;
+-              mv_process_current_q(0);
++              cpg->p.process(0);
+       } else {
+-              sg_miter_stop(&cpg->p.src_sg_it);
+-              sg_miter_stop(&cpg->p.dst_sg_it);
+-              mv_crypto_algo_completion();
++              cpg->p.complete();
+               cpg->eng_st = ENGINE_IDLE;
+               local_bh_disable();
+               req->complete(req, 0);
+@@ -331,6 +334,8 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+       cpg->cur_req = &req->base;
+       memset(p, 0, sizeof(struct req_progress));
+       p->hw_nbytes = req->nbytes;
++      p->complete = mv_crypto_algo_completion;
++      p->process = mv_process_current_q;
+       num_sgs = count_sgs(req->src, req->nbytes);
+       sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+-- 
+1.7.6.5
+X-Git-Url: http://git.kernelconcepts.de/?p=mv-sheeva.git;a=blobdiff_plain;f=drivers%2Fcrypto%2Fmv_cesa.c;h=49a22060fb51a46afff004ddade3dacf378aecd8;hp=2b4f07aa89e8ba7422de65eea027e06daa5f7797;hb=f0d03deaad05d9cc99cd2ee0475c9ecd726c19ae;hpb=a58094ac5f95d6969e5c52ff096d2fd2864542af
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 2b4f07a..49a2206 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -40,6 +40,7 @@ enum engine_status {
+  * @src_start:                offset to add to src start position (scatter list)
+  * @crypt_len:                length of current crypt process
+  * @hw_nbytes:                total bytes to process in hw for this request
++ * @copy_back:                whether to copy data back (crypt) or not (hash)
+  * @sg_dst_left:      bytes left dst to process in this scatter list
+  * @dst_start:                offset to add to dst start position (scatter list)
+  * @hw_processed_bytes:       number of bytes processed by hw (request).
+@@ -60,6 +61,7 @@ struct req_progress {
+       int crypt_len;
+       int hw_nbytes;
+       /* dst mostly */
++      int copy_back;
+       int sg_dst_left;
+       int dst_start;
+       int hw_processed_bytes;
+@@ -267,33 +269,35 @@ static void dequeue_complete_req(void)
+       struct crypto_async_request *req = cpg->cur_req;
+       void *buf;
+       int ret;
+-      int need_copy_len = cpg->p.crypt_len;
+-      int sram_offset = 0;
+-
+       cpg->p.hw_processed_bytes += cpg->p.crypt_len;
+-      do {
+-              int dst_copy;
++      if (cpg->p.copy_back) {
++              int need_copy_len = cpg->p.crypt_len;
++              int sram_offset = 0;
++              do {
++                      int dst_copy;
++
++                      if (!cpg->p.sg_dst_left) {
++                              ret = sg_miter_next(&cpg->p.dst_sg_it);
++                              BUG_ON(!ret);
++                              cpg->p.sg_dst_left = cpg->p.dst_sg_it.length;
++                              cpg->p.dst_start = 0;
++                      }
+-              if (!cpg->p.sg_dst_left) {
+-                      ret = sg_miter_next(&cpg->p.dst_sg_it);
+-                      BUG_ON(!ret);
+-                      cpg->p.sg_dst_left = cpg->p.dst_sg_it.length;
+-                      cpg->p.dst_start = 0;
+-              }
++                      buf = cpg->p.dst_sg_it.addr;
++                      buf += cpg->p.dst_start;
+-              buf = cpg->p.dst_sg_it.addr;
+-              buf += cpg->p.dst_start;
++                      dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
+-              dst_copy = min(need_copy_len, cpg->p.sg_dst_left);
++                      memcpy(buf,
++                             cpg->sram + SRAM_DATA_OUT_START + sram_offset,
++                             dst_copy);
++                      sram_offset += dst_copy;
++                      cpg->p.sg_dst_left -= dst_copy;
++                      need_copy_len -= dst_copy;
++                      cpg->p.dst_start += dst_copy;
++              } while (need_copy_len > 0);
++      }
+-              memcpy(buf,
+-                     cpg->sram + SRAM_DATA_OUT_START + sram_offset,
+-                     dst_copy);
+-              sram_offset += dst_copy;
+-              cpg->p.sg_dst_left -= dst_copy;
+-              need_copy_len -= dst_copy;
+-              cpg->p.dst_start += dst_copy;
+-      } while (need_copy_len > 0);
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+@@ -336,6 +340,7 @@ static void mv_enqueue_new_req(struct ablkcipher_request *req)
+       p->hw_nbytes = req->nbytes;
+       p->complete = mv_crypto_algo_completion;
+       p->process = mv_process_current_q;
++      p->copy_back = 1;
+       num_sgs = count_sgs(req->src, req->nbytes);
+       sg_miter_start(&p->src_sg_it, req->src, num_sgs, SG_MITER_FROM_SG);
+From 0c5c6c4bae8fe9ae3d86b44c332eb1267df1ec99 Mon Sep 17 00:00:00 2001
+From: Uri Simchoni <uri@jdland.co.il>
+Date: Thu, 8 Apr 2010 19:33:26 +0300
+Subject: [PATCH] crypto: mv_cesa - Support processing of data from previous
+ requests
+
+Support processing of data from previous requests (as in hashing
+update/final requests).
+
+Signed-off-by: Uri Simchoni <uri@jdland.co.il>
+Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
+---
+ drivers/crypto/mv_cesa.c |    8 +++++---
+ 1 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
+index 49a2206..d0fb10e 100644
+--- a/drivers/crypto/mv_cesa.c
++++ b/drivers/crypto/mv_cesa.c
+@@ -184,10 +184,11 @@ static void copy_src_to_buf(struct req_progress *p, char *dbuf, int len)
+ static void setup_data_in(void)
+ {
+       struct req_progress *p = &cpg->p;
+-      p->crypt_len =
++      int data_in_sram =
+           min(p->hw_nbytes - p->hw_processed_bytes, cpg->max_req_size);
+-      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START,
+-                      p->crypt_len);
++      copy_src_to_buf(p, cpg->sram + SRAM_DATA_IN_START + p->crypt_len,
++                      data_in_sram - p->crypt_len);
++      p->crypt_len = data_in_sram;
+ }
+ static void mv_process_current_q(int first_block)
+@@ -298,6 +299,7 @@ static void dequeue_complete_req(void)
+               } while (need_copy_len > 0);
+       }
++      cpg->p.crypt_len = 0;
+       BUG_ON(cpg->eng_st != ENGINE_W_DEQUEUE);
+       if (cpg->p.hw_processed_bytes < cpg->p.hw_nbytes) {
+-- 
+1.7.6.5
diff --git a/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch b/src/patches/linux-2.6.32.11-option_add_vodafone_usbids.patch
deleted file mode 100644 (file)
index b102380..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -Naur linux-2.6.32.11.org/drivers/usb/serial/option.c linux-2.6.32.11/drivers/usb/serial/option.c
---- linux-2.6.32.11.org/drivers/usb/serial/option.c    2010-04-02 00:59:14.000000000 +0200
-+++ linux-2.6.32.11/drivers/usb/serial/option.c        2010-04-21 21:56:56.000000000 +0200
-@@ -165,6 +165,10 @@
- #define HUAWEI_PRODUCT_E143D                  0x143D
- #define HUAWEI_PRODUCT_E143E                  0x143E
- #define HUAWEI_PRODUCT_E143F                  0x143F
-+/* Vodafone K4505-H */
-+#define HUAWEI_PRODUCT_E1464                  0x1464
-+/* Vodafone K3765-H */
-+#define HUAWEI_PRODUCT_E1465                  0x1465
- #define HUAWEI_PRODUCT_E14AC                  0x14AC
- #define QUANTA_VENDOR_ID                      0x0408
-@@ -443,6 +447,8 @@
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143D, 0xff, 0xff, 0xff) },
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143E, 0xff, 0xff, 0xff) },
-       { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E143F, 0xff, 0xff, 0xff) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1464, 0xff, 0xff, 0xff) },
-+      { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1465, 0xff, 0xff, 0xff) },
-       { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E14AC) },
-       { USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_9508) },
-       { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, /* Novatel Merlin V640/XV620 */
diff --git a/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch b/src/patches/linux-2.6.32.45-arm_kirkwood_setups.patch
deleted file mode 100644 (file)
index 9db9c2e..0000000
+++ /dev/null
@@ -1,522 +0,0 @@
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/dreamplug-setup.c       1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/dreamplug-setup.c   2011-10-11 15:35:37.000000000 +0200
-@@ -0,0 +1,140 @@
-+/*
-+ * arch/arm/mach-kirkwood/dreamplug-setup.c
-+ *
-+ * Marvell DreamPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <linux/spi/flash.h>
-+#include <linux/spi/spi.h>
-+#include <linux/spi/orion_spi.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <plat/mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static const struct flash_platform_data dreamplug_spi_slave_data = {
-+      .type           = "mx25l1606e",
-+};
-+
-+static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
-+      {
-+              .modalias       = "m25p80",
-+              .platform_data  = &dreamplug_spi_slave_data,
-+              .irq            = -1,
-+              .max_speed_hz   = 50000000,
-+              .bus_num        = 0,
-+              .chip_select    = 0,
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data dreamplug_sata_data = {
-+      .n_ports        = 1,
-+};
-+
-+static struct mvsdio_platform_data dreamplug_mvsdio_data = {
-+      /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct gpio_led dreamplug_led_pins[] = {
-+      {
-+              .name                   = "dreamplug:blue:bluetooth",
-+              .gpio                   = 47,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "dreamplug:green:wlan",
-+              .gpio                   = 48,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "dreamplug:blue:wlanap",
-+              .gpio                   = 49,
-+              .active_low             = 1,
-+      },
-+};
-+
-+static struct gpio_led_platform_data dreamplug_led_data = {
-+      .leds           = dreamplug_led_pins,
-+      .num_leds       = ARRAY_SIZE(dreamplug_led_pins),
-+};
-+
-+static struct platform_device dreamplug_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &dreamplug_led_data,
-+      }
-+};
-+
-+static unsigned int dreamplug_mpp_config[] __initdata = {
-+      MPP0_SPI_SCn,
-+      MPP1_SPI_MOSI,
-+      MPP2_SPI_SCK,
-+      MPP3_SPI_MISO,
-+      MPP4_GPIO,
-+      MPP5_GPO,
-+      MPP7_GPO,
-+      MPP18_GPO,
-+      MPP19_GPO,
-+      MPP47_GPIO,     /* B_BLED */
-+      MPP48_GPIO,     /* W_GLED */
-+      MPP49_GPIO,     /* W_BLED */
-+      0
-+};
-+
-+static void __init dreamplug_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(dreamplug_mpp_config);
-+
-+      kirkwood_uart0_init();
-+
-+      spi_register_board_info(dreamplug_spi_slave_info,
-+                              ARRAY_SIZE(dreamplug_spi_slave_info));
-+
-+      kirkwood_spi_init();
-+      kirkwood_ehci_init();
-+
-+      kirkwood_ge00_init(&dreamplug_ge00_data);
-+      kirkwood_ge01_init(&dreamplug_ge01_data);
-+      kirkwood_sata_init(&dreamplug_sata_data);
-+      kirkwood_sdio_init(&dreamplug_mvsdio_data);
-+
-+      platform_device_register(&dreamplug_leds);
-+}
-+
-+MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
-+      /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
-+      .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
-+      .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
-+      .boot_params    = 0x00000100,
-+      .init_machine   = dreamplug_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/guruplug-setup.c        1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/guruplug-setup.c    2011-10-11 15:35:37.000000000 +0200
-@@ -0,0 +1,131 @@
-+/*
-+ * arch/arm/mach-kirkwood/guruplug-setup.c
-+ *
-+ * Marvell GuruPlug Reference Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include <plat/mvsdio.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+static struct mtd_partition guruplug_nand_parts[] = {
-+      {
-+              .name = "u-boot",
-+              .offset = 0,
-+              .size = SZ_1M
-+      }, {
-+              .name = "uImage",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = SZ_4M
-+      }, {
-+              .name = "root",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = MTDPART_SIZ_FULL
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
-+};
-+
-+static struct mv643xx_eth_platform_data guruplug_ge01_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
-+};
-+
-+static struct mv_sata_platform_data guruplug_sata_data = {
-+      .n_ports        = 1,
-+};
-+
-+static struct mvsdio_platform_data guruplug_mvsdio_data = {
-+      /* unfortunately the CD signal has not been connected */
-+};
-+
-+static struct gpio_led guruplug_led_pins[] = {
-+      {
-+              .name                   = "guruplug:red:health",
-+              .gpio                   = 46,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:green:health",
-+              .gpio                   = 47,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:red:wmode",
-+              .gpio                   = 48,
-+              .active_low             = 1,
-+      },
-+      {
-+              .name                   = "guruplug:green:wmode",
-+              .gpio                   = 49,
-+              .active_low             = 1,
-+      },
-+};
-+
-+static struct gpio_led_platform_data guruplug_led_data = {
-+      .leds           = guruplug_led_pins,
-+      .num_leds       = ARRAY_SIZE(guruplug_led_pins),
-+};
-+
-+static struct platform_device guruplug_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &guruplug_led_data,
-+      }
-+};
-+
-+static unsigned int guruplug_mpp_config[] __initdata = {
-+      MPP46_GPIO,     /* M_RLED */
-+      MPP47_GPIO,     /* M_GLED */
-+      MPP48_GPIO,     /* B_RLED */
-+      MPP49_GPIO,     /* B_GLED */
-+      0
-+};
-+
-+static void __init guruplug_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(guruplug_mpp_config);
-+
-+      kirkwood_uart0_init();
-+      kirkwood_nand_init(ARRAY_AND_SIZE(guruplug_nand_parts), 25);
-+
-+      kirkwood_ehci_init();
-+      kirkwood_ge00_init(&guruplug_ge00_data);
-+      kirkwood_ge01_init(&guruplug_ge01_data);
-+      kirkwood_sata_init(&guruplug_sata_data);
-+      kirkwood_sdio_init(&guruplug_mvsdio_data);
-+
-+      platform_device_register(&guruplug_leds);
-+}
-+
-+MACHINE_START(GURUPLUG, "Marvell GuruPlug Reference Board")
-+      /* Maintainer: Siddarth Gore <gores@marvell.com> */
-+      .phys_io        = KIRKWOOD_REGS_PHYS_BASE,
-+      .io_pg_offst    = ((KIRKWOOD_REGS_VIRT_BASE) >> 18) & 0xfffc,
-+      .boot_params    = 0x00000100,
-+      .init_machine   = guruplug_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Kconfig 2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Kconfig     2011-10-15 17:06:55.816070291 +0200
-@@ -32,6 +32,18 @@
-         Say 'Y' here if you want your kernel to support the
-         Marvell SheevaPlug Reference Board.
-+config MACH_DREAMPLUG
-+      bool "Marvell DreamPlug Reference Board"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        Marvell DreamPlug Reference Board.
-+
-+config MACH_GURUPLUG
-+      bool "Marvell GuruPlug Reference Board"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        Marvell GuruPlug Reference Board.
-+
- config MACH_TS219
-       bool "QNAP TS-119 and TS-219 Turbo NAS"
-       help
-@@ -44,6 +56,12 @@
-         Say 'Y' here if you want your kernel to support the
-         Marvell OpenRD Base Board.
-+config MACH_NAS6210
-+      bool "RaidSonic ICY BOX IB-NAS62x0"
-+      help
-+        Say 'Y' here if you want your kernel to support the
-+        RaidSonic ICY BOX IB-NAS62x0 device.
-+
- endmenu
- endif
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/Makefile        2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/Makefile    2011-10-15 17:07:16.346068829 +0200
-@@ -5,7 +5,10 @@
- obj-$(CONFIG_MACH_RD88F6281)          += rd88f6281-setup.o
- obj-$(CONFIG_MACH_MV88F6281GTW_GE)    += mv88f6281gtw_ge-setup.o
- obj-$(CONFIG_MACH_SHEEVAPLUG)         += sheevaplug-setup.o
-+obj-$(CONFIG_MACH_GURUPLUG)           += guruplug-setup.o
-+obj-$(CONFIG_MACH_DREAMPLUG)          += dreamplug-setup.o
- obj-$(CONFIG_MACH_TS219)              += ts219-setup.o
- obj-$(CONFIG_MACH_OPENRD_BASE)                += openrd_base-setup.o
-+obj-$(CONFIG_MACH_NAS6210)            += nas6210-setup.o
- obj-$(CONFIG_CPU_IDLE)                        += cpuidle.o
-diff -Naur linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c
---- linux-2.6.32.45.org/arch/arm/mach-kirkwood/nas6210-setup.c 1970-01-01 01:00:00.000000000 +0100
-+++ linux-2.6.32.45/arch/arm/mach-kirkwood/nas6210-setup.c     2011-10-16 09:57:35.268409525 +0200
-@@ -0,0 +1,180 @@
-+/*
-+ * arch/arm/mach-kirkwood/nas6210-setup.c
-+ *
-+ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
-+ *
-+ * This file is licensed under the terms of the GNU General Public
-+ * License version 2.  This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/platform_device.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/ata_platform.h>
-+#include <linux/mv643xx_eth.h>
-+#include <linux/gpio.h>
-+#include <linux/gpio_keys.h>
-+#include <linux/input.h>
-+#include <linux/leds.h>
-+#include <asm/mach-types.h>
-+#include <asm/mach/arch.h>
-+#include <mach/kirkwood.h>
-+#include "common.h"
-+#include "mpp.h"
-+
-+#define NAS6210_GPIO_POWER_OFF 24
-+
-+static struct mtd_partition nas6210_nand_parts[] = {
-+      {
-+              .name = "u-boot",
-+              .offset = 0,
-+              .size = SZ_1M
-+      }, {
-+              .name = "uImage",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = (SZ_1M*6)
-+      }, {
-+              .name = "root",
-+              .offset = MTDPART_OFS_NXTBLK,
-+              .size = MTDPART_SIZ_FULL
-+      },
-+};
-+
-+static struct mv643xx_eth_platform_data nas6210_ge00_data = {
-+      .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
-+};
-+
-+static struct mv_sata_platform_data nas6210_sata_data = {
-+      .n_ports        = 2,
-+};
-+
-+static struct gpio_led nas6210_led_pins[] = {
-+      {
-+              .name                   = "nas6210:green:power",
-+              .default_trigger        = "default-on",
-+              .gpio                   = 25,
-+              .active_low             = 0,
-+      },
-+      {
-+              .name                   = "nas6210:red:power",
-+              .default_trigger        = "none",
-+              .gpio                   = 22,
-+              .active_low             = 0,
-+      },
-+      {
-+              .name                   = "nas6210:red:usb_copy",
-+              .default_trigger        = "none",
-+              .gpio                   = 27,
-+              .active_low             = 0,
-+      },
-+};
-+
-+static struct gpio_led_platform_data nas6210_led_data = {
-+      .leds           = nas6210_led_pins,
-+      .num_leds       = ARRAY_SIZE(nas6210_led_pins),
-+};
-+
-+static struct platform_device nas6210_leds = {
-+      .name   = "leds-gpio",
-+      .id     = -1,
-+      .dev    = {
-+              .platform_data  = &nas6210_led_data,
-+      }
-+};
-+
-+static struct gpio_keys_button nas6210_buttons[] = {
-+      {
-+              .code           = KEY_COPY,
-+              .gpio           = 29,
-+              .desc           = "USB Copy",
-+              .active_low     = 1,
-+      },
-+      {
-+              .code           = KEY_RESTART,
-+              .gpio           = 28,
-+              .desc           = "Reset",
-+              .active_low     = 1,
-+      },
-+};
-+
-+static struct gpio_keys_platform_data nas6210_button_data = {
-+      .buttons        = nas6210_buttons,
-+      .nbuttons       = ARRAY_SIZE(nas6210_buttons),
-+};
-+
-+static struct platform_device nas6210_button_device = {
-+      .name           = "gpio-keys",
-+      .id             = -1,
-+      .num_resources  = 0,
-+      .dev            = {
-+              .platform_data  = &nas6210_button_data,
-+      }
-+};
-+
-+static unsigned int nas6210_mpp_config[] __initdata = {
-+      MPP0_NF_IO2,
-+      MPP1_NF_IO3,
-+      MPP2_NF_IO4,
-+      MPP3_NF_IO5,
-+      MPP4_NF_IO6,
-+      MPP5_NF_IO7,
-+      MPP18_NF_IO0,
-+      MPP19_NF_IO1,
-+      MPP22_GPIO,     /* Power LED red */
-+      MPP24_GPIO,     /* Power off */
-+      MPP25_GPIO,     /* Power LED green */
-+      MPP27_GPIO,    /* USB transfer LED */
-+      MPP28_GPIO,    /* Reset button */
-+      MPP29_GPIO,    /* USB Copy button */
-+      0
-+};
-+
-+void nas6210_power_off(void)
-+{
-+      gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
-+      while(1);
-+}
-+
-+static void __init nas6210_init(void)
-+{
-+      /*
-+       * Basic setup. Needs to be called early.
-+       */
-+      kirkwood_init();
-+      kirkwood_mpp_conf(nas6210_mpp_config);
-+
-+      kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
-+      kirkwood_ehci_init();
-+      kirkwood_ge00_init(&nas6210_ge00_data);
-+      kirkwood_sata_init(&nas6210_sata_data);
-+      kirkwood_uart0_init();
-+      platform_device_register(&nas6210_leds);
-+      platform_device_register(&nas6210_button_device);
-+
-+      if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
-+              gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
-+                      pm_power_off = nas6210_power_off;
-+
-+      else
-+              pr_err("nas6210: failed to configure power-off gpio pin");
-+}
-+
-+static int __init nas6210_pci_init(void)
-+{
-+      if (machine_is_nas6210()) {
-+              kirkwood_pcie_init();
-+      }
-+      return 0;
-+}
-+subsys_initcall(nas6210_pci_init);
-+
-+MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
-+      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
-+      .boot_params    = 0x00000100,
-+      .init_machine   = nas6210_init,
-+      .map_io         = kirkwood_map_io,
-+      .init_irq       = kirkwood_init_irq,
-+      .timer          = &kirkwood_timer,
-+MACHINE_END
-diff -Naur linux-2.6.32.45.org/arch/arm/tools/mach-types linux-2.6.32.45/arch/arm/tools/mach-types
---- linux-2.6.32.45.org/arch/arm/tools/mach-types      2011-08-16 03:57:37.000000000 +0200
-+++ linux-2.6.32.45/arch/arm/tools/mach-types  2011-10-15 17:05:46.486069811 +0200
-@@ -2536,3 +2536,6 @@
- mxt_td60              MACH_MXT_TD60           MXT_TD60                2550
- esyx                  MACH_ESYX               ESYX                    2551
- bulldog                       MACH_BULLDOG            BULLDOG                 2553
-+guruplug              MACH_GURUPLUG           GURUPLUG                2601
-+dreamplug             MACH_DREAMPLUG          DREAMPLUG               2659
-+nas6210                       MACH_NAS6210            NAS6210                 3104
diff --git a/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch b/src/patches/linux-2.x-smsc95xx-add_mac_addr_param.patch
new file mode 100644 (file)
index 0000000..2aea1d1
--- /dev/null
@@ -0,0 +1,149 @@
+Added smsc95xx.macaddr module parameter to allow the user to
+change the MAC address on boot if there was no MAC on the EEPROM.
+
+The parameter take the MAC address in 01:23:45:67:89:ab format and
+needs to be locally assigned. The MAC get assigned to the first
+smsc95xx device with no MAC on EEPROM (which resulted in a random
+MAC before). If there is more than one device without MAC on
+EEPROM and the user needs set the MAC to a specific device, it
+can be done by attaching the netdev name (e.g. eth0) to the
+smsc95xx.macaddr parameter seperated by a ';' as e.g. in
+'01:23:45:67:89:ab;eth0'
+
+This allows e.g. u-boot to pass on PandaBoard or BeagleBoard
+the by u-boot generated static MAC address to the kernel device
+to ensure the MAC stays the same during the whole boot process.
+
+Signed-off-by: Danny Kukawka <danny.kukawka@...>
+---
+ drivers/net/usb/smsc95xx.c |   85 ++++++++++++++++++++++++++++++++++++++++++--
+ 1 files changed, 82 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
+index d45520e..3198c7d 100644
+--- a/drivers/net/usb/smsc95xx.c
++++ b/drivers/net/usb/smsc95xx.c
+@@ -52,6 +52,8 @@ struct smsc95xx_priv {
+       u32 hash_hi;
+       u32 hash_lo;
+       spinlock_t mac_cr_lock;
++      bool mac_set_from_param;
++      bool mac_is_random;
+ };
+
+ struct usb_context {
+@@ -63,6 +65,11 @@ static bool turbo_mode = true;
+ module_param(turbo_mode, bool, 0644);
+ MODULE_PARM_DESC(turbo_mode, "Enable multiple frames per Rx transaction");
+
++static char *macaddr = ":";
++static bool set_macaddr = false;
++module_param(macaddr, charp, 0);
++MODULE_PARM_DESC(macaddr, " macaddr=macaddr;[tgt-netdevname] (Set MAC only if there is a device without MAC on EEPROM)");
++
+ static int smsc95xx_read_reg(struct usbnet *dev, u32 index, u32 *data)
+ {
+       u32 *buf = kmalloc(4, GFP_KERNEL);
+@@ -601,8 +608,71 @@ static int smsc95xx_ioctl(struct net_device *netdev, struct ifreq *rq, int cmd)
+       return generic_mii_ioctl(&dev->mii, if_mii(rq), cmd, NULL);
+ }
+
++/* set mac address from the macaddr module parameter */
++static int smsc95xx_init_mac_address_from_param(struct usbnet *dev)
++{
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
++      int i, parsed, ret;
++      u8 mtbl[ETH_ALEN];
++      char *input = NULL;
++      char *config_param = NULL;
++      char *netdev_name = NULL;       
++
++      parsed = 0;
++      ret = 0;
++
++      input = kstrdup(macaddr, GFP_KERNEL);
++
++      if (!input)
++              return -ENOMEM;
++
++      if (strlen(input) >= 17) {
++              while ((config_param = strsep(&input, ";"))) {
++                      if (parsed == 0) {
++                              if (!mac_pton(config_param, mtbl)) {
++                                      ret = 1;
++                                      goto parse_err;
++                              }
++                      } else {
++                              netdev_name = config_param;                             
++                      }
++                      parsed ++;
++              }
++
++              if (parsed && is_valid_ether_addr(mtbl)) {
++                      if (netdev_name && strlen(netdev_name)) {
++                              if (strcmp(netdev_name, dev->net->name) != 0) {
++                                      netif_dbg(dev, ifup, dev->net, "requested devname (%s) didn't match (%s)\n", netdev_name, dev->net->name);
++                                      ret = 1;
++                                      goto out;
++                              }
++                      }
++
++                      for (i = 0; i < ETH_ALEN; i++) {
++                              dev->net->dev_addr[i] = mtbl[i];
++                      }
++
++                      netif_dbg(dev, ifup, dev->net, "set valid MAC address from smsc95xx.macaddr\n");
++                      set_macaddr = true;
++                      pdata->mac_set_from_param = true;
++                      pdata->mac_is_random = false;
++                      goto out;
++              }
++      } 
++
++parse_err:
++      netif_dbg(dev, ifup, dev->net, "failed to parse (valid) MAC from smsc95xx.macaddr\n");
++      set_macaddr = true;
++out:
++      if (input)
++              kfree(input);
++      return ret;
++}
++
+ static void smsc95xx_init_mac_address(struct usbnet *dev)
+ {
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);   
++
+       /* try reading mac address from EEPROM */
+       if (smsc95xx_read_eeprom(dev, EEPROM_MAC_OFFSET, ETH_ALEN,
+                       dev->net->dev_addr) == 0) {
+@@ -615,16 +685,25 @@ static void smsc95xx_init_mac_address(struct usbnet *dev)
+
+       /* no eeprom, or eeprom values are invalid. generate random MAC */
+       random_ether_addr(dev->net->dev_addr);
++      pdata->mac_is_random = true;
+       netif_dbg(dev, ifup, dev->net, "MAC address set to random_ether_addr\n");
+ }
+
+ static int smsc95xx_set_mac_address(struct usbnet *dev)
+ {
+-      u32 addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 |
+-              dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24;
+-      u32 addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8;
++      struct smsc95xx_priv *pdata = (struct smsc95xx_priv *)(dev->data[0]);
++      u32 addr_lo, addr_hi;
+       int ret;
+
++      if (pdata->mac_is_random && !pdata->mac_set_from_param && !set_macaddr) {
++              netif_dbg(dev, ifup, dev->net, "random MAC address, not yet set from smsc95xx.macaddr, try to set it ...\n");
++              smsc95xx_init_mac_address_from_param(dev);
++      }
++
++      addr_lo = dev->net->dev_addr[0] | dev->net->dev_addr[1] << 8 |
++              dev->net->dev_addr[2] << 16 | dev->net->dev_addr[3] << 24;
++      addr_hi = dev->net->dev_addr[4] | dev->net->dev_addr[5] << 8;
++
+       ret = smsc95xx_write_reg(dev, ADDRL, addr_lo);
+       if (ret < 0) {
+               netdev_warn(dev->net, "Failed to write ADDRL: %d\n", ret);
+--
+
diff --git a/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch b/src/patches/linux-3.0-ipp2p-0.8.2-ipfire.patch
new file mode 100644 (file)
index 0000000..34cba84
--- /dev/null
@@ -0,0 +1,1039 @@
+diff -Naur linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h
+--- linux-3.0.24.org/include/linux/netfilter_ipv4/ipt_ipp2p.h  1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/include/linux/netfilter_ipv4/ipt_ipp2p.h      2012-03-20 09:29:20.616541362 +0100
+@@ -0,0 +1,31 @@
++#ifndef __IPT_IPP2P_H
++#define __IPT_IPP2P_H
++#define IPP2P_VERSION "0.8.2-ipfire"
++
++struct ipt_p2p_info {
++    int cmd;
++    int debug;
++};
++
++#endif //__IPT_IPP2P_H
++
++#define SHORT_HAND_IPP2P      1 /* --ipp2p switch*/
++//#define SHORT_HAND_DATA             4 /* --ipp2p-data switch*/
++#define SHORT_HAND_NONE               5 /* no short hand*/
++
++#define IPP2P_EDK             (1 << 1)
++#define IPP2P_DATA_KAZAA      (1 << 2)
++#define IPP2P_DATA_EDK                (1 << 3)
++#define IPP2P_DATA_DC         (1 << 4)
++#define IPP2P_DC              (1 << 5)
++#define IPP2P_DATA_GNU                (1 << 6)
++#define IPP2P_GNU             (1 << 7)
++#define IPP2P_KAZAA           (1 << 8)
++#define IPP2P_BIT             (1 << 9)
++#define IPP2P_APPLE           (1 << 10)
++#define IPP2P_SOUL            (1 << 11)
++#define IPP2P_WINMX           (1 << 12)
++#define IPP2P_ARES            (1 << 13)
++#define IPP2P_MUTE            (1 << 14)
++#define IPP2P_WASTE           (1 << 15)
++#define IPP2P_XDCC            (1 << 16)
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c
+--- linux-3.0.24.org/net/ipv4/netfilter/ipt_ipp2p.c    1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/ipt_ipp2p.c        2012-03-20 11:26:38.593101443 +0100
+@@ -0,0 +1,970 @@
++#if defined(MODVERSIONS)
++#include <linux/modversions.h>
++#endif
++#include <linux/module.h>
++#include <linux/version.h>
++#include <linux/netfilter_ipv4/ip_tables.h>
++#include <linux/netfilter_ipv4/ipt_ipp2p.h>
++#include <net/tcp.h>
++#include <net/udp.h>
++
++#define get_u8(X,O)  (*(__u8 *)(X + O))
++#define get_u16(X,O)  (*(__u16 *)(X + O))
++#define get_u32(X,O)  (*(__u32 *)(X + O))
++
++MODULE_AUTHOR("Eicke Friedrich/Klaus Degner <ipp2p@ipp2p.org>");
++MODULE_DESCRIPTION("An extension to iptables to identify P2P traffic.");
++MODULE_LICENSE("GPL");
++
++
++/*Search for UDP eDonkey/eMule/Kad commands*/
++int
++udp_search_edk (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    t += 8;
++
++      switch (t[0]) {
++              case 0xe3: 
++              {       /*edonkey*/
++                      switch (t[1]) 
++                      {
++                              /* client -> server status request */
++                              case 0x96: 
++                                      if (packet_len == 14) return ((IPP2P_EDK * 100) + 50);
++                                      break;
++                              /* server -> client status request */
++                              case 0x97: if (packet_len == 42) return ((IPP2P_EDK * 100) + 51);
++                                      break;
++                                              /* server description request */
++                                              /* e3 2a ff f0 .. | size == 6 */
++                              case 0xa2: if ( (packet_len == 14) && ( get_u16(t,2) == __constant_htons(0xfff0) ) ) return ((IPP2P_EDK * 100) + 52);
++                                      break;
++                                              /* server description response */
++                                              /* e3 a3 ff f0 ..  | size > 40 && size < 200 */
++                              //case 0xa3: return ((IPP2P_EDK * 100) + 53);
++                              //      break;
++                              case 0x9a: if (packet_len==26) return ((IPP2P_EDK * 100) + 54);
++                                      break;
++
++                              case 0x92: if (packet_len==18) return ((IPP2P_EDK * 100) + 55);
++                                      break;
++                      }
++                      break;
++              }
++              case 0xe4: 
++              {
++                      switch (t[1]) 
++                      {
++                                              /* e4 20 .. | size == 43 */
++                              case 0x20: if ((packet_len == 43) && (t[2] != 0x00) && (t[34] != 0x00)) return ((IPP2P_EDK * 100) + 60);
++                                      break;
++                                              /* e4 00 .. 00 | size == 35 ? */
++                              case 0x00: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 61);
++                                      break;
++                                              /* e4 10 .. 00 | size == 35 ? */
++                              case 0x10: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 62);
++                                      break;
++                                              /* e4 18 .. 00 | size == 35 ? */
++                              case 0x18: if ((packet_len == 35) && (t[26] == 0x00)) return ((IPP2P_EDK * 100) + 63);
++                                      break;
++                                              /* e4 52 .. | size = 44 */
++                              case 0x52: if (packet_len == 44 ) return ((IPP2P_EDK * 100) + 64);
++                                      break;
++                                              /* e4 58 .. | size == 6 */
++                              case 0x58: if (packet_len == 14 ) return ((IPP2P_EDK * 100) + 65);
++                                      break;
++                                              /* e4 59 .. | size == 2 */
++                              case 0x59: if (packet_len == 10 )return ((IPP2P_EDK * 100) + 66);
++                                      break;
++                                      /* e4 28 .. | packet_len == 52,77,102,127... */
++                              case 0x28: if (((packet_len-52) % 25) == 0) return ((IPP2P_EDK * 100) + 67);
++                                      break;
++                                      /* e4 50 xx xx | size == 4 */
++                              case 0x50: if (packet_len == 12) return ((IPP2P_EDK * 100) + 68);
++                                      break;
++                                      /* e4 40 xx xx | size == 48 */
++                              case 0x40: if (packet_len == 56) return ((IPP2P_EDK * 100) + 69);
++                                      break;
++                      }
++                      break;
++              }
++      } /* end of switch (t[0]) */
++    return 0;
++}/*udp_search_edk*/
++
++
++/*Search for UDP Gnutella commands*/
++int
++udp_search_gnu (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    t += 8;
++    
++    if (memcmp(t, "GND", 3) == 0) return ((IPP2P_GNU * 100) + 51);
++    if (memcmp(t, "GNUTELLA ", 9) == 0) return ((IPP2P_GNU * 100) + 52);
++    return 0;
++}/*udp_search_gnu*/
++
++
++/*Search for UDP KaZaA commands*/
++int
++udp_search_kazaa (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    
++    if (t[packet_len-1] == 0x00){
++      t += (packet_len - 6);
++      if (memcmp(t, "KaZaA", 5) == 0) return (IPP2P_KAZAA * 100 +50);
++    }
++    
++    return 0;
++}/*udp_search_kazaa*/
++
++/*Search for UDP DirectConnect commands*/
++int
++udp_search_directconnect (unsigned char *haystack, int packet_len)
++{
++    unsigned char *t = haystack;
++    if ((*(t + 8) == 0x24) && (*(t + packet_len - 1) == 0x7c)) {
++      t+=8;
++      if (memcmp(t, "SR ", 3) == 0)                   return ((IPP2P_DC * 100) + 60);
++      if (memcmp(t, "Ping ", 5) == 0)                 return ((IPP2P_DC * 100) + 61);
++    }
++    return 0;
++}/*udp_search_directconnect*/
++
++
++
++/*Search for UDP BitTorrent commands*/
++int
++udp_search_bit (unsigned char *haystack, int packet_len)
++{
++      switch(packet_len)
++      {
++              case 24:
++                      /* ^ 00 00 04 17 27 10 19 80 */
++                      if ((ntohl(get_u32(haystack, 8)) == 0x00000417) && (ntohl(get_u32(haystack, 12)) == 0x27101980)) 
++                              return (IPP2P_BIT * 100 + 50);
++                      break;
++              case 44:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000400) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 51);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000400))
++                              return (IPP2P_BIT * 100 + 61);
++                      break;
++              case 65:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000404) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 52);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000404))
++                              return (IPP2P_BIT * 100 + 62);
++                      break;
++              case 67:
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000406) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 53);
++                      if (get_u32(haystack, 16) == __constant_htonl(0x00000406))
++                              return (IPP2P_BIT * 100 + 63);
++                      break;
++              case 211:
++                      if (get_u32(haystack, 8) == __constant_htonl(0x00000405)) 
++                              return (IPP2P_BIT * 100 + 54);
++                      break;
++              case 29:
++                      if ((get_u32(haystack, 8) == __constant_htonl(0x00000401))) 
++                              return (IPP2P_BIT * 100 + 55);
++                      break;
++              case 52:
++                      if (get_u32(haystack,8)  == __constant_htonl(0x00000827) &&
++                      get_u32(haystack,12) == __constant_htonl(0x37502950))
++                              return (IPP2P_BIT * 100 + 80);
++                      break;
++              default:
++                      /* this packet does not have a constant size */
++                      if (packet_len >= 40 && get_u32(haystack, 16) == __constant_htonl(0x00000402) && get_u32(haystack, 36) == __constant_htonl(0x00000104)) 
++                              return (IPP2P_BIT * 100 + 56);
++                      break;
++      }
++    
++      /* some extra-bitcomet rules:
++      * "d1:" [a|r] "d2:id20:"
++      */
++      if (packet_len > 30 && get_u8(haystack, 8) == 'd' && get_u8(haystack, 9) == '1' && get_u8(haystack, 10) == ':' )
++      {
++              if (get_u8(haystack, 11) == 'a' || get_u8(haystack, 11) == 'r')
++              {
++                      if (memcmp(haystack+12,"d2:id20:",8)==0)
++                              return (IPP2P_BIT * 100 + 57);
++              }
++      }
++    
++#if 0
++      /* bitlord rules */
++      /* packetlen must be bigger than 40 */
++      /* first 4 bytes are zero */
++      if (packet_len > 40 && get_u32(haystack, 8) == 0x00000000)
++      {
++              /* first rule: 00 00 00 00 01 00 00 xx xx xx xx 00 00 00 00*/
++              if (get_u32(haystack, 12) == 0x00000000 && 
++                  get_u32(haystack, 16) == 0x00010000 &&
++                  get_u32(haystack, 24) == 0x00000000 )
++                      return (IPP2P_BIT * 100 + 71);
++                      
++              /* 00 01 00 00 0d 00 00 xx xx xx xx 00 00 00 00*/
++              if (get_u32(haystack, 12) == 0x00000001 && 
++                  get_u32(haystack, 16) == 0x000d0000 &&
++                  get_u32(haystack, 24) == 0x00000000 )
++                      return (IPP2P_BIT * 100 + 71);
++              
++                  
++      }
++#endif
++
++    return 0;
++}/*udp_search_bit*/
++
++
++
++/*Search for Ares commands*/
++//#define IPP2P_DEBUG_ARES
++int
++search_ares (const unsigned char *payload, const u16 plen)
++//int search_ares (unsigned char *haystack, int packet_len, int head_len)
++{
++//    const unsigned char *t = haystack + head_len;
++      
++      /* all ares packets start with  */
++      if (payload[1] == 0 && (plen - payload[0]) == 3)
++      {
++              switch (payload[2])
++              {
++                      case 0x5a:
++                              /* ares connect */
++                              if ( plen == 6 && payload[5] == 0x05 ) return ((IPP2P_ARES * 100) + 1);
++                              break;
++                      case 0x09:
++                              /* ares search, min 3 chars --> 14 bytes
++                               * lets define a search can be up to 30 chars --> max 34 bytes
++                               */
++                              if ( plen >= 14 && plen <= 34 ) return ((IPP2P_ARES * 100) + 1);
++                              break;
++#ifdef IPP2P_DEBUG_ARES
++                      default:
++                      printk(KERN_DEBUG "Unknown Ares command %x recognized, len: %u \n", (unsigned int) payload[2],plen);
++#endif /* IPP2P_DEBUG_ARES */
++              }
++      }
++
++#if 0         
++      /* found connect packet: 03 00 5a 04 03 05 */
++      /* new version ares 1.8: 03 00 5a xx xx 05 */
++    if ((plen) == 6){ /* possible connect command*/
++      if ((payload[0] == 0x03) && (payload[1] == 0x00) && (payload[2] == 0x5a) && (payload[5] == 0x05))
++          return ((IPP2P_ARES * 100) + 1);
++    }
++    if ((plen) == 60){        /* possible download command*/
++      if ((payload[59] == 0x0a) && (payload[58] == 0x0a)){
++          if (memcmp(t, "PUSH SHA1:", 10) == 0) /* found download command */
++              return ((IPP2P_ARES * 100) + 2);
++      }
++    }
++#endif
++
++    return 0;
++} /*search_ares*/
++
++/*Search for SoulSeek commands*/
++int
++search_soul (const unsigned char *payload, const u16 plen)
++{
++//#define IPP2P_DEBUG_SOUL
++    /* match: xx xx xx xx | xx = sizeof(payload) - 4 */
++    if (get_u32(payload, 0) == (plen - 4)){
++      const __u32 m=get_u32(payload, 4);
++      /* match 00 yy yy 00, yy can be everything */
++        if ( get_u8(payload, 4) == 0x00 && get_u8(payload, 7) == 0x00 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "0: Soulseek command 0x%x recognized\n",get_u32(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 1);
++      }
++      
++        /* next match: 01 yy 00 00 | yy can be everything */
++        if ( get_u8(payload, 4) == 0x01 && get_u16(payload, 6) == 0x0000 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "1: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 2);
++      }
++      
++      /* other soulseek commandos are: 1-5,7,9,13-18,22,23,26,28,35-37,40-46,50,51,60,62-69,91,92,1001 */
++      /* try to do this in an intelligent way */
++      /* get all small commandos */
++      switch(m)
++      {
++              case 7:
++              case 9:
++              case 22:
++              case 23:
++              case 26:
++              case 28:
++              case 50:
++              case 51:
++              case 60:
++              case 91:
++              case 92:
++              case 1001:
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "2: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 3);
++      }
++      
++      if (m > 0 && m < 6 ) 
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "3: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 4);
++      }
++      if (m > 12 && m < 19 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "4: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 5);
++      }
++
++      if (m > 34 && m < 38 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "5: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 6);
++      }
++
++      if (m > 39 && m < 47 )
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "6: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 7);
++      }
++
++      if (m > 61 && m < 70 ) 
++      {
++#ifdef IPP2P_DEBUG_SOUL
++              printk(KERN_DEBUG "7: Soulseek command 0x%x recognized\n",get_u16(payload, 4));
++#endif /* IPP2P_DEBUG_SOUL */
++              return ((IPP2P_SOUL * 100) + 8);
++      }
++
++#ifdef IPP2P_DEBUG_SOUL
++      printk(KERN_DEBUG "unknown SOULSEEK command: 0x%x, first 16 bit: 0x%x, first 8 bit: 0x%x ,soulseek ???\n",get_u32(payload, 4),get_u16(payload, 4) >> 16,get_u8(payload, 4) >> 24);
++#endif /* IPP2P_DEBUG_SOUL */
++    }
++      
++      /* match 14 00 00 00 01 yy 00 00 00 STRING(YY) 01 00 00 00 00 46|50 00 00 00 00 */
++      /* without size at the beginning !!! */
++      if ( get_u32(payload, 0) == 0x14 && get_u8(payload, 4) == 0x01 )
++      {
++              __u32 y=get_u32(payload, 5);
++              /* we need 19 chars + string */
++              if ( (y + 19) <= (plen) )
++              {
++                      const unsigned char *w=payload+9+y;
++                      if (get_u32(w, 0) == 0x01 && ( get_u16(w, 4) == 0x4600 || get_u16(w, 4) == 0x5000) && get_u32(w, 6) == 0x00);
++#ifdef IPP2P_DEBUG_SOUL
++                      printk(KERN_DEBUG "Soulssek special client command recognized\n");
++#endif /* IPP2P_DEBUG_SOUL */
++                      return ((IPP2P_SOUL * 100) + 9);
++              }
++      }
++    return 0;
++}
++
++
++/*Search for WinMX commands*/
++int
++search_winmx (const unsigned char *payload, const u16 plen)
++{
++//#define IPP2P_DEBUG_WINMX
++    if (((plen) == 4) && (memcmp(payload, "SEND", 4) == 0))  return ((IPP2P_WINMX * 100) + 1);
++    if (((plen) == 3) && (memcmp(payload, "GET", 3) == 0))  return ((IPP2P_WINMX * 100) + 2);
++    //if (packet_len < (head_len + 10)) return 0;
++    if (plen < 10) return 0;
++    
++    if ((memcmp(payload, "SEND", 4) == 0) || (memcmp(payload, "GET", 3) == 0)){
++        u16 c=4;
++        const u16 end=plen-2;
++        u8 count=0;
++        while (c < end)
++        {
++              if (payload[c]== 0x20 && payload[c+1] == 0x22)
++              {
++                      c++;
++                      count++;
++                      if (count>=2) return ((IPP2P_WINMX * 100) + 3);
++              }
++              c++;
++        }
++    }
++    
++    if ( plen == 149 && payload[0] == '8' )
++    {
++#ifdef IPP2P_DEBUG_WINMX
++      printk(KERN_INFO "maybe WinMX\n");
++#endif
++      if (get_u32(payload,17) == 0 && get_u32(payload,21) == 0 && get_u32(payload,25) == 0 &&
++//                get_u32(payload,33) == __constant_htonl(0x71182b1a) && get_u32(payload,37) == __constant_htonl(0x05050000) &&
++//                get_u32(payload,133) == __constant_htonl(0x31097edf) && get_u32(payload,145) == __constant_htonl(0xdcb8f792))
++          get_u16(payload,39) == 0 && get_u16(payload,135) == __constant_htons(0x7edf) && get_u16(payload,147) == __constant_htons(0xf792))
++          
++      {
++#ifdef IPP2P_DEBUG_WINMX
++              printk(KERN_INFO "got WinMX\n");
++#endif
++              return ((IPP2P_WINMX * 100) + 4);
++      }
++    }
++    return 0;
++} /*search_winmx*/
++
++
++/*Search for appleJuice commands*/
++int
++search_apple (const unsigned char *payload, const u16 plen)
++{
++    if ( (plen > 7) && (payload[6] == 0x0d) && (payload[7] == 0x0a) && (memcmp(payload, "ajprot", 6) == 0))  return (IPP2P_APPLE * 100);
++    
++    return 0;
++}
++
++
++/*Search for BitTorrent commands*/
++int
++search_bittorrent (const unsigned char *payload, const u16 plen)
++{
++    if (plen > 20)
++    {
++      /* test for match 0x13+"BitTorrent protocol" */
++      if (payload[0] == 0x13) 
++      {
++              if (memcmp(payload+1, "BitTorrent protocol", 19) == 0) return (IPP2P_BIT * 100);
++      }
++      
++      /* get tracker commandos, all starts with GET /
++      * then it can follow: scrape| announce
++      * and then ?hash_info=
++      */
++      if (memcmp(payload,"GET /",5) == 0)
++      {
++              /* message scrape */
++              if ( memcmp(payload+5,"scrape?info_hash=",17)==0 ) return (IPP2P_BIT * 100 + 1);
++              /* message announce */
++              if ( memcmp(payload+5,"announce?info_hash=",19)==0 ) return (IPP2P_BIT * 100 + 2);
++      }
++    } 
++    else 
++    {
++      /* bitcomet encryptes the first packet, so we have to detect another 
++       * one later in the flow */
++       /* first try failed, too many missdetections */
++      //if ( size == 5 && get_u32(t,0) == __constant_htonl(1) && t[4] < 3) return (IPP2P_BIT * 100 + 3);
++      
++      /* second try: block request packets */
++      if ( plen == 17 && get_u32(payload,0) == __constant_htonl(0x0d) && payload[4] == 0x06 && get_u32(payload,13) == __constant_htonl(0x4000) ) return (IPP2P_BIT * 100 + 3);
++    }
++
++    return 0;
++}
++
++
++
++/*check for Kazaa get command*/
++int
++search_kazaa (const unsigned char *payload, const u16 plen)
++
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a) && memcmp(payload, "GET /.hash=", 11) == 0)
++      return (IPP2P_DATA_KAZAA * 100);
++
++    return 0;
++}
++
++
++/*check for gnutella get command*/
++int
++search_gnu (const unsigned char *payload, const u16 plen)
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++      if (memcmp(payload, "GET /get/", 9) == 0)       return ((IPP2P_DATA_GNU * 100) + 1);
++      if (memcmp(payload, "GET /uri-res/", 13) == 0) return ((IPP2P_DATA_GNU * 100) + 2); 
++    }
++    return 0;
++}
++
++
++/*check for gnutella get commands and other typical data*/
++int
++search_all_gnu (const unsigned char *payload, const u16 plen)
++{
++    
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++      
++      if (memcmp(payload, "GNUTELLA CONNECT/", 17) == 0) return ((IPP2P_GNU * 100) + 1);
++      if (memcmp(payload, "GNUTELLA/", 9) == 0) return ((IPP2P_GNU * 100) + 2);    
++    
++    
++      if ((memcmp(payload, "GET /get/", 9) == 0) || (memcmp(payload, "GET /uri-res/", 13) == 0))
++      {        
++              u16 c=8;
++              const u16 end=plen-22;
++              while (c < end) {
++                      if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Gnutella-", 11) == 0) || (memcmp(&payload[c+2], "X-Queue:", 8) == 0))) 
++                              return ((IPP2P_GNU * 100) + 3);
++                      c++;
++              }
++      }
++    }
++    return 0;
++}
++
++
++/*check for KaZaA download commands and other typical data*/
++int
++search_all_kazaa (const unsigned char *payload, const u16 plen)
++{
++    if ((payload[plen-2] == 0x0d) && (payload[plen-1] == 0x0a))
++    {
++
++      if (memcmp(payload, "GIVE ", 5) == 0) return ((IPP2P_KAZAA * 100) + 1);
++    
++      if (memcmp(payload, "GET /", 5) == 0) {
++              u16 c = 8;
++              const u16 end=plen-22;
++              while (c < end) {
++                      if ( payload[c] == 0x0a && payload[c+1] == 0x0d && ((memcmp(&payload[c+2], "X-Kazaa-Username: ", 18) == 0) || (memcmp(&payload[c+2], "User-Agent: PeerEnabler/", 24) == 0)))
++                              return ((IPP2P_KAZAA * 100) + 2);
++                      c++;
++              }
++      }
++    }
++    return 0;
++}
++
++/*fast check for edonkey file segment transfer command*/
++int
++search_edk (const unsigned char *payload, const u16 plen)
++{
++    if (payload[0] != 0xe3) 
++      return 0;
++    else {
++      if (payload[5] == 0x47) 
++          return (IPP2P_DATA_EDK * 100);
++      else    
++          return 0;
++    }
++}
++
++
++
++/*intensive but slower search for some edonkey packets including size-check*/
++int
++search_all_edk (const unsigned char *payload, const u16 plen)
++{
++    if (payload[0] != 0xe3) 
++      return 0;
++    else {
++      //t += head_len;        
++      const u16 cmd = get_u16(payload, 1);
++      if (cmd == (plen - 5)) {
++          switch (payload[5]) {
++              case 0x01: return ((IPP2P_EDK * 100) + 1);      /*Client: hello or Server:hello*/
++              case 0x4c: return ((IPP2P_EDK * 100) + 9);      /*Client: Hello-Answer*/
++          }
++      }
++      return 0;
++     }
++}
++
++
++/*fast check for Direct Connect send command*/
++int
++search_dc (const unsigned char *payload, const u16 plen)
++{
++
++    if (payload[0] != 0x24 ) 
++      return 0;
++    else {
++      if (memcmp(&payload[1], "Send|", 5) == 0)
++          return (IPP2P_DATA_DC * 100);
++      else
++          return 0;
++    } 
++
++}
++
++
++/*intensive but slower check for all direct connect packets*/
++int
++search_all_dc (const unsigned char *payload, const u16 plen)
++{
++//    unsigned char *t = haystack;
++
++    if (payload[0] == 0x24 && payload[plen-1] == 0x7c) 
++    {
++      const unsigned char *t=&payload[1];
++              /* Client-Hub-Protocol */
++      if (memcmp(t, "Lock ", 5) == 0)                 return ((IPP2P_DC * 100) + 1);
++      /* Client-Client-Protocol, some are already recognized by client-hub (like lock) */
++      if (memcmp(t, "MyNick ", 7) == 0)               return ((IPP2P_DC * 100) + 38); 
++    }
++    return 0;
++}
++
++/*check for mute*/
++int
++search_mute (const unsigned char *payload, const u16 plen)
++{
++      if ( plen == 209 || plen == 345 || plen == 473 || plen == 609 || plen == 1121 )
++      {
++              //printk(KERN_DEBUG "size hit: %u",size);
++              if (memcmp(payload,"PublicKey: ",11) == 0 )
++              { 
++                      return ((IPP2P_MUTE * 100) + 0);
++                      
++/*                    if (memcmp(t+size-14,"\x0aEndPublicKey\x0a",14) == 0)
++                      {
++                              printk(KERN_DEBUG "end pubic key hit: %u",size);
++                              
++                      }*/
++              }
++      }
++      return 0;
++}
++
++
++/* check for xdcc */
++int
++search_xdcc (const unsigned char *payload, const u16 plen)
++{
++      /* search in small packets only */
++      if (plen > 20 && plen < 200 && payload[plen-1] == 0x0a && payload[plen-2] == 0x0d && memcmp(payload,"PRIVMSG ",8) == 0)
++      {
++              
++              u16 x=10;
++              const u16 end=plen - 13;
++              
++              /* is seems to be a irc private massage, chedck for xdcc command */
++              while (x < end)
++              {
++                      if (payload[x] == ':')
++                      {
++                              if ( memcmp(&payload[x+1],"xdcc send #",11) == 0 )
++                                      return ((IPP2P_XDCC * 100) + 0);
++                      }
++                      x++;
++              }
++      }
++      return 0;
++}
++
++/* search for waste */
++int search_waste(const unsigned char *payload, const u16 plen)
++{
++      if ( plen >= 8 && memcmp(payload,"GET.sha1:",9) == 0)
++              return ((IPP2P_WASTE * 100) + 0);
++
++      return 0;
++}
++
++
++static struct {
++    int command;
++    __u8 short_hand;                  /*for fucntions included in short hands*/
++    int packet_len;
++    int (*function_name) (const unsigned char *, const u16);
++} matchlist[] = {
++    {IPP2P_EDK,SHORT_HAND_IPP2P,20, &search_all_edk},
++//    {IPP2P_DATA_KAZAA,SHORT_HAND_DATA,200, &search_kazaa},
++//    {IPP2P_DATA_EDK,SHORT_HAND_DATA,60, &search_edk},
++//    {IPP2P_DATA_DC,SHORT_HAND_DATA,26, &search_dc},
++    {IPP2P_DC,SHORT_HAND_IPP2P,5, search_all_dc},
++//    {IPP2P_DATA_GNU,SHORT_HAND_DATA,40, &search_gnu},
++    {IPP2P_GNU,SHORT_HAND_IPP2P,5, &search_all_gnu},
++    {IPP2P_KAZAA,SHORT_HAND_IPP2P,5, &search_all_kazaa},
++    {IPP2P_BIT,SHORT_HAND_IPP2P,20, &search_bittorrent},
++    {IPP2P_APPLE,SHORT_HAND_IPP2P,5, &search_apple},
++    {IPP2P_SOUL,SHORT_HAND_IPP2P,5, &search_soul},
++    {IPP2P_WINMX,SHORT_HAND_IPP2P,2, &search_winmx},
++    {IPP2P_ARES,SHORT_HAND_IPP2P,5, &search_ares},
++    {IPP2P_MUTE,SHORT_HAND_NONE,200, &search_mute},
++    {IPP2P_WASTE,SHORT_HAND_NONE,5, &search_waste},
++    {IPP2P_XDCC,SHORT_HAND_NONE,5, &search_xdcc},
++    {0,0,0,NULL}
++};
++
++
++static struct {
++    int command;
++    __u8 short_hand;                  /*for fucntions included in short hands*/
++    int packet_len;
++    int (*function_name) (unsigned char *, int);
++} udp_list[] = {
++    { IPP2P_KAZAA, SHORT_HAND_IPP2P, 14, &udp_search_kazaa},
++    { IPP2P_BIT,   SHORT_HAND_IPP2P, 23, &udp_search_bit},
++    { IPP2P_GNU,   SHORT_HAND_IPP2P, 11, &udp_search_gnu},
++    { IPP2P_EDK,   SHORT_HAND_IPP2P,  9, &udp_search_edk},
++    { IPP2P_DC,    SHORT_HAND_IPP2P, 12, &udp_search_directconnect},    
++    { 0, 0, 0, NULL }
++};
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      const void *hdr,
++      u_int16_t datalen,
++      int *hotdrop) 
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      int *hotdrop) 
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      int *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
++static int
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      int *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++static bool
++match(const struct sk_buff *skb,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset, 
++      unsigned int protoff, 
++      bool *hotdrop)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++static bool
++match(const struct sk_buff *skb,
++      const struct xt_match_param *par)
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */
++static int
++match(const struct sk_buff *skb,
++      struct xt_action_param *par)
++#endif
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++      const struct ipt_p2p_info *info = matchinfo;
++#else
++      const struct ipt_p2p_info *info = par->matchinfo;
++      const int offset = par->fragoff;
++#endif
++    unsigned char  *haystack;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
++    struct iphdr *ip = ip_hdr(skb);
++#else
++    struct iphdr *ip = skb->nh.iph;
++#endif
++    int p2p_result = 0, i = 0;
++//    int head_len;
++    int hlen = ntohs(ip->tot_len)-(ip->ihl*4);        /*hlen = packet-data length*/
++
++    /*must not be a fragment*/
++    if (offset) {
++      if (info->debug) printk("IPP2P.match: offset found %i \n",offset);
++      return 0;
++    }
++    
++    /*make sure that skb is linear*/
++    if(skb_is_nonlinear(skb)){
++      if (info->debug) printk("IPP2P.match: nonlinear skb found\n");
++      return 0;
++    }
++
++
++    haystack=(char *)ip+(ip->ihl*4);          /*haystack = packet data*/
++
++    switch (ip->protocol){
++      case IPPROTO_TCP:               /*what to do with a TCP packet*/
++      {
++          struct tcphdr *tcph = (void *) ip + ip->ihl * 4;
++          
++          if (tcph->fin) return 0;  /*if FIN bit is set bail out*/
++          if (tcph->syn) return 0;  /*if SYN bit is set bail out*/
++          if (tcph->rst) return 0;  /*if RST bit is set bail out*/
++          
++          haystack += tcph->doff * 4; /*get TCP-Header-Size*/
++          hlen -= tcph->doff * 4;
++          while (matchlist[i].command) {
++              if ((((info->cmd & matchlist[i].command) == matchlist[i].command) ||
++                  ((info->cmd & matchlist[i].short_hand) == matchlist[i].short_hand)) &&
++                  (hlen > matchlist[i].packet_len)) {
++                          p2p_result = matchlist[i].function_name(haystack, hlen);
++                          if (p2p_result) 
++                          {
++                              if (info->debug) printk("IPP2P.debug:TCP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", 
++                                  p2p_result, &ip->saddr,ntohs(tcph->source), &ip->daddr,ntohs(tcph->dest),hlen);
++                              return p2p_result;
++                          }
++              }
++          i++;
++          }
++          return p2p_result;
++      }
++      
++      case IPPROTO_UDP:               /*what to do with an UDP packet*/
++      {
++          struct udphdr *udph = (void *) ip + ip->ihl * 4;
++          
++          while (udp_list[i].command){
++              if ((((info->cmd & udp_list[i].command) == udp_list[i].command) ||
++                  ((info->cmd & udp_list[i].short_hand) == udp_list[i].short_hand)) &&
++                  (hlen > udp_list[i].packet_len)) {
++                          p2p_result = udp_list[i].function_name(haystack, hlen);
++                          if (p2p_result){
++                              if (info->debug) printk("IPP2P.debug:UDP-match: %i from: %pl4:%i to: %pl4:%i Length: %i\n", 
++                                  p2p_result, &ip->saddr,ntohs(udph->source), &ip->daddr,ntohs(udph->dest),hlen);
++                              return p2p_result;
++                          }
++              }
++          i++;
++          }                   
++          return p2p_result;
++      }
++    
++      default: return 0;
++    }
++}
++
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16)
++static int
++checkentry(const char *tablename,
++         const struct ipt_ip *ip,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,17)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int matchsize,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
++static int
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,28)
++static bool
++checkentry(const char *tablename,
++         const void *inf,
++         const struct xt_match *match,
++         void *matchinfo,
++         unsigned int hook_mask)
++#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++static bool
++checkentry(const struct xt_mtchk_param *par)
++#else /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35) */
++static int
++checkentry(const struct xt_mtchk_param *par)
++#endif
++{
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
++    return 1;
++#else
++    return 0;
++#endif
++}
++
++
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++static struct xt_match ipp2p_match = {
++#else
++static struct ipt_match ipp2p_match = { 
++#endif
++#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
++      { NULL, NULL }, 
++      "ipp2p", 
++      &ipp2p_match, 
++      &ipp2p_checkentry, 
++      NULL, 
++      THIS_MODULE
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
++      .name           = "ipp2p",
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++      .family         = AF_INET,
++#endif
++      .match          = &match,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,17)
++      .matchsize      = sizeof(struct ipt_p2p_info),
++#endif
++      .checkentry     = &checkentry,
++      .me             = THIS_MODULE,
++#endif
++};
++
++
++static int __init init(void)
++{
++    printk(KERN_INFO "IPP2P v%s loading\n", IPP2P_VERSION);
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++    return xt_register_match(&ipp2p_match);
++#else
++    return ipt_register_match(&ipp2p_match);
++#endif
++}
++      
++static void __exit fini(void)
++{
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
++    xt_unregister_match(&ipp2p_match);
++#else
++    ipt_unregister_match(&ipp2p_match);
++#endif
++    printk(KERN_INFO "IPP2P v%s unloaded\n", IPP2P_VERSION);    
++}
++      
++module_init(init);
++module_exit(fini);
++
++
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Kconfig linux-3.0.24/net/ipv4/netfilter/Kconfig
+--- linux-3.0.24.org/net/ipv4/netfilter/Kconfig        2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/Kconfig    2012-03-20 09:05:15.827477622 +0100
+@@ -379,5 +379,15 @@
+ endif # IP_NF_ARPTABLES
++config IP_NF_MATCH_IPP2P
++      tristate  'IPP2P match support'
++      depends on IP_NF_IPTABLES
++      help
++        This option makes possible to match some P2P packets
++        therefore helps controlling such traffic.
++      
++        If you want to compile it as a module, say M here and read
++        <file:Documentation/modules.txt>.  If unsure, say `N'.
++
+ endmenu
+diff -Naur linux-3.0.24.org/net/ipv4/netfilter/Makefile linux-3.0.24/net/ipv4/netfilter/Makefile
+--- linux-3.0.24.org/net/ipv4/netfilter/Makefile       2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/ipv4/netfilter/Makefile   2012-03-20 09:13:38.960288878 +0100
+@@ -50,6 +50,7 @@
+ # matches
+ obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
+ obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
++obj-$(CONFIG_IP_NF_MATCH_IPP2P) += ipt_ipp2p.o
+ # targets
+ obj-$(CONFIG_IP_NF_TARGET_CLUSTERIP) += ipt_CLUSTERIP.o
diff --git a/src/patches/linux-3.1-imq.patch b/src/patches/linux-3.1-imq.patch
new file mode 100644 (file)
index 0000000..6e97f1c
--- /dev/null
@@ -0,0 +1,1603 @@
+diff -uNr linux-3.1/drivers/net/imq.c linux-3.1-imq/drivers/net/imq.c
+--- linux-3.1/drivers/net/imq.c        1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/drivers/net/imq.c    2011-11-04 12:16:10.454992642 +0200
+@@ -0,0 +1,850 @@
++/*
++ *             Pseudo-driver for the intermediate queue device.
++ *
++ *             This program is free software; you can redistribute it and/or
++ *             modify it under the terms of the GNU General Public License
++ *             as published by the Free Software Foundation; either version
++ *             2 of the License, or (at your option) any later version.
++ *
++ * Authors:    Patrick McHardy, <kaber@trash.net>
++ *
++ *            The first version was written by Martin Devera, <devik@cdi.cz>
++ *
++ * Credits:    Jan Rafaj <imq2t@cedric.vabo.cz>
++ *              - Update patch to 2.4.21
++ *             Sebastian Strollo <sstrollo@nortelnetworks.com>
++ *              - Fix "Dead-loop on netdevice imq"-issue
++ *             Marcel Sebek <sebek64@post.cz>
++ *              - Update to 2.6.2-rc1
++ *
++ *           After some time of inactivity there is a group taking care
++ *           of IMQ again: http://www.linuximq.net
++ *
++ *
++ *           2004/06/30 - New version of IMQ patch to kernels <=2.6.7
++ *             including the following changes:
++ *
++ *           - Correction of ipv6 support "+"s issue (Hasso Tepper)
++ *           - Correction of imq_init_devs() issue that resulted in
++ *           kernel OOPS unloading IMQ as module (Norbert Buchmuller)
++ *           - Addition of functionality to choose number of IMQ devices
++ *           during kernel config (Andre Correa)
++ *           - Addition of functionality to choose how IMQ hooks on
++ *           PRE and POSTROUTING (after or before NAT) (Andre Correa)
++ *           - Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
++ *
++ *
++ *             2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were
++ *             released with almost no problems. 2.6.14-x was released
++ *             with some important changes: nfcache was removed; After
++ *             some weeks of trouble we figured out that some IMQ fields
++ *             in skb were missing in skbuff.c - skb_clone and copy_skb_header.
++ *             These functions are correctly patched by this new patch version.
++ *
++ *             Thanks for all who helped to figure out all the problems with
++ *             2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
++ *             Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully
++ *             I didn't forget anybody). I apologize again for my lack of time.
++ *
++ *
++ *             2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
++ *             of qdisc_restart() and moved qdisc_run() to tasklet to avoid
++ *             recursive locking. New initialization routines to fix 'rmmod' not
++ *             working anymore. Used code from ifb.c. (Jussi Kivilinna)
++ *
++ *             2008/08/06 - 2.6.26 - (JK)
++ *              - Replaced tasklet with 'netif_schedule()'.
++ *              - Cleaned up and added comments for imq_nf_queue().
++ *
++ *             2009/04/12
++ *              - Add skb_save_cb/skb_restore_cb helper functions for backuping
++ *                control buffer. This is needed because qdisc-layer on kernels
++ *                2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
++ *              - Add better locking for IMQ device. Hopefully this will solve
++ *                SMP issues. (Jussi Kivilinna)
++ *              - Port to 2.6.27
++ *              - Port to 2.6.28
++ *              - Port to 2.6.29 + fix rmmod not working
++ *
++ *             2009/04/20 - (Jussi Kivilinna)
++ *              - Use netdevice feature flags to avoid extra packet handling
++ *                by core networking layer and possibly increase performance.
++ *
++ *             2009/09/26 - (Jussi Kivilinna)
++ *              - Add imq_nf_reinject_lockless to fix deadlock with
++ *                imq_nf_queue/imq_nf_reinject.
++ *
++ *             2009/12/08 - (Jussi Kivilinna)
++ *              - Port to 2.6.32
++ *              - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
++ *              - Also add better error checking for skb->nf_queue_entry usage
++ *
++ *             2010/02/25 - (Jussi Kivilinna)
++ *              - Port to 2.6.33
++ *
++ *             2010/08/15 - (Jussi Kivilinna)
++ *              - Port to 2.6.35
++ *              - Simplify hook registration by using nf_register_hooks.
++ *              - nf_reinject doesn't need spinlock around it, therefore remove
++ *                imq_nf_reinject function. Other nf_reinject users protect
++ *                their own data with spinlock. With IMQ however all data is
++ *                needed is stored per skbuff, so no locking is needed.
++ *              - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of
++ *                NF_QUEUE, this allows working coexistance of IMQ and other
++ *                NF_QUEUE users.
++ *              - Make IMQ multi-queue. Number of IMQ device queues can be
++ *                increased with 'numqueues' module parameters. Default number
++ *                of queues is 1, in other words by default IMQ works as
++ *                single-queue device. Multi-queue selection is based on
++ *                IFB multi-queue patch by Changli Gao <xiaosuo@gmail.com>.
++ *
++ *             2011/03/18 - (Jussi Kivilinna)
++ *              - Port to 2.6.38
++ *
++ *             2011/07/12 - (syoder89@gmail.com)
++ *              - Crash fix that happens when the receiving interface has more
++ *                than one queue (add missing skb_set_queue_mapping in
++ *                imq_select_queue).
++ *
++ *             2011/07/26 - (Jussi Kivilinna)
++ *              - Add queue mapping checks for packets exiting IMQ.
++ *              - Port to 3.0
++ *
++ *             2011/08/16 - (Jussi Kivilinna)
++ *              - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
++ *
++ *             2011/11/03 - Germano Michel <germanomichel@gmail.com>
++ *              - Fix IMQ for net namespaces
++ *
++ *             2011/11/04 - Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
++ *              - Port to 3.1
++ *              - Clean-up, move 'get imq device pointer by imqX name' to
++ *                separate function from imq_nf_queue().
++ *
++ *           Also, many thanks to pablo Sebastian Greco for making the initial
++ *           patch and to those who helped the testing.
++ *
++ *             More info at: http://www.linuximq.net/ (Andre Correa)
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/moduleparam.h>
++#include <linux/list.h>
++#include <linux/skbuff.h>
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/rtnetlink.h>
++#include <linux/if_arp.h>
++#include <linux/netfilter.h>
++#include <linux/netfilter_ipv4.h>
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      #include <linux/netfilter_ipv6.h>
++#endif
++#include <linux/imq.h>
++#include <net/pkt_sched.h>
++#include <net/netfilter/nf_queue.h>
++#include <net/sock.h>
++#include <linux/ip.h>
++#include <linux/ipv6.h>
++#include <linux/if_vlan.h>
++#include <linux/if_pppox.h>
++#include <net/ip.h>
++#include <net/ipv6.h>
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num);
++
++static nf_hookfn imq_nf_hook;
++
++static struct nf_hook_ops imq_ops[] = {
++      {
++      /* imq_ingress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP_PRI_LAST,
++#else
++              .priority       = NF_IP_PRI_NAT_SRC - 1,
++#endif
++      },
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      {
++      /* imq_ingress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP6_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP6_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP6_PRI_LAST,
++#else
++              .priority       = NF_IP6_PRI_NAT_SRC - 1,
++#endif
++      },
++#endif
++};
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++static int numdevs = CONFIG_IMQ_NUM_DEVS;
++#else
++static int numdevs = IMQ_MAX_DEVS;
++#endif
++
++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS];
++
++#define IMQ_MAX_QUEUES 32
++static int numqueues = 1;
++static u32 imq_hashrnd;
++
++static inline __be16 pppoe_proto(const struct sk_buff *skb)
++{
++      return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN +
++                      sizeof(struct pppoe_hdr)));
++}
++
++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb)
++{
++      unsigned int pull_len;
++      u16 protocol = skb->protocol;
++      u32 addr1, addr2;
++      u32 hash, ihl = 0;
++      union {
++              u16 in16[2];
++              u32 in32;
++      } ports;
++      u8 ip_proto;
++
++      pull_len = 0;
++
++recheck:
++      switch (protocol) {
++      case htons(ETH_P_8021Q): {
++              if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL))
++                      goto other;
++
++              pull_len += VLAN_HLEN;
++              skb->network_header += VLAN_HLEN;
++
++              protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto;
++              goto recheck;
++      }
++
++      case htons(ETH_P_PPP_SES): {
++              if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL))
++                      goto other;
++
++              pull_len += PPPOE_SES_HLEN;
++              skb->network_header += PPPOE_SES_HLEN;
++
++              protocol = pppoe_proto(skb);
++              goto recheck;
++      }
++
++      case htons(ETH_P_IP): {
++              const struct iphdr *iph = ip_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr))))
++                      goto other;
++
++              addr1 = iph->daddr;
++              addr2 = iph->saddr;
++
++              ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ?
++                               iph->protocol : 0;
++              ihl = ip_hdrlen(skb);
++
++              break;
++      }
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      case htons(ETH_P_IPV6): {
++              const struct ipv6hdr *iph = ipv6_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr))))
++                      goto other;
++
++              addr1 = iph->daddr.s6_addr32[3];
++              addr2 = iph->saddr.s6_addr32[3];
++              ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto);
++              if (unlikely(ihl < 0))
++                      goto other;
++
++              break;
++      }
++#endif
++      default:
++other:
++              if (pull_len != 0) {
++                      skb_push(skb, pull_len);
++                      skb->network_header -= pull_len;
++              }
++
++              return (u16)(ntohs(protocol) % dev->real_num_tx_queues);
++      }
++
++      if (addr1 > addr2)
++              swap(addr1, addr2);
++
++      switch (ip_proto) {
++      case IPPROTO_TCP:
++      case IPPROTO_UDP:
++      case IPPROTO_DCCP:
++      case IPPROTO_ESP:
++      case IPPROTO_AH:
++      case IPPROTO_SCTP:
++      case IPPROTO_UDPLITE: {
++              if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) {
++                      if (ports.in16[0] > ports.in16[1])
++                              swap(ports.in16[0], ports.in16[1]);
++                      break;
++              }
++              /* fall-through */
++      }
++      default:
++              ports.in32 = 0;
++              break;
++      }
++
++      if (pull_len != 0) {
++              skb_push(skb, pull_len);
++              skb->network_header -= pull_len;
++      }
++
++      hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto);
++
++      return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++}
++
++static inline bool sk_tx_queue_recorded(struct sock *sk)
++{
++      return (sk_tx_queue_get(sk) >= 0);
++}
++
++static struct netdev_queue *imq_select_queue(struct net_device *dev,
++                                              struct sk_buff *skb)
++{
++      u16 queue_index = 0;
++      u32 hash;
++
++      if (likely(dev->real_num_tx_queues == 1))
++              goto out;
++
++      /* IMQ can be receiving ingress or engress packets. */
++
++      /* Check first for if rx_queue is set */
++      if (skb_rx_queue_recorded(skb)) {
++              queue_index = skb_get_rx_queue(skb);
++              goto out;
++      }
++
++      /* Check if socket has tx_queue set */
++      if (sk_tx_queue_recorded(skb->sk)) {
++              queue_index = sk_tx_queue_get(skb->sk);
++              goto out;
++      }
++
++      /* Try use socket hash */
++      if (skb->sk && skb->sk->sk_hash) {
++              hash = skb->sk->sk_hash;
++              queue_index =
++                      (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++              goto out;
++      }
++
++      /* Generate hash from packet data */
++      queue_index = imq_hash(dev, skb);
++
++out:
++      if (unlikely(queue_index >= dev->real_num_tx_queues))
++              queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues);
++
++      skb_set_queue_mapping(skb, queue_index);
++      return netdev_get_tx_queue(dev, queue_index);
++}
++
++static struct net_device_stats *imq_get_stats(struct net_device *dev)
++{
++      return &dev->stats;
++}
++
++/* called for packets kfree'd in qdiscs at places other than enqueue */
++static void imq_skb_destructor(struct sk_buff *skb)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++
++      if (entry) {
++              nf_queue_entry_release_refs(entry);
++              kfree(entry);
++      }
++
++      skb_restore_cb(skb); /* kfree backup */
++}
++
++static void imq_done_check_queue_mapping(struct sk_buff *skb,
++                                       struct net_device *dev)
++{
++      unsigned int queue_index;
++
++      /* Don't let queue_mapping be left too large after exiting IMQ */
++      if (likely(skb->dev != dev && skb->dev != NULL)) {
++              queue_index = skb_get_queue_mapping(skb);
++              if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) {
++                      queue_index = (u16)((u32)queue_index %
++                                              skb->dev->real_num_tx_queues);
++                      skb_set_queue_mapping(skb, queue_index);
++              }
++      } else {
++              /* skb->dev was IMQ device itself or NULL, be on safe side and
++               * just clear queue mapping.
++               */
++              skb_set_queue_mapping(skb, 0);
++      }
++}
++
++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++      dev->trans_start = jiffies;
++
++      dev->stats.tx_bytes += skb->len;
++      dev->stats.tx_packets++;
++
++      if (unlikely(entry == NULL)) {
++              /* We don't know what is going on here.. packet is queued for
++               * imq device, but (probably) not by us.
++               *
++               * If this packet was not send here by imq_nf_queue(), then
++               * skb_save_cb() was not used and skb_free() should not show:
++               *   WARNING: IMQ: kfree_skb: skb->cb_next:..
++               * and/or
++               *   WARNING: IMQ: kfree_skb: skb->nf_queue_entry...
++               *
++               * However if this message is shown, then IMQ is somehow broken
++               * and you should report this to linuximq.net.
++               */
++
++              /* imq_dev_xmit is black hole that eats all packets, report that
++               * we eat this packet happily and increase dropped counters.
++               */
++
++              dev->stats.tx_dropped++;
++              dev_kfree_skb(skb);
++
++              return NETDEV_TX_OK;
++      }
++
++      skb_restore_cb(skb); /* restore skb->cb */
++
++      skb->imq_flags = 0;
++      skb->destructor = NULL;
++
++      imq_done_check_queue_mapping(skb, dev);
++
++      nf_reinject(entry, NF_ACCEPT);
++
++      return NETDEV_TX_OK;
++}
++
++static struct net_device *get_imq_device_by_index(int index)
++{
++      struct net_device *dev = NULL;
++      struct net *net;
++      char buf[8];
++
++      /* get device by name and cache result */
++      snprintf(buf, sizeof(buf), "imq%d", index);
++
++      /* Search device from all namespaces. */
++      for_each_net(net) {
++              dev = dev_get_by_name(net, buf);
++              if (dev)
++                      break;
++      }
++
++      if (WARN_ON_ONCE(dev == NULL)) {
++              /* IMQ device not found. Exotic config? */
++              return ERR_PTR(-ENODEV);
++      }
++
++      imq_devs_cache[index] = dev;
++      dev_put(dev);
++
++      return dev;
++}
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num)
++{
++      struct net_device *dev;
++      struct sk_buff *skb_orig, *skb, *skb_shared;
++      struct Qdisc *q;
++      struct netdev_queue *txq;
++      spinlock_t *root_lock;
++      int users, index;
++      int retval = -EINVAL;
++      unsigned int orig_queue_index;
++
++      index = entry->skb->imq_flags & IMQ_F_IFMASK;
++      if (unlikely(index > numdevs - 1)) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING
++                             "IMQ: invalid device specified, highest is %u\n",
++                             numdevs - 1);
++              retval = -EINVAL;
++              goto out;
++      }
++
++      /* check for imq device by index from cache */
++      dev = imq_devs_cache[index];
++      if (unlikely(!dev)) {
++              dev = get_imq_device_by_index(index);
++              if (IS_ERR(dev)) {
++                      retval = PTR_ERR(dev);
++                      goto out;
++              }
++      }
++
++      if (unlikely(!(dev->flags & IFF_UP))) {
++              entry->skb->imq_flags = 0;
++              nf_reinject(entry, NF_ACCEPT);
++              retval = 0;
++              goto out;
++      }
++      dev->last_rx = jiffies;
++
++      skb = entry->skb;
++      skb_orig = NULL;
++
++      /* skb has owner? => make clone */
++      if (unlikely(skb->destructor)) {
++              skb_orig = skb;
++              skb = skb_clone(skb, GFP_ATOMIC);
++              if (unlikely(!skb)) {
++                      retval = -ENOMEM;
++                      goto out;
++              }
++              entry->skb = skb;
++      }
++
++      skb->nf_queue_entry = entry;
++
++      dev->stats.rx_bytes += skb->len;
++      dev->stats.rx_packets++;
++
++      if (!skb->dev) {
++              /* skb->dev == NULL causes problems, try the find cause. */
++              if (net_ratelimit()) {
++                      dev_warn(&dev->dev,
++                               "received packet with skb->dev == NULL\n");
++                      dump_stack();
++              }
++
++              skb->dev = dev;
++      }
++
++      /* Disables softirqs for lock below */
++      rcu_read_lock_bh();
++
++      /* Multi-queue selection */
++      orig_queue_index = skb_get_queue_mapping(skb);
++      txq = imq_select_queue(dev, skb);
++
++      q = rcu_dereference(txq->qdisc);
++      if (unlikely(!q->enqueue))
++              goto packet_not_eaten_by_imq_dev;
++
++      root_lock = qdisc_lock(q);
++      spin_lock(root_lock);
++
++      users = atomic_read(&skb->users);
++
++      skb_shared = skb_get(skb); /* increase reference count by one */
++      skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will
++                                      overwrite it */
++      qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */
++
++      if (likely(atomic_read(&skb_shared->users) == users + 1)) {
++              kfree_skb(skb_shared); /* decrease reference count by one */
++
++              skb->destructor = &imq_skb_destructor;
++
++              /* cloned? */
++              if (unlikely(skb_orig))
++                      kfree_skb(skb_orig); /* free original */
++
++              spin_unlock(root_lock);
++              rcu_read_unlock_bh();
++
++              /* schedule qdisc dequeue */
++              __netif_schedule(q);
++
++              retval = 0;
++              goto out;
++      } else {
++              skb_restore_cb(skb_shared); /* restore skb->cb */
++              skb->nf_queue_entry = NULL;
++              /* qdisc dropped packet and decreased skb reference count of
++               * skb, so we don't really want to and try refree as that would
++               * actually destroy the skb. */
++              spin_unlock(root_lock);
++              goto packet_not_eaten_by_imq_dev;
++      }
++
++packet_not_eaten_by_imq_dev:
++      skb_set_queue_mapping(skb, orig_queue_index);
++      rcu_read_unlock_bh();
++
++      /* cloned? restore original */
++      if (unlikely(skb_orig)) {
++              kfree_skb(skb);
++              entry->skb = skb_orig;
++      }
++      retval = -1;
++out:
++      return retval;
++}
++
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
++                              const struct net_device *indev,
++                              const struct net_device *outdev,
++                              int (*okfn)(struct sk_buff *))
++{
++      return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT;
++}
++
++static int imq_close(struct net_device *dev)
++{
++      netif_stop_queue(dev);
++      return 0;
++}
++
++static int imq_open(struct net_device *dev)
++{
++      netif_start_queue(dev);
++      return 0;
++}
++
++static const struct net_device_ops imq_netdev_ops = {
++      .ndo_open               = imq_open,
++      .ndo_stop               = imq_close,
++      .ndo_start_xmit         = imq_dev_xmit,
++      .ndo_get_stats          = imq_get_stats,
++};
++
++static void imq_setup(struct net_device *dev)
++{
++      dev->netdev_ops         = &imq_netdev_ops;
++      dev->type               = ARPHRD_VOID;
++      dev->mtu                = 16000; /* too small? */
++      dev->tx_queue_len       = 11000; /* too big? */
++      dev->flags              = IFF_NOARP;
++      dev->features           = NETIF_F_SG | NETIF_F_FRAGLIST |
++                                NETIF_F_GSO | NETIF_F_HW_CSUM |
++                                NETIF_F_HIGHDMA;
++      dev->priv_flags         &= ~(IFF_XMIT_DST_RELEASE |
++                                   IFF_TX_SKB_SHARING);
++}
++
++static int imq_validate(struct nlattr *tb[], struct nlattr *data[])
++{
++      int ret = 0;
++
++      if (tb[IFLA_ADDRESS]) {
++              if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) {
++                      ret = -EINVAL;
++                      goto end;
++              }
++              if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) {
++                      ret = -EADDRNOTAVAIL;
++                      goto end;
++              }
++      }
++      return 0;
++end:
++      printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret);
++      return ret;
++}
++
++static struct rtnl_link_ops imq_link_ops __read_mostly = {
++      .kind           = "imq",
++      .priv_size      = 0,
++      .setup          = imq_setup,
++      .validate       = imq_validate,
++};
++
++static const struct nf_queue_handler imq_nfqh = {
++      .name  = "imq",
++      .outfn = imq_nf_queue,
++};
++
++static int __init imq_init_hooks(void)
++{
++      int ret;
++
++      nf_register_queue_imq_handler(&imq_nfqh);
++
++      ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      if (ret < 0)
++              nf_unregister_queue_imq_handler();
++
++      return ret;
++}
++
++static int __init imq_init_one(int index)
++{
++      struct net_device *dev;
++      int ret;
++
++      dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues);
++      if (!dev)
++              return -ENOMEM;
++
++      ret = dev_alloc_name(dev, dev->name);
++      if (ret < 0)
++              goto fail;
++
++      dev->rtnl_link_ops = &imq_link_ops;
++      ret = register_netdevice(dev);
++      if (ret < 0)
++              goto fail;
++
++      return 0;
++fail:
++      free_netdev(dev);
++      return ret;
++}
++
++static int __init imq_init_devs(void)
++{
++      int err, i;
++
++      if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) {
++              printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n",
++                     IMQ_MAX_DEVS);
++              return -EINVAL;
++      }
++
++      if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) {
++              printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n",
++                     IMQ_MAX_QUEUES);
++              return -EINVAL;
++      }
++
++      get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd));
++
++      rtnl_lock();
++      err = __rtnl_link_register(&imq_link_ops);
++
++      for (i = 0; i < numdevs && !err; i++)
++              err = imq_init_one(i);
++
++      if (err) {
++              __rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++      }
++      rtnl_unlock();
++
++      return err;
++}
++
++static int __init imq_init_module(void)
++{
++      int err;
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK);
++#endif
++
++      err = imq_init_devs();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n");
++              return err;
++      }
++
++      err = imq_init_hooks();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n");
++              rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++              return err;
++      }
++
++      printk(KERN_INFO "IMQ driver loaded successfully. "
++              "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues);
++
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n");
++#endif
++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n");
++#endif
++
++      return 0;
++}
++
++static void __exit imq_unhook(void)
++{
++      nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      nf_unregister_queue_imq_handler();
++}
++
++static void __exit imq_cleanup_devs(void)
++{
++      rtnl_link_unregister(&imq_link_ops);
++      memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++}
++
++static void __exit imq_exit_module(void)
++{
++      imq_unhook();
++      imq_cleanup_devs();
++      printk(KERN_INFO "IMQ driver unloaded successfully.\n");
++}
++
++module_init(imq_init_module);
++module_exit(imq_exit_module);
++
++module_param(numdevs, int, 0);
++module_param(numqueues, int, 0);
++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will "
++                      "be created)");
++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device");
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See "
++                      "http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_RTNL_LINK("imq");
++
+diff -uNr linux-3.1/drivers/net/Kconfig linux-3.1-imq/drivers/net/Kconfig
+--- linux-3.1/drivers/net/Kconfig      2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/drivers/net/Kconfig  2011-11-04 11:12:52.106390309 +0200
+@@ -124,6 +124,125 @@
+         To compile this driver as a module, choose M here: the module
+         will be called eql.  If unsure, say N.
++config IMQ
++      tristate "IMQ (intermediate queueing device) support"
++      depends on NETDEVICES && NETFILTER
++      ---help---
++        The IMQ device(s) is used as placeholder for QoS queueing
++        disciplines. Every packet entering/leaving the IP stack can be
++        directed through the IMQ device where it's enqueued/dequeued to the
++        attached qdisc. This allows you to treat network devices as classes
++        and distribute bandwidth among them. Iptables is used to specify
++        through which IMQ device, if any, packets travel.
++
++        More information at: http://www.linuximq.net/
++
++        To compile this driver as a module, choose M here: the module
++        will be called imq.  If unsure, say N.
++
++choice
++      prompt "IMQ behavior (PRE/POSTROUTING)"
++      depends on IMQ
++      default IMQ_BEHAVIOR_AB
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        IMQ can work in any of the following ways:
++
++            PREROUTING   |      POSTROUTING
++        -----------------|-------------------
++        #1  After NAT    |      After NAT
++        #2  After NAT    |      Before NAT
++        #3  Before NAT   |      After NAT
++        #4  Before NAT   |      Before NAT
++
++        The default behavior is to hook before NAT on PREROUTING
++        and after NAT on POSTROUTING (#3).
++
++        This settings are specially usefull when trying to use IMQ
++        to shape NATed clients.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AA
++      bool "IMQ AA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AB
++      bool "IMQ AB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BA
++      bool "IMQ BA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BB
++      bool "IMQ BB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++endchoice
++
++config IMQ_NUM_DEVS
++      int "Number of IMQ devices"
++      range 2 16
++      depends on IMQ
++      default "16"
++      help
++        This setting defines how many IMQ devices will be created.
++
++        The default value is 16.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
+ config TUN
+       tristate "Universal TUN/TAP device driver support"
+       select CRC32
+diff -uNr linux-3.1/drivers/net/Makefile linux-3.1-imq/drivers/net/Makefile
+--- linux-3.1/drivers/net/Makefile     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200
+@@ -175,6 +175,7 @@
+ obj-$(CONFIG_XEN_NETDEV_BACKEND) += xen-netback/
+ obj-$(CONFIG_DUMMY) += dummy.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_MACVTAP) += macvtap.o
+diff -uNr linux-3.1/include/linux/imq.h linux-3.1-imq/include/linux/imq.h
+--- linux-3.1/include/linux/imq.h      1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/imq.h  2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,13 @@
++#ifndef _IMQ_H
++#define _IMQ_H
++
++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */
++#define IMQ_F_BITS    5
++
++#define IMQ_F_IFMASK  0x0f
++#define IMQ_F_ENQUEUE 0x10
++
++#define IMQ_MAX_DEVS  (IMQ_F_IFMASK + 1)
++
++#endif /* _IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter/xt_IMQ.h linux-3.1-imq/include/linux/netfilter/xt_IMQ.h
+--- linux-3.1/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter/xt_IMQ.h     2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,9 @@
++#ifndef _XT_IMQ_H
++#define _XT_IMQ_H
++
++struct xt_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _XT_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter.h linux-3.1-imq/include/linux/netfilter.h
+--- linux-3.1/include/linux/netfilter.h        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/linux/netfilter.h    2011-11-04 11:12:52.109723710 +0200
+@@ -22,7 +22,8 @@
+ #define NF_QUEUE 3
+ #define NF_REPEAT 4
+ #define NF_STOP 5
+-#define NF_MAX_VERDICT NF_STOP
++#define NF_IMQ_QUEUE 6
++#define NF_MAX_VERDICT NF_IMQ_QUEUE
+ /* we overload the higher bits for encoding auxiliary data such as the queue
+  * number or errno values. Not nice, but better than additional function
+diff -uNr linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- linux-3.1/include/linux/netfilter_ipv4/ipt_IMQ.h   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter_ipv4/ipt_IMQ.h       2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IPT_IMQ_H
++#define _IPT_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ipt_imq_info xt_imq_info
++
++#endif /* _IPT_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- linux-3.1/include/linux/netfilter_ipv6/ip6t_IMQ.h  1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h      2011-11-04 11:12:52.113057113 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IP6T_IMQ_H
++#define _IP6T_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ip6t_imq_info xt_imq_info
++
++#endif /* _IP6T_IMQ_H */
++
+diff -uNr linux-3.1/include/linux/skbuff.h linux-3.1-imq/include/linux/skbuff.h
+--- linux-3.1/include/linux/skbuff.h   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/linux/skbuff.h       2011-11-04 11:12:52.116390515 +0200
+@@ -29,6 +29,9 @@
+ #include <linux/rcupdate.h>
+ #include <linux/dmaengine.h>
+ #include <linux/hrtimer.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ /* Don't change this without changing skb_csum_unnecessary! */
+ #define CHECKSUM_NONE 0
+@@ -356,6 +359,9 @@
+        * first. This is owned by whoever has the skb queued ATM.
+        */
+       char                    cb[48] __aligned(8);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      void                    *cb_next;
++#endif
+       unsigned long           _skb_refdst;
+ #ifdef CONFIG_XFRM
+@@ -394,6 +400,9 @@
+ #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
+       struct sk_buff          *nfct_reasm;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      struct nf_queue_entry   *nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       struct nf_bridge_info   *nf_bridge;
+ #endif
+@@ -418,6 +427,10 @@
+       /* 0/13 bit hole */
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      __u8                    imq_flags:IMQ_F_BITS;
++#endif
++
+ #ifdef CONFIG_NET_DMA
+       dma_cookie_t            dma_cookie;
+ #endif
+@@ -504,6 +517,12 @@
+       return (struct rtable *)skb_dst(skb);
+ }
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern int skb_save_cb(struct sk_buff *skb);
++extern int skb_restore_cb(struct sk_buff *skb);
++#endif
++
+ extern void kfree_skb(struct sk_buff *skb);
+ extern void consume_skb(struct sk_buff *skb);
+ extern void          __kfree_skb(struct sk_buff *skb);
+@@ -2157,6 +2176,10 @@
+       dst->nfct_reasm = src->nfct_reasm;
+       nf_conntrack_get_reasm(src->nfct_reasm);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      dst->imq_flags = src->imq_flags;
++      dst->nf_queue_entry = src->nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       dst->nf_bridge  = src->nf_bridge;
+       nf_bridge_get(src->nf_bridge);
+diff -uNr linux-3.1/include/net/netfilter/nf_queue.h linux-3.1-imq/include/net/netfilter/nf_queue.h
+--- linux-3.1/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/include/net/netfilter/nf_queue.h     2011-11-04 11:12:52.116390515 +0200
+@@ -30,5 +30,11 @@
+                                      const struct nf_queue_handler *qh);
+ extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
+ extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh);
++extern void nf_unregister_queue_imq_handler(void);
++#endif
+ #endif /* _NF_QUEUE_H */
+diff -uNr linux-3.1/net/core/dev.c linux-3.1-imq/net/core/dev.c
+--- linux-3.1/net/core/dev.c   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/core/dev.c       2011-11-04 11:12:52.119723915 +0200
+@@ -98,6 +98,9 @@
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+ #include <linux/rtnetlink.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/proc_fs.h>
+ #include <linux/seq_file.h>
+ #include <linux/stat.h>
+@@ -2126,7 +2129,12 @@
+               if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
+                       skb_dst_drop(skb);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              if (!list_empty(&ptype_all) &&
++                                      !(skb->imq_flags & IMQ_F_ENQUEUE))
++#else
+               if (!list_empty(&ptype_all))
++#endif
+                       dev_queue_xmit_nit(skb, dev);
+               skb_orphan_try(skb);
+diff -uNr linux-3.1/net/core/skbuff.c linux-3.1-imq/net/core/skbuff.c
+--- linux-3.1/net/core/skbuff.c        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/core/skbuff.c    2011-11-04 11:12:52.123057315 +0200
+@@ -73,6 +73,9 @@
+ static struct kmem_cache *skbuff_head_cache __read_mostly;
+ static struct kmem_cache *skbuff_fclone_cache __read_mostly;
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static struct kmem_cache *skbuff_cb_store_cache __read_mostly;
++#endif
+ static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
+                                 struct pipe_buffer *buf)
+@@ -92,6 +95,82 @@
+       return 1;
+ }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++/* Control buffer save/restore for IMQ devices */
++struct skb_cb_table {
++      char                    cb[48] __aligned(8);
++      void                    *cb_next;
++      atomic_t                refcnt;
++};
++
++static DEFINE_SPINLOCK(skb_cb_store_lock);
++
++int skb_save_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC);
++      if (!next)
++              return -ENOMEM;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(next->cb, skb->cb, sizeof(skb->cb));
++      next->cb_next = skb->cb_next;
++
++      atomic_set(&next->refcnt, 1);
++
++      skb->cb_next = next;
++      return 0;
++}
++EXPORT_SYMBOL(skb_save_cb);
++
++int skb_restore_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      if (!skb->cb_next)
++              return 0;
++
++      next = skb->cb_next;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(skb->cb, next->cb, sizeof(skb->cb));
++      skb->cb_next = next->cb_next;
++
++      spin_lock(&skb_cb_store_lock);
++
++      if (atomic_dec_and_test(&next->refcnt))
++              kmem_cache_free(skbuff_cb_store_cache, next);
++
++      spin_unlock(&skb_cb_store_lock);
++
++      return 0;
++}
++EXPORT_SYMBOL(skb_restore_cb);
++
++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old)
++{
++      struct skb_cb_table *next;
++      struct sk_buff *old;
++
++      if (!__old->cb_next) {
++              new->cb_next = NULL;
++              return;
++      }
++
++      spin_lock(&skb_cb_store_lock);
++
++      old = (struct sk_buff *)__old;
++
++      next = old->cb_next;
++      atomic_inc(&next->refcnt);
++      new->cb_next = next;
++
++      spin_unlock(&skb_cb_store_lock);
++}
++#endif
+ /* Pipe buffer operations for a socket. */
+ static const struct pipe_buf_operations sock_pipe_buf_ops = {
+@@ -392,6 +471,26 @@
+               WARN_ON(in_irq());
+               skb->destructor(skb);
+       }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      /* This should not happen. When it does, avoid memleak by restoring
++      the chain of cb-backups. */
++      while (skb->cb_next != NULL) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: "
++                              "%08x\n", (unsigned int)skb->cb_next);
++
++              skb_restore_cb(skb);
++      }
++      /* This should not happen either, nf_queue_entry is nullified in
++       * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are
++       * leaking entry pointers, maybe memory. We don't know if this is
++       * pointer to already freed memory, or should this be freed.
++       * If this happens we need to add refcounting, etc for nf_queue_entry.
++       */
++      if (skb->nf_queue_entry && net_ratelimit())
++              printk(KERN_WARNING
++                              "IMQ: kfree_skb: skb->nf_queue_entry != NULL");
++#endif
+ #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
+       nf_conntrack_put(skb->nfct);
+ #endif
+@@ -533,6 +632,9 @@
+       new->sp                 = secpath_get(old->sp);
+ #endif
+       memcpy(new->cb, old->cb, sizeof(old->cb));
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skb_copy_stored_cb(new, old);
++#endif
+       new->csum               = old->csum;
+       new->local_df           = old->local_df;
+       new->pkt_type           = old->pkt_type;
+@@ -2888,6 +2990,13 @@
+                                               0,
+                                               SLAB_HWCACHE_ALIGN|SLAB_PANIC,
+                                               NULL);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache",
++                                                sizeof(struct skb_cb_table),
++                                                0,
++                                                SLAB_HWCACHE_ALIGN|SLAB_PANIC,
++                                                NULL);
++#endif
+ }
+ /**
+diff -uNr linux-3.1/net/ipv6/ip6_output.c linux-3.1-imq/net/ipv6/ip6_output.c
+--- linux-3.1/net/ipv6/ip6_output.c    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/ipv6/ip6_output.c        2011-11-04 11:12:52.123057315 +0200
+@@ -102,9 +102,6 @@
+       struct net_device *dev = dst->dev;
+       struct neighbour *neigh;
+-      skb->protocol = htons(ETH_P_IPV6);
+-      skb->dev = dev;
+-
+       if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
+               struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
+@@ -170,6 +167,11 @@
+               return 0;
+       }
++      /* IMQ-patch: moved setting skb->dev and skb->protocol from
++       * ip6_finish_output2 to fix crashing at netif_skb_features(). */
++      skb->protocol = htons(ETH_P_IPV6);
++      skb->dev = dev;
++
+       return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev,
+                           ip6_finish_output,
+                           !(IP6CB(skb)->flags & IP6SKB_REROUTED));
+diff -uNr linux-3.1/net/netfilter/core.c linux-3.1-imq/net/netfilter/core.c
+--- linux-3.1/net/netfilter/core.c     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200
+@@ -179,9 +179,11 @@
+               ret = NF_DROP_GETERR(verdict);
+               if (ret == 0)
+                       ret = -EPERM;
+-      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) {
++      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE ||
++                 (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) {
+               ret = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                             verdict >> NF_VERDICT_QBITS);
++                             verdict >> NF_VERDICT_QBITS,
++                             verdict & NF_VERDICT_MASK);
+               if (ret < 0) {
+                       if (ret == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.1/net/netfilter/Kconfig linux-3.1-imq/net/netfilter/Kconfig
+--- linux-3.1/net/netfilter/Kconfig    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/Kconfig        2011-11-04 11:12:52.123057315 +0200
+@@ -507,6 +507,18 @@
+         For more information on the LEDs available on your system, see
+         Documentation/leds-class.txt
++config NETFILTER_XT_TARGET_IMQ
++        tristate '"IMQ" target support'
++      depends on NETFILTER_XTABLES
++      depends on IP_NF_MANGLE || IP6_NF_MANGLE
++      select IMQ
++      default m if NETFILTER_ADVANCED=n
++        help
++          This option adds a `IMQ' target which is used to specify if and
++          to which imq device packets should get enqueued/dequeued.
++
++          To compile it as a module, choose M here.  If unsure, say N.
++
+ config NETFILTER_XT_TARGET_MARK
+       tristate '"MARK" target support'
+       depends on NETFILTER_ADVANCED
+diff -uNr linux-3.1/net/netfilter/Makefile linux-3.1-imq/net/netfilter/Makefile
+--- linux-3.1/net/netfilter/Makefile   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/Makefile       2011-11-04 11:12:52.123057315 +0200
+@@ -56,6 +56,7 @@
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
+diff -uNr linux-3.1/net/netfilter/nf_internals.h linux-3.1-imq/net/netfilter/nf_internals.h
+--- linux-3.1/net/netfilter/nf_internals.h     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200
+@@ -29,7 +29,7 @@
+                   struct net_device *indev,
+                   struct net_device *outdev,
+                   int (*okfn)(struct sk_buff *),
+-                  unsigned int queuenum);
++                  unsigned int queuenum, unsigned int queuetype);
+ extern int __init netfilter_queue_init(void);
+ /* nf_log.c */
+diff -uNr linux-3.1/net/netfilter/nf_queue.c linux-3.1-imq/net/netfilter/nf_queue.c
+--- linux-3.1/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.1-imq/net/netfilter/nf_queue.c     2011-11-04 11:12:52.123057315 +0200
+@@ -22,6 +22,26 @@
+ static DEFINE_MUTEX(queue_handler_mutex);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static const struct nf_queue_handler *queue_imq_handler;
++
++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, qh);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler);
++
++void nf_unregister_queue_imq_handler(void)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, NULL);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler);
++#endif
++
+ /* return EBUSY when somebody else is registered, return EEXIST if the
+  * same handler is registered, return 0 in case of success. */
+ int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
+@@ -92,7 +112,7 @@
+ }
+ EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
+-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
++void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
+ {
+       /* Release those devices we held, or Alexey will kill me. */
+       if (entry->indev)
+@@ -112,6 +132,7 @@
+       /* Drop reference to owner of hook which queued us. */
+       module_put(entry->elem->owner);
+ }
++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs);
+ /*
+  * Any packet that leaves via this function must come back
+@@ -123,7 +144,8 @@
+                     struct net_device *indev,
+                     struct net_device *outdev,
+                     int (*okfn)(struct sk_buff *),
+-                    unsigned int queuenum)
++                    unsigned int queuenum,
++                    unsigned int queuetype)
+ {
+       int status = -ENOENT;
+       struct nf_queue_entry *entry = NULL;
+@@ -137,7 +159,17 @@
+       /* QUEUE == DROP if no one is waiting, to be safe. */
+       rcu_read_lock();
+-      qh = rcu_dereference(queue_handler[pf]);
++      if (queuetype == NF_IMQ_QUEUE) {
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              qh = rcu_dereference(queue_imq_handler);
++#else
++              BUG();
++              goto err_unlock;
++#endif
++      } else {
++              qh = rcu_dereference(queue_handler[pf]);
++      }
++
+       if (!qh) {
+               status = -ESRCH;
+               goto err_unlock;
+@@ -209,7 +241,8 @@
+            struct net_device *indev,
+            struct net_device *outdev,
+            int (*okfn)(struct sk_buff *),
+-           unsigned int queuenum)
++           unsigned int queuenum,
++           unsigned int queuetype)
+ {
+       struct sk_buff *segs;
+       int err;
+@@ -217,7 +250,7 @@
+       if (!skb_is_gso(skb))
+               return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                queuenum);
++                                queuenum, queuetype);
+       switch (pf) {
+       case NFPROTO_IPV4:
+@@ -244,7 +277,7 @@
+               segs->next = NULL;
+               if (err == 0)
+                       err = __nf_queue(segs, elem, pf, hook, indev,
+-                                         outdev, okfn, queuenum);
++                                       outdev, okfn, queuenum, queuetype);
+               if (err == 0)
+                       queued++;
+               else
+@@ -299,9 +332,11 @@
+               local_bh_enable();
+               break;
+       case NF_QUEUE:
++      case NF_IMQ_QUEUE:
+               err = __nf_queue(skb, elem, entry->pf, entry->hook,
+                                entry->indev, entry->outdev, entry->okfn,
+-                               verdict >> NF_VERDICT_QBITS);
++                               verdict >> NF_VERDICT_QBITS,
++                               verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.1/net/netfilter/xt_IMQ.c linux-3.1-imq/net/netfilter/xt_IMQ.c
+--- linux-3.1/net/netfilter/xt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.1-imq/net/netfilter/xt_IMQ.c       2011-11-04 11:12:52.123057315 +0200
+@@ -0,0 +1,74 @@
++/*
++ * This target marks packets to be enqueued to an imq device
++ */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff *pskb,
++                              const struct xt_action_param *par)
++{
++      const struct xt_imq_info *mr = par->targinfo;
++
++      pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE;
++
++      return XT_CONTINUE;
++}
++
++static int imq_checkentry(const struct xt_tgchk_param *par)
++{
++      struct xt_imq_info *mr = par->targinfo;
++
++      if (mr->todev > IMQ_MAX_DEVS - 1) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS - 1);
++              return -EINVAL;
++      }
++
++      return 0;
++}
++
++static struct xt_target xt_imq_reg[] __read_mostly = {
++      {
++              .name           = "IMQ",
++              .family         = AF_INET,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++      {
++              .name           = "IMQ",
++              .family         = AF_INET6,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++};
++
++static int __init imq_init(void)
++{
++      return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++static void __exit imq_fini(void)
++{
++      xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++module_init(imq_init);
++module_exit(imq_fini);
++
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. "
++                 "See http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ipt_IMQ");
++MODULE_ALIAS("ip6t_IMQ");
++
diff --git a/src/patches/linux-3.2-0001-panda-wlan-fix.patch b/src/patches/linux-3.2-0001-panda-wlan-fix.patch
new file mode 100644 (file)
index 0000000..a2aaf20
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
+index daa056e..fe03b09 100644
+--- a/arch/arm/mach-omap2/twl-common.c
++++ b/arch/arm/mach-omap2/twl-common.c
+@@ -261,6 +261,7 @@ static struct regulator_init_data omap4_vusb_idata = {
+ static struct regulator_init_data omap4_clk32kg_idata = {
+       .constraints = {
+               .valid_ops_mask         = REGULATOR_CHANGE_STATUS,
++              .always_on              = true,
+       },
+ };
diff --git a/src/patches/linux-3.2-0002-panda-i2c.patch b/src/patches/linux-3.2-0002-panda-i2c.patch
new file mode 100644 (file)
index 0000000..fa3f6cc
--- /dev/null
@@ -0,0 +1,51 @@
+diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c
+index 7f47092..2a05d3d 100644
+--- a/arch/arm/mach-omap2/id.c
++++ b/arch/arm/mach-omap2/id.c
+@@ -389,8 +389,10 @@ static void __init omap4_check_revision(void)
+                       omap_revision = OMAP4430_REV_ES2_1;
+                       break;
+               case 4:
+-              default:
+                       omap_revision = OMAP4430_REV_ES2_2;
++              case 6:
++              default:
++                      omap_revision = OMAP4430_REV_ES2_3;
+               }
+               break;
+       case 0xb94e:
+@@ -403,7 +405,7 @@ static void __init omap4_check_revision(void)
+               break;
+       default:
+               /* Unknown default to latest silicon rev as default */
+-              omap_revision = OMAP4430_REV_ES2_2;
++              omap_revision = OMAP4430_REV_ES2_3;
+       }
+       pr_info("OMAP%04x ES%d.%d\n", omap_rev() >> 16,
+diff --git a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+index 7695e5d..71d3e36 100644
+--- a/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
++++ b/arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+@@ -2257,7 +2257,8 @@ static struct omap_hwmod_class omap44xx_i2c_hwmod_class = {
+ };
+ static struct omap_i2c_dev_attr i2c_dev_attr = {
+-      .flags  = OMAP_I2C_FLAG_BUS_SHIFT_NONE,
++      .flags  = OMAP_I2C_FLAG_BUS_SHIFT_NONE |
++                      OMAP_I2C_FLAG_RESET_REGS_POSTIDLE,
+ };
+ /* i2c1 */
+diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h
+index 408a12f..e279395 100644
+--- a/arch/arm/plat-omap/include/plat/cpu.h
++++ b/arch/arm/plat-omap/include/plat/cpu.h
+@@ -391,6 +391,7 @@ IS_OMAP_TYPE(3517, 0x3517)
+ #define OMAP4430_REV_ES2_0    (OMAP443X_CLASS | (0x20 << 8))
+ #define OMAP4430_REV_ES2_1    (OMAP443X_CLASS | (0x21 << 8))
+ #define OMAP4430_REV_ES2_2    (OMAP443X_CLASS | (0x22 << 8))
++#define OMAP4430_REV_ES2_3    (OMAP443X_CLASS | (0x23 << 8))
+ #define OMAP446X_CLASS                0x44600044
+ #define OMAP4460_REV_ES1_0    (OMAP446X_CLASS | (0x10 << 8))
diff --git a/src/patches/linux-3.2-imq.patch b/src/patches/linux-3.2-imq.patch
new file mode 100644 (file)
index 0000000..8e8685d
--- /dev/null
@@ -0,0 +1,1603 @@
+diff -uNr linux-3.2/drivers/net/imq.c linux-3.2-imq/drivers/net/imq.c
+--- linux-3.2/drivers/net/imq.c        1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/drivers/net/imq.c    2011-11-04 12:16:10.454992642 +0200
+@@ -0,0 +1,850 @@
++/*
++ *             Pseudo-driver for the intermediate queue device.
++ *
++ *             This program is free software; you can redistribute it and/or
++ *             modify it under the terms of the GNU General Public License
++ *             as published by the Free Software Foundation; either version
++ *             2 of the License, or (at your option) any later version.
++ *
++ * Authors:    Patrick McHardy, <kaber@trash.net>
++ *
++ *            The first version was written by Martin Devera, <devik@cdi.cz>
++ *
++ * Credits:    Jan Rafaj <imq2t@cedric.vabo.cz>
++ *              - Update patch to 2.4.21
++ *             Sebastian Strollo <sstrollo@nortelnetworks.com>
++ *              - Fix "Dead-loop on netdevice imq"-issue
++ *             Marcel Sebek <sebek64@post.cz>
++ *              - Update to 2.6.2-rc1
++ *
++ *           After some time of inactivity there is a group taking care
++ *           of IMQ again: http://www.linuximq.net
++ *
++ *
++ *           2004/06/30 - New version of IMQ patch to kernels <=2.6.7
++ *             including the following changes:
++ *
++ *           - Correction of ipv6 support "+"s issue (Hasso Tepper)
++ *           - Correction of imq_init_devs() issue that resulted in
++ *           kernel OOPS unloading IMQ as module (Norbert Buchmuller)
++ *           - Addition of functionality to choose number of IMQ devices
++ *           during kernel config (Andre Correa)
++ *           - Addition of functionality to choose how IMQ hooks on
++ *           PRE and POSTROUTING (after or before NAT) (Andre Correa)
++ *           - Cosmetic corrections (Norbert Buchmuller) (Andre Correa)
++ *
++ *
++ *             2005/12/16 - IMQ versions between 2.6.7 and 2.6.13 were
++ *             released with almost no problems. 2.6.14-x was released
++ *             with some important changes: nfcache was removed; After
++ *             some weeks of trouble we figured out that some IMQ fields
++ *             in skb were missing in skbuff.c - skb_clone and copy_skb_header.
++ *             These functions are correctly patched by this new patch version.
++ *
++ *             Thanks for all who helped to figure out all the problems with
++ *             2.6.14.x: Patrick McHardy, Rune Kock, VeNoMouS, Max CtRiX,
++ *             Kevin Shanahan, Richard Lucassen, Valery Dachev (hopefully
++ *             I didn't forget anybody). I apologize again for my lack of time.
++ *
++ *
++ *             2008/06/17 - 2.6.25 - Changed imq.c to use qdisc_run() instead
++ *             of qdisc_restart() and moved qdisc_run() to tasklet to avoid
++ *             recursive locking. New initialization routines to fix 'rmmod' not
++ *             working anymore. Used code from ifb.c. (Jussi Kivilinna)
++ *
++ *             2008/08/06 - 2.6.26 - (JK)
++ *              - Replaced tasklet with 'netif_schedule()'.
++ *              - Cleaned up and added comments for imq_nf_queue().
++ *
++ *             2009/04/12
++ *              - Add skb_save_cb/skb_restore_cb helper functions for backuping
++ *                control buffer. This is needed because qdisc-layer on kernels
++ *                2.6.27 and newer overwrite control buffer. (Jussi Kivilinna)
++ *              - Add better locking for IMQ device. Hopefully this will solve
++ *                SMP issues. (Jussi Kivilinna)
++ *              - Port to 2.6.27
++ *              - Port to 2.6.28
++ *              - Port to 2.6.29 + fix rmmod not working
++ *
++ *             2009/04/20 - (Jussi Kivilinna)
++ *              - Use netdevice feature flags to avoid extra packet handling
++ *                by core networking layer and possibly increase performance.
++ *
++ *             2009/09/26 - (Jussi Kivilinna)
++ *              - Add imq_nf_reinject_lockless to fix deadlock with
++ *                imq_nf_queue/imq_nf_reinject.
++ *
++ *             2009/12/08 - (Jussi Kivilinna)
++ *              - Port to 2.6.32
++ *              - Add check for skb->nf_queue_entry==NULL in imq_dev_xmit()
++ *              - Also add better error checking for skb->nf_queue_entry usage
++ *
++ *             2010/02/25 - (Jussi Kivilinna)
++ *              - Port to 2.6.33
++ *
++ *             2010/08/15 - (Jussi Kivilinna)
++ *              - Port to 2.6.35
++ *              - Simplify hook registration by using nf_register_hooks.
++ *              - nf_reinject doesn't need spinlock around it, therefore remove
++ *                imq_nf_reinject function. Other nf_reinject users protect
++ *                their own data with spinlock. With IMQ however all data is
++ *                needed is stored per skbuff, so no locking is needed.
++ *              - Changed IMQ to use 'separate' NF_IMQ_QUEUE instead of
++ *                NF_QUEUE, this allows working coexistance of IMQ and other
++ *                NF_QUEUE users.
++ *              - Make IMQ multi-queue. Number of IMQ device queues can be
++ *                increased with 'numqueues' module parameters. Default number
++ *                of queues is 1, in other words by default IMQ works as
++ *                single-queue device. Multi-queue selection is based on
++ *                IFB multi-queue patch by Changli Gao <xiaosuo@gmail.com>.
++ *
++ *             2011/03/18 - (Jussi Kivilinna)
++ *              - Port to 2.6.38
++ *
++ *             2011/07/12 - (syoder89@gmail.com)
++ *              - Crash fix that happens when the receiving interface has more
++ *                than one queue (add missing skb_set_queue_mapping in
++ *                imq_select_queue).
++ *
++ *             2011/07/26 - (Jussi Kivilinna)
++ *              - Add queue mapping checks for packets exiting IMQ.
++ *              - Port to 3.0
++ *
++ *             2011/08/16 - (Jussi Kivilinna)
++ *              - Clear IFF_TX_SKB_SHARING flag that was added for linux 3.0.2
++ *
++ *             2011/11/03 - Germano Michel <germanomichel@gmail.com>
++ *              - Fix IMQ for net namespaces
++ *
++ *             2011/11/04 - Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
++ *              - Port to 3.1
++ *              - Clean-up, move 'get imq device pointer by imqX name' to
++ *                separate function from imq_nf_queue().
++ *
++ *           Also, many thanks to pablo Sebastian Greco for making the initial
++ *           patch and to those who helped the testing.
++ *
++ *             More info at: http://www.linuximq.net/ (Andre Correa)
++ */
++
++#include <linux/module.h>
++#include <linux/kernel.h>
++#include <linux/moduleparam.h>
++#include <linux/list.h>
++#include <linux/skbuff.h>
++#include <linux/netdevice.h>
++#include <linux/etherdevice.h>
++#include <linux/rtnetlink.h>
++#include <linux/if_arp.h>
++#include <linux/netfilter.h>
++#include <linux/netfilter_ipv4.h>
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      #include <linux/netfilter_ipv6.h>
++#endif
++#include <linux/imq.h>
++#include <net/pkt_sched.h>
++#include <net/netfilter/nf_queue.h>
++#include <net/sock.h>
++#include <linux/ip.h>
++#include <linux/ipv6.h>
++#include <linux/if_vlan.h>
++#include <linux/if_pppox.h>
++#include <net/ip.h>
++#include <net/ipv6.h>
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num);
++
++static nf_hookfn imq_nf_hook;
++
++static struct nf_hook_ops imq_ops[] = {
++      {
++      /* imq_ingress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv4 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP_PRI_LAST,
++#else
++              .priority       = NF_IP_PRI_NAT_SRC - 1,
++#endif
++      },
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      {
++      /* imq_ingress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_PRE_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++              .priority       = NF_IP6_PRI_MANGLE + 1,
++#else
++              .priority       = NF_IP6_PRI_NAT_DST + 1,
++#endif
++      },
++      {
++      /* imq_egress_ipv6 */
++              .hook           = imq_nf_hook,
++              .owner          = THIS_MODULE,
++              .pf             = PF_INET6,
++              .hooknum        = NF_INET_POST_ROUTING,
++#if defined(CONFIG_IMQ_BEHAVIOR_AA) || defined(CONFIG_IMQ_BEHAVIOR_BA)
++              .priority       = NF_IP6_PRI_LAST,
++#else
++              .priority       = NF_IP6_PRI_NAT_SRC - 1,
++#endif
++      },
++#endif
++};
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++static int numdevs = CONFIG_IMQ_NUM_DEVS;
++#else
++static int numdevs = IMQ_MAX_DEVS;
++#endif
++
++static struct net_device *imq_devs_cache[IMQ_MAX_DEVS];
++
++#define IMQ_MAX_QUEUES 32
++static int numqueues = 1;
++static u32 imq_hashrnd;
++
++static inline __be16 pppoe_proto(const struct sk_buff *skb)
++{
++      return *((__be16 *)(skb_mac_header(skb) + ETH_HLEN +
++                      sizeof(struct pppoe_hdr)));
++}
++
++static u16 imq_hash(struct net_device *dev, struct sk_buff *skb)
++{
++      unsigned int pull_len;
++      u16 protocol = skb->protocol;
++      u32 addr1, addr2;
++      u32 hash, ihl = 0;
++      union {
++              u16 in16[2];
++              u32 in32;
++      } ports;
++      u8 ip_proto;
++
++      pull_len = 0;
++
++recheck:
++      switch (protocol) {
++      case htons(ETH_P_8021Q): {
++              if (unlikely(skb_pull(skb, VLAN_HLEN) == NULL))
++                      goto other;
++
++              pull_len += VLAN_HLEN;
++              skb->network_header += VLAN_HLEN;
++
++              protocol = vlan_eth_hdr(skb)->h_vlan_encapsulated_proto;
++              goto recheck;
++      }
++
++      case htons(ETH_P_PPP_SES): {
++              if (unlikely(skb_pull(skb, PPPOE_SES_HLEN) == NULL))
++                      goto other;
++
++              pull_len += PPPOE_SES_HLEN;
++              skb->network_header += PPPOE_SES_HLEN;
++
++              protocol = pppoe_proto(skb);
++              goto recheck;
++      }
++
++      case htons(ETH_P_IP): {
++              const struct iphdr *iph = ip_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct iphdr))))
++                      goto other;
++
++              addr1 = iph->daddr;
++              addr2 = iph->saddr;
++
++              ip_proto = !(ip_hdr(skb)->frag_off & htons(IP_MF | IP_OFFSET)) ?
++                               iph->protocol : 0;
++              ihl = ip_hdrlen(skb);
++
++              break;
++      }
++#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
++      case htons(ETH_P_IPV6): {
++              const struct ipv6hdr *iph = ipv6_hdr(skb);
++
++              if (unlikely(!pskb_may_pull(skb, sizeof(struct ipv6hdr))))
++                      goto other;
++
++              addr1 = iph->daddr.s6_addr32[3];
++              addr2 = iph->saddr.s6_addr32[3];
++              ihl = ipv6_skip_exthdr(skb, sizeof(struct ipv6hdr), &ip_proto);
++              if (unlikely(ihl < 0))
++                      goto other;
++
++              break;
++      }
++#endif
++      default:
++other:
++              if (pull_len != 0) {
++                      skb_push(skb, pull_len);
++                      skb->network_header -= pull_len;
++              }
++
++              return (u16)(ntohs(protocol) % dev->real_num_tx_queues);
++      }
++
++      if (addr1 > addr2)
++              swap(addr1, addr2);
++
++      switch (ip_proto) {
++      case IPPROTO_TCP:
++      case IPPROTO_UDP:
++      case IPPROTO_DCCP:
++      case IPPROTO_ESP:
++      case IPPROTO_AH:
++      case IPPROTO_SCTP:
++      case IPPROTO_UDPLITE: {
++              if (likely(skb_copy_bits(skb, ihl, &ports.in32, 4) >= 0)) {
++                      if (ports.in16[0] > ports.in16[1])
++                              swap(ports.in16[0], ports.in16[1]);
++                      break;
++              }
++              /* fall-through */
++      }
++      default:
++              ports.in32 = 0;
++              break;
++      }
++
++      if (pull_len != 0) {
++              skb_push(skb, pull_len);
++              skb->network_header -= pull_len;
++      }
++
++      hash = jhash_3words(addr1, addr2, ports.in32, imq_hashrnd ^ ip_proto);
++
++      return (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++}
++
++static inline bool sk_tx_queue_recorded(struct sock *sk)
++{
++      return (sk_tx_queue_get(sk) >= 0);
++}
++
++static struct netdev_queue *imq_select_queue(struct net_device *dev,
++                                              struct sk_buff *skb)
++{
++      u16 queue_index = 0;
++      u32 hash;
++
++      if (likely(dev->real_num_tx_queues == 1))
++              goto out;
++
++      /* IMQ can be receiving ingress or engress packets. */
++
++      /* Check first for if rx_queue is set */
++      if (skb_rx_queue_recorded(skb)) {
++              queue_index = skb_get_rx_queue(skb);
++              goto out;
++      }
++
++      /* Check if socket has tx_queue set */
++      if (sk_tx_queue_recorded(skb->sk)) {
++              queue_index = sk_tx_queue_get(skb->sk);
++              goto out;
++      }
++
++      /* Try use socket hash */
++      if (skb->sk && skb->sk->sk_hash) {
++              hash = skb->sk->sk_hash;
++              queue_index =
++                      (u16)(((u64)hash * dev->real_num_tx_queues) >> 32);
++              goto out;
++      }
++
++      /* Generate hash from packet data */
++      queue_index = imq_hash(dev, skb);
++
++out:
++      if (unlikely(queue_index >= dev->real_num_tx_queues))
++              queue_index = (u16)((u32)queue_index % dev->real_num_tx_queues);
++
++      skb_set_queue_mapping(skb, queue_index);
++      return netdev_get_tx_queue(dev, queue_index);
++}
++
++static struct net_device_stats *imq_get_stats(struct net_device *dev)
++{
++      return &dev->stats;
++}
++
++/* called for packets kfree'd in qdiscs at places other than enqueue */
++static void imq_skb_destructor(struct sk_buff *skb)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++
++      if (entry) {
++              nf_queue_entry_release_refs(entry);
++              kfree(entry);
++      }
++
++      skb_restore_cb(skb); /* kfree backup */
++}
++
++static void imq_done_check_queue_mapping(struct sk_buff *skb,
++                                       struct net_device *dev)
++{
++      unsigned int queue_index;
++
++      /* Don't let queue_mapping be left too large after exiting IMQ */
++      if (likely(skb->dev != dev && skb->dev != NULL)) {
++              queue_index = skb_get_queue_mapping(skb);
++              if (unlikely(queue_index >= skb->dev->real_num_tx_queues)) {
++                      queue_index = (u16)((u32)queue_index %
++                                              skb->dev->real_num_tx_queues);
++                      skb_set_queue_mapping(skb, queue_index);
++              }
++      } else {
++              /* skb->dev was IMQ device itself or NULL, be on safe side and
++               * just clear queue mapping.
++               */
++              skb_set_queue_mapping(skb, 0);
++      }
++}
++
++static netdev_tx_t imq_dev_xmit(struct sk_buff *skb, struct net_device *dev)
++{
++      struct nf_queue_entry *entry = skb->nf_queue_entry;
++
++      skb->nf_queue_entry = NULL;
++      dev->trans_start = jiffies;
++
++      dev->stats.tx_bytes += skb->len;
++      dev->stats.tx_packets++;
++
++      if (unlikely(entry == NULL)) {
++              /* We don't know what is going on here.. packet is queued for
++               * imq device, but (probably) not by us.
++               *
++               * If this packet was not send here by imq_nf_queue(), then
++               * skb_save_cb() was not used and skb_free() should not show:
++               *   WARNING: IMQ: kfree_skb: skb->cb_next:..
++               * and/or
++               *   WARNING: IMQ: kfree_skb: skb->nf_queue_entry...
++               *
++               * However if this message is shown, then IMQ is somehow broken
++               * and you should report this to linuximq.net.
++               */
++
++              /* imq_dev_xmit is black hole that eats all packets, report that
++               * we eat this packet happily and increase dropped counters.
++               */
++
++              dev->stats.tx_dropped++;
++              dev_kfree_skb(skb);
++
++              return NETDEV_TX_OK;
++      }
++
++      skb_restore_cb(skb); /* restore skb->cb */
++
++      skb->imq_flags = 0;
++      skb->destructor = NULL;
++
++      imq_done_check_queue_mapping(skb, dev);
++
++      nf_reinject(entry, NF_ACCEPT);
++
++      return NETDEV_TX_OK;
++}
++
++static struct net_device *get_imq_device_by_index(int index)
++{
++      struct net_device *dev = NULL;
++      struct net *net;
++      char buf[8];
++
++      /* get device by name and cache result */
++      snprintf(buf, sizeof(buf), "imq%d", index);
++
++      /* Search device from all namespaces. */
++      for_each_net(net) {
++              dev = dev_get_by_name(net, buf);
++              if (dev)
++                      break;
++      }
++
++      if (WARN_ON_ONCE(dev == NULL)) {
++              /* IMQ device not found. Exotic config? */
++              return ERR_PTR(-ENODEV);
++      }
++
++      imq_devs_cache[index] = dev;
++      dev_put(dev);
++
++      return dev;
++}
++
++static int imq_nf_queue(struct nf_queue_entry *entry, unsigned queue_num)
++{
++      struct net_device *dev;
++      struct sk_buff *skb_orig, *skb, *skb_shared;
++      struct Qdisc *q;
++      struct netdev_queue *txq;
++      spinlock_t *root_lock;
++      int users, index;
++      int retval = -EINVAL;
++      unsigned int orig_queue_index;
++
++      index = entry->skb->imq_flags & IMQ_F_IFMASK;
++      if (unlikely(index > numdevs - 1)) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING
++                             "IMQ: invalid device specified, highest is %u\n",
++                             numdevs - 1);
++              retval = -EINVAL;
++              goto out;
++      }
++
++      /* check for imq device by index from cache */
++      dev = imq_devs_cache[index];
++      if (unlikely(!dev)) {
++              dev = get_imq_device_by_index(index);
++              if (IS_ERR(dev)) {
++                      retval = PTR_ERR(dev);
++                      goto out;
++              }
++      }
++
++      if (unlikely(!(dev->flags & IFF_UP))) {
++              entry->skb->imq_flags = 0;
++              nf_reinject(entry, NF_ACCEPT);
++              retval = 0;
++              goto out;
++      }
++      dev->last_rx = jiffies;
++
++      skb = entry->skb;
++      skb_orig = NULL;
++
++      /* skb has owner? => make clone */
++      if (unlikely(skb->destructor)) {
++              skb_orig = skb;
++              skb = skb_clone(skb, GFP_ATOMIC);
++              if (unlikely(!skb)) {
++                      retval = -ENOMEM;
++                      goto out;
++              }
++              entry->skb = skb;
++      }
++
++      skb->nf_queue_entry = entry;
++
++      dev->stats.rx_bytes += skb->len;
++      dev->stats.rx_packets++;
++
++      if (!skb->dev) {
++              /* skb->dev == NULL causes problems, try the find cause. */
++              if (net_ratelimit()) {
++                      dev_warn(&dev->dev,
++                               "received packet with skb->dev == NULL\n");
++                      dump_stack();
++              }
++
++              skb->dev = dev;
++      }
++
++      /* Disables softirqs for lock below */
++      rcu_read_lock_bh();
++
++      /* Multi-queue selection */
++      orig_queue_index = skb_get_queue_mapping(skb);
++      txq = imq_select_queue(dev, skb);
++
++      q = rcu_dereference(txq->qdisc);
++      if (unlikely(!q->enqueue))
++              goto packet_not_eaten_by_imq_dev;
++
++      root_lock = qdisc_lock(q);
++      spin_lock(root_lock);
++
++      users = atomic_read(&skb->users);
++
++      skb_shared = skb_get(skb); /* increase reference count by one */
++      skb_save_cb(skb_shared); /* backup skb->cb, as qdisc layer will
++                                      overwrite it */
++      qdisc_enqueue_root(skb_shared, q); /* might kfree_skb */
++
++      if (likely(atomic_read(&skb_shared->users) == users + 1)) {
++              kfree_skb(skb_shared); /* decrease reference count by one */
++
++              skb->destructor = &imq_skb_destructor;
++
++              /* cloned? */
++              if (unlikely(skb_orig))
++                      kfree_skb(skb_orig); /* free original */
++
++              spin_unlock(root_lock);
++              rcu_read_unlock_bh();
++
++              /* schedule qdisc dequeue */
++              __netif_schedule(q);
++
++              retval = 0;
++              goto out;
++      } else {
++              skb_restore_cb(skb_shared); /* restore skb->cb */
++              skb->nf_queue_entry = NULL;
++              /* qdisc dropped packet and decreased skb reference count of
++               * skb, so we don't really want to and try refree as that would
++               * actually destroy the skb. */
++              spin_unlock(root_lock);
++              goto packet_not_eaten_by_imq_dev;
++      }
++
++packet_not_eaten_by_imq_dev:
++      skb_set_queue_mapping(skb, orig_queue_index);
++      rcu_read_unlock_bh();
++
++      /* cloned? restore original */
++      if (unlikely(skb_orig)) {
++              kfree_skb(skb);
++              entry->skb = skb_orig;
++      }
++      retval = -1;
++out:
++      return retval;
++}
++
++static unsigned int imq_nf_hook(unsigned int hook, struct sk_buff *pskb,
++                              const struct net_device *indev,
++                              const struct net_device *outdev,
++                              int (*okfn)(struct sk_buff *))
++{
++      return (pskb->imq_flags & IMQ_F_ENQUEUE) ? NF_IMQ_QUEUE : NF_ACCEPT;
++}
++
++static int imq_close(struct net_device *dev)
++{
++      netif_stop_queue(dev);
++      return 0;
++}
++
++static int imq_open(struct net_device *dev)
++{
++      netif_start_queue(dev);
++      return 0;
++}
++
++static const struct net_device_ops imq_netdev_ops = {
++      .ndo_open               = imq_open,
++      .ndo_stop               = imq_close,
++      .ndo_start_xmit         = imq_dev_xmit,
++      .ndo_get_stats          = imq_get_stats,
++};
++
++static void imq_setup(struct net_device *dev)
++{
++      dev->netdev_ops         = &imq_netdev_ops;
++      dev->type               = ARPHRD_VOID;
++      dev->mtu                = 16000; /* too small? */
++      dev->tx_queue_len       = 11000; /* too big? */
++      dev->flags              = IFF_NOARP;
++      dev->features           = NETIF_F_SG | NETIF_F_FRAGLIST |
++                                NETIF_F_GSO | NETIF_F_HW_CSUM |
++                                NETIF_F_HIGHDMA;
++      dev->priv_flags         &= ~(IFF_XMIT_DST_RELEASE |
++                                   IFF_TX_SKB_SHARING);
++}
++
++static int imq_validate(struct nlattr *tb[], struct nlattr *data[])
++{
++      int ret = 0;
++
++      if (tb[IFLA_ADDRESS]) {
++              if (nla_len(tb[IFLA_ADDRESS]) != ETH_ALEN) {
++                      ret = -EINVAL;
++                      goto end;
++              }
++              if (!is_valid_ether_addr(nla_data(tb[IFLA_ADDRESS]))) {
++                      ret = -EADDRNOTAVAIL;
++                      goto end;
++              }
++      }
++      return 0;
++end:
++      printk(KERN_WARNING "IMQ: imq_validate failed (%d)\n", ret);
++      return ret;
++}
++
++static struct rtnl_link_ops imq_link_ops __read_mostly = {
++      .kind           = "imq",
++      .priv_size      = 0,
++      .setup          = imq_setup,
++      .validate       = imq_validate,
++};
++
++static const struct nf_queue_handler imq_nfqh = {
++      .name  = "imq",
++      .outfn = imq_nf_queue,
++};
++
++static int __init imq_init_hooks(void)
++{
++      int ret;
++
++      nf_register_queue_imq_handler(&imq_nfqh);
++
++      ret = nf_register_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      if (ret < 0)
++              nf_unregister_queue_imq_handler();
++
++      return ret;
++}
++
++static int __init imq_init_one(int index)
++{
++      struct net_device *dev;
++      int ret;
++
++      dev = alloc_netdev_mq(0, "imq%d", imq_setup, numqueues);
++      if (!dev)
++              return -ENOMEM;
++
++      ret = dev_alloc_name(dev, dev->name);
++      if (ret < 0)
++              goto fail;
++
++      dev->rtnl_link_ops = &imq_link_ops;
++      ret = register_netdevice(dev);
++      if (ret < 0)
++              goto fail;
++
++      return 0;
++fail:
++      free_netdev(dev);
++      return ret;
++}
++
++static int __init imq_init_devs(void)
++{
++      int err, i;
++
++      if (numdevs < 1 || numdevs > IMQ_MAX_DEVS) {
++              printk(KERN_ERR "IMQ: numdevs has to be betweed 1 and %u\n",
++                     IMQ_MAX_DEVS);
++              return -EINVAL;
++      }
++
++      if (numqueues < 1 || numqueues > IMQ_MAX_QUEUES) {
++              printk(KERN_ERR "IMQ: numqueues has to be betweed 1 and %u\n",
++                     IMQ_MAX_QUEUES);
++              return -EINVAL;
++      }
++
++      get_random_bytes(&imq_hashrnd, sizeof(imq_hashrnd));
++
++      rtnl_lock();
++      err = __rtnl_link_register(&imq_link_ops);
++
++      for (i = 0; i < numdevs && !err; i++)
++              err = imq_init_one(i);
++
++      if (err) {
++              __rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++      }
++      rtnl_unlock();
++
++      return err;
++}
++
++static int __init imq_init_module(void)
++{
++      int err;
++
++#if defined(CONFIG_IMQ_NUM_DEVS)
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS > 16);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS < 2);
++      BUILD_BUG_ON(CONFIG_IMQ_NUM_DEVS - 1 > IMQ_F_IFMASK);
++#endif
++
++      err = imq_init_devs();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_devs(net)\n");
++              return err;
++      }
++
++      err = imq_init_hooks();
++      if (err) {
++              printk(KERN_ERR "IMQ: Error trying imq_init_hooks()\n");
++              rtnl_link_unregister(&imq_link_ops);
++              memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++              return err;
++      }
++
++      printk(KERN_INFO "IMQ driver loaded successfully. "
++              "(numdevs = %d, numqueues = %d)\n", numdevs, numqueues);
++
++#if defined(CONFIG_IMQ_BEHAVIOR_BA) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on PREROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on PREROUTING.\n");
++#endif
++#if defined(CONFIG_IMQ_BEHAVIOR_AB) || defined(CONFIG_IMQ_BEHAVIOR_BB)
++      printk(KERN_INFO "\tHooking IMQ before NAT on POSTROUTING.\n");
++#else
++      printk(KERN_INFO "\tHooking IMQ after NAT on POSTROUTING.\n");
++#endif
++
++      return 0;
++}
++
++static void __exit imq_unhook(void)
++{
++      nf_unregister_hooks(imq_ops, ARRAY_SIZE(imq_ops));
++      nf_unregister_queue_imq_handler();
++}
++
++static void __exit imq_cleanup_devs(void)
++{
++      rtnl_link_unregister(&imq_link_ops);
++      memset(imq_devs_cache, 0, sizeof(imq_devs_cache));
++}
++
++static void __exit imq_exit_module(void)
++{
++      imq_unhook();
++      imq_cleanup_devs();
++      printk(KERN_INFO "IMQ driver unloaded successfully.\n");
++}
++
++module_init(imq_init_module);
++module_exit(imq_exit_module);
++
++module_param(numdevs, int, 0);
++module_param(numqueues, int, 0);
++MODULE_PARM_DESC(numdevs, "number of IMQ devices (how many imq* devices will "
++                      "be created)");
++MODULE_PARM_DESC(numqueues, "number of queues per IMQ device");
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. See "
++                      "http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS_RTNL_LINK("imq");
++
+diff -uNr linux-3.2/drivers/net/Kconfig linux-3.2-imq/drivers/net/Kconfig
+--- linux-3.2/drivers/net/Kconfig      2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/drivers/net/Kconfig  2011-11-04 11:12:52.106390309 +0200
+@@ -90,6 +90,125 @@
+         To compile this driver as a module, choose M here: the module
+         will be called eql.  If unsure, say N.
++config IMQ
++      tristate "IMQ (intermediate queueing device) support"
++      depends on NETDEVICES && NETFILTER
++      ---help---
++        The IMQ device(s) is used as placeholder for QoS queueing
++        disciplines. Every packet entering/leaving the IP stack can be
++        directed through the IMQ device where it's enqueued/dequeued to the
++        attached qdisc. This allows you to treat network devices as classes
++        and distribute bandwidth among them. Iptables is used to specify
++        through which IMQ device, if any, packets travel.
++
++        More information at: http://www.linuximq.net/
++
++        To compile this driver as a module, choose M here: the module
++        will be called imq.  If unsure, say N.
++
++choice
++      prompt "IMQ behavior (PRE/POSTROUTING)"
++      depends on IMQ
++      default IMQ_BEHAVIOR_AB
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        IMQ can work in any of the following ways:
++
++            PREROUTING   |      POSTROUTING
++        -----------------|-------------------
++        #1  After NAT    |      After NAT
++        #2  After NAT    |      Before NAT
++        #3  Before NAT   |      After NAT
++        #4  Before NAT   |      Before NAT
++
++        The default behavior is to hook before NAT on PREROUTING
++        and after NAT on POSTROUTING (#3).
++
++        This settings are specially usefull when trying to use IMQ
++        to shape NATed clients.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AA
++      bool "IMQ AA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_AB
++      bool "IMQ AB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   After NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BA
++      bool "IMQ BA"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  After NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++config IMQ_BEHAVIOR_BB
++      bool "IMQ BB"
++      help
++        This setting defines how IMQ behaves in respect to its
++        hooking in PREROUTING and POSTROUTING.
++
++        Choosing this option will make IMQ hook like this:
++
++        PREROUTING:   Before NAT
++        POSTROUTING:  Before NAT
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
++endchoice
++
++config IMQ_NUM_DEVS
++      int "Number of IMQ devices"
++      range 2 16
++      depends on IMQ
++      default "16"
++      help
++        This setting defines how many IMQ devices will be created.
++
++        The default value is 16.
++
++        More information can be found at: www.linuximq.net
++
++        If not sure leave the default settings alone.
++
+ config NET_FC
+       bool "Fibre Channel driver support"
+       depends on SCSI && PCI
+diff -uNr linux-3.2/drivers/net/Makefile linux-3.2-imq/drivers/net/Makefile
+--- linux-3.2/drivers/net/Makefile     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/drivers/net/Makefile 2011-11-04 11:12:52.106390309 +0200
+@@ -8,6 +8,7 @@ 
+ obj-$(CONFIG_BONDING) += bonding/
+ obj-$(CONFIG_DUMMY) += dummy.o
+ obj-$(CONFIG_EQUALIZER) += eql.o
++obj-$(CONFIG_IMQ) += imq.o
+ obj-$(CONFIG_IFB) += ifb.o
+ obj-$(CONFIG_MACVLAN) += macvlan.o
+ obj-$(CONFIG_MACVTAP) += macvtap.o
+diff -uNr linux-3.2/include/linux/imq.h linux-3.2-imq/include/linux/imq.h
+--- linux-3.2/include/linux/imq.h      1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/imq.h  2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,13 @@
++#ifndef _IMQ_H
++#define _IMQ_H
++
++/* IFMASK (16 device indexes, 0 to 15) and flag(s) fit in 5 bits */
++#define IMQ_F_BITS    5
++
++#define IMQ_F_IFMASK  0x0f
++#define IMQ_F_ENQUEUE 0x10
++
++#define IMQ_MAX_DEVS  (IMQ_F_IFMASK + 1)
++
++#endif /* _IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter/xt_IMQ.h linux-3.2-imq/include/linux/netfilter/xt_IMQ.h
+--- linux-3.2/include/linux/netfilter/xt_IMQ.h 1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter/xt_IMQ.h     2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,9 @@
++#ifndef _XT_IMQ_H
++#define _XT_IMQ_H
++
++struct xt_imq_info {
++      unsigned int todev;     /* target imq device */
++};
++
++#endif /* _XT_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter.h linux-3.2-imq/include/linux/netfilter.h
+--- linux-3.2/include/linux/netfilter.h        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/linux/netfilter.h    2011-11-04 11:12:52.109723710 +0200
+@@ -22,7 +22,8 @@
+ #define NF_QUEUE 3
+ #define NF_REPEAT 4
+ #define NF_STOP 5
+-#define NF_MAX_VERDICT NF_STOP
++#define NF_IMQ_QUEUE 6
++#define NF_MAX_VERDICT NF_IMQ_QUEUE
+ /* we overload the higher bits for encoding auxiliary data such as the queue
+  * number or errno values. Not nice, but better than additional function
+diff -uNr linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h
+--- linux-3.2/include/linux/netfilter_ipv4/ipt_IMQ.h   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter_ipv4/ipt_IMQ.h       2011-11-04 11:12:52.109723710 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IPT_IMQ_H
++#define _IPT_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ipt_imq_info xt_imq_info
++
++#endif /* _IPT_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h
+--- linux-3.2/include/linux/netfilter_ipv6/ip6t_IMQ.h  1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/include/linux/netfilter_ipv6/ip6t_IMQ.h      2011-11-04 11:12:52.113057113 +0200
+@@ -0,0 +1,10 @@
++#ifndef _IP6T_IMQ_H
++#define _IP6T_IMQ_H
++
++/* Backwards compatibility for old userspace */
++#include <linux/netfilter/xt_IMQ.h>
++
++#define ip6t_imq_info xt_imq_info
++
++#endif /* _IP6T_IMQ_H */
++
+diff -uNr linux-3.2/include/linux/skbuff.h linux-3.2-imq/include/linux/skbuff.h
+--- linux-3.2/include/linux/skbuff.h   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/linux/skbuff.h       2011-11-04 11:12:52.116390515 +0200
+@@ -30,6 +30,9 @@
+ #include <linux/dmaengine.h>
+ #include <linux/hrtimer.h>
+ #include <linux/dma-mapping.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ /* Don't change this without changing skb_csum_unnecessary! */
+ #define CHECKSUM_NONE 0
+@@ -386,6 +389,9 @@
+        * first. This is owned by whoever has the skb queued ATM.
+        */
+       char                    cb[48] __aligned(8);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      void                    *cb_next;
++#endif
+       unsigned long           _skb_refdst;
+ #ifdef CONFIG_XFRM
+@@ -424,6 +430,9 @@
+ #ifdef NET_SKBUFF_NF_DEFRAG_NEEDED
+       struct sk_buff          *nfct_reasm;
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      struct nf_queue_entry   *nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       struct nf_bridge_info   *nf_bridge;
+ #endif
+@@ -449,6 +458,10 @@
+       /* 0/13 bit hole */
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      __u8                    imq_flags:IMQ_F_BITS;
++#endif
++
+ #ifdef CONFIG_NET_DMA
+       dma_cookie_t            dma_cookie;
+ #endif
+@@ -535,6 +548,12 @@
+       return (struct rtable *)skb_dst(skb);
+ }
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern int skb_save_cb(struct sk_buff *skb);
++extern int skb_restore_cb(struct sk_buff *skb);
++#endif
++
+ extern void kfree_skb(struct sk_buff *skb);
+ extern void consume_skb(struct sk_buff *skb);
+ extern void          __kfree_skb(struct sk_buff *skb);
+@@ -2368,6 +2387,10 @@
+       dst->nfct_reasm = src->nfct_reasm;
+       nf_conntrack_get_reasm(src->nfct_reasm);
+ #endif
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      dst->imq_flags = src->imq_flags;
++      dst->nf_queue_entry = src->nf_queue_entry;
++#endif
+ #ifdef CONFIG_BRIDGE_NETFILTER
+       dst->nf_bridge  = src->nf_bridge;
+       nf_bridge_get(src->nf_bridge);
+diff -uNr linux-3.2/include/net/netfilter/nf_queue.h linux-3.2-imq/include/net/netfilter/nf_queue.h
+--- linux-3.2/include/net/netfilter/nf_queue.h 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/include/net/netfilter/nf_queue.h     2011-11-04 11:12:52.116390515 +0200
+@@ -30,5 +30,11 @@
+                                      const struct nf_queue_handler *qh);
+ extern void nf_unregister_queue_handlers(const struct nf_queue_handler *qh);
+ extern void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict);
++extern void nf_queue_entry_release_refs(struct nf_queue_entry *entry);
++
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++extern void nf_register_queue_imq_handler(const struct nf_queue_handler *qh);
++extern void nf_unregister_queue_imq_handler(void);
++#endif
+ #endif /* _NF_QUEUE_H */
+diff -uNr linux-3.2/net/core/dev.c linux-3.2-imq/net/core/dev.c
+--- linux-3.2/net/core/dev.c   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/core/dev.c       2011-11-04 11:12:52.119723915 +0200
+@@ -98,6 +98,9 @@
+ #include <net/net_namespace.h>
+ #include <net/sock.h>
+ #include <linux/rtnetlink.h>
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++#include <linux/imq.h>
++#endif
+ #include <linux/proc_fs.h>
+ #include <linux/seq_file.h>
+ #include <linux/stat.h>
+@@ -2185,7 +2188,12 @@
+               if (dev->priv_flags & IFF_XMIT_DST_RELEASE)
+                       skb_dst_drop(skb);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              if (!list_empty(&ptype_all) &&
++                                      !(skb->imq_flags & IMQ_F_ENQUEUE))
++#else
+               if (!list_empty(&ptype_all))
++#endif
+                       dev_queue_xmit_nit(skb, dev);
+               skb_orphan_try(skb);
+diff -uNr linux-3.2/net/core/skbuff.c linux-3.2-imq/net/core/skbuff.c
+--- linux-3.2/net/core/skbuff.c        2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/core/skbuff.c    2011-11-04 11:12:52.123057315 +0200
+@@ -73,6 +73,9 @@
+ static struct kmem_cache *skbuff_head_cache __read_mostly;
+ static struct kmem_cache *skbuff_fclone_cache __read_mostly;
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static struct kmem_cache *skbuff_cb_store_cache __read_mostly;
++#endif
+ static void sock_pipe_buf_release(struct pipe_inode_info *pipe,
+                                 struct pipe_buffer *buf)
+@@ -92,6 +95,82 @@
+       return 1;
+ }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++/* Control buffer save/restore for IMQ devices */
++struct skb_cb_table {
++      char                    cb[48] __aligned(8);
++      void                    *cb_next;
++      atomic_t                refcnt;
++};
++
++static DEFINE_SPINLOCK(skb_cb_store_lock);
++
++int skb_save_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      next = kmem_cache_alloc(skbuff_cb_store_cache, GFP_ATOMIC);
++      if (!next)
++              return -ENOMEM;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(next->cb, skb->cb, sizeof(skb->cb));
++      next->cb_next = skb->cb_next;
++
++      atomic_set(&next->refcnt, 1);
++
++      skb->cb_next = next;
++      return 0;
++}
++EXPORT_SYMBOL(skb_save_cb);
++
++int skb_restore_cb(struct sk_buff *skb)
++{
++      struct skb_cb_table *next;
++
++      if (!skb->cb_next)
++              return 0;
++
++      next = skb->cb_next;
++
++      BUILD_BUG_ON(sizeof(skb->cb) != sizeof(next->cb));
++
++      memcpy(skb->cb, next->cb, sizeof(skb->cb));
++      skb->cb_next = next->cb_next;
++
++      spin_lock(&skb_cb_store_lock);
++
++      if (atomic_dec_and_test(&next->refcnt))
++              kmem_cache_free(skbuff_cb_store_cache, next);
++
++      spin_unlock(&skb_cb_store_lock);
++
++      return 0;
++}
++EXPORT_SYMBOL(skb_restore_cb);
++
++static void skb_copy_stored_cb(struct sk_buff *new, const struct sk_buff *__old)
++{
++      struct skb_cb_table *next;
++      struct sk_buff *old;
++
++      if (!__old->cb_next) {
++              new->cb_next = NULL;
++              return;
++      }
++
++      spin_lock(&skb_cb_store_lock);
++
++      old = (struct sk_buff *)__old;
++
++      next = old->cb_next;
++      atomic_inc(&next->refcnt);
++      new->cb_next = next;
++
++      spin_unlock(&skb_cb_store_lock);
++}
++#endif
+ /* Pipe buffer operations for a socket. */
+ static const struct pipe_buf_operations sock_pipe_buf_ops = {
+@@ -403,6 +482,26 @@
+               WARN_ON(in_irq());
+               skb->destructor(skb);
+       }
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      /* This should not happen. When it does, avoid memleak by restoring
++      the chain of cb-backups. */
++      while (skb->cb_next != NULL) {
++              if (net_ratelimit())
++                      printk(KERN_WARNING "IMQ: kfree_skb: skb->cb_next: "
++                              "%08x\n", (unsigned int)skb->cb_next);
++
++              skb_restore_cb(skb);
++      }
++      /* This should not happen either, nf_queue_entry is nullified in
++       * imq_dev_xmit(). If we have non-NULL nf_queue_entry then we are
++       * leaking entry pointers, maybe memory. We don't know if this is
++       * pointer to already freed memory, or should this be freed.
++       * If this happens we need to add refcounting, etc for nf_queue_entry.
++       */
++      if (skb->nf_queue_entry && net_ratelimit())
++              printk(KERN_WARNING
++                              "IMQ: kfree_skb: skb->nf_queue_entry != NULL");
++#endif
+ #if defined(CONFIG_NF_CONNTRACK) || defined(CONFIG_NF_CONNTRACK_MODULE)
+       nf_conntrack_put(skb->nfct);
+ #endif
+@@ -547,6 +646,9 @@
+       new->sp                 = secpath_get(old->sp);
+ #endif
+       memcpy(new->cb, old->cb, sizeof(old->cb));
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skb_copy_stored_cb(new, old);
++#endif
+       new->csum               = old->csum;
+       new->local_df           = old->local_df;
+       new->pkt_type           = old->pkt_type;
+@@ -2907,6 +3009,13 @@
+                                               0,
+                                               SLAB_HWCACHE_ALIGN|SLAB_PANIC,
+                                               NULL);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++      skbuff_cb_store_cache = kmem_cache_create("skbuff_cb_store_cache",
++                                                sizeof(struct skb_cb_table),
++                                                0,
++                                                SLAB_HWCACHE_ALIGN|SLAB_PANIC,
++                                                NULL);
++#endif
+ }
+ /**
+diff -uNr linux-3.2/net/ipv6/ip6_output.c linux-3.2-imq/net/ipv6/ip6_output.c
+--- linux-3.2/net/ipv6/ip6_output.c    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/ipv6/ip6_output.c        2011-11-04 11:12:52.123057315 +0200
+@@ -102,9 +102,6 @@
+       struct net_device *dev = dst->dev;
+       struct neighbour *neigh;
+-      skb->protocol = htons(ETH_P_IPV6);
+-      skb->dev = dev;
+-
+       if (ipv6_addr_is_multicast(&ipv6_hdr(skb)->daddr)) {
+               struct inet6_dev *idev = ip6_dst_idev(skb_dst(skb));
+@@ -170,6 +167,11 @@
+               return 0;
+       }
++      /* IMQ-patch: moved setting skb->dev and skb->protocol from
++       * ip6_finish_output2 to fix crashing at netif_skb_features(). */
++      skb->protocol = htons(ETH_P_IPV6);
++      skb->dev = dev;
++
+       return NF_HOOK_COND(NFPROTO_IPV6, NF_INET_POST_ROUTING, skb, NULL, dev,
+                           ip6_finish_output,
+                           !(IP6CB(skb)->flags & IP6SKB_REROUTED));
+diff -uNr linux-3.2/net/netfilter/core.c linux-3.2-imq/net/netfilter/core.c
+--- linux-3.2/net/netfilter/core.c     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/core.c 2011-11-04 11:12:52.123057315 +0200
+@@ -179,9 +179,11 @@
+               ret = NF_DROP_GETERR(verdict);
+               if (ret == 0)
+                       ret = -EPERM;
+-      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE) {
++      } else if ((verdict & NF_VERDICT_MASK) == NF_QUEUE ||
++                 (verdict & NF_VERDICT_MASK) == NF_IMQ_QUEUE) {
+               int err = nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                              verdict >> NF_VERDICT_QBITS);
++                                              verdict >> NF_VERDICT_QBITS,
++                                              verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.2/net/netfilter/Kconfig linux-3.2-imq/net/netfilter/Kconfig
+--- linux-3.2/net/netfilter/Kconfig    2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/Kconfig        2011-11-04 11:12:52.123057315 +0200
+@@ -506,6 +506,18 @@
+         For more information on the LEDs available on your system, see
+         Documentation/leds/leds-class.txt
++config NETFILTER_XT_TARGET_IMQ
++        tristate '"IMQ" target support'
++      depends on NETFILTER_XTABLES
++      depends on IP_NF_MANGLE || IP6_NF_MANGLE
++      select IMQ
++      default m if NETFILTER_ADVANCED=n
++        help
++          This option adds a `IMQ' target which is used to specify if and
++          to which imq device packets should get enqueued/dequeued.
++
++          To compile it as a module, choose M here.  If unsure, say N.
++
+ config NETFILTER_XT_TARGET_MARK
+       tristate '"MARK" target support'
+       depends on NETFILTER_ADVANCED
+diff -uNr linux-3.2/net/netfilter/Makefile linux-3.2-imq/net/netfilter/Makefile
+--- linux-3.2/net/netfilter/Makefile   2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/Makefile       2011-11-04 11:12:52.123057315 +0200
+@@ -56,6 +56,7 @@
+ obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o
++obj-$(CONFIG_NETFILTER_XT_TARGET_IMQ) += xt_IMQ.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFLOG) += xt_NFLOG.o
+ obj-$(CONFIG_NETFILTER_XT_TARGET_NFQUEUE) += xt_NFQUEUE.o
+diff -uNr linux-3.2/net/netfilter/nf_internals.h linux-3.2-imq/net/netfilter/nf_internals.h
+--- linux-3.2/net/netfilter/nf_internals.h     2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/nf_internals.h 2011-11-04 11:12:52.123057315 +0200
+@@ -29,7 +29,7 @@
+                   struct net_device *indev,
+                   struct net_device *outdev,
+                   int (*okfn)(struct sk_buff *),
+-                  unsigned int queuenum);
++                  unsigned int queuenum, unsigned int queuetype);
+ extern int __init netfilter_queue_init(void);
+ /* nf_log.c */
+diff -uNr linux-3.2/net/netfilter/nf_queue.c linux-3.2-imq/net/netfilter/nf_queue.c
+--- linux-3.2/net/netfilter/nf_queue.c 2011-10-24 10:10:05.000000000 +0300
++++ linux-3.2-imq/net/netfilter/nf_queue.c     2011-11-04 11:12:52.123057315 +0200
+@@ -22,6 +22,26 @@
+ static DEFINE_MUTEX(queue_handler_mutex);
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++static const struct nf_queue_handler *queue_imq_handler;
++
++void nf_register_queue_imq_handler(const struct nf_queue_handler *qh)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, qh);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_register_queue_imq_handler);
++
++void nf_unregister_queue_imq_handler(void)
++{
++      mutex_lock(&queue_handler_mutex);
++      rcu_assign_pointer(queue_imq_handler, NULL);
++      mutex_unlock(&queue_handler_mutex);
++}
++EXPORT_SYMBOL_GPL(nf_unregister_queue_imq_handler);
++#endif
++
+ /* return EBUSY when somebody else is registered, return EEXIST if the
+  * same handler is registered, return 0 in case of success. */
+ int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
+@@ -92,7 +112,7 @@
+ }
+ EXPORT_SYMBOL_GPL(nf_unregister_queue_handlers);
+-static void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
++void nf_queue_entry_release_refs(struct nf_queue_entry *entry)
+ {
+       /* Release those devices we held, or Alexey will kill me. */
+       if (entry->indev)
+@@ -112,6 +132,7 @@
+       /* Drop reference to owner of hook which queued us. */
+       module_put(entry->elem->owner);
+ }
++EXPORT_SYMBOL_GPL(nf_queue_entry_release_refs);
+ /*
+  * Any packet that leaves via this function must come back
+@@ -123,7 +144,8 @@
+                     struct net_device *indev,
+                     struct net_device *outdev,
+                     int (*okfn)(struct sk_buff *),
+-                    unsigned int queuenum)
++                    unsigned int queuenum,
++                    unsigned int queuetype)
+ {
+       int status = -ENOENT;
+       struct nf_queue_entry *entry = NULL;
+@@ -137,7 +159,17 @@
+       /* QUEUE == DROP if no one is waiting, to be safe. */
+       rcu_read_lock();
+-      qh = rcu_dereference(queue_handler[pf]);
++      if (queuetype == NF_IMQ_QUEUE) {
++#if defined(CONFIG_IMQ) || defined(CONFIG_IMQ_MODULE)
++              qh = rcu_dereference(queue_imq_handler);
++#else
++              BUG();
++              goto err_unlock;
++#endif
++      } else {
++              qh = rcu_dereference(queue_handler[pf]);
++      }
++
+       if (!qh) {
+               status = -ESRCH;
+               goto err_unlock;
+@@ -209,7 +241,8 @@
+            struct net_device *indev,
+            struct net_device *outdev,
+            int (*okfn)(struct sk_buff *),
+-           unsigned int queuenum)
++           unsigned int queuenum,
++           unsigned int queuetype)
+ {
+       struct sk_buff *segs;
+       int err;
+@@ -217,7 +250,7 @@
+       if (!skb_is_gso(skb))
+               return __nf_queue(skb, elem, pf, hook, indev, outdev, okfn,
+-                                queuenum);
++                                queuenum, queuetype);
+       switch (pf) {
+       case NFPROTO_IPV4:
+@@ -244,7 +277,7 @@
+               segs->next = NULL;
+               if (err == 0)
+                       err = __nf_queue(segs, elem, pf, hook, indev,
+-                                         outdev, okfn, queuenum);
++                                       outdev, okfn, queuenum, queuetype);
+               if (err == 0)
+                       queued++;
+               else
+@@ -299,9 +332,11 @@
+               local_bh_enable();
+               break;
+       case NF_QUEUE:
++      case NF_IMQ_QUEUE:
+               err = __nf_queue(skb, elem, entry->pf, entry->hook,
+                                entry->indev, entry->outdev, entry->okfn,
+-                               verdict >> NF_VERDICT_QBITS);
++                               verdict >> NF_VERDICT_QBITS,
++                               verdict & NF_VERDICT_MASK);
+               if (err < 0) {
+                       if (err == -ECANCELED)
+                               goto next_hook;
+diff -uNr linux-3.2/net/netfilter/xt_IMQ.c linux-3.2-imq/net/netfilter/xt_IMQ.c
+--- linux-3.2/net/netfilter/xt_IMQ.c   1970-01-01 02:00:00.000000000 +0200
++++ linux-3.2-imq/net/netfilter/xt_IMQ.c       2011-11-04 11:12:52.123057315 +0200
+@@ -0,0 +1,74 @@
++/*
++ * This target marks packets to be enqueued to an imq device
++ */
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_IMQ.h>
++#include <linux/imq.h>
++
++static unsigned int imq_target(struct sk_buff *pskb,
++                              const struct xt_action_param *par)
++{
++      const struct xt_imq_info *mr = par->targinfo;
++
++      pskb->imq_flags = (mr->todev & IMQ_F_IFMASK) | IMQ_F_ENQUEUE;
++
++      return XT_CONTINUE;
++}
++
++static int imq_checkentry(const struct xt_tgchk_param *par)
++{
++      struct xt_imq_info *mr = par->targinfo;
++
++      if (mr->todev > IMQ_MAX_DEVS - 1) {
++              printk(KERN_WARNING
++                     "IMQ: invalid device specified, highest is %u\n",
++                     IMQ_MAX_DEVS - 1);
++              return -EINVAL;
++      }
++
++      return 0;
++}
++
++static struct xt_target xt_imq_reg[] __read_mostly = {
++      {
++              .name           = "IMQ",
++              .family         = AF_INET,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++      {
++              .name           = "IMQ",
++              .family         = AF_INET6,
++              .checkentry     = imq_checkentry,
++              .target         = imq_target,
++              .targetsize     = sizeof(struct xt_imq_info),
++              .table          = "mangle",
++              .me             = THIS_MODULE
++      },
++};
++
++static int __init imq_init(void)
++{
++      return xt_register_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++static void __exit imq_fini(void)
++{
++      xt_unregister_targets(xt_imq_reg, ARRAY_SIZE(xt_imq_reg));
++}
++
++module_init(imq_init);
++module_exit(imq_fini);
++
++MODULE_AUTHOR("http://www.linuximq.net");
++MODULE_DESCRIPTION("Pseudo-driver for the intermediate queue device. "
++                 "See http://www.linuximq.net/ for more information.");
++MODULE_LICENSE("GPL");
++MODULE_ALIAS("ipt_IMQ");
++MODULE_ALIAS("ip6t_IMQ");
++
diff --git a/src/patches/linux-3.2-panda-reboot.patch b/src/patches/linux-3.2-panda-reboot.patch
new file mode 100644 (file)
index 0000000..8e37837
--- /dev/null
@@ -0,0 +1,29 @@
+With commit 3d3f78d752bf, reboot seems to broken on ARM
+machines. CPU dies while doing flush_pmd_entry() as part of
+setup_mm_for_reboot()
+
+I know this is not the fix but intention is to report the
+issue and also provide temporary fix till it get fixed correctly
+
+Signed-off-by: Santosh Shilimkar <santosh.shilimkar@xxxxxx>
+Reported-by: Anand Gadiyar <gadiyar@xxxxxx>
+---
+Tested with OMAP4 device.
+
+ arch/arm/kernel/process.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
+index e76fcaa..ac370b2 100644
+--- a/arch/arm/kernel/process.c
++++ b/arch/arm/kernel/process.c
+@@ -247,7 +247,6 @@ void machine_power_off(void)
+ void machine_restart(char *cmd)
+ {
+-      machine_shutdown();
+       arm_pm_restart(reboot_mode, cmd);
+ }
+-- 
+1.6.0.4
diff --git a/src/patches/linux-3.2.25-arm_kirkwood_setups.patch b/src/patches/linux-3.2.25-arm_kirkwood_setups.patch
new file mode 100644 (file)
index 0000000..94bbb4b
--- /dev/null
@@ -0,0 +1,692 @@
+diff -Naur linux-3.2.25.org/arch/arm/Kconfig linux-3.2.25/arch/arm/Kconfig
+--- linux-3.2.25.org/arch/arm/Kconfig  2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/Kconfig      2012-08-11 04:42:20.985949735 -0400
+@@ -197,7 +197,7 @@
+ config ARM_PATCH_PHYS_VIRT
+       bool "Patch physical to virtual translations at runtime" if EMBEDDED
+-      default y
++      default n
+       depends on !XIP_KERNEL && MMU
+       depends on !ARCH_REALVIEW || !SPARSEMEM
+       help
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/dreamplug-setup.c  1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/dreamplug-setup.c      2012-08-11 10:22:53.242276474 -0400
+@@ -0,0 +1,148 @@
++/*
++ * arch/arm/mach-kirkwood/dreamplug-setup.c
++ *
++ * Marvell DreamPlug Reference Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/leds.h>
++#include <linux/spi/flash.h>
++#include <linux/spi/spi.h>
++#include <linux/spi/orion_spi.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include <plat/mvsdio.h>
++#include "common.h"
++#include "mpp.h"
++
++static const struct flash_platform_data dreamplug_spi_slave_data = {
++      .type           = "mx25l1606e",
++};
++
++static struct spi_board_info __initdata dreamplug_spi_slave_info[] = {
++      {
++              .modalias       = "m25p80",
++              .platform_data  = &dreamplug_spi_slave_data,
++              .irq            = -1,
++              .max_speed_hz   = 50000000,
++              .bus_num        = 0,
++              .chip_select    = 0,
++      },
++};
++
++static struct mv643xx_eth_platform_data dreamplug_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(0),
++};
++
++static struct mv643xx_eth_platform_data dreamplug_ge01_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(1),
++};
++
++static struct mv_sata_platform_data dreamplug_sata_data = {
++      .n_ports        = 1,
++};
++
++static struct mvsdio_platform_data dreamplug_mvsdio_data = {
++      /* unfortunately the CD signal has not been connected */
++};
++
++static struct gpio_led dreamplug_led_pins[] = {
++      {
++              .name                   = "dreamplug:blue:bluetooth",
++              .gpio                   = 47,
++              .active_low             = 1,
++      },
++      {
++              .name                   = "dreamplug:green:wlan",
++              .gpio                   = 48,
++              .active_low             = 1,
++      },
++      {
++              .name                   = "dreamplug:blue:wlanap",
++              .gpio                   = 49,
++              .active_low             = 1,
++      },
++};
++
++static struct gpio_led_platform_data dreamplug_led_data = {
++      .leds           = dreamplug_led_pins,
++      .num_leds       = ARRAY_SIZE(dreamplug_led_pins),
++};
++
++static struct platform_device dreamplug_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &dreamplug_led_data,
++      }
++};
++
++static unsigned int dreamplug_mpp_config[] __initdata = {
++      MPP0_SPI_SCn,
++      MPP1_SPI_MOSI,
++      MPP2_SPI_SCK,
++      MPP3_SPI_MISO,
++      MPP4_GPIO,
++      MPP5_GPO,
++      MPP7_GPO,
++      MPP18_GPO,
++      MPP19_GPO,
++      MPP47_GPIO,     /* B_BLED */
++      MPP48_GPIO,     /* W_GLED */
++      MPP49_GPIO,     /* W_BLED */
++      0
++};
++
++static void __init dreamplug_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(dreamplug_mpp_config);
++
++      kirkwood_uart0_init();
++
++      spi_register_board_info(dreamplug_spi_slave_info,
++                              ARRAY_SIZE(dreamplug_spi_slave_info));
++
++      kirkwood_spi_init();
++      kirkwood_ehci_init();
++
++      kirkwood_ge00_init(&dreamplug_ge00_data);
++      kirkwood_ge01_init(&dreamplug_ge01_data);
++      kirkwood_sata_init(&dreamplug_sata_data);
++      kirkwood_sdio_init(&dreamplug_mvsdio_data);
++
++      platform_device_register(&dreamplug_leds);
++}
++
++MACHINE_START(DREAMPLUG, "Marvell DreamPlug Reference Board")
++      /* Maintainer: Siddarth Gore <gores <at> marvell.com> */
++      .atag_offset    = 0x100,
++      .init_machine   = dreamplug_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
++
++MACHINE_START(DREAMPLUG1, "Marvell DreamPlug Reference Board")
++      .atag_offset    = 0x100,
++      .init_machine   = dreamplug_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/guruplug-setup.c   2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/guruplug-setup.c       2012-08-05 13:05:22.000000000 -0400
+@@ -11,6 +11,7 @@
+ #include <linux/kernel.h>
+ #include <linux/init.h>
+ #include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
+ #include <linux/mtd/partitions.h>
+ #include <linux/ata_platform.h>
+ #include <linux/mv643xx_eth.h>
+@@ -27,15 +28,16 @@
+       {
+               .name = "u-boot",
+               .offset = 0,
+-              .size = SZ_1M
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
+       }, {
+               .name = "uImage",
+               .offset = MTDPART_OFS_NXTBLK,
+-              .size = SZ_4M
++              .size = SZ_4M,
+       }, {
+               .name = "root",
+               .offset = MTDPART_OFS_NXTBLK,
+-              .size = MTDPART_SIZ_FULL
++              .size = MTDPART_SIZ_FULL,
+       },
+ };
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/iconnect-setup.c   1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/iconnect-setup.c       2012-08-11 04:58:00.565660184 -0400
+@@ -0,0 +1,212 @@
++/*
++ * arch/arm/mach-kirkwood/iconnect-setup.c
++ *
++ * Iomega iConnect Wireless Data Station Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/gpio_keys.h>
++#include <linux/i2c.h>
++#include <linux/input.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include "common.h"
++#include "mpp.h"
++
++static struct mtd_partition iconnect_nand_parts[] = {
++      {
++              .name = "u-boot",
++              .offset = 0,
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
++      }, {
++              .name = "uImage",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = 0x440000,
++      }, {
++              .name = "uInit",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = 0x440000,
++      }, {
++              .name = "root",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = MTDPART_SIZ_FULL,
++      },
++};
++
++static struct mv643xx_eth_platform_data iconnect_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(0xB),
++};
++
++static struct gpio_led iconnect_led_pins[] = {
++      {
++              .name                   = "iconnect:led_level",
++              .default_trigger        = "default-on",
++              .gpio                   = 41,
++              .active_low             = 0,
++      },
++
++      {
++              .name                   = "iconnect:blue:power",
++              .default_trigger        = "default-on",
++              .gpio                   = 42,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:red:power",
++              .default_trigger        = "none",
++              .gpio                   = 43,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_1",
++              .default_trigger        = "none",
++              .gpio                   = 44,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_2",
++              .default_trigger        = "none",
++              .gpio                   = 45,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_3",
++              .default_trigger        = "none",
++              .gpio                   = 46,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:usb_4",
++              .default_trigger        = "none",
++              .gpio                   = 47,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "iconnect:blue:otb",
++              .default_trigger        = "none",
++              .gpio                   = 48,
++              .active_low             = 0,
++      },
++};
++
++static struct gpio_led_platform_data iconnect_led_data = {
++      .leds           = iconnect_led_pins,
++      .num_leds       = ARRAY_SIZE(iconnect_led_pins),
++};
++
++static struct platform_device iconnect_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &iconnect_led_data,
++      }
++};
++
++static struct gpio_keys_button iconnect_buttons[] = {
++      {
++              .code           = KEY_COPY,
++              .gpio           = 35,
++              .desc           = "OTB Button",
++              .active_low     = 1,
++      },
++      {
++              .code           = KEY_RESTART,
++              .gpio           = 12,
++              .desc           = "Reset",
++              .active_low     = 1,
++      },
++};
++
++static struct gpio_keys_platform_data iconnect_button_data = {
++      .buttons        = iconnect_buttons,
++      .nbuttons       = ARRAY_SIZE(iconnect_buttons),
++};
++
++static struct platform_device iconnect_button_device = {
++      .name           = "gpio-keys",
++      .id             = -1,
++      .num_resources  = 0,
++      .dev            = {
++              .platform_data  = &iconnect_button_data,
++      }
++};
++
++static unsigned int iconnect_mpp_config[] __initdata = {
++      MPP0_NF_IO2,
++      MPP1_NF_IO3,
++      MPP2_NF_IO4,
++      MPP3_NF_IO5,
++      MPP4_NF_IO6,
++      MPP5_NF_IO7,
++      MPP18_NF_IO0,
++      MPP19_NF_IO1,
++      MPP12_GPIO,     /* Reset Button */
++      MPP35_GPIO,     /* OTB Button */
++
++      MPP41_GPIO,     /* LED Level */
++      MPP42_GPIO,     /* Power LED blue */
++      MPP43_GPIO,     /* Power LED red */
++      MPP44_GPIO,     /* USB LED 1 */
++      MPP45_GPIO,     /* USB LED 2 */
++      MPP46_GPIO,     /* USB LED 3 */
++      MPP47_GPIO,     /* USB LED 4 */
++      MPP48_GPIO,     /* OTB LED */
++      0
++};
++
++static struct i2c_board_info __initdata iconnect_i2c = {
++      I2C_BOARD_INFO("lm63", 0x4c),
++};
++
++static void __init iconnect_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(iconnect_mpp_config);
++
++      kirkwood_nand_init(ARRAY_AND_SIZE(iconnect_nand_parts), 25);
++      kirkwood_ehci_init();
++      kirkwood_ge00_init(&iconnect_ge00_data);
++
++      kirkwood_uart0_init();
++      platform_device_register(&iconnect_leds);
++      platform_device_register(&iconnect_button_device);
++
++      kirkwood_i2c_init();
++      i2c_register_board_info(0, &iconnect_i2c,1);
++}
++
++static int __init iconnect_pci_init(void)
++{
++      if (machine_is_iconnect()) {
++              kirkwood_pcie_init(KW_PCIE0);
++      }
++      return 0;
++}
++subsys_initcall(iconnect_pci_init);
++
++MACHINE_START(ICONNECT, "Iomega iConnect Wireless Data Station")
++      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
++      .atag_offset    = 0x100,
++      .init_machine   = iconnect_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig linux-3.2.25/arch/arm/mach-kirkwood/Kconfig
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/Kconfig    2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/Kconfig        2012-08-05 12:45:22.015253501 -0400
+@@ -44,6 +44,12 @@
+         Say 'Y' here if you want your kernel to support the
+         Marvell GuruPlug Reference Board.
++config MACH_DREAMPLUG
++      bool "Marvell DreamPlug Reference Board"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Marvell DreamPlug Reference Board.
++
+ config MACH_TS219
+       bool "QNAP TS-110, TS-119, TS-119P+, TS-210, TS-219, TS-219P and TS-219P+ Turbo NAS"
+       help
+@@ -130,6 +136,18 @@
+         Say 'Y' here if you want your kernel to support the
+         HP t5325 Thin Client.
++config MACH_ICONNECT
++      bool "Iomega iConnect Wireless Data Station"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Iomega iConnect Wireless Data Station.
++
++config MACH_NAS6210
++      bool "Raidsonic ICY BOX IB-62x0"
++      help
++        Say 'Y' here if you want your kernel to support the
++        Raidsonic ICY BOX IB-62x0.
++
+ endmenu
+ endif
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile linux-3.2.25/arch/arm/mach-kirkwood/Makefile
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/Makefile   2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/Makefile       2012-08-05 12:46:49.015253501 -0400
+@@ -7,6 +7,7 @@
+ obj-$(CONFIG_MACH_SHEEVAPLUG)         += sheevaplug-setup.o
+ obj-$(CONFIG_MACH_ESATA_SHEEVAPLUG)   += sheevaplug-setup.o
+ obj-$(CONFIG_MACH_GURUPLUG)           += guruplug-setup.o
++obj-$(CONFIG_MACH_DREAMPLUG)          += dreamplug-setup.o
+ obj-$(CONFIG_MACH_DOCKSTAR)           += dockstar-setup.o
+ obj-$(CONFIG_MACH_TS219)              += ts219-setup.o tsx1x-common.o
+ obj-$(CONFIG_MACH_TS41X)              += ts41x-setup.o tsx1x-common.o
+@@ -18,5 +19,7 @@
+ obj-$(CONFIG_MACH_NET2BIG_V2)         += netxbig_v2-setup.o lacie_v2-common.o
+ obj-$(CONFIG_MACH_NET5BIG_V2)         += netxbig_v2-setup.o lacie_v2-common.o
+ obj-$(CONFIG_MACH_T5325)              += t5325-setup.o
++obj-$(CONFIG_MACH_ICONNECT)           += iconnect-setup.o
++obj-$(CONFIG_MACH_NAS6210)            += nas6210-setup.o
+ obj-$(CONFIG_CPU_IDLE)                        += cpuidle.o
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h linux-3.2.25/arch/arm/mach-kirkwood/mpp.h
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/mpp.h      2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/mach-kirkwood/mpp.h  2012-08-05 13:08:23.835566001 -0400
+@@ -102,6 +102,7 @@
+ #define MPP11_SATA0_ACTn      MPP( 11, 0x5, 0, 0, 0,   1,   1,   1,   1 )
+ #define MPP12_GPO             MPP( 12, 0x0, 0, 1, 1,   1,   1,   1,   1 )
++#define MPP12_GPIO            MPP( 12, 0x0, 1, 1, 1,   1,   1,   1,   1 )
+ #define MPP12_SD_CLK          MPP( 12, 0x1, 0, 0, 1,   1,   1,   1,   1 )
+ #define MPP12_AU_SPDIF0               MPP( 12, 0xa, 0, 0, 0,   0,   0,   0,   1 )
+ #define MPP12_SPI_MOSI                MPP( 12, 0xb, 0, 0, 0,   0,   0,   0,   1 )
+diff -Naur linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c
+--- linux-3.2.25.org/arch/arm/mach-kirkwood/nas6210-setup.c    1969-12-31 19:00:00.000000000 -0500
++++ linux-3.2.25/arch/arm/mach-kirkwood/nas6210-setup.c        2012-08-11 04:58:35.223186956 -0400
+@@ -0,0 +1,184 @@
++/*
++ * arch/arm/mach-kirkwood/nas6210-setup.c
++ *
++ * Raidsonic ICYBOX NAS6210 and 6220 Board Setup
++ *
++ * This file is licensed under the terms of the GNU General Public
++ * License version 2.  This program is licensed "as is" without any
++ * warranty of any kind, whether express or implied.
++ */
++
++#include <linux/kernel.h>
++#include <linux/init.h>
++#include <linux/platform_device.h>
++#include <linux/mtd/mtd.h>
++#include <linux/mtd/partitions.h>
++#include <linux/ata_platform.h>
++#include <linux/mv643xx_eth.h>
++#include <linux/gpio.h>
++#include <linux/gpio_keys.h>
++#include <linux/i2c.h>
++#include <linux/input.h>
++#include <linux/leds.h>
++#include <asm/mach-types.h>
++#include <asm/mach/arch.h>
++#include <mach/kirkwood.h>
++#include "common.h"
++#include "mpp.h"
++
++#define NAS6210_GPIO_POWER_OFF 24
++
++static struct mtd_partition nas6210_nand_parts[] = {
++      {
++              .name = "u-boot",
++              .offset = 0,
++              .size = SZ_1M,
++              .mask_flags = MTD_WRITEABLE, /* read only */
++      }, {
++              .name = "uImage",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = (SZ_1M*6),
++      }, {
++              .name = "root",
++              .offset = MTDPART_OFS_NXTBLK,
++              .size = MTDPART_SIZ_FULL,
++      },
++};
++
++static struct mv643xx_eth_platform_data nas6210_ge00_data = {
++      .phy_addr       = MV643XX_ETH_PHY_ADDR(8),
++};
++
++static struct mv_sata_platform_data nas6210_sata_data = {
++      .n_ports        = 2,
++};
++
++static struct gpio_led nas6210_led_pins[] = {
++      {
++              .name                   = "nas6210:green:power",
++              .default_trigger        = "default-on",
++              .gpio                   = 25,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "nas6210:red:power",
++              .default_trigger        = "none",
++              .gpio                   = 22,
++              .active_low             = 0,
++      },
++      {
++              .name                   = "nas6210:red:usb_copy",
++              .default_trigger        = "none",
++              .gpio                   = 27,
++              .active_low             = 0,
++      },
++};
++
++static struct gpio_led_platform_data nas6210_led_data = {
++      .leds           = nas6210_led_pins,
++      .num_leds       = ARRAY_SIZE(nas6210_led_pins),
++};
++
++static struct platform_device nas6210_leds = {
++      .name   = "leds-gpio",
++      .id     = -1,
++      .dev    = {
++              .platform_data  = &nas6210_led_data,
++      }
++};
++
++static struct gpio_keys_button nas6210_buttons[] = {
++      {
++              .code           = KEY_COPY,
++              .gpio           = 29,
++              .desc           = "USB Copy",
++              .active_low     = 1,
++      },
++      {
++              .code           = KEY_RESTART,
++              .gpio           = 28,
++              .desc           = "Reset",
++              .active_low     = 1,
++      },
++};
++
++static struct gpio_keys_platform_data nas6210_button_data = {
++      .buttons        = nas6210_buttons,
++      .nbuttons       = ARRAY_SIZE(nas6210_buttons),
++};
++
++static struct platform_device nas6210_button_device = {
++      .name           = "gpio-keys",
++      .id             = -1,
++      .num_resources  = 0,
++      .dev            = {
++              .platform_data  = &nas6210_button_data,
++      }
++};
++
++static unsigned int nas6210_mpp_config[] __initdata = {
++      MPP0_NF_IO2,
++      MPP1_NF_IO3,
++      MPP2_NF_IO4,
++      MPP3_NF_IO5,
++      MPP4_NF_IO6,
++      MPP5_NF_IO7,
++      MPP18_NF_IO0,
++      MPP19_NF_IO1,
++      MPP22_GPIO,     /* Power LED red */
++      MPP24_GPIO,     /* Power off */
++      MPP25_GPIO,     /* Power LED green */
++      MPP27_GPIO,    /* USB transfer LED */
++      MPP28_GPIO,    /* Reset button */
++      MPP29_GPIO,    /* USB Copy button */
++      0
++};
++
++void nas6210_power_off(void)
++{
++      gpio_set_value(NAS6210_GPIO_POWER_OFF, 1);
++      while(1);
++}
++
++static void __init nas6210_init(void)
++{
++      /*
++       * Basic setup. Needs to be called early.
++       */
++      kirkwood_init();
++      kirkwood_mpp_conf(nas6210_mpp_config);
++
++      kirkwood_nand_init(ARRAY_AND_SIZE(nas6210_nand_parts), 25);
++      kirkwood_ehci_init();
++      kirkwood_ge00_init(&nas6210_ge00_data);
++      kirkwood_sata_init(&nas6210_sata_data);
++      kirkwood_uart0_init();
++      platform_device_register(&nas6210_leds);
++      platform_device_register(&nas6210_button_device);
++
++      if (gpio_request(NAS6210_GPIO_POWER_OFF, "power-off") == 0 &&
++              gpio_direction_output(NAS6210_GPIO_POWER_OFF, 0) == 0)
++                      pm_power_off = nas6210_power_off;
++
++      else
++              pr_err("nas6210: failed to configure power-off gpio pin");
++}
++
++static int __init nas6210_pci_init(void)
++{
++      if (machine_is_nas6210()) {
++              kirkwood_pcie_init(KW_PCIE0);
++      }
++      return 0;
++}
++subsys_initcall(nas6210_pci_init);
++
++MACHINE_START(NAS6210, "RaidSonic ICY BOX IB-NAS62x0")
++      /* Maintainer: Arne Fitzenreiter <arne_f@ipfire.org> */
++      .atag_offset    = 0x00000100,
++      .init_machine   = nas6210_init,
++      .map_io         = kirkwood_map_io,
++      .init_early     = kirkwood_init_early,
++      .init_irq       = kirkwood_init_irq,
++      .timer          = &kirkwood_timer,
++MACHINE_END
+diff -Naur linux-3.2.25.org/arch/arm/tools/mach-types linux-3.2.25/arch/arm/tools/mach-types
+--- linux-3.2.25.org/arch/arm/tools/mach-types 2012-08-02 09:38:04.000000000 -0400
++++ linux-3.2.25/arch/arm/tools/mach-types     2012-08-11 10:18:52.849620229 -0400
+@@ -448,6 +448,7 @@
+ riot_bei2             MACH_RIOT_BEI2          RIOT_BEI2               2576
+ riot_x37              MACH_RIOT_X37           RIOT_X37                2578
+ pca101                        MACH_PCA101             PCA101                  2595
++guruplug              MACH_GURUPLUG           GURUPLUG                2601
+ capc7117              MACH_CAPC7117           CAPC7117                2612
+ icontrol              MACH_ICONTROL           ICONTROL                2624
+ gplugd                        MACH_GPLUGD             GPLUGD                  2625
+@@ -455,7 +456,7 @@
+ mx23evk                       MACH_MX23EVK            MX23EVK                 2629
+ ap4evb                        MACH_AP4EVB             AP4EVB                  2630
+ mityomapl138          MACH_MITYOMAPL138       MITYOMAPL138            2650
+-guruplug              MACH_GURUPLUG           GURUPLUG                2659
++dreamplug1            MACH_DREAMPLUG1         DREAMPLUG1              2659
+ spear310              MACH_SPEAR310           SPEAR310                2660
+ spear320              MACH_SPEAR320           SPEAR320                2661
+ aquila                        MACH_AQUILA             AQUILA                  2676
+@@ -1123,6 +1124,7 @@
+ thales_adc            MACH_THALES_ADC         THALES_ADC              3492
+ ubisys_p9d_evp                MACH_UBISYS_P9D_EVP     UBISYS_P9D_EVP          3493
+ atdgp318              MACH_ATDGP318           ATDGP318                3494
++dreamplug             MACH_DREAMPLUG          DREAMPLUG               3550
+ m28evk                        MACH_M28EVK             M28EVK                  3613
+ smdk4212              MACH_SMDK4212           SMDK4212                3638
+ smdk4412              MACH_SMDK4412           SMDK4412                3765
diff --git a/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch b/src/patches/linux-3.2.27-rpi_fix_dwc_common_build.patch
new file mode 100644 (file)
index 0000000..f46c57c
--- /dev/null
@@ -0,0 +1,38 @@
+diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile
+--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile 2012-08-21 05:05:46.000000000 -0400
++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile     2012-08-21 06:32:23.501695852 -0400
+@@ -30,15 +30,6 @@
+ else
+-ifeq ($(KDIR),)
+-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+-endif
+-
+-ifeq ($(ARCH),)
+-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+-endif
+-
+ ifeq ($(DOXYGEN),)
+ DOXYGEN               := doxygen
+ endif
+diff -Naur linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux
+--- linux-3.2.27.org/drivers/usb/host/dwc_common_port/Makefile.linux   2012-08-21 05:05:46.000000000 -0400
++++ linux-3.2.27/drivers/usb/host/dwc_common_port/Makefile.linux       2012-08-21 05:22:35.964969680 -0400
+@@ -21,15 +21,6 @@
+ else
+-ifeq ($(KDIR),)
+-$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+-endif
+-
+-ifeq ($(ARCH),)
+-$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+- cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+-endif
+-
+ ifeq ($(DOXYGEN),)
+ DOXYGEN               := doxygen
+ endif
diff --git a/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch b/src/patches/linux-libc-headers-2.6.12.0-inotify-3.patch
deleted file mode 100644 (file)
index 4acfd8f..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-Submitted By: Dan Nicholson <dnicholson at linuxfromscratch dot org>
-Date: 2006-08-01
-Initial Package Version: 2.6.12.0
-Origin: linux-2.6.16 series, syscalls diffed by Alexander Patrakov
-Upstream Status: Project is dead
-Description: Adds userspace headers and syscalls for inotify
-Testcase: dovecot-1.0rc2, ./configure --with-notify=inotify
-
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-i386/unistd.h 2005-07-06 00:17:47.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-i386/unistd.h      2006-08-01 05:56:42.000000000 +0000
-@@ -294,8 +294,13 @@
- #define __NR_add_key          286
- #define __NR_request_key      287
- #define __NR_keyctl           288
-+/* #define __NR_ioprio_set    289 */
-+/* #define __NR_ioprio_get    290 */
-+#define __NR_inotify_init     291
-+#define __NR_inotify_add_watch        292
-+#define __NR_inotify_rm_watch 293
--#define NR_syscalls 289
-+#define NR_syscalls 294
- /*
-  * user-visible error numbers are in the range -1 - -128: see
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h
---- linux-libc-headers-2.6.12.0.orig/include/asm-ppc/unistd.h  2005-07-06 00:17:23.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/asm-ppc/unistd.h       2006-08-01 05:56:42.000000000 +0000
-@@ -277,8 +277,13 @@
- #define __NR_request_key      270
- #define __NR_keyctl           271
- #define __NR_waitid           272
-+/* #define __NR_ioprio_set         273 */
-+/* #define __NR_ioprio_get         274 */
-+#define __NR_inotify_init      275
-+#define __NR_inotify_add_watch 276
-+#define __NR_inotify_rm_watch  277
--#define __NR_syscalls         273
-+#define __NR_syscalls         278
- #define __NR(n)       #n
-diff -pNur linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h linux-libc-headers-2.6.12.0/include/linux/inotify.h
---- linux-libc-headers-2.6.12.0.orig/include/linux/inotify.h   1970-01-01 00:00:00.000000000 +0000
-+++ linux-libc-headers-2.6.12.0/include/linux/inotify.h        2006-08-01 05:56:42.000000000 +0000
-@@ -0,0 +1,67 @@
-+/*
-+ * Inode based directory notification for Linux
-+ *
-+ * Copyright (C) 2005 John McCutchan
-+ */
-+
-+#ifndef _LINUX_INOTIFY_H
-+#define _LINUX_INOTIFY_H
-+
-+#include <linux/types.h>
-+
-+/*
-+ * struct inotify_event - structure read from the inotify device for each event
-+ *
-+ * When you are watching a directory, you will receive the filename for events
-+ * such as IN_CREATE, IN_DELETE, IN_OPEN, IN_CLOSE, ..., relative to the wd.
-+ */
-+struct inotify_event {
-+      __s32           wd;             /* watch descriptor */
-+      __u32           mask;           /* watch mask */
-+      __u32           cookie;         /* cookie to synchronize two events */
-+      __u32           len;            /* length (including nulls) of name */
-+      char            name[0];        /* stub for possible name */
-+};
-+
-+/* the following are legal, implemented events that user-space can watch for */
-+#define IN_ACCESS             0x00000001      /* File was accessed */
-+#define IN_MODIFY             0x00000002      /* File was modified */
-+#define IN_ATTRIB             0x00000004      /* Metadata changed */
-+#define IN_CLOSE_WRITE                0x00000008      /* Writtable file was closed */
-+#define IN_CLOSE_NOWRITE      0x00000010      /* Unwrittable file closed */
-+#define IN_OPEN                       0x00000020      /* File was opened */
-+#define IN_MOVED_FROM         0x00000040      /* File was moved from X */
-+#define IN_MOVED_TO           0x00000080      /* File was moved to Y */
-+#define IN_CREATE             0x00000100      /* Subfile was created */
-+#define IN_DELETE             0x00000200      /* Subfile was deleted */
-+#define IN_DELETE_SELF                0x00000400      /* Self was deleted */
-+#define IN_MOVE_SELF          0x00000800      /* Self was moved */
-+
-+/* the following are legal events.  they are sent as needed to any watch */
-+#define IN_UNMOUNT            0x00002000      /* Backing fs was unmounted */
-+#define IN_Q_OVERFLOW         0x00004000      /* Event queued overflowed */
-+#define IN_IGNORED            0x00008000      /* File was ignored */
-+
-+/* helper events */
-+#define IN_CLOSE              (IN_CLOSE_WRITE | IN_CLOSE_NOWRITE) /* close */
-+#define IN_MOVE                       (IN_MOVED_FROM | IN_MOVED_TO) /* moves */
-+
-+/* special flags */
-+#define IN_ONLYDIR            0x01000000      /* only watch the path if it is a directory */
-+#define IN_DONT_FOLLOW                0x02000000      /* don't follow a sym link */
-+#define IN_MASK_ADD           0x20000000      /* add to the mask of an already existing watch */
-+#define IN_ISDIR              0x40000000      /* event occurred against dir */
-+#define IN_ONESHOT            0x80000000      /* only send event once */
-+
-+/*
-+ * All of the events - we build the list by hand so that we can add flags in
-+ * the future and not break backward compatibility.  Apps will get only the
-+ * events that they originally wanted.  Be sure to add new events here!
-+ */
-+#define IN_ALL_EVENTS (IN_ACCESS | IN_MODIFY | IN_ATTRIB | IN_CLOSE_WRITE | \
-+                       IN_CLOSE_NOWRITE | IN_OPEN | IN_MOVED_FROM | \
-+                       IN_MOVED_TO | IN_DELETE | IN_CREATE | IN_DELETE_SELF | \
-+                       IN_MOVE_SELF)
-+
-+
-+#endif        /* _LINUX_INOTIFY_H */
diff --git a/src/patches/miniupnpd-iptcrdr.patch b/src/patches/miniupnpd-iptcrdr.patch
deleted file mode 100644 (file)
index 677043b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
---- netfilter/iptcrdr.c.old    2010-02-24 14:22:23.000000000 +0100
-+++ netfilter/iptcrdr.c        2010-02-24 14:48:00.000000000 +0100
-@@ -20,6 +20,13 @@
- #if IPTABLES_143
- /* IPTABLES API version >= 1.4.3 */
-+
-+#define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
-+#define __must_be_array(a) \
-+      BUILD_BUG_ON_ZERO(__builtin_types_compatible_p(typeof(a), typeof(&a[0])))
-+#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
-+#define LIST_POISON2  ((void *) 0x00200200 )
-+
- #include <net/netfilter/nf_nat.h>
- #define ip_nat_multi_range    nf_nat_multi_range
- #define ip_nat_range          nf_nat_range
diff --git a/src/patches/ncurses-5.5-fixes-1.patch b/src/patches/ncurses-5.5-fixes-1.patch
deleted file mode 100644 (file)
index 73e084d..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-Submitted by: Alexander E. Patrakov
-Date: 2005-12-07
-Initial Package Version: 5.5
-Upstream Status: Backport
-Origin: Cherry-picked from ftp://invisible-island.net/ncurses/5.5/*.gz
-Description: Fixes the following bugs:
-
-* memory leak in keyname()
-* mishandling of overlapped wide characters, http://bugs.debian.org/316663
-* problems with line-drawing characters on cygwin, http://bugs.debian.org/338234
-* mishandling of EINTR in tcgetattr/tcsetattr, http://bugs.debian.org/339518
-* mishandling of single-column multibyte characters, http://bugs.debian.org/341661
-
---- ncurses-5.5-20051015+/ncurses/base/MKkeyname.awk   2005-04-30 19:26:25.000000000 +0000
-+++ ncurses-5.5-20051022/ncurses/base/MKkeyname.awk    2005-10-22 19:01:23.000000000 +0000
-@@ -97,6 +97,7 @@
-       print "                                         break;"
-       print "                                 }"
-       print "                         }"
-+      print "                         free(bound);"
-       print "                         if (result != 0)"
-       print "                                 break;"
-       print "                 }"
---- ncurses-5.5-20051022+/ncurses/base/lib_addch.c     2005-03-27 16:52:16.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_addch.c      2005-10-30 00:51:36.000000000 +0000
-@@ -315,7 +315,7 @@
-            * setup though.
-            */
-           for (i = 0; i < len; ++i) {
--              if (isWidecBase(win->_line[y].text[i])) {
-+              if (isWidecBase(win->_line[y].text[x + i])) {
-                   break;
-               } else if (isWidecExt(win->_line[y].text[x + i])) {
-                   for (j = i; x + j <= win->_maxx; ++j) {
-@@ -334,7 +334,9 @@
-           for (i = 0; i < len; ++i) {
-               NCURSES_CH_T value = ch;
-               SetWidecExt(value, i);
--              TR(TRACE_VIRTPUT, ("multicolumn %d:%d", i + 1, len));
-+              TR(TRACE_VIRTPUT, ("multicolumn %d:%d (%d,%d)",
-+                                 i + 1, len,
-+                                 win->_begy + y, win->_begx + x));
-               line->text[x] = value;
-               CHANGED_CELL(line, x);
-               ++x;
---- ncurses-5.5-20051022+/ncurses/base/lib_bkgd.c      2005-04-16 18:03:48.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_bkgd.c       2005-10-30 00:41:09.000000000 +0000
-@@ -131,11 +131,11 @@
-       for (y = 0; y <= win->_maxy; y++) {
-           for (x = 0; x <= win->_maxx; x++) {
--              if (CharEq(win->_line[y].text[x], old_bkgrnd))
-+              if (CharEq(win->_line[y].text[x], old_bkgrnd)) {
-                   win->_line[y].text[x] = win->_nc_bkgd;
--              else {
-+              } else {
-                   NCURSES_CH_T wch = win->_line[y].text[x];
--                  RemAttr(wch, (~A_ALTCHARSET));
-+                  RemAttr(wch, (~(A_ALTCHARSET | A_CHARTEXT)));
-                   win->_line[y].text[x] = _nc_render(win, wch);
-               }
-           }
---- ncurses-5.5-20051022+/ncurses/base/lib_erase.c     2001-12-19 01:06:13.000000000 +0000
-+++ ncurses-5.5-20051029/ncurses/base/lib_erase.c      2005-10-30 00:36:36.000000000 +0000
-@@ -58,6 +59,24 @@
-           start = win->_line[y].text;
-           end = &start[win->_maxx];
-+          /*
-+           * If this is a derived window, we have to handle the case where
-+           * a multicolumn character extends into the window that we are
-+           * erasing.
-+           */
-+          if_WIDEC({
-+              if (isWidecExt(start[0])) {
-+                  int x = (win->_parent != 0) ? (win->_begx) : 0;
-+                  while (x-- > 0) {
-+                      if (isWidecBase(start[-1])) {
-+                          --start;
-+                          break;
-+                      }
-+                      --start;
-+                  }
-+              }
-+          });
-+
-           for (sp = start; sp <= end; sp++)
-               *sp = blank;
---- ncurses-5.5-20051029+/misc/terminfo.src    2005-10-26 23:21:06.000000000 +0000
-+++ ncurses-5.5-20051112/misc/terminfo.src     2005-11-12 23:01:03.000000000 +0000
-@@ -4731,32 +4731,35 @@
- #   civis [make cursor invisible] causes everything to stackdump? \E[?25l\E[?1c
- #   ech   [erase characters param] broken \E[%p1%dX
- #   kcbt  [back-tab key] not implemented in cygwin?  \E[Z
-+#
-+# 2005/11/12 -TD
-+#     Remove cbt since it does not work in current cygwin
-+#     Add 'mir' and 'in' flags based on tack
- cygwin|ansi emulation for Cygwin, 
--      am, hs, in, msgr, xon, 
-+      am, hs, mir, msgr, xon, 
-       colors#8, it#8, pairs#64, 
-       acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376, 
--      bel=^G, bold=\E[1m, cbt=\E[Z, clear=\E[H\E[J, cr=^M, 
--      cub=\E[%p1%dD, cub1=^H, cud=\E[%p1%dB, cud1=\E[B, 
--      cuf=\E[%p1%dC, cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, 
--      cuu=\E[%p1%dA, cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, 
--      dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, 
--      home=\E[H, hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, 
--      ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, 
--      kb2=\E[G, kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, 
--      kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, 
--      kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, 
--      kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, 
--      kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, 
--      kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, 
--      kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~, 
--      knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, op=\E[39;49m, 
--      rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m, 
--      rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, rmpch=\E[10m, 
--      rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, 
--      setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-+      bel=^G, bold=\E[1m, clear=\E[H\E[J, cr=^M, cub=\E[%p1%dD, 
-+      cub1=^H, cud=\E[%p1%dB, cud1=\E[B, cuf=\E[%p1%dC, 
-+      cuf1=\E[C, cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, 
-+      cuu1=\E[A, dch=\E[%p1%dP, dch1=\E[P, dl=\E[%p1%dM, 
-+      dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K, fsl=^G, home=\E[H, 
-+      hpa=\E[%i%p1%dG, ht=^I, ich=\E[%p1%d@, ich1=\E[@, 
-+      il=\E[%p1%dL, il1=\E[L, ind=^J, invis=\E[8m, kb2=\E[G, 
-+      kbs=^H, kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A, 
-+      kdch1=\E[3~, kend=\E[4~, kf1=\E[[A, kf10=\E[21~, 
-+      kf11=\E[23~, kf12=\E[24~, kf13=\E[25~, kf14=\E[26~, 
-+      kf15=\E[28~, kf16=\E[29~, kf17=\E[31~, kf18=\E[32~, 
-+      kf19=\E[33~, kf2=\E[[B, kf20=\E[34~, kf3=\E[[C, kf4=\E[[D, 
-+      kf5=\E[[E, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~, kf9=\E[20~, 
-+      khome=\E[1~, kich1=\E[2~, knp=\E[6~, kpp=\E[5~, kspd=^Z, 
-+      nel=^M^J, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, 
-+      rmacs=\E[10m, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l, 
-+      rmpch=\E[10m, rmso=\E[27m, rmul=\E[24m, rs1=\Ec\E]R, 
-+      sc=\E7, setab=\E[4%p1%dm, setaf=\E[3%p1%dm, 
-       sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m, 
--      sgr0=\E[0;10m, smacs=\E11m, smcup=\E7\E[?47h, smir=\E[4h, 
--      smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, 
-+      sgr0=\E[0;10m, smacs=\E[11m, smcup=\E7\E[?47h, 
-+      smir=\E[4h, smpch=\E[11m, smso=\E[7m, smul=\E[4m, tsl=\E];, 
-       u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c, 
-       vpa=\E[%i%p1%dd, 
---- ncurses-5.5-20051112+/ncurses/tinfo/lib_ttyflags.c 2003-05-17 23:50:37.000000000 +0000
-+++ ncurses-5.5-20051119/ncurses/tinfo/lib_ttyflags.c  2005-11-19 20:36:23.000000000 +0000
-@@ -59,28 +59,51 @@
- NCURSES_EXPORT(int)
- _nc_get_tty_mode(TTY * buf)
- {
--    if (cur_term == 0
--      || GET_TTY(cur_term->Filedes, buf) != 0) {
--      memset(buf, 0, sizeof(*buf));
--      return (ERR);
-+    int result = OK;
-+
-+    if (cur_term == 0) {
-+      result = ERR;
-+    } else {
-+      for (;;) {
-+          if (GET_TTY(cur_term->Filedes, buf) != 0) {
-+              if (errno == EINTR)
-+                  continue;
-+              result = ERR;
-+          }
-+          break;
-+      }
-     }
-+
-+    if (result == ERR)
-+      memset(buf, 0, sizeof(*buf));
-+
-     TR(TRACE_BITS, ("_nc_get_tty_mode(%d): %s",
-                   cur_term->Filedes, _nc_trace_ttymode(buf)));
--    return (OK);
-+    return (result);
- }
- NCURSES_EXPORT(int)
- _nc_set_tty_mode(TTY * buf)
- {
--    if (cur_term == 0
--      || SET_TTY(cur_term->Filedes, buf) != 0) {
--      if ((errno == ENOTTY) && (SP != 0))
--          SP->_notty = TRUE;
--      return (ERR);
-+    int result = OK;
-+
-+    if (cur_term == 0) {
-+      result = ERR;
-+    } else {
-+      for (;;) {
-+          if (SET_TTY(cur_term->Filedes, buf) != 0) {
-+              if (errno == EINTR)
-+                  continue;
-+              if ((errno == ENOTTY) && (SP != 0))
-+                  SP->_notty = TRUE;
-+              result = ERR;
-+          }
-+          break;
-+      }
-     }
-     TR(TRACE_BITS, ("_nc_set_tty_mode(%d): %s",
-                   cur_term->Filedes, _nc_trace_ttymode(buf)));
--    return (OK);
-+    return (result);
- }
- NCURSES_EXPORT(int)
---- ncurses-5.5-20051126+/ncurses/widechar/lib_ins_wch.c       2005-09-17 19:25:13.000000000 +0000
-+++ ncurses-5.5-20051203/ncurses/widechar/lib_ins_wch.c        2005-12-03 20:24:19.000000000 +0000
-@@ -117,7 +117,7 @@
-           for (cp = wstr; *cp && ((cp - wstr) < n); cp++) {
-               int len = wcwidth(*cp);
--              if (len != 1) {
-+              if (len != 1 || !is8bits(*cp)) {
-                   cchar_t tmp_cchar;
-                   wchar_t tmp_wchar = *cp;
-                   memset(&tmp_cchar, 0, sizeof(tmp_cchar));
diff --git a/src/patches/netfilter_layer7_2.22_kernel3.0.patch b/src/patches/netfilter_layer7_2.22_kernel3.0.patch
new file mode 100644 (file)
index 0000000..82d8509
--- /dev/null
@@ -0,0 +1,2160 @@
+diff -Naur linux-3.0.24.org/include/linux/netfilter/xt_layer7.h linux-3.0.24/include/linux/netfilter/xt_layer7.h
+--- linux-3.0.24.org/include/linux/netfilter/xt_layer7.h       1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/include/linux/netfilter/xt_layer7.h   2012-03-15 20:08:48.976050501 +0100
+@@ -0,0 +1,13 @@
++#ifndef _XT_LAYER7_H
++#define _XT_LAYER7_H
++
++#define MAX_PATTERN_LEN 8192
++#define MAX_PROTOCOL_LEN 256
++
++struct xt_layer7_info {
++    char protocol[MAX_PROTOCOL_LEN];
++    char pattern[MAX_PATTERN_LEN];
++    u_int8_t invert;
++};
++
++#endif /* _XT_LAYER7_H */
+diff -Naur linux-3.0.24.org/include/net/netfilter/nf_conntrack.h linux-3.0.24/include/net/netfilter/nf_conntrack.h
+--- linux-3.0.24.org/include/net/netfilter/nf_conntrack.h      2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/include/net/netfilter/nf_conntrack.h  2012-03-15 20:11:43.806042495 +0100
+@@ -134,6 +134,22 @@
+       struct net *ct_net;
+ #endif
++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || \
++ defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      struct {
++              /*
++               * e.g. "http". NULL before decision. "unknown" after decision
++               * if no match.
++               */
++              char *app_proto;
++              /*
++               * application layer data so far. NULL after match decision.
++               */
++              char *app_data;
++              unsigned int app_data_len;
++      } layer7;
++#endif
++
+       /* Storage reserved for other modules, must be the last member */
+       union nf_conntrack_proto proto;
+ };
+diff -Naur linux-3.0.24.org/net/netfilter/Kconfig linux-3.0.24/net/netfilter/Kconfig
+--- linux-3.0.24.org/net/netfilter/Kconfig     2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/Kconfig 2012-03-15 20:46:12.046043918 +0100
+@@ -1020,6 +1020,26 @@
+         To compile it as a module, choose M here.  If unsure, say N.
++config NETFILTER_XT_MATCH_LAYER7
++      tristate '"layer7" match support'
++      depends on NETFILTER_XTABLES
++      depends on EXPERIMENTAL && (IP_NF_CONNTRACK || NF_CONNTRACK)
++      help
++        Say Y if you want to be able to classify connections (and their
++        packets) based on regular expression matching of their application
++        layer data.   This is one way to classify applications such as
++        peer-to-peer filesharing systems that do not always use the same
++        port.
++
++        To compile it as a module, choose M here.  If unsure, say N.
++
++config NETFILTER_XT_MATCH_LAYER7_DEBUG
++        bool 'Layer 7 debugging output'
++        depends on NETFILTER_XT_MATCH_LAYER7
++        help
++          Say Y to get lots of debugging output.
++
++
+ config NETFILTER_XT_MATCH_STATISTIC
+       tristate '"statistic" match support'
+       depends on NETFILTER_ADVANCED
+diff -Naur linux-3.0.24.org/net/netfilter/Makefile linux-3.0.24/net/netfilter/Makefile
+--- linux-3.0.24.org/net/netfilter/Makefile    2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/Makefile        2012-03-15 20:08:49.016044445 +0100
+@@ -102,6 +102,7 @@
+ obj-$(CONFIG_NETFILTER_XT_MATCH_SCTP) += xt_sctp.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_SOCKET) += xt_socket.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STATE) += xt_state.o
++obj-$(CONFIG_NETFILTER_XT_MATCH_LAYER7) += xt_layer7.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STATISTIC) += xt_statistic.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_STRING) += xt_string.o
+ obj-$(CONFIG_NETFILTER_XT_MATCH_TCPMSS) += xt_tcpmss.o
+diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_core.c linux-3.0.24/net/netfilter/nf_conntrack_core.c
+--- linux-3.0.24.org/net/netfilter/nf_conntrack_core.c 2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/nf_conntrack_core.c     2012-03-15 20:08:49.026044761 +0100
+@@ -213,6 +213,14 @@
+        * too. */
+       nf_ct_remove_expectations(ct);
++      #if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      if(ct->layer7.app_proto)
++              kfree(ct->layer7.app_proto);
++      if(ct->layer7.app_data)
++      kfree(ct->layer7.app_data);
++      #endif
++
++
+       /* We overload first tuple to link into unconfirmed list. */
+       if (!nf_ct_is_confirmed(ct)) {
+               BUG_ON(hlist_nulls_unhashed(&ct->tuplehash[IP_CT_DIR_ORIGINAL].hnnode));
+diff -Naur linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c linux-3.0.24/net/netfilter/nf_conntrack_standalone.c
+--- linux-3.0.24.org/net/netfilter/nf_conntrack_standalone.c   2012-03-12 18:58:19.000000000 +0100
++++ linux-3.0.24/net/netfilter/nf_conntrack_standalone.c       2012-03-15 20:08:49.036047262 +0100
+@@ -239,6 +239,12 @@
+       if (ct_show_delta_time(s, ct))
+               goto release;
++#if defined(CONFIG_NETFILTER_XT_MATCH_LAYER7) || defined(CONFIG_NETFILTER_XT_MATCH_LAYER7_MODULE)
++      if(ct->layer7.app_proto &&
++           seq_printf(s, "l7proto=%s ", ct->layer7.app_proto))
++              return -ENOSPC;
++#endif
++
+       if (seq_printf(s, "use=%u\n", atomic_read(&ct->ct_general.use)))
+               goto release;
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.c linux-3.0.24/net/netfilter/regexp/regexp.c
+--- linux-3.0.24.org/net/netfilter/regexp/regexp.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regexp.c 2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,1197 @@
++/*
++ * regcomp and regexec -- regsub and regerror are elsewhere
++ * @(#)regexp.c       1.3 of 18 April 87
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ * Beware that some of this code is subtly aware of the way operator
++ * precedence is structured in regular expressions.  Serious changes in
++ * regular-expression syntax might require a total rethink.
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ *
++ * Modified slightly by Matthew Strait to use more modern C.
++ */
++
++#include "regexp.h"
++#include "regmagic.h"
++
++/* added by ethan and matt.  Lets it work in both kernel and user space.
++(So iptables can use it, for instance.)  Yea, it goes both ways... */
++#if __KERNEL__
++  #define malloc(foo) kmalloc(foo,GFP_ATOMIC)
++#else
++  #define printk(format,args...) printf(format,##args)
++#endif
++
++void regerror(char * s)
++{
++        printk("<3>Regexp: %s\n", s);
++        /* NOTREACHED */
++}
++
++/*
++ * The "internal use only" fields in regexp.h are present to pass info from
++ * compile to execute that permits the execute phase to run lots faster on
++ * simple cases.  They are:
++ *
++ * regstart   char that must begin a match; '\0' if none obvious
++ * reganch    is the match anchored (at beginning-of-line only)?
++ * regmust    string (pointer into program) that match must include, or NULL
++ * regmlen    length of regmust string
++ *
++ * Regstart and reganch permit very fast decisions on suitable starting points
++ * for a match, cutting down the work a lot.  Regmust permits fast rejection
++ * of lines that cannot possibly match.  The regmust tests are costly enough
++ * that regcomp() supplies a regmust only if the r.e. contains something
++ * potentially expensive (at present, the only such thing detected is * or +
++ * at the start of the r.e., which can involve a lot of backup).  Regmlen is
++ * supplied because the test in regexec() needs it and regcomp() is computing
++ * it anyway.
++ */
++
++/*
++ * Structure for regexp "program".  This is essentially a linear encoding
++ * of a nondeterministic finite-state machine (aka syntax charts or
++ * "railroad normal form" in parsing technology).  Each node is an opcode
++ * plus a "next" pointer, possibly plus an operand.  "Next" pointers of
++ * all nodes except BRANCH implement concatenation; a "next" pointer with
++ * a BRANCH on both ends of it is connecting two alternatives.  (Here we
++ * have one of the subtle syntax dependencies:  an individual BRANCH (as
++ * opposed to a collection of them) is never concatenated with anything
++ * because of operator precedence.)  The operand of some types of node is
++ * a literal string; for others, it is a node leading into a sub-FSM.  In
++ * particular, the operand of a BRANCH node is the first node of the branch.
++ * (NB this is *not* a tree structure:  the tail of the branch connects
++ * to the thing following the set of BRANCHes.)  The opcodes are:
++ */
++
++/* definition number  opnd?   meaning */
++#define       END     0       /* no   End of program. */
++#define       BOL     1       /* no   Match "" at beginning of line. */
++#define       EOL     2       /* no   Match "" at end of line. */
++#define       ANY     3       /* no   Match any one character. */
++#define       ANYOF   4       /* str  Match any character in this string. */
++#define       ANYBUT  5       /* str  Match any character not in this string. */
++#define       BRANCH  6       /* node Match this alternative, or the next... */
++#define       BACK    7       /* no   Match "", "next" ptr points backward. */
++#define       EXACTLY 8       /* str  Match this string. */
++#define       NOTHING 9       /* no   Match empty string. */
++#define       STAR    10      /* node Match this (simple) thing 0 or more times. */
++#define       PLUS    11      /* node Match this (simple) thing 1 or more times. */
++#define       OPEN    20      /* no   Mark this point in input as start of #n. */
++                      /*      OPEN+1 is number 1, etc. */
++#define       CLOSE   30      /* no   Analogous to OPEN. */
++
++/*
++ * Opcode notes:
++ *
++ * BRANCH     The set of branches constituting a single choice are hooked
++ *            together with their "next" pointers, since precedence prevents
++ *            anything being concatenated to any individual branch.  The
++ *            "next" pointer of the last BRANCH in a choice points to the
++ *            thing following the whole choice.  This is also where the
++ *            final "next" pointer of each individual branch points; each
++ *            branch starts with the operand node of a BRANCH node.
++ *
++ * BACK               Normal "next" pointers all implicitly point forward; BACK
++ *            exists to make loop structures possible.
++ *
++ * STAR,PLUS  '?', and complex '*' and '+', are implemented as circular
++ *            BRANCH structures using BACK.  Simple cases (one character
++ *            per match) are implemented with STAR and PLUS for speed
++ *            and to minimize recursive plunges.
++ *
++ * OPEN,CLOSE ...are numbered at compile time.
++ */
++
++/*
++ * A node is one char of opcode followed by two chars of "next" pointer.
++ * "Next" pointers are stored as two 8-bit pieces, high order first.  The
++ * value is a positive offset from the opcode of the node containing it.
++ * An operand, if any, simply follows the node.  (Note that much of the
++ * code generation knows about this implicit relationship.)
++ *
++ * Using two bytes for the "next" pointer is vast overkill for most things,
++ * but allows patterns to get big without disasters.
++ */
++#define       OP(p)   (*(p))
++#define       NEXT(p) (((*((p)+1)&0377)<<8) + (*((p)+2)&0377))
++#define       OPERAND(p)      ((p) + 3)
++
++/*
++ * See regmagic.h for one further detail of program structure.
++ */
++
++
++/*
++ * Utility definitions.
++ */
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#define       FAIL(m) { regerror(m); return(NULL); }
++#define       ISMULT(c)       ((c) == '*' || (c) == '+' || (c) == '?')
++#define       META    "^$.[()|?+*\\"
++
++/*
++ * Flags to be passed up and down.
++ */
++#define       HASWIDTH        01      /* Known never to match null string. */
++#define       SIMPLE          02      /* Simple enough to be STAR/PLUS operand. */
++#define       SPSTART         04      /* Starts with * or +. */
++#define       WORST           0       /* Worst case. */
++
++/*
++ * Global work variables for regcomp().
++ */
++struct match_globals {
++char *reginput;               /* String-input pointer. */
++char *regbol;         /* Beginning of input, for ^ check. */
++char **regstartp;     /* Pointer to startp array. */
++char **regendp;               /* Ditto for endp. */
++char *regparse;               /* Input-scan pointer. */
++int regnpar;          /* () count. */
++char regdummy;
++char *regcode;                /* Code-emit pointer; &regdummy = don't. */
++long regsize;         /* Code size. */
++};
++
++/*
++ * Forward declarations for regcomp()'s friends.
++ */
++#ifndef STATIC
++#define       STATIC  static
++#endif
++STATIC char *reg(struct match_globals *g, int paren,int *flagp);
++STATIC char *regbranch(struct match_globals *g, int *flagp);
++STATIC char *regpiece(struct match_globals *g, int *flagp);
++STATIC char *regatom(struct match_globals *g, int *flagp);
++STATIC char *regnode(struct match_globals *g, char op);
++STATIC char *regnext(struct match_globals *g, char *p);
++STATIC void regc(struct match_globals *g, char b);
++STATIC void reginsert(struct match_globals *g, char op, char *opnd);
++STATIC void regtail(struct match_globals *g, char *p, char *val);
++STATIC void regoptail(struct match_globals *g, char *p, char *val);
++
++
++__kernel_size_t my_strcspn(const char *s1,const char *s2)
++{
++        char *scan1;
++        char *scan2;
++        int count;
++
++        count = 0;
++        for (scan1 = (char *)s1; *scan1 != '\0'; scan1++) {
++                for (scan2 = (char *)s2; *scan2 != '\0';)       /* ++ moved down. */
++                        if (*scan1 == *scan2++)
++                                return(count);
++                count++;
++        }
++        return(count);
++}
++
++/*
++ - regcomp - compile a regular expression into internal code
++ *
++ * We can't allocate space until we know how big the compiled form will be,
++ * but we can't compile it (and thus know how big it is) until we've got a
++ * place to put the code.  So we cheat:  we compile it twice, once with code
++ * generation turned off and size counting turned on, and once "for real".
++ * This also means that we don't allocate space until we are sure that the
++ * thing really will compile successfully, and we never have to move the
++ * code and thus invalidate pointers into it.  (Note that it has to be in
++ * one piece because free() must be able to free it all.)
++ *
++ * Beware that the optimization-preparation code in here knows about some
++ * of the structure of the compiled regexp.
++ */
++regexp *
++regcomp(char *exp,int *patternsize)
++{
++      register regexp *r;
++      register char *scan;
++      register char *longest;
++      register int len;
++      int flags;
++      struct match_globals g;
++      
++      /* commented out by ethan
++         extern char *malloc();
++      */
++
++      if (exp == NULL)
++              FAIL("NULL argument");
++
++      /* First pass: determine size, legality. */
++      g.regparse = exp;
++      g.regnpar = 1;
++      g.regsize = 0L;
++      g.regcode = &g.regdummy;
++      regc(&g, MAGIC);
++      if (reg(&g, 0, &flags) == NULL)
++              return(NULL);
++
++      /* Small enough for pointer-storage convention? */
++      if (g.regsize >= 32767L)                /* Probably could be 65535L. */
++              FAIL("regexp too big");
++
++      /* Allocate space. */
++      *patternsize=sizeof(regexp) + (unsigned)g.regsize;
++      r = (regexp *)malloc(sizeof(regexp) + (unsigned)g.regsize);
++      if (r == NULL)
++              FAIL("out of space");
++
++      /* Second pass: emit code. */
++      g.regparse = exp;
++      g.regnpar = 1;
++      g.regcode = r->program;
++      regc(&g, MAGIC);
++      if (reg(&g, 0, &flags) == NULL)
++              return(NULL);
++
++      /* Dig out information for optimizations. */
++      r->regstart = '\0';     /* Worst-case defaults. */
++      r->reganch = 0;
++      r->regmust = NULL;
++      r->regmlen = 0;
++      scan = r->program+1;                    /* First BRANCH. */
++      if (OP(regnext(&g, scan)) == END) {             /* Only one top-level choice. */
++              scan = OPERAND(scan);
++
++              /* Starting-point info. */
++              if (OP(scan) == EXACTLY)
++                      r->regstart = *OPERAND(scan);
++              else if (OP(scan) == BOL)
++                      r->reganch++;
++
++              /*
++               * If there's something expensive in the r.e., find the
++               * longest literal string that must appear and make it the
++               * regmust.  Resolve ties in favor of later strings, since
++               * the regstart check works with the beginning of the r.e.
++               * and avoiding duplication strengthens checking.  Not a
++               * strong reason, but sufficient in the absence of others.
++               */
++              if (flags&SPSTART) {
++                      longest = NULL;
++                      len = 0;
++                      for (; scan != NULL; scan = regnext(&g, scan))
++                              if (OP(scan) == EXACTLY && strlen(OPERAND(scan)) >= len) {
++                                      longest = OPERAND(scan);
++                                      len = strlen(OPERAND(scan));
++                              }
++                      r->regmust = longest;
++                      r->regmlen = len;
++              }
++      }
++
++      return(r);
++}
++
++/*
++ - reg - regular expression, i.e. main body or parenthesized thing
++ *
++ * Caller must absorb opening parenthesis.
++ *
++ * Combining parenthesis handling with the base level of regular expression
++ * is a trifle forced, but the need to tie the tails of the branches to what
++ * follows makes it hard to avoid.
++ */
++static char *
++reg(struct match_globals *g, int paren, int *flagp /* Parenthesized? */ )
++{
++      register char *ret;
++      register char *br;
++      register char *ender;
++      register int parno = 0; /* 0 makes gcc happy */
++      int flags;
++
++      *flagp = HASWIDTH;      /* Tentatively. */
++
++      /* Make an OPEN node, if parenthesized. */
++      if (paren) {
++              if (g->regnpar >= NSUBEXP)
++                      FAIL("too many ()");
++              parno = g->regnpar;
++              g->regnpar++;
++              ret = regnode(g, OPEN+parno);
++      } else
++              ret = NULL;
++
++      /* Pick up the branches, linking them together. */
++      br = regbranch(g, &flags);
++      if (br == NULL)
++              return(NULL);
++      if (ret != NULL)
++              regtail(g, ret, br);    /* OPEN -> first. */
++      else
++              ret = br;
++      if (!(flags&HASWIDTH))
++              *flagp &= ~HASWIDTH;
++      *flagp |= flags&SPSTART;
++      while (*g->regparse == '|') {
++              g->regparse++;
++              br = regbranch(g, &flags);
++              if (br == NULL)
++                      return(NULL);
++              regtail(g, ret, br);    /* BRANCH -> BRANCH. */
++              if (!(flags&HASWIDTH))
++                      *flagp &= ~HASWIDTH;
++              *flagp |= flags&SPSTART;
++      }
++
++      /* Make a closing node, and hook it on the end. */
++      ender = regnode(g, (paren) ? CLOSE+parno : END);        
++      regtail(g, ret, ender);
++
++      /* Hook the tails of the branches to the closing node. */
++      for (br = ret; br != NULL; br = regnext(g, br))
++              regoptail(g, br, ender);
++
++      /* Check for proper termination. */
++      if (paren && *g->regparse++ != ')') {
++              FAIL("unmatched ()");
++      } else if (!paren && *g->regparse != '\0') {
++              if (*g->regparse == ')') {
++                      FAIL("unmatched ()");
++              } else
++                      FAIL("junk on end");    /* "Can't happen". */
++              /* NOTREACHED */
++      }
++
++      return(ret);
++}
++
++/*
++ - regbranch - one alternative of an | operator
++ *
++ * Implements the concatenation operator.
++ */
++static char *
++regbranch(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      register char *chain;
++      register char *latest;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      ret = regnode(g, BRANCH);
++      chain = NULL;
++      while (*g->regparse != '\0' && *g->regparse != '|' && *g->regparse != ')') {
++              latest = regpiece(g, &flags);
++              if (latest == NULL)
++                      return(NULL);
++              *flagp |= flags&HASWIDTH;
++              if (chain == NULL)      /* First piece. */
++                      *flagp |= flags&SPSTART;
++              else
++                      regtail(g, chain, latest);
++              chain = latest;
++      }
++      if (chain == NULL)      /* Loop ran zero times. */
++              (void) regnode(g, NOTHING);
++
++      return(ret);
++}
++
++/*
++ - regpiece - something followed by possible [*+?]
++ *
++ * Note that the branching code sequences used for ? and the general cases
++ * of * and + are somewhat optimized:  they use the same NOTHING node as
++ * both the endmarker for their branch list and the body of the last branch.
++ * It might seem that this node could be dispensed with entirely, but the
++ * endmarker role is not redundant.
++ */
++static char *
++regpiece(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      register char op;
++      register char *next;
++      int flags;
++
++      ret = regatom(g, &flags);
++      if (ret == NULL)
++              return(NULL);
++
++      op = *g->regparse;
++      if (!ISMULT(op)) {
++              *flagp = flags;
++              return(ret);
++      }
++
++      if (!(flags&HASWIDTH) && op != '?')
++              FAIL("*+ operand could be empty");
++      *flagp = (op != '+') ? (WORST|SPSTART) : (WORST|HASWIDTH);
++
++      if (op == '*' && (flags&SIMPLE))
++              reginsert(g, STAR, ret);
++      else if (op == '*') {
++              /* Emit x* as (x&|), where & means "self". */
++              reginsert(g, BRANCH, ret);                      /* Either x */
++              regoptail(g, ret, regnode(g, BACK));            /* and loop */
++              regoptail(g, ret, ret);                 /* back */
++              regtail(g, ret, regnode(g, BRANCH));            /* or */
++              regtail(g, ret, regnode(g, NOTHING));           /* null. */
++      } else if (op == '+' && (flags&SIMPLE))
++              reginsert(g, PLUS, ret);
++      else if (op == '+') {
++              /* Emit x+ as x(&|), where & means "self". */
++              next = regnode(g, BRANCH);                      /* Either */
++              regtail(g, ret, next);
++              regtail(g, regnode(g, BACK), ret);              /* loop back */
++              regtail(g, next, regnode(g, BRANCH));           /* or */
++              regtail(g, ret, regnode(g, NOTHING));           /* null. */
++      } else if (op == '?') {
++              /* Emit x? as (x|) */
++              reginsert(g, BRANCH, ret);                      /* Either x */
++              regtail(g, ret, regnode(g, BRANCH));            /* or */
++              next = regnode(g, NOTHING);             /* null. */
++              regtail(g, ret, next);
++              regoptail(g, ret, next);
++      }
++      g->regparse++;
++      if (ISMULT(*g->regparse))
++              FAIL("nested *?+");
++
++      return(ret);
++}
++
++/*
++ - regatom - the lowest level
++ *
++ * Optimization:  gobbles an entire sequence of ordinary characters so that
++ * it can turn them into a single node, which is smaller to store and
++ * faster to run.  Backslashed characters are exceptions, each becoming a
++ * separate node; the code is simpler that way and it's not worth fixing.
++ */
++static char *
++regatom(struct match_globals *g, int *flagp)
++{
++      register char *ret;
++      int flags;
++
++      *flagp = WORST;         /* Tentatively. */
++
++      switch (*g->regparse++) {
++      case '^':
++              ret = regnode(g, BOL);
++              break;
++      case '$':
++              ret = regnode(g, EOL);
++              break;
++      case '.':
++              ret = regnode(g, ANY);
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      case '[': {
++                      register int class;
++                      register int classend;
++
++                      if (*g->regparse == '^') {      /* Complement of range. */
++                              ret = regnode(g, ANYBUT);
++                              g->regparse++;
++                      } else
++                              ret = regnode(g, ANYOF);
++                      if (*g->regparse == ']' || *g->regparse == '-')
++                              regc(g, *g->regparse++);
++                      while (*g->regparse != '\0' && *g->regparse != ']') {
++                              if (*g->regparse == '-') {
++                                      g->regparse++;
++                                      if (*g->regparse == ']' || *g->regparse == '\0')
++                                              regc(g, '-');
++                                      else {
++                                              class = UCHARAT(g->regparse-2)+1;
++                                              classend = UCHARAT(g->regparse);
++                                              if (class > classend+1)
++                                                      FAIL("invalid [] range");
++                                              for (; class <= classend; class++)
++                                                      regc(g, class);
++                                              g->regparse++;
++                                      }
++                              } else
++                                      regc(g, *g->regparse++);
++                      }
++                      regc(g, '\0');
++                      if (*g->regparse != ']')
++                              FAIL("unmatched []");
++                      g->regparse++;
++                      *flagp |= HASWIDTH|SIMPLE;
++              }
++              break;
++      case '(':
++              ret = reg(g, 1, &flags);
++              if (ret == NULL)
++                      return(NULL);
++              *flagp |= flags&(HASWIDTH|SPSTART);
++              break;
++      case '\0':
++      case '|':
++      case ')':
++              FAIL("internal urp");   /* Supposed to be caught earlier. */
++              break;
++      case '?':
++      case '+':
++      case '*':
++              FAIL("?+* follows nothing");
++              break;
++      case '\\':
++              if (*g->regparse == '\0')
++                      FAIL("trailing \\");
++              ret = regnode(g, EXACTLY);
++              regc(g, *g->regparse++);
++              regc(g, '\0');
++              *flagp |= HASWIDTH|SIMPLE;
++              break;
++      default: {
++                      register int len;
++                      register char ender;
++
++                      g->regparse--;
++                      len = my_strcspn((const char *)g->regparse, (const char *)META);
++                      if (len <= 0)
++                              FAIL("internal disaster");
++                      ender = *(g->regparse+len);
++                      if (len > 1 && ISMULT(ender))
++                              len--;          /* Back off clear of ?+* operand. */
++                      *flagp |= HASWIDTH;
++                      if (len == 1)
++                              *flagp |= SIMPLE;
++                      ret = regnode(g, EXACTLY);
++                      while (len > 0) {
++                              regc(g, *g->regparse++);
++                              len--;
++                      }
++                      regc(g, '\0');
++              }
++              break;
++      }
++
++      return(ret);
++}
++
++/*
++ - regnode - emit a node
++ */
++static char *                 /* Location. */
++regnode(struct match_globals *g, char op)
++{
++      register char *ret;
++      register char *ptr;
++
++      ret = g->regcode;
++      if (ret == &g->regdummy) {
++              g->regsize += 3;
++              return(ret);
++      }
++
++      ptr = ret;
++      *ptr++ = op;
++      *ptr++ = '\0';          /* Null "next" pointer. */
++      *ptr++ = '\0';
++      g->regcode = ptr;
++
++      return(ret);
++}
++
++/*
++ - regc - emit (if appropriate) a byte of code
++ */
++static void
++regc(struct match_globals *g, char b)
++{
++      if (g->regcode != &g->regdummy)
++              *g->regcode++ = b;
++      else
++              g->regsize++;
++}
++
++/*
++ - reginsert - insert an operator in front of already-emitted operand
++ *
++ * Means relocating the operand.
++ */
++static void
++reginsert(struct match_globals *g, char op, char* opnd)
++{
++      register char *src;
++      register char *dst;
++      register char *place;
++
++      if (g->regcode == &g->regdummy) {
++              g->regsize += 3;
++              return;
++      }
++
++      src = g->regcode;
++      g->regcode += 3;
++      dst = g->regcode;
++      while (src > opnd)
++              *--dst = *--src;
++
++      place = opnd;           /* Op node, where operand used to be. */
++      *place++ = op;
++      *place++ = '\0';
++      *place++ = '\0';
++}
++
++/*
++ - regtail - set the next-pointer at the end of a node chain
++ */
++static void
++regtail(struct match_globals *g, char *p, char *val)
++{
++      register char *scan;
++      register char *temp;
++      register int offset;
++
++      if (p == &g->regdummy)
++              return;
++
++      /* Find last node. */
++      scan = p;
++      for (;;) {
++              temp = regnext(g, scan);
++              if (temp == NULL)
++                      break;
++              scan = temp;
++      }
++
++      if (OP(scan) == BACK)
++              offset = scan - val;
++      else
++              offset = val - scan;
++      *(scan+1) = (offset>>8)&0377;
++      *(scan+2) = offset&0377;
++}
++
++/*
++ - regoptail - regtail on operand of first argument; nop if operandless
++ */
++static void
++regoptail(struct match_globals *g, char *p, char *val)
++{
++      /* "Operandless" and "op != BRANCH" are synonymous in practice. */
++      if (p == NULL || p == &g->regdummy || OP(p) != BRANCH)
++              return;
++      regtail(g, OPERAND(p), val);
++}
++
++/*
++ * regexec and friends
++ */
++
++
++/*
++ * Forwards.
++ */
++STATIC int regtry(struct match_globals *g, regexp *prog, char *string);
++STATIC int regmatch(struct match_globals *g, char *prog);
++STATIC int regrepeat(struct match_globals *g, char *p);
++
++#ifdef DEBUG
++int regnarrate = 0;
++void regdump();
++STATIC char *regprop(char *op);
++#endif
++
++/*
++ - regexec - match a regexp against a string
++ */
++int
++regexec(regexp *prog, char *string)
++{
++      register char *s;
++      struct match_globals g;
++
++      /* Be paranoid... */
++      if (prog == NULL || string == NULL) {
++              printk("<3>Regexp: NULL parameter\n");
++              return(0);
++      }
++
++      /* Check validity of program. */
++      if (UCHARAT(prog->program) != MAGIC) {
++              printk("<3>Regexp: corrupted program\n");
++              return(0);
++      }
++
++      /* If there is a "must appear" string, look for it. */
++      if (prog->regmust != NULL) {
++              s = string;
++              while ((s = strchr(s, prog->regmust[0])) != NULL) {
++                      if (strncmp(s, prog->regmust, prog->regmlen) == 0)
++                              break;  /* Found it. */
++                      s++;
++              }
++              if (s == NULL)  /* Not present. */
++                      return(0);
++      }
++
++      /* Mark beginning of line for ^ . */
++      g.regbol = string;
++
++      /* Simplest case:  anchored match need be tried only once. */
++      if (prog->reganch)
++              return(regtry(&g, prog, string));
++
++      /* Messy cases:  unanchored match. */
++      s = string;
++      if (prog->regstart != '\0')
++              /* We know what char it must start with. */
++              while ((s = strchr(s, prog->regstart)) != NULL) {
++                      if (regtry(&g, prog, s))
++                              return(1);
++                      s++;
++              }
++      else
++              /* We don't -- general case. */
++              do {
++                      if (regtry(&g, prog, s))
++                              return(1);
++              } while (*s++ != '\0');
++
++      /* Failure. */
++      return(0);
++}
++
++/*
++ - regtry - try match at specific point
++ */
++static int                    /* 0 failure, 1 success */
++regtry(struct match_globals *g, regexp *prog, char *string)
++{
++      register int i;
++      register char **sp;
++      register char **ep;
++
++      g->reginput = string;
++      g->regstartp = prog->startp;
++      g->regendp = prog->endp;
++
++      sp = prog->startp;
++      ep = prog->endp;
++      for (i = NSUBEXP; i > 0; i--) {
++              *sp++ = NULL;
++              *ep++ = NULL;
++      }
++      if (regmatch(g, prog->program + 1)) {
++              prog->startp[0] = string;
++              prog->endp[0] = g->reginput;
++              return(1);
++      } else
++              return(0);
++}
++
++/*
++ - regmatch - main matching routine
++ *
++ * Conceptually the strategy is simple:  check to see whether the current
++ * node matches, call self recursively to see whether the rest matches,
++ * and then act accordingly.  In practice we make some effort to avoid
++ * recursion, in particular by going through "ordinary" nodes (that don't
++ * need to know whether the rest of the match failed) by a loop instead of
++ * by recursion.
++ */
++static int                    /* 0 failure, 1 success */
++regmatch(struct match_globals *g, char *prog)
++{
++      register char *scan = prog; /* Current node. */
++      char *next;                 /* Next node. */
++
++#ifdef DEBUG
++      if (scan != NULL && regnarrate)
++              fprintf(stderr, "%s(\n", regprop(scan));
++#endif
++      while (scan != NULL) {
++#ifdef DEBUG
++              if (regnarrate)
++                      fprintf(stderr, "%s...\n", regprop(scan));
++#endif
++              next = regnext(g, scan);
++
++              switch (OP(scan)) {
++              case BOL:
++                      if (g->reginput != g->regbol)
++                              return(0);
++                      break;
++              case EOL:
++                      if (*g->reginput != '\0')
++                              return(0);
++                      break;
++              case ANY:
++                      if (*g->reginput == '\0')
++                              return(0);
++                      g->reginput++;
++                      break;
++              case EXACTLY: {
++                              register int len;
++                              register char *opnd;
++
++                              opnd = OPERAND(scan);
++                              /* Inline the first character, for speed. */
++                              if (*opnd != *g->reginput)
++                                      return(0);
++                              len = strlen(opnd);
++                              if (len > 1 && strncmp(opnd, g->reginput, len) != 0)
++                                      return(0);
++                              g->reginput += len;
++                      }
++                      break;
++              case ANYOF:
++                      if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) == NULL)
++                              return(0);
++                      g->reginput++;
++                      break;
++              case ANYBUT:
++                      if (*g->reginput == '\0' || strchr(OPERAND(scan), *g->reginput) != NULL)
++                              return(0);
++                      g->reginput++;
++                      break;
++              case NOTHING:
++              case BACK:
++                      break;
++              case OPEN+1:
++              case OPEN+2:
++              case OPEN+3:
++              case OPEN+4:
++              case OPEN+5:
++              case OPEN+6:
++              case OPEN+7:
++              case OPEN+8:
++              case OPEN+9: {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - OPEN;
++                              save = g->reginput;
++
++                              if (regmatch(g, next)) {
++                                      /*
++                                       * Don't set startp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (g->regstartp[no] == NULL)
++                                              g->regstartp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case CLOSE+1:
++              case CLOSE+2:
++              case CLOSE+3:
++              case CLOSE+4:
++              case CLOSE+5:
++              case CLOSE+6:
++              case CLOSE+7:
++              case CLOSE+8:
++              case CLOSE+9:
++                      {
++                              register int no;
++                              register char *save;
++
++                              no = OP(scan) - CLOSE;
++                              save = g->reginput;
++
++                              if (regmatch(g, next)) {
++                                      /*
++                                       * Don't set endp if some later
++                                       * invocation of the same parentheses
++                                       * already has.
++                                       */
++                                      if (g->regendp[no] == NULL)
++                                              g->regendp[no] = save;
++                                      return(1);
++                              } else
++                                      return(0);
++                      }
++                      break;
++              case BRANCH: {
++                              register char *save;
++
++                              if (OP(next) != BRANCH)         /* No choice. */
++                                      next = OPERAND(scan);   /* Avoid recursion. */
++                              else {
++                                      do {
++                                              save = g->reginput;
++                                              if (regmatch(g, OPERAND(scan)))
++                                                      return(1);
++                                              g->reginput = save;
++                                              scan = regnext(g, scan);
++                                      } while (scan != NULL && OP(scan) == BRANCH);
++                                      return(0);
++                                      /* NOTREACHED */
++                              }
++                      }
++                      break;
++              case STAR:
++              case PLUS: {
++                              register char nextch;
++                              register int no;
++                              register char *save;
++                              register int min;
++
++                              /*
++                               * Lookahead to avoid useless match attempts
++                               * when we know what character comes next.
++                               */
++                              nextch = '\0';
++                              if (OP(next) == EXACTLY)
++                                      nextch = *OPERAND(next);
++                              min = (OP(scan) == STAR) ? 0 : 1;
++                              save = g->reginput;
++                              no = regrepeat(g, OPERAND(scan));
++                              while (no >= min) {
++                                      /* If it could work, try it. */
++                                      if (nextch == '\0' || *g->reginput == nextch)
++                                              if (regmatch(g, next))
++                                                      return(1);
++                                      /* Couldn't or didn't -- back up. */
++                                      no--;
++                                      g->reginput = save + no;
++                              }
++                              return(0);
++                      }
++                      break;
++              case END:
++                      return(1);      /* Success! */
++                      break;
++              default:
++                      printk("<3>Regexp: memory corruption\n");
++                      return(0);
++                      break;
++              }
++
++              scan = next;
++      }
++
++      /*
++       * We get here only if there's trouble -- normally "case END" is
++       * the terminating point.
++       */
++      printk("<3>Regexp: corrupted pointers\n");
++      return(0);
++}
++
++/*
++ - regrepeat - repeatedly match something simple, report how many
++ */
++static int
++regrepeat(struct match_globals *g, char *p)
++{
++      register int count = 0;
++      register char *scan;
++      register char *opnd;
++
++      scan = g->reginput;
++      opnd = OPERAND(p);
++      switch (OP(p)) {
++      case ANY:
++              count = strlen(scan);
++              scan += count;
++              break;
++      case EXACTLY:
++              while (*opnd == *scan) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYOF:
++              while (*scan != '\0' && strchr(opnd, *scan) != NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      case ANYBUT:
++              while (*scan != '\0' && strchr(opnd, *scan) == NULL) {
++                      count++;
++                      scan++;
++              }
++              break;
++      default:                /* Oh dear.  Called inappropriately. */
++              printk("<3>Regexp: internal foulup\n");
++              count = 0;      /* Best compromise. */
++              break;
++      }
++      g->reginput = scan;
++
++      return(count);
++}
++
++/*
++ - regnext - dig the "next" pointer out of a node
++ */
++static char*
++regnext(struct match_globals *g, char *p)
++{
++      register int offset;
++
++      if (p == &g->regdummy)
++              return(NULL);
++
++      offset = NEXT(p);
++      if (offset == 0)
++              return(NULL);
++
++      if (OP(p) == BACK)
++              return(p-offset);
++      else
++              return(p+offset);
++}
++
++#ifdef DEBUG
++
++STATIC char *regprop();
++
++/*
++ - regdump - dump a regexp onto stdout in vaguely comprehensible form
++ */
++void
++regdump(regexp *r)
++{
++      register char *s;
++      register char op = EXACTLY;     /* Arbitrary non-END op. */
++      register char *next;
++      /* extern char *strchr(); */
++
++
++      s = r->program + 1;
++      while (op != END) {     /* While that wasn't END last time... */
++              op = OP(s);
++              printf("%2d%s", s-r->program, regprop(s));      /* Where, what. */
++              next = regnext(s);
++              if (next == NULL)               /* Next ptr. */
++                      printf("(0)");
++              else
++                      printf("(%d)", (s-r->program)+(next-s));
++              s += 3;
++              if (op == ANYOF || op == ANYBUT || op == EXACTLY) {
++                      /* Literal string, where present. */
++                      while (*s != '\0') {
++                              putchar(*s);
++                              s++;
++                      }
++                      s++;
++              }
++              putchar('\n');
++      }
++
++      /* Header fields of interest. */
++      if (r->regstart != '\0')
++              printf("start `%c' ", r->regstart);
++      if (r->reganch)
++              printf("anchored ");
++      if (r->regmust != NULL)
++              printf("must have \"%s\"", r->regmust);
++      printf("\n");
++}
++
++/*
++ - regprop - printable representation of opcode
++ */
++static char *
++regprop(char *op)
++{
++#define BUFLEN 50
++      register char *p;
++      static char buf[BUFLEN];
++
++      strcpy(buf, ":");
++
++      switch (OP(op)) {
++      case BOL:
++              p = "BOL";
++              break;
++      case EOL:
++              p = "EOL";
++              break;
++      case ANY:
++              p = "ANY";
++              break;
++      case ANYOF:
++              p = "ANYOF";
++              break;
++      case ANYBUT:
++              p = "ANYBUT";
++              break;
++      case BRANCH:
++              p = "BRANCH";
++              break;
++      case EXACTLY:
++              p = "EXACTLY";
++              break;
++      case NOTHING:
++              p = "NOTHING";
++              break;
++      case BACK:
++              p = "BACK";
++              break;
++      case END:
++              p = "END";
++              break;
++      case OPEN+1:
++      case OPEN+2:
++      case OPEN+3:
++      case OPEN+4:
++      case OPEN+5:
++      case OPEN+6:
++      case OPEN+7:
++      case OPEN+8:
++      case OPEN+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "OPEN%d", OP(op)-OPEN);
++              p = NULL;
++              break;
++      case CLOSE+1:
++      case CLOSE+2:
++      case CLOSE+3:
++      case CLOSE+4:
++      case CLOSE+5:
++      case CLOSE+6:
++      case CLOSE+7:
++      case CLOSE+8:
++      case CLOSE+9:
++              snprintf(buf+strlen(buf),BUFLEN-strlen(buf), "CLOSE%d", OP(op)-CLOSE);
++              p = NULL;
++              break;
++      case STAR:
++              p = "STAR";
++              break;
++      case PLUS:
++              p = "PLUS";
++              break;
++      default:
++              printk("<3>Regexp: corrupted opcode\n");
++              break;
++      }
++      if (p != NULL)
++              strncat(buf, p, BUFLEN-strlen(buf));
++      return(buf);
++}
++#endif
++
++
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regexp.h linux-3.0.24/net/netfilter/regexp/regexp.h
+--- linux-3.0.24.org/net/netfilter/regexp/regexp.h     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regexp.h 2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,41 @@
++/*
++ * Definitions etc. for regexp(3) routines.
++ *
++ * Caveat:  this is V8 regexp(3) [actually, a reimplementation thereof],
++ * not the System V one.
++ */
++
++#ifndef REGEXP_H
++#define REGEXP_H
++
++
++/*
++http://www.opensource.apple.com/darwinsource/10.3/expect-1/expect/expect.h ,
++which contains a version of this library, says:
++
++ *
++ * NSUBEXP must be at least 10, and no greater than 117 or the parser
++ * will not work properly.
++ *
++
++However, it looks rather like this library is limited to 10.  If you think
++otherwise, let us know.
++*/
++
++#define NSUBEXP  10
++typedef struct regexp {
++      char *startp[NSUBEXP];
++      char *endp[NSUBEXP];
++      char regstart;          /* Internal use only. */
++      char reganch;           /* Internal use only. */
++      char *regmust;          /* Internal use only. */
++      int regmlen;            /* Internal use only. */
++      char program[1];        /* Unwarranted chumminess with compiler. */
++} regexp;
++
++regexp * regcomp(char *exp, int *patternsize);
++int regexec(regexp *prog, char *string);
++void regsub(regexp *prog, char *source, char *dest);
++void regerror(char *s);
++
++#endif
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regmagic.h linux-3.0.24/net/netfilter/regexp/regmagic.h
+--- linux-3.0.24.org/net/netfilter/regexp/regmagic.h   1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regmagic.h       2012-03-15 20:08:49.066043520 +0100
+@@ -0,0 +1,5 @@
++/*
++ * The first byte of the regexp internal "program" is actually this magic
++ * number; the start node begins in the second byte.
++ */
++#define       MAGIC   0234
+diff -Naur linux-3.0.24.org/net/netfilter/regexp/regsub.c linux-3.0.24/net/netfilter/regexp/regsub.c
+--- linux-3.0.24.org/net/netfilter/regexp/regsub.c     1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/regexp/regsub.c 2012-03-15 20:08:49.076047746 +0100
+@@ -0,0 +1,95 @@
++/*
++ * regsub
++ * @(#)regsub.c       1.3 of 2 April 86
++ *
++ *    Copyright (c) 1986 by University of Toronto.
++ *    Written by Henry Spencer.  Not derived from licensed software.
++ *
++ *    Permission is granted to anyone to use this software for any
++ *    purpose on any computer system, and to redistribute it freely,
++ *    subject to the following restrictions:
++ *
++ *    1. The author is not responsible for the consequences of use of
++ *            this software, no matter how awful, even if they arise
++ *            from defects in it.
++ *
++ *    2. The origin of this software must not be misrepresented, either
++ *            by explicit claim or by omission.
++ *
++ *    3. Altered versions must be plainly marked as such, and must not
++ *            be misrepresented as being the original software.
++ *
++ *
++ * This code was modified by Ethan Sommer to work within the kernel
++ * (it now uses kmalloc etc..)
++ *
++ */
++#include "regexp.h"
++#include "regmagic.h"
++#include <linux/string.h>
++
++
++#ifndef CHARBITS
++#define       UCHARAT(p)      ((int)*(unsigned char *)(p))
++#else
++#define       UCHARAT(p)      ((int)*(p)&CHARBITS)
++#endif
++
++#if 0
++//void regerror(char * s)
++//{
++//        printk("regexp(3): %s", s);
++//        /* NOTREACHED */
++//}
++#endif
++
++/*
++ - regsub - perform substitutions after a regexp match
++ */
++void
++regsub(regexp * prog, char * source, char * dest)
++{
++      register char *src;
++      register char *dst;
++      register char c;
++      register int no;
++      register int len;
++      
++      /* Not necessary and gcc doesn't like it -MLS */
++      /*extern char *strncpy();*/
++
++      if (prog == NULL || source == NULL || dest == NULL) {
++              regerror("NULL parm to regsub");
++              return;
++      }
++      if (UCHARAT(prog->program) != MAGIC) {
++              regerror("damaged regexp fed to regsub");
++              return;
++      }
++
++      src = source;
++      dst = dest;
++      while ((c = *src++) != '\0') {
++              if (c == '&')
++                      no = 0;
++              else if (c == '\\' && '0' <= *src && *src <= '9')
++                      no = *src++ - '0';
++              else
++                      no = -1;
++
++              if (no < 0) {   /* Ordinary character. */
++                      if (c == '\\' && (*src == '\\' || *src == '&'))
++                              c = *src++;
++                      *dst++ = c;
++              } else if (prog->startp[no] != NULL && prog->endp[no] != NULL) {
++                      len = prog->endp[no] - prog->startp[no];
++                      (void) strncpy(dst, prog->startp[no], len);
++                      dst += len;
++                      if (len != 0 && *(dst-1) == '\0') {     /* strncpy hit NUL. */
++                              regerror("damaged match string");
++                              return;
++                      }
++              }
++      }
++      *dst++ = '\0';
++}
+diff -Naur linux-3.0.24.org/net/netfilter/xt_layer7.c linux-3.0.24/net/netfilter/xt_layer7.c
+--- linux-3.0.24.org/net/netfilter/xt_layer7.c 1970-01-01 01:00:00.000000000 +0100
++++ linux-3.0.24/net/netfilter/xt_layer7.c     2012-03-20 01:44:50.907527097 +0100
+@@ -0,0 +1,684 @@
++/*
++  Kernel module to match application layer (OSI layer 7) data in connections.
++
++  http://l7-filter.sf.net
++
++  (C) 2003-2009 Matthew Strait and Ethan Sommer.
++
++  This program is free software; you can redistribute it and/or
++  modify it under the terms of the GNU General Public License
++  as published by the Free Software Foundation; either version
++  2 of the License, or (at your option) any later version.
++  http://www.gnu.org/licenses/gpl.txt
++
++  Based on ipt_string.c (C) 2000 Emmanuel Roger <winfield@freegates.be>,
++  xt_helper.c (C) 2002 Harald Welte and cls_layer7.c (C) 2003 Matthew Strait,
++  Ethan Sommer, Justin Levandoski.
++*/
++
++#include <linux/spinlock.h>
++#include <linux/version.h>
++#include <net/ip.h>
++#include <net/tcp.h>
++#include <linux/module.h>
++#include <linux/skbuff.h>
++#include <linux/netfilter.h>
++#include <net/netfilter/nf_conntrack.h>
++#include <net/netfilter/nf_conntrack_core.h>
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
++#include <net/netfilter/nf_conntrack_extend.h>
++#include <net/netfilter/nf_conntrack_acct.h>
++#endif
++#include <linux/netfilter/x_tables.h>
++#include <linux/netfilter/xt_layer7.h>
++#include <linux/ctype.h>
++#include <linux/proc_fs.h>
++
++#include "regexp/regexp.c"
++
++MODULE_LICENSE("GPL");
++MODULE_AUTHOR("Matthew Strait <quadong@users.sf.net>, Ethan Sommer <sommere@users.sf.net>");
++MODULE_DESCRIPTION("iptables application layer match module");
++MODULE_ALIAS("ipt_layer7");
++MODULE_VERSION("2.22ipfire");
++
++static int maxdatalen = 2048; // this is the default
++module_param(maxdatalen, int, 0444);
++MODULE_PARM_DESC(maxdatalen, "maximum bytes of data looked at by l7-filter");
++#ifdef CONFIG_NETFILTER_XT_MATCH_LAYER7_DEBUG
++      #define DPRINTK(format,args...) printk(format,##args)
++#else
++      #define DPRINTK(format,args...)
++#endif
++
++/* Number of packets whose data we look at.
++This can be modified through /proc/net/layer7_numpackets */
++static int num_packets = 10;
++
++static struct pattern_cache {
++      char * regex_string;
++      regexp * pattern;
++      struct pattern_cache * next;
++} * first_pattern_cache = NULL;
++
++DEFINE_SPINLOCK(l7_lock);
++
++static int total_acct_packets(struct nf_conn *ct)
++{
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 26)
++      BUG_ON(ct == NULL);
++      return (ct->counters[IP_CT_DIR_ORIGINAL].packets + ct->counters[IP_CT_DIR_REPLY].packets);
++#else
++      struct nf_conn_counter *acct;
++
++      BUG_ON(ct == NULL);
++      acct = nf_conn_acct_find(ct);
++      if (!acct)
++              return 0;
++      return (acct[IP_CT_DIR_ORIGINAL].packets + acct[IP_CT_DIR_REPLY].packets);
++#endif
++}
++
++#ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++/* Converts an unfriendly string into a friendly one by
++replacing unprintables with periods and all whitespace with " ". */
++static char * friendly_print(unsigned char * s)
++{
++      char * f = kmalloc(strlen(s) + 1, GFP_ATOMIC);
++      int i;
++
++      if(!f) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "friendly_print, bailing.\n");
++              return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++){
++              if(isprint(s[i]) && s[i] < 128) f[i] = s[i];
++              else if(isspace(s[i]))          f[i] = ' ';
++              else                            f[i] = '.';
++      }
++      f[i] = '\0';
++      return f;
++}
++
++static char dec2hex(int i)
++{
++      switch (i) {
++              case 0 ... 9:
++                      return (i + '0');
++                      break;
++              case 10 ... 15:
++                      return (i - 10 + 'a');
++                      break;
++              default:
++                      if (net_ratelimit())
++                              printk("layer7: Problem in dec2hex\n");
++                      return '\0';
++      }
++}
++
++static char * hex_print(unsigned char * s)
++{
++      char * g = kmalloc(strlen(s)*3 + 1, GFP_ATOMIC);
++      int i;
++
++      if(!g) {
++             if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in hex_print, "
++                                      "bailing.\n");
++             return NULL;
++      }
++
++      for(i = 0; i < strlen(s); i++) {
++              g[i*3    ] = dec2hex(s[i]/16);
++              g[i*3 + 1] = dec2hex(s[i]%16);
++              g[i*3 + 2] = ' ';
++      }
++      g[i*3] = '\0';
++
++      return g;
++}
++#endif // DEBUG
++
++/* Use instead of regcomp.  As we expect to be seeing the same regexps over and
++over again, it make sense to cache the results. */
++static regexp * compile_and_cache(const char * regex_string, 
++                                  const char * protocol)
++{
++      struct pattern_cache * node               = first_pattern_cache;
++      struct pattern_cache * last_pattern_cache = first_pattern_cache;
++      struct pattern_cache * tmp;
++      unsigned int len;
++
++      while (node != NULL) {
++              if (!strcmp(node->regex_string, regex_string))
++              return node->pattern;
++
++              last_pattern_cache = node;/* points at the last non-NULL node */
++              node = node->next;
++      }
++
++      /* If we reach the end of the list, then we have not yet cached
++         the pattern for this regex. Let's do that now.
++         Be paranoid about running out of memory to avoid list corruption. */
++      tmp = kmalloc(sizeof(struct pattern_cache), GFP_ATOMIC);
++
++      if(!tmp) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "compile_and_cache, bailing.\n");
++              return NULL;
++      }
++
++      tmp->regex_string  = kmalloc(strlen(regex_string) + 1, GFP_ATOMIC);
++      tmp->pattern       = kmalloc(sizeof(struct regexp),    GFP_ATOMIC);
++      tmp->next = NULL;
++
++      if(!tmp->regex_string || !tmp->pattern) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory in "
++                                      "compile_and_cache, bailing.\n");
++              kfree(tmp->regex_string);
++              kfree(tmp->pattern);
++              kfree(tmp);
++              return NULL;
++      }
++
++      /* Ok.  The new node is all ready now. */
++      node = tmp;
++
++      if(first_pattern_cache == NULL) /* list is empty */
++              first_pattern_cache = node; /* make node the beginning */
++      else
++              last_pattern_cache->next = node; /* attach node to the end */
++
++      /* copy the string and compile the regex */
++      len = strlen(regex_string);
++      DPRINTK("layer7: about to compile this: \"%s\"\n", regex_string);
++      node->pattern = regcomp((char *)regex_string, &len);
++      if ( !node->pattern ) {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: Error compiling regexp "
++                                      "\"%s\" (%s)\n", 
++                                      regex_string, protocol);
++              /* pattern is now cached as NULL, so we won't try again. */
++      }
++
++      strcpy(node->regex_string, regex_string);
++      return node->pattern;
++}
++
++static int can_handle(const struct sk_buff *skb)
++{
++      if(!ip_hdr(skb)) /* not IP */
++              return 0;
++      if(ip_hdr(skb)->protocol != IPPROTO_TCP &&
++         ip_hdr(skb)->protocol != IPPROTO_UDP &&
++         ip_hdr(skb)->protocol != IPPROTO_ICMP)
++              return 0;
++      return 1;
++}
++
++/* Returns offset the into the skb->data that the application data starts */
++static int app_data_offset(const struct sk_buff *skb)
++{
++      /* In case we are ported somewhere (ebtables?) where ip_hdr(skb)
++      isn't set, this can be gotten from 4*(skb->data[0] & 0x0f) as well. */
++      int ip_hl = 4*ip_hdr(skb)->ihl;
++
++      if( ip_hdr(skb)->protocol == IPPROTO_TCP ) {
++              /* 12 == offset into TCP header for the header length field.
++              Can't get this with skb->h.th->doff because the tcphdr
++              struct doesn't get set when routing (this is confirmed to be
++              true in Netfilter as well as QoS.) */
++              int tcp_hl = 4*(skb->data[ip_hl + 12] >> 4);
++
++              return ip_hl + tcp_hl;
++      } else if( ip_hdr(skb)->protocol == IPPROTO_UDP  ) {
++              return ip_hl + 8; /* UDP header is always 8 bytes */
++      } else if( ip_hdr(skb)->protocol == IPPROTO_ICMP ) {
++              return ip_hl + 8; /* ICMP header is 8 bytes */
++      } else {
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: tried to handle unknown "
++                                      "protocol!\n");
++              return ip_hl + 8; /* something reasonable */
++      }
++}
++
++/* handles whether there's a match when we aren't appending data anymore */
++static int match_no_append(struct nf_conn * conntrack, 
++                           struct nf_conn * master_conntrack, 
++                           enum ip_conntrack_info ctinfo,
++                           enum ip_conntrack_info master_ctinfo,
++                           const struct xt_layer7_info * info)
++{
++      /* If we're in here, throw the app data away */
++      if(master_conntrack->layer7.app_data != NULL) {
++
++      #ifdef CONFIG_IP_NF_MATCH_LAYER7_DEBUG
++              if(!master_conntrack->layer7.app_proto) {
++                      char * f = 
++                        friendly_print(master_conntrack->layer7.app_data);
++                      char * g = 
++                        hex_print(master_conntrack->layer7.app_data);
++                      DPRINTK("\nl7-filter gave up after %d bytes "
++                              "(%d packets):\n%s\n",
++                              strlen(f), total_acct_packets(master_conntrack), f);
++                      kfree(f);
++                      DPRINTK("In hex: %s\n", g);
++                      kfree(g);
++              }
++      #endif
++
++              kfree(master_conntrack->layer7.app_data);
++              master_conntrack->layer7.app_data = NULL; /* don't free again */
++      }
++
++      if(master_conntrack->layer7.app_proto){
++              /* Here child connections set their .app_proto (for /proc) */
++              if(!conntrack->layer7.app_proto) {
++                      conntrack->layer7.app_proto = 
++                        kmalloc(strlen(master_conntrack->layer7.app_proto)+1, 
++                          GFP_ATOMIC);
++                      if(!conntrack->layer7.app_proto){
++                              if (net_ratelimit())
++                                      printk(KERN_ERR "layer7: out of memory "
++                                                      "in match_no_append, "
++                                                      "bailing.\n");
++                              return 1;
++                      }
++                      strcpy(conntrack->layer7.app_proto, 
++                              master_conntrack->layer7.app_proto);
++              }
++
++              return (!strcmp(master_conntrack->layer7.app_proto, 
++                              info->protocol));
++      }
++      else {
++              /* If not classified, set to "unknown" to distinguish from
++              connections that are still being tested. */
++              master_conntrack->layer7.app_proto = 
++                      kmalloc(strlen("unknown")+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match_no_append, bailing.\n");
++                      return 1;
++              }
++              strcpy(master_conntrack->layer7.app_proto, "unknown");
++              return 0;
++      }
++}
++
++/* add the new app data to the conntrack.  Return number of bytes added. */
++static int add_data(struct nf_conn * master_conntrack,
++                    char * app_data, int appdatalen)
++{
++      int length = 0, i;
++      int oldlength = master_conntrack->layer7.app_data_len;
++
++      /* This is a fix for a race condition by Deti Fliegl. However, I'm not 
++         clear on whether the race condition exists or whether this really 
++         fixes it.  I might just be being dense... Anyway, if it's not really 
++         a fix, all it does is waste a very small amount of time. */
++      if(!master_conntrack->layer7.app_data) return 0;
++
++      /* Strip nulls. Make everything lower case (our regex lib doesn't
++      do case insensitivity).  Add it to the end of the current data. */
++      for(i = 0; i < maxdatalen-oldlength-1 &&
++                 i < appdatalen; i++) {
++              if(app_data[i] != '\0') {
++                      /* the kernel version of tolower mungs 'upper ascii' */
++                      master_conntrack->layer7.app_data[length+oldlength] =
++                              isascii(app_data[i])? 
++                                      tolower(app_data[i]) : app_data[i];
++                      length++;
++              }
++      }
++
++      master_conntrack->layer7.app_data[length+oldlength] = '\0';
++      master_conntrack->layer7.app_data_len = length + oldlength;
++
++      return length;
++}
++
++/* taken from drivers/video/modedb.c */
++static int my_atoi(const char *s)
++{
++      int val = 0;
++
++      for (;; s++) {
++              switch (*s) {
++                      case '0'...'9':
++                      val = 10*val+(*s-'0');
++                      break;
++              default:
++                      return val;
++              }
++      }
++}
++
++/* write out num_packets to userland. */
++static int layer7_read_proc(char* page, char ** start, off_t off, int count,
++                            int* eof, void * data)
++{
++      if(num_packets > 99 && net_ratelimit())
++              printk(KERN_ERR "layer7: NOT REACHED. num_packets too big\n");
++
++      page[0] = num_packets/10 + '0';
++      page[1] = num_packets%10 + '0';
++      page[2] = '\n';
++      page[3] = '\0';
++
++      *eof=1;
++
++      return 3;
++}
++
++/* Read in num_packets from userland */
++static int layer7_write_proc(struct file* file, const char* buffer,
++                             unsigned long count, void *data)
++{
++      char * foo = kmalloc(count, GFP_ATOMIC);
++
++      if(!foo){
++              if (net_ratelimit())
++                      printk(KERN_ERR "layer7: out of memory, bailing. "
++                                      "num_packets unchanged.\n");
++              return count;
++      }
++
++      if(copy_from_user(foo, buffer, count)) {
++              return -EFAULT;
++      }
++
++
++      num_packets = my_atoi(foo);
++      kfree (foo);
++
++      /* This has an arbitrary limit to make the math easier. I'm lazy.
++      But anyway, 99 is a LOT! If you want more, you're doing it wrong! */
++      if(num_packets > 99) {
++              printk(KERN_WARNING "layer7: num_packets can't be > 99.\n");
++              num_packets = 99;
++      } else if(num_packets < 1) {
++              printk(KERN_WARNING "layer7: num_packets can't be < 1.\n");
++              num_packets = 1;
++      }
++
++      return count;
++}
++
++static bool
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++match(const struct sk_buff *skbin, struct xt_action_param *par)
++#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++match(const struct sk_buff *skbin, const struct xt_match_param *par)
++#else
++match(const struct sk_buff *skbin,
++      const struct net_device *in,
++      const struct net_device *out,
++      const struct xt_match *match,
++      const void *matchinfo,
++      int offset,
++      unsigned int protoff,
++      bool *hotdrop)
++#endif
++{
++      /* sidestep const without getting a compiler warning... */
++      struct sk_buff * skb = (struct sk_buff *)skbin; 
++
++      const struct xt_layer7_info * info = 
++      #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++              par->matchinfo;
++      #else
++              matchinfo;
++      #endif
++
++      enum ip_conntrack_info master_ctinfo, ctinfo;
++      struct nf_conn *master_conntrack, *conntrack;
++      unsigned char * app_data;
++      unsigned int pattern_result, appdatalen;
++      regexp * comppattern;
++
++      /* Be paranoid/incompetent - lock the entire match function. */
++      spin_lock_bh(&l7_lock);
++
++      if(!can_handle(skb)){
++              DPRINTK("layer7: This is some protocol I can't handle.\n");
++              spin_unlock_bh(&l7_lock);
++              return info->invert;
++      }
++
++      /* Treat parent & all its children together as one connection, except
++      for the purpose of setting conntrack->layer7.app_proto in the actual
++      connection. This makes /proc/net/ip_conntrack more satisfying. */
++      if(!(conntrack = nf_ct_get(skb, &ctinfo)) ||
++         !(master_conntrack=nf_ct_get(skb,&master_ctinfo))){
++              DPRINTK("layer7: couldn't get conntrack.\n");
++              spin_unlock_bh(&l7_lock);
++              return info->invert;
++      }
++
++      /* Try to get a master conntrack (and its master etc) for FTP, etc. */
++      while (master_ct(master_conntrack) != NULL)
++              master_conntrack = master_ct(master_conntrack);
++
++      /* if we've classified it or seen too many packets */
++      if(total_acct_packets(master_conntrack) > num_packets ||
++         master_conntrack->layer7.app_proto) {
++
++              pattern_result = match_no_append(conntrack, master_conntrack, 
++                                               ctinfo, master_ctinfo, info);
++
++              /* skb->cb[0] == seen. Don't do things twice if there are 
++              multiple l7 rules. I'm not sure that using cb for this purpose 
++              is correct, even though it says "put your private variables 
++              there". But it doesn't look like it is being used for anything
++              else in the skbs that make it here. */
++              skb->cb[0] = 1; /* marking it seen here's probably irrelevant */
++
++              spin_unlock_bh(&l7_lock);
++              return (pattern_result ^ info->invert);
++      }
++
++      if(skb_is_nonlinear(skb)){
++              if(skb_linearize(skb) != 0){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: failed to linearize "
++                                              "packet, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++      }
++
++      /* now that the skb is linearized, it's safe to set these. */
++      app_data = skb->data + app_data_offset(skb);
++      appdatalen = skb_tail_pointer(skb) - app_data;
++
++      /* the return value gets checked later, when we're ready to use it */
++      comppattern = compile_and_cache(info->pattern, info->protocol);
++
++      /* On the first packet of a connection, allocate space for app data */
++      if(total_acct_packets(master_conntrack) == 1 && !skb->cb[0] && 
++         !master_conntrack->layer7.app_data){
++              master_conntrack->layer7.app_data = 
++                      kmalloc(maxdatalen, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_data){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++
++              master_conntrack->layer7.app_data[0] = '\0';
++      }
++
++      /* Can be here, but unallocated, if numpackets is increased near
++      the beginning of a connection */
++      if(master_conntrack->layer7.app_data == NULL){
++              spin_unlock_bh(&l7_lock);
++              return info->invert; /* unmatched */
++      }
++
++      if(!skb->cb[0]){
++              int newbytes;
++              newbytes = add_data(master_conntrack, app_data, appdatalen);
++
++              if(newbytes == 0) { /* didn't add any data */
++                      skb->cb[0] = 1;
++                      /* Didn't match before, not going to match now */
++                      spin_unlock_bh(&l7_lock);
++                      return info->invert;
++              }
++      }
++
++      /* If looking for "unknown", then never match.  "Unknown" means that
++      we've given up; we're still trying with these packets. */
++      if(!strcmp(info->protocol, "unknown")) {
++              pattern_result = 0;
++      /* If looking for "unset", then always match. "Unset" means that we
++      haven't yet classified the connection. */
++      } else if(!strcmp(info->protocol, "unset")) {
++              pattern_result = 2;
++              DPRINTK("layer7: matched unset: not yet classified "
++                      "(%d/%d packets)\n",
++                        total_acct_packets(master_conntrack), num_packets);
++      /* If the regexp failed to compile, don't bother running it */
++      } else if(comppattern && 
++                regexec(comppattern, master_conntrack->layer7.app_data)){
++              DPRINTK("layer7: matched %s\n", info->protocol);
++              pattern_result = 1;
++      } else pattern_result = 0;
++
++      if(pattern_result == 1) {
++              master_conntrack->layer7.app_proto = 
++                      kmalloc(strlen(info->protocol)+1, GFP_ATOMIC);
++              if(!master_conntrack->layer7.app_proto){
++                      if (net_ratelimit())
++                              printk(KERN_ERR "layer7: out of memory in "
++                                              "match, bailing.\n");
++                      spin_unlock_bh(&l7_lock);
++                      return (pattern_result ^ info->invert);
++              }
++              strcpy(master_conntrack->layer7.app_proto, info->protocol);
++      } else if(pattern_result > 1) { /* cleanup from "unset" */
++              pattern_result = 1;
++      }
++
++      /* mark the packet seen */
++      skb->cb[0] = 1;
++
++      spin_unlock_bh(&l7_lock);
++      return (pattern_result ^ info->invert);
++}
++
++// load nf_conntrack_ipv4
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++static int
++#else
++static bool
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++check(const struct xt_mtchk_param *par)
++{
++        if (nf_ct_l3proto_try_module_get(par->match->family) < 0) {
++                printk(KERN_WARNING "can't load conntrack support for "
++                                    "proto=%d\n", par->match->family);
++#else
++check(const char *tablename, const void *inf,
++               const struct xt_match *match, void *matchinfo,
++               unsigned int hook_mask)
++{
++        if (nf_ct_l3proto_try_module_get(match->family) < 0) {
++                printk(KERN_WARNING "can't load conntrack support for "
++                                    "proto=%d\n", match->family);
++#endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 35)
++              return -EINVAL;
++      }
++      return 0;
++#else
++                return 0;
++        }
++      return 1;
++#endif
++}
++
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 28)
++      static void destroy(const struct xt_mtdtor_param *par)
++      {
++              nf_ct_l3proto_module_put(par->match->family);
++      }
++#else
++      static void destroy(const struct xt_match *match, void *matchinfo)
++      {
++              nf_ct_l3proto_module_put(match->family);
++      }
++#endif
++
++static struct xt_match xt_layer7_match[] __read_mostly = {
++{
++      .name           = "layer7",
++      .family         = AF_INET,
++      .checkentry     = check,
++      .match          = match,
++      .destroy        = destroy,
++      .matchsize      = sizeof(struct xt_layer7_info),
++      .me             = THIS_MODULE
++}
++};
++
++static void layer7_cleanup_proc(void)
++{
++      remove_proc_entry("layer7_numpackets", init_net.proc_net);
++}
++
++/* register the proc file */
++static void layer7_init_proc(void)
++{
++      struct proc_dir_entry* entry;
++      entry = create_proc_entry("layer7_numpackets", 0644, init_net.proc_net);
++      entry->read_proc = layer7_read_proc;
++      entry->write_proc = layer7_write_proc;
++}
++
++static int __init xt_layer7_init(void)
++{
++      need_conntrack();
++
++      if (init_net.ct.sysctl_acct == 0) {
++              printk(KERN_WARNING "layer7: enabling nf_conntrack_acct\n");
++              init_net.ct.sysctl_acct = 1;
++      }
++
++      layer7_init_proc();
++      if(maxdatalen < 1) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be < 1, "
++                      "using 1\n");
++              maxdatalen = 1;
++      }
++      /* This is not a hard limit.  It's just here to prevent people from
++      bringing their slow machines to a grinding halt. */
++      else if(maxdatalen > 65536) {
++              printk(KERN_WARNING "layer7: maxdatalen can't be > 65536, "
++                      "using 65536\n");
++              maxdatalen = 65536;
++      }
++      return xt_register_matches(xt_layer7_match,
++                                 ARRAY_SIZE(xt_layer7_match));
++}
++
++static void __exit xt_layer7_fini(void)
++{
++      layer7_cleanup_proc();
++      xt_unregister_matches(xt_layer7_match, ARRAY_SIZE(xt_layer7_match));
++}
++
++module_init(xt_layer7_init);
++module_exit(xt_layer7_fini);
diff --git a/src/patches/netpbm-10.26.46-getline.patch b/src/patches/netpbm-10.26.46-getline.patch
new file mode 100644 (file)
index 0000000..c5a961b
--- /dev/null
@@ -0,0 +1,202 @@
+The getline function used in a couple of places in netpbm-free is also
+defined by POSIX:2008, and so netpbm-free fails to build with newer
+versions of (e)glibc. Here's a patch to rename it.
+
+  * Rename getline functions to get_line to avoid conflict with POSIX:2008.
+
+--- netpbm-free-10.0.orig/ppm/xvminitoppm.c
++++ netpbm-free-10.0/ppm/xvminitoppm.c
+@@ -14,7 +14,7 @@
+ #include "ppm.h"
+ #define BUFSIZE 256
+-static void getline ARGS((FILE *fp, char *buf));
++static void get_line ARGS((FILE *fp, char *buf));
+ int 
+ main(argc, argv)
+@@ -48,18 +48,18 @@
+                 i++;
+             }
+     
+-    getline(ifp, buf);
++    get_line(ifp, buf);
+     if( strncmp(buf, "P7 332", 6) != 0 )
+         pm_error("bad magic number - not a XV thumbnail picture");
+     while(1) {
+-        getline(ifp, buf);
++        get_line(ifp, buf);
+         if( strncmp(buf, "#END_OF_COMMENTS", 16)==0 )
+             break;
+         if( strncmp(buf, "#BUILTIN", 8)==0 )
+             pm_error("cannot convert builtin XV thumbnail pictures");
+     }
+-    getline(ifp, buf);
++    get_line(ifp, buf);
+     if( sscanf(buf, "%d %d %d", &cols, &rows, &maxval) != 3 ) 
+         pm_error("error parsing dimension info");
+     if( maxval != 255 )
+@@ -85,7 +85,7 @@
+ static void
+-getline(fp, buf)
++get_line(fp, buf)
+     FILE *fp;
+     char *buf;
+ {
+--- netpbm-free-10.0.orig/ppm/xpmtoppm.c
++++ netpbm-free-10.0/ppm/xpmtoppm.c
+@@ -114,7 +114,7 @@
+ static void
+-getline(char * const line, int const size, FILE * const stream) {
++get_line(char * const line, int const size, FILE * const stream) {
+ /*----------------------------------------------------------------------------
+    Read the next line from the input file 'stream', through the one-line
+    buffer lastInputLine[].
+@@ -130,7 +130,7 @@
+    Exit program if the line doesn't fit in the buffer.
+ -----------------------------------------------------------------------------*/
+     if (size > MAX_LINE+1)
+-        pm_error("INTERNAL ERROR: getline() received 'size' parameter "
++        pm_error("INTERNAL ERROR: get_line() received 'size' parameter "
+                  "which is out of bounds");
+     if (backup) {
+@@ -346,7 +346,7 @@
+                int * const transparentP) {
+ /*----------------------------------------------------------------------------
+   Read the header of the XPM file on stream 'stream'.  Assume the
+-  getline() stream is presently positioned to the beginning of the
++  get_line() stream is presently positioned to the beginning of the
+   file and it is a Version 3 XPM file.  Leave the stream positioned
+   after the header.
+@@ -377,25 +377,25 @@
+     *widthP = *heightP = *ncolorsP = *chars_per_pixelP = -1;
+     /* Read the XPM signature comment */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     if (strncmp(line, xpm3_signature, strlen(xpm3_signature)) != 0) 
+         pm_error("Apparent XPM 3 file does not start with '/* XPM */'.  "
+                  "First line is '%s'", xpm3_signature);
+     /* Read the assignment line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     if (strncmp(line, "static char", 11) != 0)
+         pm_error("Cannot find data structure declaration.  Expected a "
+                  "line starting with 'static char', but found the line "
+                  "'%s'.", line);
+       /* Read the hints line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     /* skip the comment line if any */
+     if (!strncmp(line, "/*", 2)) {
+         while (!strstr(line, "*/"))
+-            getline(line, sizeof(line), stream);
+-        getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+     }
+     if (sscanf(line, "\"%d %d %d %d\",", widthP, heightP,
+                ncolorsP, chars_per_pixelP) != 4)
+@@ -427,10 +427,10 @@
+         *transparentP = -1;  /* initial value */
+         for (seqNum = 0; seqNum < *ncolorsP; seqNum++) {
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+             /* skip the comment line if any */
+             if (!strncmp(line, "/*", 2))
+-                getline(line, sizeof(line), stream);
++                get_line(line, sizeof(line), stream);
+             
+             interpretXpm3ColorTableLine(line, seqNum, *chars_per_pixelP, 
+                                         *colorsP, *ptabP, transparentP);
+@@ -445,7 +445,7 @@
+                pixel ** const colorsP, int ** const ptabP) {
+ /*----------------------------------------------------------------------------
+   Read the header of the XPM file on stream 'stream'.  Assume the
+-  getline() stream is presently positioned to the beginning of the
++  get_line() stream is presently positioned to the beginning of the
+   file and it is a Version 1 XPM file.  Leave the stream positioned
+   after the header.
+   
+@@ -464,7 +464,7 @@
+     /* Read the initial defines. */
+     processedStaticChar = FALSE;
+     while (!processedStaticChar) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if (sscanf(line, "#define %s %d", str1, &v) == 2) {
+             char *t1;
+@@ -512,7 +512,7 @@
+     /* If there's a monochrome color table, skip it. */
+     if (!strncmp(t1, "mono", 4)) {
+         for (;;) {
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+             if (!strncmp(line, "static char", 11))
+                 break;
+         }
+@@ -533,7 +533,7 @@
+     /* Read color table. */
+     for (i = 0; i < *ncolorsP; ++i) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if ((t1 = strchr(line, '"')) == NULL)
+             pm_error("D error scanning color table");
+@@ -569,7 +569,7 @@
+        "static char ...").
+     */
+     for (;;) {
+-        getline(line, sizeof(line), stream);
++        get_line(line, sizeof(line), stream);
+         if (strncmp(line, "static char", 11) == 0)
+             break;
+     }
+@@ -660,7 +660,7 @@
+     backup = FALSE;
+     /* Read the header line */
+-    getline(line, sizeof(line), stream);
++    get_line(line, sizeof(line), stream);
+     backup = TRUE;  /* back up so next read reads this line again */
+     
+     rc = sscanf(line, "/* %s */", str1);
+@@ -681,7 +681,7 @@
+         pm_error("Could not get %d bytes of memory for image", totalpixels);
+     cursor = *dataP;
+     maxcursor = *dataP + totalpixels - 1;
+-      getline(line, sizeof(line), stream); 
++      get_line(line, sizeof(line), stream); 
+         /* read next line (first line may not always start with comment) */
+     while (cursor <= maxcursor) {
+         if (strncmp(line, "/*", 2) == 0) {
+@@ -691,7 +691,7 @@
+                              ncolors, ptab, &cursor, maxcursor);
+         }
+         if (cursor <= maxcursor)
+-            getline(line, sizeof(line), stream);
++            get_line(line, sizeof(line), stream);
+     }
+     if (ptab) free(ptab);
+ }
+
+Thanks,
+
+-- 
+Colin Watson                                       [cjwatson@ubuntu.com]
+
+
+
+
diff --git a/src/patches/openldap-gcc44-fixes.patch b/src/patches/openldap-gcc44-fixes.patch
new file mode 100644 (file)
index 0000000..53b8ea0
--- /dev/null
@@ -0,0 +1,31 @@
+--- include/ldap_pvt_thread.h~ 2008-11-12 07:37:16.000000000 +0000
++++ include/ldap_pvt_thread.h  2008-11-12 08:01:45.000000000 +0000
+@@ -59,12 +59,12 @@
+ #ifndef LDAP_PVT_THREAD_H_DONE
+ #define       LDAP_PVT_THREAD_SET_STACK_SIZE
+-#ifndef LDAP_PVT_THREAD_STACK_SIZE
+-      /* LARGE stack. Will be twice as large on 64 bit machine. */
+-#define LDAP_PVT_THREAD_STACK_SIZE    ( 1 * 1024 * 1024 * sizeof(void *) )
+ /* May be explicitly defined to zero to disable it */
+-#elif LDAP_PVT_THREAD_STACK_SIZE == 0
++#if LDAP_PVT_THREAD_STACK_SIZE == 0
+ #undef LDAP_PVT_THREAD_SET_STACK_SIZE
++#elif !defined(LDAP_PVT_THREAD_STACK_SIZE)
++      /* LARGE stack. Will be twice as large on 64 bit machine. */
++#define LDAP_PVT_THREAD_STACK_SIZE    ( 1 * 1024 * 1024 * sizeof(void *) )
+ #endif
+ #endif /* !LDAP_PVT_THREAD_H_DONE */
+--- libraries/libldap/os-ip.c~ 2008-11-12 07:33:10.000000000 +0000
++++ libraries/libldap/os-ip.c  2008-11-12 07:33:31.000000000 +0000
+@@ -690,7 +690,7 @@
+               char *herr;
+ #ifdef NI_MAXHOST
+               char hbuf[NI_MAXHOST];
+-#elif defined( MAXHOSTNAMELEN
++#elif defined( MAXHOSTNAMELEN )
+               char hbuf[MAXHOSTNAMELEN];
+ #else
+               char hbuf[256];
+
diff --git a/src/patches/pptp-1.7.2-compat.patch b/src/patches/pptp-1.7.2-compat.patch
new file mode 100644 (file)
index 0000000..0ea1551
--- /dev/null
@@ -0,0 +1,71 @@
+Index: pptp_compat.c
+===================================================================
+RCS file: /cvsroot/pptpclient/pptp-linux/pptp_compat.c,v
+retrieving revision 1.1
+retrieving revision 1.3
+diff -u -r1.1 -r1.3
+--- pptp_compat.c      19 Feb 2008 21:43:28 -0000      1.1
++++ pptp_compat.c      25 Jul 2008 00:13:56 -0000      1.3
+@@ -7,14 +7,15 @@
+ #include <fcntl.h>
+ #include <sys/types.h>
+ #include <unistd.h>
+-#include <stropts.h>
+ #include <stdlib.h>
++#if defined (__SVR4) && defined (__sun) /* Solaris */
++#include <stropts.h>
++#endif
+ #include <strings.h>
+ #include "pptp_compat.h"
+ #include <stdio.h>
+ #include "util.h"
+-
+ #if defined (__SVR4) && defined (__sun) /* Solaris */
+ /*
+  * daemon implementation from uClibc
+Index: pptp.c
+===================================================================
+RCS file: /cvsroot/pptpclient/pptp-linux/pptp.c,v
+retrieving revision 1.49
+retrieving revision 1.51
+diff -u -r1.49 -r1.51
+--- pptp.c     14 May 2008 06:32:52 -0000      1.49
++++ pptp.c     24 Jul 2008 05:53:05 -0000      1.51
+@@ -61,9 +61,8 @@
+ #include "version.h"
+ #if defined(__linux__)
+ #include <sys/prctl.h>
+-#else
+-#include "inststr.h"
+ #endif
++#include "inststr.h"
+ #include "util.h"
+ #include "pptp_quirks.h"
+ #include "pqueue.h"
+@@ -129,7 +128,7 @@
+ }
+ #if defined (__SVR4) && defined (__sun)
+-struct in_addr localbind = { INADDR_ANY };
++struct in_addr localbind = { .s_addr = INADDR_ANY };
+ #else
+ struct in_addr localbind = { INADDR_NONE };
+ #endif
+@@ -183,6 +182,7 @@
+     struct in_addr inetaddr;
+     volatile int callmgr_sock = -1;
+     char ttydev[PATH_MAX];
++    char *tty_name;
+     int pty_fd, tty_fd, gre_fd, rc;
+     volatile pid_t parent_pid, child_pid;
+     u_int16_t call_id, peer_call_id;
+@@ -391,7 +391,7 @@
+         file2fd("/dev/null", "wb", STDERR_FILENO);
+     }
+-    char *tty_name = ttyname(tty_fd);
++    tty_name = ttyname(tty_fd);
+     snprintf(buf, sizeof(buf), "pptp: GRE-to-PPP gateway on %s",
+               tty_name ? tty_name : "(null)");
+ #ifdef PR_SET_NAME
diff --git a/src/patches/qemu-kqemu_change-default-kqemu-bios.patch b/src/patches/qemu-kqemu_change-default-kqemu-bios.patch
deleted file mode 100644 (file)
index a36c54e..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur qemu-0.11.1.org/hw/pc.c qemu-0.11.1/hw/pc.c
---- qemu-0.11.1.org/hw/pc.c    2009-12-02 21:27:02.000000000 +0100
-+++ qemu-0.11.1/hw/pc.c        2010-12-27 12:09:41.845206649 +0100
-@@ -43,7 +43,7 @@
- /* Show multiboot debug output */
- //#define DEBUG_MULTIBOOT
--#define BIOS_FILENAME "bios.bin"
-+#define BIOS_FILENAME "bios-kqemu.bin"
- #define VGABIOS_FILENAME "vgabios.bin"
- #define VGABIOS_CIRRUS_FILENAME "vgabios-cirrus.bin"
diff --git a/src/patches/readline-5.1-fixes-3.patch b/src/patches/readline-5.1-fixes-3.patch
deleted file mode 100644 (file)
index e0fb875..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-Submitted By: Matthew Burgess (matthew at linuxfromscratch dot org)
-Date: 2006-03-17
-Initial Package Version: 5.1
-Origin: http://ftp.gnu.org/gnu/readline/readline-5.1-patches/
-Upstream Status: From Upstream 
-Description: Contains Patch 001-004 from Upstream
-
-diff -Naur readline-5.1.orig/display.c readline-5.1/display.c
---- readline-5.1.orig/display.c        2005-11-30 19:05:02.000000000 +0000
-+++ readline-5.1/display.c     2006-03-17 16:03:09.000000000 +0000
-@@ -1983,11 +1983,15 @@
-      int pchar;
- {
-   int len;
--  char *pmt;
-+  char *pmt, *p;
-   rl_save_prompt ();
--  if (saved_local_prompt == 0)
-+  /* We've saved the prompt, and can do anything with the various prompt
-+     strings we need before they're restored.  We want the unexpanded
-+     portion of the prompt string after any final newline. */
-+  p = rl_prompt ? strrchr (rl_prompt, '\n') : 0;
-+  if (p == 0)
-     {
-       len = (rl_prompt && *rl_prompt) ? strlen (rl_prompt) : 0;
-       pmt = (char *)xmalloc (len + 2);
-@@ -1998,19 +2002,17 @@
-     }
-   else
-     {
--      len = *saved_local_prompt ? strlen (saved_local_prompt) : 0;
-+      p++;
-+      len = strlen (p);
-       pmt = (char *)xmalloc (len + 2);
-       if (len)
--      strcpy (pmt, saved_local_prompt);
-+      strcpy (pmt, p);
-       pmt[len] = pchar;
-       pmt[len+1] = '\0';
--      local_prompt = savestring (pmt);
--      prompt_last_invisible = saved_last_invisible;
--      prompt_visible_length = saved_visible_length + 1;
--    }
-+    }  
-+  /* will be overwritten by expand_prompt, called from rl_message */
-   prompt_physical_chars = saved_physical_chars + 1;
--
-   return pmt;
- }
-diff -Naur readline-5.1.orig/readline.c readline-5.1/readline.c
---- readline-5.1.orig/readline.c       2005-07-05 02:29:35.000000000 +0000
-+++ readline-5.1/readline.c    2006-03-17 16:03:05.000000000 +0000
-@@ -282,6 +282,7 @@
- {
-   FREE (rl_prompt);
-   rl_prompt = prompt ? savestring (prompt) : (char *)NULL;
-+  rl_display_prompt = rl_prompt ? rl_prompt : "";
-   rl_visible_prompt_length = rl_expand_prompt (rl_prompt);
-   return 0;
-@@ -714,7 +715,7 @@
-         rl_dispatching = 1;
-         RL_SETSTATE(RL_STATE_DISPATCHING);
--        r = (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
-+        (*map[key].function)(rl_numeric_arg * rl_arg_sign, key);
-         RL_UNSETSTATE(RL_STATE_DISPATCHING);
-         rl_dispatching = 0;
-diff -Naur readline-5.1.orig/terminal.c readline-5.1/terminal.c
---- readline-5.1.orig/terminal.c       2005-11-13 01:46:54.000000000 +0000
-+++ readline-5.1/terminal.c    2006-03-17 16:03:02.000000000 +0000
-@@ -122,7 +122,7 @@
- static char *_rl_visible_bell;
- /* Non-zero means the terminal can auto-wrap lines. */
--int _rl_term_autowrap;
-+int _rl_term_autowrap = -1;
- /* Non-zero means that this terminal has a meta key. */
- static int term_has_meta;
-@@ -274,6 +274,9 @@
- _rl_set_screen_size (rows, cols)
-      int rows, cols;
- {
-+  if (_rl_term_autowrap == -1)
-+    _rl_init_terminal_io (rl_terminal_name);
-+
-   if (rows > 0)
-     _rl_screenheight = rows;
-   if (cols > 0)
-diff -Naur readline-5.1.orig/text.c readline-5.1/text.c
---- readline-5.1.orig/text.c   2005-09-24 23:06:07.000000000 +0000
-+++ readline-5.1/text.c        2006-03-17 16:02:58.000000000 +0000
-@@ -1071,8 +1071,6 @@
- rl_delete (count, key)
-      int count, key;
- {
--  int r;
--
-   if (count < 0)
-     return (_rl_rubout_char (-count, key));
-@@ -1090,17 +1088,17 @@
-       else
-       rl_forward_byte (count, key);
--      r = rl_kill_text (orig_point, rl_point);
-+      rl_kill_text (orig_point, rl_point);
-       rl_point = orig_point;
--      return r;
-     }
-   else
-     {
-       int new_point;
-       new_point = MB_NEXTCHAR (rl_line_buffer, rl_point, 1, MB_FIND_NONZERO);
--      return (rl_delete_text (rl_point, new_point));
-+      rl_delete_text (rl_point, new_point);
-     }
-+  return 0;
- }
- /* Delete the character under the cursor, unless the insertion
diff --git a/src/patches/readline/readline52-001 b/src/patches/readline/readline52-001
new file mode 100644 (file)
index 0000000..0bec9a2
--- /dev/null
@@ -0,0 +1,30 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-001
+
+Bug-Reported-by:       ebb9@byu.net
+Bug-Reference-ID:      <45540862.9030900@byu.net>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00017.html
+                       http://lists.gnu.org/archive/html/bug-bash/2006-11/msg00016.html
+
+Bug-Description:
+
+In some cases, code that is intended to be used in the presence of multibyte
+characters is called when no such characters are present, leading to incorrect
+display position calculations and incorrect redisplay.
+
+Patch:
+
+*** ../readline-5.2/display.c  Thu Sep 14 14:20:12 2006
+--- display.c  Mon Nov 13 17:55:57 2006
+***************
+*** 2381,2384 ****
+--- 2409,2414 ----
+    if (end <= start)
+      return 0;
++   if (MB_CUR_MAX == 1 || rl_byte_oriented)
++     return (end - start);
+  
+    memset (&ps, 0, sizeof (mbstate_t));
diff --git a/src/patches/readline/readline52-002 b/src/patches/readline/readline52-002
new file mode 100644 (file)
index 0000000..b0d8c92
--- /dev/null
@@ -0,0 +1,49 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-002
+
+Bug-Reported-by: Magnus Svensson <msvensson@mysql.com>
+Bug-Reference-ID: <45BDC44D.80609@mysql.com>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-readline/2007-01/msg00002.html
+
+Bug-Description:
+
+Readline neglects to reallocate the array it uses to keep track of wrapped
+screen lines when increasing its size.  This will eventually result in
+segmentation faults when given sufficiently long input.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c  Thu Sep 14 14:20:12 2006
+--- display.c  Fri Feb  2 20:23:17 2007
+***************
+*** 561,574 ****
+--- 561,586 ----
+        wrap_offset = prompt_invis_chars_first_line = 0;
+      }
+  
++ #if defined (HANDLE_MULTIBYTE)
+  #define CHECK_INV_LBREAKS() \
+        do { \
+       if (newlines >= (inv_lbsize - 2)) \
+         { \
+           inv_lbsize *= 2; \
+           inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++          _rl_wrapped_line = (int *)xrealloc (_rl_wrapped_line, inv_lbsize * sizeof (int)); \
+         } \
+        } while (0)
++ #else
++ #define CHECK_INV_LBREAKS() \
++       do { \
++      if (newlines >= (inv_lbsize - 2)) \
++        { \
++          inv_lbsize *= 2; \
++          inv_lbreaks = (int *)xrealloc (inv_lbreaks, inv_lbsize * sizeof (int)); \
++        } \
++       } while (0)
++ #endif /* HANDLE_MULTIBYTE */
+  
+  #if defined (HANDLE_MULTIBYTE)         
+  #define CHECK_LPOS() \
diff --git a/src/patches/readline/readline52-003 b/src/patches/readline/readline52-003
new file mode 100644 (file)
index 0000000..06916b3
--- /dev/null
@@ -0,0 +1,37 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-003
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1171795523.8021.18.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-02/msg00054.html
+
+Bug-Description:
+
+When moving the cursor, bash sometimes misplaces the cursor when the prompt
+contains two or more multibyte characters.  The particular circumstance that
+uncovered the problem was having the (multibyte) current directory name in
+the prompt string.
+
+Patch:
+
+*** ../readline-5.2.2/display.c        Fri Jan 19 13:34:50 2007
+--- display.c  Sat Mar 10 17:25:44 2007
+***************
+*** 1745,1749 ****
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       if (dpos > prompt_last_invisible)              /* XXX - don't use woff here */
+       {
+         dpos -= woff;
+--- 1745,1752 ----
+      {
+        dpos = _rl_col_width (data, 0, new);
+!       /* Use NEW when comparing against the last invisible character in the
+!       prompt string, since they're both buffer indices and DPOS is a
+!       desired display position. */
+!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
+       {
+         dpos -= woff;
diff --git a/src/patches/readline/readline52-004 b/src/patches/readline/readline52-004
new file mode 100644 (file)
index 0000000..b165ad9
--- /dev/null
@@ -0,0 +1,70 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-004
+
+Bug-Reported-by: Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID: <1173636022.7039.36.camel@localhost>
+Bug-Reference-URL: http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00039.html
+
+Bug-Description:
+
+When restoring the original prompt after finishing an incremental search,
+bash sometimes places the cursor incorrectly if the primary prompt contains
+invisible characters.
+
+Patch:
+
+*** ../readline-5.2.3/display.c        Fri Apr 20 13:30:16 2007
+--- display.c  Fri Apr 20 15:17:01 2007
+***************
+*** 1599,1604 ****
+         if (temp > 0)
+           {
+             _rl_output_some_chars (nfd, temp);
+!            _rl_last_c_pos += _rl_col_width (nfd, 0, temp);;
+           }
+       }
+--- 1599,1618 ----
+         if (temp > 0)
+           {
++            /* If nfd begins at the prompt, or before the invisible
++               characters in the prompt, we need to adjust _rl_last_c_pos
++               in a multibyte locale to account for the wrap offset and
++               set cpos_adjusted accordingly. */
+             _rl_output_some_chars (nfd, temp);
+!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+!              {
+!                   _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
+!                   if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
+!                  {
+!                    _rl_last_c_pos -= wrap_offset;
+!                    cpos_adjusted = 1;
+!                  }
+!              }
+!               else
+!                 _rl_last_c_pos += temp;
+           }
+       }
+***************
+*** 1608,1613 ****
+--- 1622,1639 ----
+         if (temp > 0)
+           {
++            /* If nfd begins at the prompt, or before the invisible
++               characters in the prompt, we need to adjust _rl_last_c_pos
++               in a multibyte locale to account for the wrap offset and
++               set cpos_adjusted accordingly. */
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;               /* XXX */
++            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
++              {
++                if (current_line == 0 && wrap_offset &&  ((nfd - new) <= prompt_last_invisible))
++                  {
++                    _rl_last_c_pos -= wrap_offset;
++                    cpos_adjusted = 1;
++                  }
++              }
+           }
+         lendiff = (oe - old) - (ne - new);
diff --git a/src/patches/readline/readline52-005 b/src/patches/readline/readline52-005
new file mode 100644 (file)
index 0000000..d192ac1
--- /dev/null
@@ -0,0 +1,328 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-005
+
+Bug-Reported-by:        Thomas Loeber <ifp@loeber1.de>
+Bug-Reference-ID:       <200703082223.08919.ifp@loeber1.de>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-03/msg00036.html
+
+Bug-Description:
+
+When rl_read_key returns -1, indicating that readline's controlling terminal
+has been invalidated for some reason (e.g., receiving a SIGHUP), the error
+status was not reported correctly to the caller.  This could cause input
+loops. 
+
+Patch:
+
+*** ../readline-5.2/complete.c Fri Jul 28 11:35:49 2006
+--- complete.c Tue Mar 13 08:50:16 2007
+***************
+*** 429,433 ****
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+!       if (c == ABORT_CHAR)
+       _rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+--- 440,444 ----
+        if (c == 'n' || c == 'N' || c == RUBOUT)
+       return (0);
+!       if (c == ABORT_CHAR || c < 0)
+       _rl_abort_internal ();
+        if (for_pager && (c == NEWLINE || c == RETURN))
+*** ../readline-5.2/input.c    Wed Aug 16 15:15:16 2006
+--- input.c    Wed May  2 16:07:59 2007
+***************
+*** 514,518 ****
+       int size;
+  {
+!   int mb_len = 0;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+--- 522,526 ----
+       int size;
+  {
+!   int mb_len, c;
+    size_t mbchar_bytes_length;
+    wchar_t wc;
+***************
+*** 521,531 ****
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+!   
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       mbchar[mb_len++] = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+--- 529,545 ----
+    memset(&ps, 0, sizeof (mbstate_t));
+    memset(&ps_back, 0, sizeof (mbstate_t));
+! 
+!   mb_len = 0;  
+    while (mb_len < size)
+      {
+        RL_SETSTATE(RL_STATE_MOREINPUT);
+!       c = rl_read_key ();
+        RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++       if (c < 0)
++      break;
++ 
++       mbchar[mb_len++] = c;
++ 
+        mbchar_bytes_length = mbrtowc (&wc, mbchar, mb_len, &ps);
+        if (mbchar_bytes_length == (size_t)(-1))
+***************
+*** 565,569 ****
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; i < mlen; i++)
+      {
+        mb[i] = (char)c;
+--- 579,583 ----
+    c = first;
+    memset (mb, 0, mlen);
+!   for (i = 0; c >= 0 && i < mlen; i++)
+      {
+        mb[i] = (char)c;
+*** ../readline-5.2/isearch.c  Mon Dec 26 17:18:53 2005
+--- isearch.c  Fri Mar  9 14:30:59 2007
+***************
+*** 328,333 ****
+  
+    f = (rl_command_func_t *)NULL;
+!  
+!  /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+--- 328,340 ----
+  
+    f = (rl_command_func_t *)NULL;
+! 
+!   if (c < 0)
+!     {
+!       cxt->sflags |= SF_FAILED;
+!       cxt->history_pos = cxt->last_found_line;
+!       return -1;
+!     }
+! 
+!   /* Translate the keys we do something with to opcodes. */
+    if (c >= 0 && _rl_keymap[c].type == ISFUNC)
+      {
+*** ../readline-5.2/misc.c     Mon Dec 26 17:20:46 2005
+--- misc.c     Fri Mar  9 14:44:11 2007
+***************
+*** 147,150 ****
+--- 147,152 ----
+         rl_clear_message ();
+         RL_UNSETSTATE(RL_STATE_NUMERICARG);
++        if (key < 0)
++          return -1;
+         return (_rl_dispatch (key, _rl_keymap));
+       }
+*** ../readline-5.2/readline.c Wed Aug 16 15:00:36 2006
+--- readline.c Fri Mar  9 14:47:24 2007
+***************
+*** 646,649 ****
+--- 669,677 ----
+      {
+        nkey = _rl_subseq_getchar (cxt->okey);
++       if (nkey < 0)
++      {
++        _rl_abort_internal ();
++        return -1;
++      }
+        r = _rl_dispatch_subseq (nkey, cxt->dmap, cxt->subseq_arg);
+        cxt->flags |= KSEQ_DISPATCHED;
+*** ../readline-5.2/text.c     Fri Jul 28 11:55:27 2006
+--- text.c     Sun Mar 25 13:41:38 2007
+***************
+*** 858,861 ****
+--- 864,870 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_SIGNALS)
+    if (RL_ISSTATE (RL_STATE_CALLBACK) == 0)
+***************
+*** 1521,1524 ****
+--- 1530,1536 ----
+    mb_len = _rl_read_mbchar (mbchar, MB_LEN_MAX);
+  
++   if (mb_len <= 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, mbchar, mb_len));
+***************
+*** 1537,1540 ****
+--- 1549,1555 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+    if (count < 0)
+      return (_rl_char_search_internal (-count, bdir, c));
+*** ../readline-5.2/vi_mode.c  Sat Jul 29 16:42:28 2006
+--- vi_mode.c  Fri Mar  9 15:02:11 2007
+***************
+*** 887,890 ****
+--- 887,897 ----
+    c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
++ 
++   if (c < 0)
++     {
++       *nextkey = 0;
++       return -1;
++     }
++ 
+    *nextkey = c;
+  
+***************
+*** 903,906 ****
+--- 910,918 ----
+         c = rl_read_key ();   /* real command */
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
++        if (c < 0)
++          {
++            *nextkey = 0;
++            return -1;
++          }
+         *nextkey = c;
+       }
+***************
+*** 1225,1236 ****
+       _rl_callback_generic_arg *data;
+  {
+  #if defined (HANDLE_MULTIBYTE)
+!   _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   _rl_vi_last_search_char = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+--- 1243,1262 ----
+       _rl_callback_generic_arg *data;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+!   c = _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+    RL_SETSTATE(RL_STATE_MOREINPUT);
+!   c = rl_read_key ();
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+  
++   if (c <= 0)
++     return -1;
++ 
++ #if !defined (HANDLE_MULTIBYTE)
++   _rl_vi_last_search_char = c;
++ #endif
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1248,1251 ****
+--- 1274,1278 ----
+       int count, key;
+  {
++   int c;
+  #if defined (HANDLE_MULTIBYTE)
+    static char *target;
+***************
+*** 1294,1302 ****
+       {
+  #if defined (HANDLE_MULTIBYTE)
+!        _rl_vi_last_search_mblen = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+  #else
+         RL_SETSTATE(RL_STATE_MOREINPUT);
+!        _rl_vi_last_search_char = rl_read_key ();
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  #endif
+       }
+--- 1321,1335 ----
+       {
+  #if defined (HANDLE_MULTIBYTE)
+!        c = _rl_read_mbchar (_rl_vi_last_search_mbchar, MB_LEN_MAX);
+!        if (c <= 0)
+!          return -1;
+!        _rl_vi_last_search_mblen = c;
+  #else
+         RL_SETSTATE(RL_STATE_MOREINPUT);
+!        c = rl_read_key ();
+         RL_UNSETSTATE(RL_STATE_MOREINPUT);
++        if (c < 0)
++          return -1;
++        _rl_vi_last_search_char = c;
+  #endif
+       }
+***************
+*** 1468,1471 ****
+--- 1501,1507 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
++   if (c < 0)
++     return -1;
++ 
+  #if defined (HANDLE_MULTIBYTE)
+    if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+***************
+*** 1486,1489 ****
+--- 1522,1528 ----
+    _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    _rl_callback_func = 0;
+    _rl_want_redisplay = 1;
+***************
+*** 1517,1520 ****
+--- 1556,1562 ----
+      _rl_vi_last_replacement = c = _rl_vi_callback_getchar (mb, MB_LEN_MAX);
+  
++   if (c < 0)
++     return -1;
++ 
+    return (_rl_vi_change_char (count, c, mb));
+  }
+***************
+*** 1651,1655 ****
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1693,1697 ----
+    RL_UNSETSTATE(RL_STATE_MOREINPUT);
+  
+!   if (ch < 0 || ch < 'a' || ch > 'z')        /* make test against 0 explicit */
+      {
+        rl_ding ();
+***************
+*** 1703,1707 ****
+        return 0;
+      }
+!   else if (ch < 'a' || ch > 'z')
+      {
+        rl_ding ();
+--- 1745,1749 ----
+        return 0;
+      }
+!   else if (ch < 0 || ch < 'a' || ch > 'z')   /* make test against 0 explicit */
+      {
+        rl_ding ();
diff --git a/src/patches/readline/readline52-006 b/src/patches/readline/readline52-006
new file mode 100644 (file)
index 0000000..d739143
--- /dev/null
@@ -0,0 +1,62 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-006
+
+Bug-Reported-by:        Peter Volkov <torre_cremata@mail.ru>
+Bug-Reference-ID:       <1178376645.9063.25.camel@localhost>
+Bug-Reference-URL:      http://bugs.gentoo.org/177095
+
+Bug-Description:
+
+The readline display code miscalculated the screen position when performing
+a redisplay in which the new text occupies more screen space that the old,
+but takes fewer bytes to do so (e.g., when replacing a shorter string
+containing multibyte characters with a longer one containing only ASCII).
+
+Patch:
+
+*** ../readline-5.2/display.c  Thu Apr 26 11:38:22 2007
+--- display.c  Thu Jul 12 23:10:10 2007
+***************
+*** 1519,1527 ****
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
+        /* Sometimes it is cheaper to print the characters rather than
+        use the terminal's capabilities.  If we're growing the number
+        of lines, make sure we actually cause the new line to wrap
+        around on auto-wrapping terminals. */
+!       if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+       {
+         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
+--- 1568,1596 ----
+        /* Non-zero if we're increasing the number of lines. */
+        int gl = current_line >= _rl_vis_botlin && inv_botlin > _rl_vis_botlin;
++       /* If col_lendiff is > 0, implying that the new string takes up more
++       screen real estate than the old, but lendiff is < 0, meaning that it
++       takes fewer bytes, we need to just output the characters starting
++       from the first difference.  These will overwrite what is on the
++       display, so there's no reason to do a smart update.  This can really
++       only happen in a multibyte environment. */
++       if (lendiff < 0)
++      {
++        _rl_output_some_chars (nfd, temp);
++        _rl_last_c_pos += _rl_col_width (nfd, 0, temp);
++        /* If nfd begins before any invisible characters in the prompt,
++           adjust _rl_last_c_pos to account for wrap_offset and set
++           cpos_adjusted to let the caller know. */
++        if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++          {
++            _rl_last_c_pos -= wrap_offset;
++            cpos_adjusted = 1;
++          }
++        return;
++      }
+        /* Sometimes it is cheaper to print the characters rather than
+        use the terminal's capabilities.  If we're growing the number
+        of lines, make sure we actually cause the new line to wrap
+        around on auto-wrapping terminals. */
+!       else if (_rl_terminal_can_insert && ((2 * col_temp) >= col_lendiff || _rl_term_IC) && (!_rl_term_autowrap || !gl))
+       {
+         /* If lendiff > prompt_visible_length and _rl_last_c_pos == 0 and
diff --git a/src/patches/readline/readline52-007 b/src/patches/readline/readline52-007
new file mode 100644 (file)
index 0000000..f75f53f
--- /dev/null
@@ -0,0 +1,65 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-007
+
+Bug-Reported-by:        Tom Bjorkholm <tom.bjorkholm@ericsson.com>
+Bug-Reference-ID:       <AEA1A32F001C6B4F98614B5B80D7647D01C075E9@esealmw115.eemea.ericsson.se>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-04/msg00004.html
+
+
+Bug-Description:
+
+An off-by-one error in readline's input buffering caused readline to drop
+each 511th character of buffered input (e.g., when pasting a large amount
+of data into a terminal window).
+
+Patch:
+
+*** ../readline-5.2/input.c    Wed Aug 16 15:15:16 2006
+--- input.c    Tue Jul 17 09:24:21 2007
+***************
+*** 134,139 ****
+  
+    *key = ibuffer[pop_index++];
+! 
+    if (pop_index >= ibuffer_len)
+      pop_index = 0;
+  
+--- 134,142 ----
+  
+    *key = ibuffer[pop_index++];
+! #if 0
+    if (pop_index >= ibuffer_len)
++ #else
++   if (pop_index > ibuffer_len)
++ #endif
+      pop_index = 0;
+  
+***************
+*** 251,255 ****
+       {
+         k = (*rl_getc_function) (rl_instream);
+!        rl_stuff_char (k);
+         if (k == NEWLINE || k == RETURN)
+           break;
+--- 254,259 ----
+       {
+         k = (*rl_getc_function) (rl_instream);
+!        if (rl_stuff_char (k) == 0)
+!          break;                      /* some problem; no more room */
+         if (k == NEWLINE || k == RETURN)
+           break;
+***************
+*** 374,378 ****
+--- 378,386 ----
+      }
+    ibuffer[push_index++] = key;
++ #if 0
+    if (push_index >= ibuffer_len)
++ #else
++   if (push_index > ibuffer_len)
++ #endif
+      push_index = 0;
+  
diff --git a/src/patches/readline/readline52-008 b/src/patches/readline/readline52-008
new file mode 100644 (file)
index 0000000..1d7f327
--- /dev/null
@@ -0,0 +1,70 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-008
+
+Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID:      <4702ED8A.5000503@thequod.de>
+Bug-Reference-URL:     https://bugs.launchpad.net/ubuntu/+source/bash/+bug/119938
+
+Bug-Description:
+
+When updating the display after displaying, for instance, a list of possible
+completions, readline will place the cursor at the wrong position if the
+prompt contains invisible characters and a newline.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c  Mon Aug  6 14:26:29 2007
+--- display.c  Wed Oct 10 22:43:58 2007
+***************
+*** 1049,1053 ****
+             else
+               tx = nleft;
+!            if (_rl_last_c_pos > tx)
+               {
+                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
+--- 1049,1053 ----
+             else
+               tx = nleft;
+!            if (tx >= 0 && _rl_last_c_pos > tx)
+               {
+                 _rl_backspace (_rl_last_c_pos - tx);  /* XXX */
+***************
+*** 1205,1209 ****
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+--- 1205,1209 ----
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+***************
+*** 1466,1469 ****
+--- 1466,1471 ----
+      }
+  
++   o_cpos = _rl_last_c_pos;
++ 
+    /* When this function returns, _rl_last_c_pos is correct, and an absolute
+       cursor postion in multibyte mode, but a buffer index when not in a
+***************
+*** 1475,1479 ****
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
+--- 1477,1483 ----
+       invisible characters in the prompt string.  Let's see if setting this when
+       we make sure we're at the end of the drawn prompt string works. */
+!   if (current_line == 0 && MB_CUR_MAX > 1 && rl_byte_oriented == 0 && 
+!       (_rl_last_c_pos > 0 || o_cpos > 0) &&
+!       _rl_last_c_pos == prompt_physical_chars)
+      cpos_adjusted = 1;
+  #endif
diff --git a/src/patches/readline/readline52-009 b/src/patches/readline/readline52-009
new file mode 100644 (file)
index 0000000..af9e381
--- /dev/null
@@ -0,0 +1,45 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-009
+
+Bug-Reported-by:       dAniel hAhler <ubuntu@thequod.de>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+Under some circumstances, readline will incorrectly display a prompt string
+containing invisible characters after the final newline.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c  2007-08-25 13:47:08.000000000 -0400
+--- display.c  2007-11-10 17:51:29.000000000 -0500
+***************
+*** 392,396 ****
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+                                      &prompt_last_invisible,
+!                                     (int *)NULL,
+                                      &prompt_physical_chars);
+        c = *t; *t = '\0';
+--- 420,424 ----
+        local_prompt = expand_prompt (p, &prompt_visible_length,
+                                      &prompt_last_invisible,
+!                                     &prompt_invis_chars_first_line,
+                                      &prompt_physical_chars);
+        c = *t; *t = '\0';
+***************
+*** 399,403 ****
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+                                                  (int *)NULL,
+!                                                 &prompt_invis_chars_first_line,
+                                                  (int *)NULL);
+        *t = c;
+--- 427,431 ----
+        local_prompt_prefix = expand_prompt (prompt, &prompt_prefix_length,
+                                                  (int *)NULL,
+!                                                 (int *)NULL,
+                                                  (int *)NULL);
+        *t = c;
diff --git a/src/patches/readline/readline52-010 b/src/patches/readline/readline52-010
new file mode 100644 (file)
index 0000000..ee5c026
--- /dev/null
@@ -0,0 +1,47 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-010
+
+Bug-Reported-by:       Miroslav Lichvar <mlichvar@redhat.com>
+Bug-Reference-ID:      Fri, 02 Nov 2007 14:07:45 +0100
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2007-11/msg00000.html
+
+Bug-Description:
+
+In certain cases when outputting characters at the end of the line,
+e.g., when displaying the prompt string, readline positions the cursor
+incorrectly if the prompt string contains invisible characters and the
+text being drawn begins before the last invisible character in the line.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c  2007-08-25 13:47:08.000000000 -0400
+--- display.c  2007-11-10 17:51:29.000000000 -0500
+***************
+*** 1566,1574 ****
+         else
+           {
+-            /* We have horizontal scrolling and we are not inserting at
+-               the end.  We have invisible characters in this line.  This
+-               is a dumb update. */
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;
+             return;
+           }
+--- 1619,1632 ----
+         else
+           {
+             _rl_output_some_chars (nfd, temp);
+             _rl_last_c_pos += col_temp;
++            /* If nfd begins before any invisible characters in the prompt,
++               adjust _rl_last_c_pos to account for wrap_offset and set
++               cpos_adjusted to let the caller know. */
++            if (current_line == 0 && wrap_offset && ((nfd - new) <= prompt_last_invisible))
++              {
++                _rl_last_c_pos -= wrap_offset;
++                cpos_adjusted = 1;
++              }
+             return;
+           }
diff --git a/src/patches/readline/readline52-011 b/src/patches/readline/readline52-011
new file mode 100644 (file)
index 0000000..a1197ed
--- /dev/null
@@ -0,0 +1,32 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-011
+
+Bug-Reported-by:       Uwe Doering <gemini@geminix.org>
+Bug-Reference-ID:      <46F3DD72.2090801@geminix.org>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2007-09/msg00102.html
+
+Bug-Description:
+
+There is an off-by-one error in the code that buffers characters received
+very quickly in succession, causing characters to be dropped.
+
+Patch:
+
+*** ../readline-5.2-patched/input.c    2007-08-25 13:47:10.000000000 -0400
+--- input.c    2007-10-12 22:55:25.000000000 -0400
+***************
+*** 155,159 ****
+        pop_index--;
+        if (pop_index < 0)
+!      pop_index = ibuffer_len - 1;
+        ibuffer[pop_index] = key;
+        return (1);
+--- 155,159 ----
+        pop_index--;
+        if (pop_index < 0)
+!      pop_index = ibuffer_len;
+        ibuffer[pop_index] = key;
+        return (1);
diff --git a/src/patches/readline/readline52-012 b/src/patches/readline/readline52-012
new file mode 100644 (file)
index 0000000..7b37024
--- /dev/null
@@ -0,0 +1,150 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-012
+
+Bug-Reported-by:       Chet Ramey <chet.ramey@case.edu>
+Bug-Reference-ID:
+Bug-Reference-URL:
+
+Bug-Description:
+
+This updates the options required to create shared libraries on several
+systems, including Mac OS X 10.5 (darwin9.x), FreeBSD, NetBSD, OpenBSD,
+AIX, and HP/UX.
+
+Patch:
+
+*** ../readline-5.2-patched/support/shobj-conf 2006-04-11 09:15:43.000000000 -0400
+--- support/shobj-conf 2007-12-06 23:46:41.000000000 -0500
+***************
+*** 11,15 ****
+  # chet@po.cwru.edu
+  
+! # Copyright (C) 1996-2002 Free Software Foundation, Inc.
+  #
+  # This program is free software; you can redistribute it and/or modify
+--- 11,15 ----
+  # chet@po.cwru.edu
+  
+! # Copyright (C) 1996-2007 Free Software Foundation, Inc.
+  #
+  # This program is free software; you can redistribute it and/or modify
+***************
+*** 115,119 ****
+       ;;
+  
+! freebsd2* | netbsd*)
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD=ld
+--- 115,119 ----
+       ;;
+  
+! freebsd2*)
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD=ld
+***************
+*** 126,130 ****
+  # FreeBSD-3.x ELF
+  freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
+!      SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='${CC}'
+  
+--- 126,130 ----
+  # FreeBSD-3.x ELF
+  freebsd[3-9]*|freebsdelf[3-9]*|freebsdaout[3-9]*|dragonfly*)
+!      SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+  
+***************
+*** 143,147 ****
+  
+  # Darwin/MacOS X
+! darwin8*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+--- 143,147 ----
+  
+  # Darwin/MacOS X
+! darwin[89]*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+***************
+*** 154,158 ****
+       SHLIB_LIBSUFF='dylib'
+  
+!      SHOBJ_LDFLAGS='-undefined dynamic_lookup'
+       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+  
+--- 154,158 ----
+       SHLIB_LIBSUFF='dylib'
+  
+!      SHOBJ_LDFLAGS='-dynamiclib -dynamic -undefined dynamic_lookup -arch_only `/usr/bin/arch`'
+       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+  
+***************
+*** 172,176 ****
+  
+       case "${host_os}" in
+!      darwin[78]*)    SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+--- 172,176 ----
+  
+       case "${host_os}" in
+!      darwin[789]*)   SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+***************
+*** 183,187 ****
+       ;;
+  
+! openbsd*)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+--- 183,187 ----
+       ;;
+  
+! openbsd*|netbsd*)
+       SHOBJ_CFLAGS=-fPIC
+       SHOBJ_LD='${CC}'
+***************
+*** 248,252 ****
+       ;;
+  
+! aix4.[2-9]*-*gcc*)           # lightly tested by jik@cisco.com
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='ld'
+--- 248,252 ----
+       ;;
+  
+! aix4.[2-9]*-*gcc*|aix[5-9].*-*gcc*)          # lightly tested by jik@cisco.com
+       SHOBJ_CFLAGS=-fpic
+       SHOBJ_LD='ld'
+***************
+*** 259,263 ****
+       ;;
+  
+! aix4.[2-9]*)
+       SHOBJ_CFLAGS=-K
+       SHOBJ_LD='ld'
+--- 259,263 ----
+       ;;
+  
+! aix4.[2-9]*|aix[5-9].*)
+       SHOBJ_CFLAGS=-K
+       SHOBJ_LD='ld'
+***************
+*** 330,334 ****
+       # if you have problems linking here, moving the `-Wl,+h,$@' from
+       # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
+!      SHOBJ_LDFLAGS='-shared -Wl,-b -Wl,+s'
+  
+       SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
+--- 330,334 ----
+       # if you have problems linking here, moving the `-Wl,+h,$@' from
+       # SHLIB_XLDFLAGS to SHOBJ_LDFLAGS has been reported to work
+!      SHOBJ_LDFLAGS='-shared -fpic -Wl,-b -Wl,+s'
+  
+       SHLIB_XLDFLAGS='-Wl,+h,$@ -Wl,+b,$(libdir)'
diff --git a/src/patches/readline/readline52-013 b/src/patches/readline/readline52-013
new file mode 100644 (file)
index 0000000..82a1897
--- /dev/null
@@ -0,0 +1,135 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-013
+
+Bug-Reported-by:       slinkp <stuff@slinkp.com>
+Bug-Reference-ID:      <da52a26a-9f38-4861-a918-14d3482b539d@c65g2000hsa.googlegroups.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2008-05/msg00085.html
+
+Bug-Description:
+
+The presence of invisible characters in a prompt longer than the screenwidth
+with invisible characters on the first and last prompt lines caused readline
+to place the cursor in the wrong physical location.
+
+Patch:
+
+*** ../readline-5.2-patched/display.c  2007-12-14 21:12:40.000000000 -0500
+--- display.c  2008-10-23 09:39:46.000000000 -0400
+***************
+*** 911,914 ****
+--- 944,951 ----
+            OFFSET (which has already been calculated above).  */
+  
++ #define INVIS_FIRST()        (prompt_physical_chars > _rl_screenwidth ? prompt_invis_chars_first_line : wrap_offset)
++ #define WRAP_OFFSET(line, offset)  ((line == 0) \
++                                      ? (offset ? INVIS_FIRST() : 0) \
++                                      : ((line == prompt_last_screen_line) ? wrap_offset-prompt_invis_chars_first_line : 0))
+  #define W_OFFSET(line, offset) ((line) == 0 ? offset : 0)
+  #define VIS_LLEN(l)  ((l) > _rl_vis_botlin ? 0 : (vis_lbreaks[l+1] - vis_lbreaks[l]))
+***************
+*** 945,949 ****
+                 _rl_last_c_pos > wrap_offset &&
+                 o_cpos < prompt_last_invisible)
+!              _rl_last_c_pos -= wrap_offset;
+                 
+             /* If this is the line with the prompt, we might need to
+--- 982,992 ----
+                 _rl_last_c_pos > wrap_offset &&
+                 o_cpos < prompt_last_invisible)
+!              _rl_last_c_pos -= prompt_invis_chars_first_line;        /* XXX - was wrap_offset */
+!            else if (linenum == prompt_last_screen_line && prompt_physical_chars > _rl_screenwidth &&
+!                      (MB_CUR_MAX > 1 && rl_byte_oriented == 0) &&
+!                      cpos_adjusted == 0 &&
+!                      _rl_last_c_pos != o_cpos &&
+!                      _rl_last_c_pos > (prompt_last_invisible - _rl_screenwidth - prompt_invis_chars_first_line))
+!              _rl_last_c_pos -= (wrap_offset-prompt_invis_chars_first_line);
+                 
+             /* If this is the line with the prompt, we might need to
+***************
+*** 1205,1209 ****
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+--- 1264,1268 ----
+  {
+    register char *ofd, *ols, *oe, *nfd, *nls, *ne;
+!   int temp, lendiff, wsatend, od, nd, twidth, o_cpos;
+    int current_invis_chars;
+    int col_lendiff, col_temp;
+***************
+*** 1221,1225 ****
+      temp = _rl_last_c_pos;
+    else
+!     temp = _rl_last_c_pos - W_OFFSET(_rl_last_v_pos, visible_wrap_offset);
+    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
+       && _rl_last_v_pos == current_line - 1)
+--- 1280,1284 ----
+      temp = _rl_last_c_pos;
+    else
+!     temp = _rl_last_c_pos - WRAP_OFFSET (_rl_last_v_pos, visible_wrap_offset);
+    if (temp == _rl_screenwidth && _rl_term_autowrap && !_rl_horizontal_scroll_mode
+       && _rl_last_v_pos == current_line - 1)
+***************
+*** 1587,1599 ****
+           {
+             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
+- #if 1
+            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
+               reported against bash-3.0-alpha by Andreas Schwab involving
+               multibyte characters and prompt strings with invisible
+               characters, but was previously disabled. */
+!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
+! #else
+!            _rl_last_c_pos += _rl_col_width (nfd+lendiff, 0, temp-lendiff);
+! #endif
+           }
+       }
+--- 1648,1660 ----
+           {
+             _rl_output_some_chars (nfd + lendiff, temp - lendiff);
+            /* XXX -- this bears closer inspection.  Fixes a redisplay bug
+               reported against bash-3.0-alpha by Andreas Schwab involving
+               multibyte characters and prompt strings with invisible
+               characters, but was previously disabled. */
+!            if (MB_CUR_MAX > 1 && rl_byte_oriented == 0)
+!              twidth = _rl_col_width (nfd+lendiff, 0, temp-col_lendiff);
+!            else
+!              twidth = temp - lendiff;
+!            _rl_last_c_pos += twidth;
+           }
+       }
+***************
+*** 1789,1793 ****
+    int cpos, dpos;            /* current and desired cursor positions */
+  
+!   woff = W_OFFSET (_rl_last_v_pos, wrap_offset);
+    cpos = _rl_last_c_pos;
+  #if defined (HANDLE_MULTIBYTE)
+--- 1850,1854 ----
+    int cpos, dpos;            /* current and desired cursor positions */
+  
+!   woff = WRAP_OFFSET (_rl_last_v_pos, wrap_offset);
+    cpos = _rl_last_c_pos;
+  #if defined (HANDLE_MULTIBYTE)
+***************
+*** 1803,1807 ****
+        prompt string, since they're both buffer indices and DPOS is a
+        desired display position. */
+!       if (new > prompt_last_invisible)               /* XXX - don't use woff here */
+       {
+         dpos -= woff;
+--- 1864,1872 ----
+        prompt string, since they're both buffer indices and DPOS is a
+        desired display position. */
+!       if ((new > prompt_last_invisible) ||           /* XXX - don't use woff here */
+!        (prompt_physical_chars > _rl_screenwidth &&
+!         _rl_last_v_pos == prompt_last_screen_line &&
+!         wrap_offset != woff &&
+!         new > (prompt_last_invisible-_rl_screenwidth-wrap_offset)))
+       {
+         dpos -= woff;
diff --git a/src/patches/readline/readline52-014 b/src/patches/readline/readline52-014
new file mode 100644 (file)
index 0000000..8dfaae4
--- /dev/null
@@ -0,0 +1,49 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 5.2
+Patch-ID: readline52-014
+
+Bug-Reported-by:       Len Lattanzi <llattanzi@apple.com>
+Bug-Reference-ID:      <52B1297F-6675-45CC-B63E-24745337D006@apple.com>
+Bug-Reference-URL:
+
+Bug-Description:
+
+On systems where mbrtowc() returns -2 when passed a length argument with
+value 0, when using a multibyte locale, Readline's emacs-mode forward-char
+at the end of a line will leave the point beyond the end of the line.
+
+Patch:
+
+*** ../readline-5.2-patched/mbutil.c   2009-05-29 23:09:26.000000000 -0400
+--- mbutil.c   2009-05-29 23:10:12.000000000 -0400
+***************
+*** 78,82 ****
+       int seed, count, find_non_zero;
+  {
+!   size_t tmp;
+    mbstate_t ps;
+    int point;
+--- 78,82 ----
+       int seed, count, find_non_zero;
+  {
+!   size_t tmp, len;
+    mbstate_t ps;
+    int point;
+***************
+*** 99,103 ****
+    while (count > 0)  
+      {
+!       tmp = mbrtowc (&wc, string+point, strlen(string + point), &ps);
+        if (MB_INVALIDCH ((size_t)tmp))
+       {
+--- 99,106 ----
+    while (count > 0)  
+      {
+!       len = strlen (string + point);
+!       if (len == 0)
+!      break;
+!       tmp = mbrtowc (&wc, string+point, len, &ps);
+        if (MB_INVALIDCH ((size_t)tmp))
+       {
diff --git a/src/patches/readline/readline62-001 b/src/patches/readline/readline62-001
new file mode 100644 (file)
index 0000000..d4563c3
--- /dev/null
@@ -0,0 +1,46 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.2
+Patch-ID: readline62-001
+
+Bug-Reported-by:       Clark J. Wang <dearvoid@gmail.com>
+Bug-Reference-ID:      <AANLkTimGbW7aC4E5infXP6ku5WPci4t=xVc+L1SyHqrD@mail.gmail.com>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00157.html
+
+Bug-Description:
+
+The readline vi-mode `cc', `dd', and `yy' commands failed to modify the
+entire line.
+
+[This patch intentionally does not modify patchlevel]
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.2-patched/vi_mode.c  2010-11-20 19:51:39.000000000 -0500
+--- vi_mode.c  2011-02-17 20:24:25.000000000 -0500
+***************
+*** 1115,1119 ****
+        _rl_vi_last_motion = c;
+        RL_UNSETSTATE (RL_STATE_VIMOTION);
+!       return (0);
+      }
+  #if defined (READLINE_CALLBACKS)
+--- 1115,1119 ----
+        _rl_vi_last_motion = c;
+        RL_UNSETSTATE (RL_STATE_VIMOTION);
+!       return (vidomove_dispatch (m));
+      }
+  #if defined (READLINE_CALLBACKS)
+*** ../readline-6.2-patched/callback.c 2010-06-06 12:18:58.000000000 -0400
+--- callback.c 2011-02-17 20:43:28.000000000 -0500
+***************
+*** 149,152 ****
+--- 149,155 ----
+         /* Should handle everything, including cleanup, numeric arguments,
+            and turning off RL_STATE_VIMOTION */
++        if (RL_ISSTATE (RL_STATE_NUMERICARG) == 0)
++          _rl_internal_char_cleanup ();
++ 
+         return;
+       }
diff --git a/src/patches/readline/readline62-002 b/src/patches/readline/readline62-002
new file mode 100644 (file)
index 0000000..3dc2604
--- /dev/null
@@ -0,0 +1,57 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.2
+Patch-ID: readline62-002
+
+Bug-Reported-by:       Vincent Sheffer <vince.sheffer@apisphere.com>
+Bug-Reference-ID:      <F13C1C4F-C44C-4071-BFED-4BB6D13CF92F@apisphere.com>
+Bug-Reference-URL:     https://lists.gnu.org/archive/html/bug-readline/2011-08/msg00000.html
+
+Bug-Description:
+
+The readline shared library helper script needs to be updated for Mac OS X
+10.7 (Lion, darwin11).
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.2-patched/support/shobj-conf 2009-10-28 09:20:21.000000000 -0400
+--- support/shobj-conf 2011-08-27 13:25:23.000000000 -0400
+***************
+*** 158,162 ****
+  
+  # Darwin/MacOS X
+! darwin[89]*|darwin10*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+--- 172,176 ----
+  
+  # Darwin/MacOS X
+! darwin[89]*|darwin1[012]*)
+       SHOBJ_STATUS=supported
+       SHLIB_STATUS=supported
+***************
+*** 187,191 ****
+  
+       case "${host_os}" in
+!      darwin[789]*|darwin10*) SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+--- 201,205 ----
+  
+       case "${host_os}" in
+!      darwin[789]*|darwin1[012]*)     SHOBJ_LDFLAGS=''
+                       SHLIB_XLDFLAGS='-dynamiclib -arch_only `/usr/bin/arch` -install_name $(libdir)/$@ -current_version $(SHLIB_MAJOR)$(SHLIB_MINOR) -compatibility_version $(SHLIB_MAJOR) -v'
+                       ;;
+
+*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
+--- patchlevel 2011-11-17 11:09:35.000000000 -0500
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 1
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 2
diff --git a/src/patches/readline/readline62-003 b/src/patches/readline/readline62-003
new file mode 100644 (file)
index 0000000..0462242
--- /dev/null
@@ -0,0 +1,76 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.2
+Patch-ID: readline62-003
+
+Bug-Reported-by:       Max Horn <max@quendi.de>
+Bug-Reference-ID:      <20CC5C60-07C3-4E41-9817-741E48D407C5@quendi.de>
+Bug-Reference-URL:     http://lists.gnu.org/archive/html/bug-readline/2012-06/msg00005.html
+
+Bug-Description:
+
+A change between readline-6.1 and readline-6.2 to prevent the readline input
+hook from being called too frequently had the side effect of causing delays
+when reading pasted input on systems such as Mac OS X.  This patch fixes
+those delays while retaining the readline-6.2 behavior.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.2-patched/input.c    2010-05-30 18:33:01.000000000 -0400
+--- input.c    2012-06-25 21:08:42.000000000 -0400
+***************
+*** 410,414 ****
+  rl_read_key ()
+  {
+!   int c;
+  
+    rl_key_sequence_length++;
+--- 412,416 ----
+  rl_read_key ()
+  {
+!   int c, r;
+  
+    rl_key_sequence_length++;
+***************
+*** 430,441 ****
+         while (rl_event_hook)
+           {
+!            if (rl_gather_tyi () < 0) /* XXX - EIO */
+               {
+                 rl_done = 1;
+                 return ('\n');
+               }
+             RL_CHECK_SIGNALS ();
+-            if (rl_get_char (&c) != 0)
+-              break;
+             if (rl_done)              /* XXX - experimental */
+               return ('\n');
+--- 432,447 ----
+         while (rl_event_hook)
+           {
+!            if (rl_get_char (&c) != 0)
+!              break;
+!              
+!            if ((r = rl_gather_tyi ()) < 0)   /* XXX - EIO */
+               {
+                 rl_done = 1;
+                 return ('\n');
+               }
++            else if (r == 1)                  /* read something */
++              continue;
++ 
+             RL_CHECK_SIGNALS ();
+             if (rl_done)              /* XXX - experimental */
+               return ('\n');
+*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
+--- patchlevel 2011-11-17 11:09:35.000000000 -0500
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 2
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 3
diff --git a/src/patches/readline/readline62-004 b/src/patches/readline/readline62-004
new file mode 100644 (file)
index 0000000..5f3ba9b
--- /dev/null
@@ -0,0 +1,108 @@
+                          READLINE PATCH REPORT
+                          =====================
+
+Readline-Release: 6.2
+Patch-ID: readline62-004
+
+Bug-Reported-by:       Jakub Filak
+Bug-Reference-ID:
+Bug-Reference-URL:     https://bugzilla.redhat.com/show_bug.cgi?id=813289
+
+Bug-Description:
+
+Attempting to redo (using `.') the vi editing mode `cc', `dd', or `yy'
+commands leads to an infinite loop.
+
+Patch (apply with `patch -p0'):
+
+*** ../readline-6.2-patched/vi_mode.c  2011-02-25 11:17:02.000000000 -0500
+--- vi_mode.c  2012-06-02 12:24:47.000000000 -0400
+***************
+*** 1235,1243 ****
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+!   else if (vi_redoing)
+      {
+        _rl_vimvcxt->motion = _rl_vi_last_motion;
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+  #if defined (READLINE_CALLBACKS)
+    else if (RL_ISSTATE (RL_STATE_CALLBACK))
+--- 1297,1313 ----
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+!   else if (vi_redoing && _rl_vi_last_motion != 'd')  /* `dd' is special */
+      {
+        _rl_vimvcxt->motion = _rl_vi_last_motion;
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
++   else if (vi_redoing)               /* handle redoing `dd' here */
++     {
++       _rl_vimvcxt->motion = _rl_vi_last_motion;
++       rl_mark = rl_end;
++       rl_beg_of_line (1, key);
++       RL_UNSETSTATE (RL_STATE_VIMOTION);
++       r = vidomove_dispatch (_rl_vimvcxt);
++     }
+  #if defined (READLINE_CALLBACKS)
+    else if (RL_ISSTATE (RL_STATE_CALLBACK))
+***************
+*** 1317,1325 ****
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+!   else if (vi_redoing)
+      {
+        _rl_vimvcxt->motion = _rl_vi_last_motion;
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+  #if defined (READLINE_CALLBACKS)
+    else if (RL_ISSTATE (RL_STATE_CALLBACK))
+--- 1387,1403 ----
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
+!   else if (vi_redoing && _rl_vi_last_motion != 'c')  /* `cc' is special */
+      {
+        _rl_vimvcxt->motion = _rl_vi_last_motion;
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
++   else if (vi_redoing)               /* handle redoing `cc' here */
++     {
++       _rl_vimvcxt->motion = _rl_vi_last_motion;
++       rl_mark = rl_end;
++       rl_beg_of_line (1, key);
++       RL_UNSETSTATE (RL_STATE_VIMOTION);
++       r = vidomove_dispatch (_rl_vimvcxt);
++     }
+  #if defined (READLINE_CALLBACKS)
+    else if (RL_ISSTATE (RL_STATE_CALLBACK))
+***************
+*** 1378,1381 ****
+--- 1456,1472 ----
+        r = rl_domove_motion_callback (_rl_vimvcxt);
+      }
++   else if (vi_redoing && _rl_vi_last_motion != 'y')  /* `yy' is special */
++     {
++       _rl_vimvcxt->motion = _rl_vi_last_motion;
++       r = rl_domove_motion_callback (_rl_vimvcxt);
++     }
++   else if (vi_redoing)                       /* handle redoing `yy' here */
++     {
++       _rl_vimvcxt->motion = _rl_vi_last_motion;
++       rl_mark = rl_end;
++       rl_beg_of_line (1, key);
++       RL_UNSETSTATE (RL_STATE_VIMOTION);
++       r = vidomove_dispatch (_rl_vimvcxt);
++     }
+  #if defined (READLINE_CALLBACKS)
+    else if (RL_ISSTATE (RL_STATE_CALLBACK))
+*** ../readline-6.2-patched/patchlevel 2010-01-14 10:15:52.000000000 -0500
+--- patchlevel 2011-11-17 11:09:35.000000000 -0500
+***************
+*** 1,3 ****
+  # Do not edit -- exists only for use by patch
+  
+! 3
+--- 1,3 ----
+  # Do not edit -- exists only for use by patch
+  
+! 4
diff --git a/src/patches/screen-4.0.3-stropts.patch b/src/patches/screen-4.0.3-stropts.patch
new file mode 100644 (file)
index 0000000..d6cbed7
--- /dev/null
@@ -0,0 +1,48 @@
+diff -up screen-4.0.3/tty.sh.stropts screen-4.0.3/tty.sh
+--- screen-4.0.3/tty.sh.stropts        2003-09-08 16:24:25.000000000 +0200
++++ screen-4.0.3/tty.sh        2008-04-07 11:28:34.000000000 +0200
+@@ -76,7 +76,7 @@ exit 0
+ #endif
+ #include "config.h"
+-#ifdef SVR4
++#if 0
+ #include <sys/stropts.h>      /* for I_POP */
+ #endif
+diff -up screen-4.0.3/screen.c.stropts screen-4.0.3/screen.c
+--- screen-4.0.3/screen.c.stropts      2008-04-07 11:25:21.000000000 +0200
++++ screen-4.0.3/screen.c      2008-04-07 11:29:14.000000000 +0200
+@@ -50,7 +50,7 @@
+ #include "config.h"
+-#ifdef SVR4
++#if 0
+ # include <sys/stropts.h>
+ #endif
+diff -up screen-4.0.3/process.c.stropts screen-4.0.3/process.c
+--- screen-4.0.3/process.c.stropts     2003-09-18 14:53:54.000000000 +0200
++++ screen-4.0.3/process.c     2008-04-07 11:29:47.000000000 +0200
+@@ -37,7 +37,7 @@
+ #include "config.h"
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others: */
+-#ifdef SVR4
++#if 0 
+ # include <sys/stropts.h>
+ #endif
+diff -up screen-4.0.3/pty.c.stropts screen-4.0.3/pty.c
+--- screen-4.0.3/pty.c.stropts 2003-09-08 16:26:18.000000000 +0200
++++ screen-4.0.3/pty.c 2008-04-07 11:30:07.000000000 +0200
+@@ -34,7 +34,7 @@
+ #endif
+ /* for solaris 2.1, Unixware (SVR4.2) and possibly others */
+-#ifdef HAVE_SVR4_PTYS
++#if 0 
+ # include <sys/stropts.h>
+ #endif
diff --git a/src/patches/slang-1.4.9-uclibc.patch b/src/patches/slang-1.4.9-uclibc.patch
deleted file mode 100644 (file)
index 7847147..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ru slang-1.4.9.orig/src/slmisc.c slang-1.4.9/src/slmisc.c
---- slang-1.4.9.orig/src/slmisc.c      2003-03-23 07:06:40.000000000 +0000
-+++ slang-1.4.9/src/slmisc.c   2004-05-05 14:27:24.000000000 +0000
-@@ -565,7 +565,7 @@
-    return (int) SLatol (s);
- }
--#if !defined(HAVE_ISSETUGID) && defined(__GLIBC__) && (__GLIBC__ >= 2)
-+#if 0
- extern int __libc_enable_secure;
- # define HAVE___LIBC_ENABLE_SECURE 1
- #endif
diff --git a/src/patches/texinfo-4.8-multibyte-1.patch b/src/patches/texinfo-4.8-multibyte-1.patch
deleted file mode 100644 (file)
index 4676a79..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-Submitted By: Alexander E. Patrakov
-Date: 2005-07-12
-Initial Package Version: 4.8
-Upstream Status: Hack, won't submit
-Origin: Alexander E. Patrakov
-Description: Info assumes that a string width in character cells is the
-same as its length in bytes. This patch avoids cases when this assumption
-is not true.
-
-diff -ur texinfo-4.8/info/info.c texinfo-4.8.hacked/info/info.c
---- texinfo-4.8/info/info.c    2004-04-11 23:56:45.000000000 +0600
-+++ texinfo-4.8.hacked/info/info.c     2005-07-12 12:11:34.852485776 +0600
-@@ -154,6 +154,10 @@
- #ifdef HAVE_SETLOCALE
-   /* Set locale via LC_ALL.  */
-   setlocale (LC_ALL, "");
-+  /* But don't use translated messages in the case when
-+     string width and length can differ */
-+  if (MB_CUR_MAX > 1)
-+    setlocale(LC_MESSAGES, "C");
- #endif
- #ifdef ENABLE_NLS
-diff -ur texinfo-4.8/info/man.c texinfo-4.8.hacked/info/man.c
---- texinfo-4.8/info/man.c     2004-04-11 23:56:46.000000000 +0600
-+++ texinfo-4.8.hacked/info/man.c      2005-07-12 12:08:40.267026800 +0600
-@@ -325,6 +325,17 @@
-       freopen (NULL_DEVICE, "r", stdin);
-       dup2 (pipes[1], fileno (stdout));
-+      if (MB_CUR_MAX > 1)
-+        {
-+          /* Info has trouble wrapping man output if it contains
-+             multibyte characters */
-+          setenv("LANGUAGE", "C", 1);
-+          setenv("LANG", "C", 1);
-+          setenv("LC_MESSAGES", "C", 1);
-+          setenv("LC_CTYPE", "C", 1);
-+          setenv("LC_ALL", "C", 1);
-+        }
-+
-       execv (formatter_args[0], formatter_args);
-       /* If we get here, we couldn't exec, so close out the pipe and
diff --git a/src/patches/texinfo-4.8-tempfile_fix-2.patch b/src/patches/texinfo-4.8-tempfile_fix-2.patch
deleted file mode 100644 (file)
index 0d0b594..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-Updated By: Bruce Dubbs (bdubbs -aT- linuxfromscratch -DoT- org)
-Date: 2005-12-12
-Submitted By: Archaic (archaic -aT- linuxfromscratch -DoT- org)
-Date: 2005-10-08
-Initial Package Version: 4.8
-Origin: http://gentoo.kems.net/gentoo-portage/sys-apps/texinfo/files/texinfo-4.8-tempfile.patch
-Upstream Status: A few patches are floating around in Debian BZ #328365 of which
-                 upstream hasn't made a full commitment on yet.
-Description: (CAN-2005-3011) texindex in texinfo 4.8 and earlier allows local
-             users to overwrite arbitrary files via a symlink attack on
-             temporary files.
-Update: Changed to not pass a constant string to mktemp().
-
-diff -Naur texinfo-4.8.orig/util/texindex.c texinfo-4.8/util/texindex.c
---- texinfo-4.8.orig/util/texindex.c   2005-12-11 23:29:08.000000000 -0600
-+++ texinfo-4.8/util/texindex.c        2005-12-11 23:33:31.000000000 -0600
-@@ -99,6 +99,9 @@
- /* Directory to use for temporary files.  On Unix, it ends with a slash.  */
- char *tempdir;
-+/* Basename for temp files inside of tempdir.  */
-+char *tempbase;
-+
- /* Number of last temporary file.  */
- int tempcount;
-@@ -153,6 +156,7 @@
- main (int argc, char **argv)
- {
-   int i;
-+  char template[]="txidxXXXXXX";
-   tempcount = 0;
-   last_deleted_tempcount = 0;
-@@ -190,6 +194,11 @@
-   decode_command (argc, argv);
-+  /* XXX mkstemp not appropriate, as we need to have somewhat predictable
-+   * names. But race condition was fixed, see maketempname. 
-+   */
-+  tempbase = mktemp (template);
-+
-   /* Process input files completely, one by one.  */
-   for (i = 0; i < num_infiles; i++)
-@@ -389,21 +398,21 @@
- static char *
- maketempname (int count)
- {
--  static char *tempbase = NULL;
-   char tempsuffix[10];
--
--  if (!tempbase)
--    {
--      int fd;
--      tempbase = concat (tempdir, "txidxXXXXXX");
--
--      fd = mkstemp (tempbase);
--      if (fd == -1)
--        pfatal_with_name (tempbase);
--    }
-+  char *name, *tmp_name;
-+  int fd;
-   sprintf (tempsuffix, ".%d", count);
--  return concat (tempbase, tempsuffix);
-+  tmp_name = concat (tempdir, tempbase);
-+  name = concat (tmp_name, tempsuffix);
-+  free(tmp_name);
-+
-+  fd = open (name, O_CREAT|O_EXCL|O_WRONLY, 0600);
-+  if (fd == -1)
-+    pfatal_with_name (name);
-+
-+  close(fd);
-+  return name;
- }
-
diff --git a/src/patches/uClibc-gcc4-genwctype.patch b/src/patches/uClibc-gcc4-genwctype.patch
deleted file mode 100644 (file)
index 568e5bd..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- uClibc-0.9.28/extra/locale/gen_wctype.c.orig       2005-08-18 00:49:41.000000000 +0200
-+++ uClibc-0.9.28/extra/locale/gen_wctype.c    2005-12-09 16:29:53.000000000 +0100
-@@ -796,6 +796,7 @@
-               ti[i] = ut + j;
-               j += blocksize;
-       }
-+      memset(uniqblock, 0, sizeof(uniqblock));
-       /* sort */
-       nu_val = blocksize;
-
diff --git a/src/patches/udev-125-ext4_wo_journal.patch b/src/patches/udev-125-ext4_wo_journal.patch
new file mode 100644 (file)
index 0000000..77072ce
--- /dev/null
@@ -0,0 +1,50 @@
+diff -Naur udev-125.org/extras/volume_id/lib/ext.c udev-125/extras/volume_id/lib/ext.c
+--- udev-125.org/extras/volume_id/lib/ext.c    2008-07-18 16:26:55.000000000 +0200
++++ udev-125/extras/volume_id/lib/ext.c        2012-06-25 00:52:40.976563010 +0200
+@@ -160,32 +160,31 @@
+               goto found;
+       }
+-      /* has journal */
+-      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+-              /* "use on development code" is ext4dev */
+-              if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
+-                      id->type = "ext4dev";
+-                      goto found;
+-              }
++      /* "use on development code" is ext4dev */
++      if ((flags & EXT2_FLAGS_TEST_FILESYS) != 0) {
++              id->type = "ext4dev";
++              goto found;
++      }
+-              /* incompatible ext3 features is ext4 */
+-              if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
+-                  (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
+-                      id->type = "ext4";
+-                      goto found;
+-              }
++      /* incompatible ext3 features is ext4 */
++      if ((feature_ro_compat & EXT3_FEATURE_RO_COMPAT_UNSUPPORTED) != 0 ||
++          (feature_incompat & EXT3_FEATURE_INCOMPAT_UNSUPPORTED) != 0) {
++              id->type = "ext4";
++              goto found;
++      }
++      /* has journal */
++      if ((feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL) != 0) {
+               id->type = "ext3";
+               goto found;
+       } else {
+-              /* no incompatible ext2 feature is ext2 */
++      /* no incompatible ext2 feature is ext2 */
+               if ((feature_ro_compat & EXT2_FEATURE_RO_COMPAT_UNSUPPORTED) == 0 &&
+                   (feature_incompat & EXT2_FEATURE_INCOMPAT_UNSUPPORTED) == 0) {
+                       id->type = "ext2";
+                       goto found;
+               }
+       }
+-
+       return -1;
+ found:
diff --git a/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch b/src/patches/v4l-dvb_rtl28xx_add_usb_ids.patch
new file mode 100644 (file)
index 0000000..1dd649a
--- /dev/null
@@ -0,0 +1,14 @@
+diff -Naur v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c
+--- v4l-dvb-20120916.org/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c 2012-09-16 05:46:03.000000000 +0200
++++ v4l-dvb-20120916/linux/drivers/media/usb/dvb-usb-v2/rtl28xxu.c     2012-09-19 20:03:04.538168193 +0200
+@@ -1228,6 +1228,10 @@
+               &rtl2832u_props, "G-Tek Electronics Group Lifeview LV5TDLX DVB-T", NULL) },
+       { DVB_USB_DEVICE(USB_VID_TERRATEC, USB_PID_NOXON_DAB_STICK,
+               &rtl2832u_props, "NOXON DAB/DAB+ USB dongle", NULL) },
++      { DVB_USB_DEVICE(0x1d19, 0x1101,
++              &rtl2832u_props, "DK DVB-T USB dongle", NULL) },
++      { DVB_USB_DEVICE(0x1f4d, 0xc803,
++              &rtl2832u_props, "Trekstor DVB-T DAB FM USB dongle", NULL) },
+       { }
+ };
+ MODULE_DEVICE_TABLE(usb, rtl28xxu_id_table);
diff --git a/src/patches/vdr-1.6.0-gcc44-fixes.patch b/src/patches/vdr-1.6.0-gcc44-fixes.patch
new file mode 100644 (file)
index 0000000..d8841d8
--- /dev/null
@@ -0,0 +1,62 @@
+Index: vdr-1.6.0/recording.c
+===================================================================
+--- vdr-1.6.0.orig/recording.c
++++ vdr-1.6.0/recording.c
+@@ -509,8 +509,8 @@ cRecording::cRecording(cTimer *Timer, co
+      Utf8Strn0Cpy(SubtitleBuffer, Subtitle, MAX_SUBTITLE_LENGTH);
+      Subtitle = SubtitleBuffer;
+      }
+-  char *macroTITLE   = strstr(Timer->File(), TIMERMACRO_TITLE);
+-  char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
++  const char *macroTITLE   = strstr(Timer->File(), TIMERMACRO_TITLE);
++  const char *macroEPISODE = strstr(Timer->File(), TIMERMACRO_EPISODE);
+   if (macroTITLE || macroEPISODE) {
+      name = strdup(Timer->File());
+      name = strreplace(name, TIMERMACRO_TITLE, Title);
+@@ -551,7 +551,7 @@ cRecording::cRecording(const char *FileN
+   sortBuffer = NULL;
+   fileName = strdup(FileName);
+   FileName += strlen(VideoDirectory) + 1;
+-  char *p = strrchr(FileName, '/');
++  const char *p = strrchr(FileName, '/');
+   name = NULL;
+   info = new cRecordingInfo;
+@@ -1022,7 +1022,8 @@ void cRecordings::DelByName(const char *
+   if (recording) {
+      cThreadLock DeletedRecordingsLock(&DeletedRecordings);
+      Del(recording, false);
+-     char *ext = strrchr(recording->FileName(), '.');
++     // wtf?
++     char *ext = strrchr(const_cast<char*>(recording->FileName()), '.');
+      if (ext) {
+         strncpy(ext, DELEXT, strlen(ext));
+         recording->fileSizeMB = DirSizeMB(recording->FileName());
+Index: vdr-1.6.0/svdrp.c
+===================================================================
+--- vdr-1.6.0.orig/svdrp.c
++++ vdr-1.6.0/svdrp.c
+@@ -736,7 +736,7 @@ void cSVDRP::CmdGRAB(const char *Option)
+      char *strtok_next;
+      FileName = strtok_r(p, delim, &strtok_next);
+      // image type:
+-     char *Extension = strrchr(FileName, '.');
++     const char *Extension = strrchr(FileName, '.');
+      if (Extension) {
+         if (strcasecmp(Extension, ".jpg") == 0 || strcasecmp(Extension, ".jpeg") == 0)
+            Jpeg = true;
+@@ -796,12 +796,12 @@ void cSVDRP::CmdGRAB(const char *Option)
+      if (FileName) {
+         if (grabImageDir) {
+            cString s;
+-           char *slash = strrchr(FileName, '/');
++           char *slash = strrchr(const_cast<char*>(FileName), '/');
+            if (!slash) {
+               s = AddDirectory(grabImageDir, FileName);
+               FileName = s;
+               }
+-           slash = strrchr(FileName, '/'); // there definitely is one
++           slash = strrchr(const_cast<char*>(FileName), '/'); // there definitely is one
+            *slash = 0;
+            char *r = realpath(FileName, RealFileName);
+            *slash = '/';
diff --git a/src/patches/vdr-plugin-epgsearch-gcc44.patch b/src/patches/vdr-plugin-epgsearch-gcc44.patch
new file mode 100644 (file)
index 0000000..2a92a3b
--- /dev/null
@@ -0,0 +1,78 @@
+diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c
+--- vdr-plugin-epgsearch-0.9.24~/epgsearchsvdrp.c      2008-04-13 20:53:44.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/epgsearchsvdrp.c       2009-10-26 20:27:07.000000000 +0100
+@@ -742,12 +742,13 @@
+    {
+       if (*Option) 
+       {
+-         char* pipePos = strchr(Option, '|');
++         const char* pipePos = strchr(Option, '|');
+          if (pipePos)
+          {
+-            *pipePos = 0;
+-            const char* oldName = Option;
+-            const char* newName = pipePos+1;
++            int index = pipePos - Option;
++            char* oldName = strdup(Option);
++            *(oldName + index) = 0;
++            const char* newName = oldName + index + 1;
+             if (strlen(oldName) > 0 && strlen(newName) > 0)
+             {
+                cChannelGroup *changrp = ChannelGroups.GetGroupByName(Option);
+@@ -769,15 +770,18 @@
+                   }
+                   ChannelGroups.Save();
+                   SearchExts.Save();
++                  free(oldName);
+                   return cString::sprintf("renamed channel group '%s' to '%s'", oldName, newName);
+                }                  
+                else
+                {
++                  free(oldName);
+                   ReplyCode = 901;
+                   return cString::sprintf("channel group '%s' not defined", Option);
+                }
+             }
++            free(oldName);
+          }
+          ReplyCode = 901;
+          return cString("Error in channel group parameters"); 
+diff -urNad vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c vdr-plugin-epgsearch-0.9.24/epgsearchtools.c
+--- vdr-plugin-epgsearch-0.9.24~/epgsearchtools.c      2008-04-13 20:53:42.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/epgsearchtools.c       2009-10-26 20:27:07.000000000 +0100
+@@ -743,7 +743,7 @@
+    while(tmp)
+    {
+       // extract a single line
+-      char* lf = strchr(tmp, '\n');
++      const char* lf = strchr(tmp, '\n');
+       char* line = NULL;
+       if (lf)
+       line = strndup(tmp, lf-tmp);
+diff -urNad vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c vdr-plugin-epgsearch-0.9.24/menu_dirselect.c
+--- vdr-plugin-epgsearch-0.9.24~/menu_dirselect.c      2008-04-13 20:53:44.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/menu_dirselect.c       2009-10-26 20:27:07.000000000 +0100
+@@ -83,7 +83,7 @@
+       return 1;
+     do
+     {
+-      char* pos = strchr(szDir, '~');
++      const char* pos = strchr(szDir, '~');
+       if (pos)
+       {
+           iLevel++;
+diff -urNad vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c
+--- vdr-plugin-epgsearch-0.9.24~/searchtimer_thread.c  2008-04-28 18:22:31.000000000 +0200
++++ vdr-plugin-epgsearch-0.9.24/searchtimer_thread.c   2009-10-26 20:27:28.000000000 +0100
+@@ -565,8 +565,8 @@
+    if (!isempty(aux))
+    {
+       tmpaux = strdup(aux);
+-      char* begin = strstr(aux, "<epgsearch>");
+-      char* end = strstr(aux, "</epgsearch>");
++      const char* begin = strstr(aux, "<epgsearch>");
++      const char* end = strstr(aux, "</epgsearch>");
+       if (begin && end)
+       {
+          if (begin == aux) strcpy(tmpaux, ""); else strn0cpy(tmpaux, aux, begin-aux+1); 
index 8c187d51d1bdb7a3a6d282d754ea63a9a62ba35c..cc063a7a2b2ddc3a11af741d6bec4a3042c68957 100644 (file)
@@ -9,7 +9,7 @@
 
 # shell variables must consist of alphanumeric characters and underscores,
 # and begin with an alphabetic character or underscore.
-VARNAME='[A-Za-z_][A-zA-z0-9_]*'
+VARNAME='[A-Za-z_][A-Za-z0-9_]*'
 
 # For the assigned value we only accept a limited number of characters - none
 # of which are shell metachars
diff --git a/src/scripts/vpn-watch b/src/scripts/vpn-watch
deleted file mode 100755 (executable)
index 7eae873..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-#!/usr/bin/perl 
-##################################################
-#####     VPN-Watch.pl     Version 0.7       #####
-##################################################
-#                                                #
-#   VPN-Watch is part of the IPFire Firewall     #
-#                                                #
-##################################################
-
-use strict;
-
-require '/var/ipfire/general-functions.pl';
-my @vpnsettings;
-my $i = 0;
-my $file = "/var/run/vpn-watch.pid";
-my $debug = 0;
-
-if ( -e $file ){
-  logger("There my be another vpn-watch runnning because $file exists, vpn-watch will try kill the process.");
-  open(FILE, "<$file");
-    my $PID = <FILE>;
-    close(FILE);
-    system("kill -9 $PID");
-  }
-
-system("echo $$ > $file");
-my $round=0;
-while ( $i == 0){
-  if ($debug){logger("We will wait 60 seconds before next action.");}
-    sleep(60);
-
-  $round++;
-
-   # Reset roundcounter after 10 min. To do established check.
-  if ($round > 9) { $round=0; }
-
-  if (open(FILE, "<${General::swroot}/vpn/config")) {    @vpnsettings = <FILE>;
-    close(FILE);
-    unless(@vpnsettings) {exit 1;}
-  }
-
-my $status = `ipsec status`;
-foreach (@vpnsettings){
- my @settings = split(/,/,$_);
-  
-  chomp($settings[30]);
-  if ($settings[27] ne 'RED'){next;}
-  if ($settings[4] ne 'net'){next;}  
-  if ($settings[1] ne 'on'){next;}chomp($settings[29]);
-  if ($settings[29] ne 'on'){next;}
-  my $remotehostname = $settings[11];
-  
-  if ($debug){logger("Checking connection to $remotehostname.");}
-  
-  my $remoteip = `/usr/bin/ping -c 1 $remotehostname 2>/dev/null | head -n1 | awk '{print \$3}' | tr -d '()' | tr -d ':'`;chomp($remoteip);
-  if ($remoteip eq ""){next;if ($debug){logger("Unable to resolve $remotehostname.");}}
-  my $ipmatch= `echo "$status" | grep '$remoteip' | grep '$settings[2]'`;
-  my $established= `echo "$status" | grep '$settings[2]' | grep -e 'erouted;' -e 'INSTALLED'`;
-  my $known= `echo "$status" | grep '$settings[2]'`;
-
-  if ( $ipmatch eq '' && $known ne '' ){
-    logger("Remote IP for host $remotehostname($remoteip) has changed, restarting ipsec.");
-    system("/usr/local/bin/ipsecctrl S $settings[0]");
-    $round=0;
-  }
-
-  if ($debug){logger("Round=".$round." and established=".$established);}
-
-  if ( ($round == 0) && ($established eq '')) {
-    logger("Connection to $remotehostname($remoteip) not erouted, restarting ipsec.");
-    system("/usr/local/bin/ipsecctrl S $settings[0]");
-    $round=0;
-
-  }
- }
- if ($debug){logger("All connections may be fine nothing was done.");}
-}
-
-sub logger {
-        my $log = shift;
-        system("logger -t vpnwatch \"$log\"");
-}
diff --git a/src/stripper b/src/stripper
new file mode 100755 (executable)
index 0000000..2b4feaf
--- /dev/null
@@ -0,0 +1,57 @@
+#!/tools/bin/bash
+
+dirs=""
+excludes="/dev /proc /sys /run"
+
+while [ $# -gt 0 ]; do
+       case "${1}" in
+               --exclude=*)
+                       excludes="${excludes} ${1#*=}"
+                       ;;
+               *)
+                       dirs="${dirs} ${1}"
+                       ;;
+       esac
+       shift
+done
+
+function _strip() {
+       local file=${1}
+       local cmd="${STRIP-strip}"
+
+       local exclude l
+       for exclude in ${excludes}; do
+               l=${#exclude}
+               if [ "${file:0:${l}}" = "${exclude}" ]; then
+                       return 0
+               fi
+       done
+
+       case "$(file -bi ${file})" in
+               application/x-sharedlib*|application/x-archive*)
+                       cmd="${cmd} --strip-debug --remove-section=.comment --remove-section=.note"
+                       ;;
+               *)
+                       cmd="${cmd} --strip-unneeded"
+                       ;;
+       esac
+
+       echo "Stripping ${file}..."
+       ${cmd} ${file}
+}
+
+for dir in ${dirs}; do
+       # Strip shared objects.
+       find ${dir} -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
+               | file -N -f - | sed -n -e 's/^\(.*\):[   ]*.*ELF.*, not stripped/\1/p' |
+               while read file; do
+                       _strip ${file}
+               done
+
+       # Strip static archives.
+       find ${dir} -name \*.a -a -exec file {} \; \
+               | grep 'current ar archive' | sed -n -e 's/^\(.*\):[    ]*current ar archive/\1/p' |
+               while read file; do
+                       _strip ${file}
+               done
+done
index 783b46e141b5ba02a1626a5c5794554abe77bd91..5af0b4b8472d474d4dde7688207a9f49808ac0e8 100644 (file)
@@ -220,15 +220,17 @@ get_pkg_ver()
 if [ 'x86_64' = $MACHINE -o 'i686' = $MACHINE -o 'i586' = $MACHINE ]; then
        echo "`date -u '+%b %e %T'`: Machine is iX86 (or equivalent)" >> $LOGFILE
        MACHINE=i586
+       CROSSTARGET=${MACHINE}-cross-linux-gnu
        BUILDTARGET=i586-pc-linux-gnu
        CFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
        CXXFLAGS="-O2 -march=i586 -pipe -fomit-frame-pointer"
        C2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
        CXX2FLAGS="-O2 -march=i586 -mtune=i586 -pipe -fomit-frame-pointer"
-elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv7l' = $MACHINE ]; then
+elif [ 'armv5tejl' = $MACHINE -o 'armv5tel' = $MACHINE -o 'armv6l' = $MACHINE -o 'armv7l' = $MACHINE ]; then
        echo "`date -u '+%b %e %T'`: Machine is ARM (or equivalent)" >> $LOGFILE
        MACHINE=armv5tel
        MACHINE_TYPE=arm
+       CROSSTARGET=${MACHINE}-cross-linux-gnueabi
        BUILDTARGET=${MACHINE}-unknown-linux-gnueabi
        CFLAGS="-O2 -march=armv5te -mfloat-abi=soft -fomit-frame-pointer -pipe"
        CXXFLAGS="$CFLAGS"
@@ -291,16 +293,17 @@ entershell() {
        fi
 
        echo "Entering to a shell inside LFS chroot, go out with exit"
-       $linux32 chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
-               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+       chroot $LFS /tools/bin/env -i HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
+               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
                VERSION=$VERSION CONFIG_ROOT=$CONFIG_ROOT \
                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                CFLAGS="$CF2LAGS" CXXFLAGS="$CXX2FLAGS" \
                CCACHE_DIR=/usr/src/ccache \
                CCACHE_COMPRESS=1 \
-               CCACHE_HASHDIR=1 \
+               CCACHE_COMPILERCHECK="none" \
                KVER=$KVER \
                BUILDTARGET="$BUILDTARGET" \
+               CROSSTARGET="${CROSSTARGET}" \
                MACHINE="$MACHINE" \
                MACHINE_TYPE="$MACHINE_TYPE" \
                KGCC="ccache /usr/bin/gcc" \
@@ -382,13 +385,13 @@ lfsmake1() {
        local PKG_TIME_START=`date +%s`
 
        cd $BASEDIR/lfs && make -f $*   BUILDTARGET=$BUILDTARGET \
+                                               CROSSTARGET="${CROSSTARGET}" \
                                                MACHINE=$MACHINE \
                                                MACHINE_TYPE=$MACHINE_TYPE \
                                                LFS_BASEDIR=$BASEDIR \
                                                ROOT=$LFS \
                                                KVER=$KVER \
                                                MAKETUNING=$MAKETUNING \
-                                               $(fake_environ) \
                                                install >> $LOGFILE 2>&1
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`
@@ -408,16 +411,19 @@ lfsmake2() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
                                                VERSION=$VERSION \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                               CCACHE_COMPILERCHECK="none" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
                                                $(fake_environ) \
                                                /tools/bin/bash -x -c "cd /usr/src/lfs && \
@@ -440,17 +446,20 @@ ipfiremake() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                                VERSION=$VERSION \
                                                CORE=$CORE \
                                                CONFIG_ROOT=$CONFIG_ROOT \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                               CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                               CCACHE_COMPILERCHECK="none" \
                                                KVER=$KVER MAKETUNING=$MAKETUNING \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
                                                $(fake_environ) \
                                                /bin/bash -x -c "cd /usr/src/lfs && \
@@ -475,14 +484,17 @@ ipfiredist() {
        local PKG_TIME_START=`date +%s`
        chroot $LFS /tools/bin/env -i   HOME=/root \
                                        TERM=$TERM PS1='\u:\w\$ ' \
-                                       PATH=/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                       PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                        VERSION=$VERSION \
                                        CONFIG_ROOT=$CONFIG_ROOT \
                                        NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                        CFLAGS="$C2FLAGS" CXXFLAGS="$CXX2FLAGS" \
-                                       CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
+                                       CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 \
+                                       CCACHE_COMPILERCHECK="none" \
                                        KVER=$KVER \
-                                       BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                       BUILDTARGET="$BUILDTARGET" \
+                                       CROSSTARGET="${CROSSTARGET}" \
+                                       MACHINE="$MACHINE" \
                                        MACHINE_TYPE="$MACHINE_TYPE" \
                                        $(fake_environ) \
                                        /bin/bash -x -c "cd /usr/src/lfs && \
@@ -505,20 +517,22 @@ installmake() {
        [ $? == 1 ] && return 0
 
        local PKG_TIME_START=`date +%s`
-       $linux32 chroot $LFS /tools/bin/env -i  HOME=/root \
+       chroot $LFS /tools/bin/env -i   HOME=/root \
                                                TERM=$TERM PS1='\u:\w\$ ' \
-                                               PATH=/opt/i586-uClibc/i586-linux-uclibc/bin:/opt/i586-uClibc/bin:/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin \
+                                               PATH=/tools/ccache/bin:/bin:/usr/bin:/sbin:/usr/sbin \
                                                VERSION=$VERSION \
                                                CONFIG_ROOT=$CONFIG_ROOT \
-                                               LFS_PASS="install" \
                                                NAME="$NAME" SNAME="$SNAME" SLOGAN="$SLOGAN" \
                                                CFLAGS="-Os" CXXFLAGS="-Os" \
                                                CCACHE_DIR=/usr/src/ccache CCACHE_COMPRESS=1 CCACHE_HASHDIR=1 \
                                                KVER=$KVER \
-                                               BUILDTARGET="$BUILDTARGET" MACHINE="$MACHINE" \
+                                               BUILDTARGET="$BUILDTARGET" \
+                                               CROSSTARGET="${CROSSTARGET}" \
+                                               MACHINE="$MACHINE" \
                                                MACHINE_TYPE="$MACHINE_TYPE" \
-                   /bin/bash -x -c "cd /usr/src/lfs && \
-                   make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
+                                               LD_LIBRARY_PATH=/tools/lib \
+                   /tools/bin/bash -x -c "cd /usr/src/lfs && \
+                   /tools/bin/make -f $* LFS_BASEDIR=/usr/src install" >>$LOGFILE 2>&1
 
        local COMPILE_SUCCESS=$?
        local PKG_TIME_END=`date +%s`